Кв. - доберитесь не распознает программное обеспечение узла, установленное через nvm

Я пытаюсь установить a .deb пакет однако, требуется несколько зависимостей, таких как nodejs, nodejs-подчеркивание, но все те уже установлены через nvm и доступны.

Есть ли так или иначе, я могу иметь apt-get распознайте пакеты, установленные через nvm так, чтобы они не сталкивались? Я знаю, что склонный - добираются, в масштабе всей системы, тогда как работы nvm над локальным пространством пользователя, таким образом, этому, возможно, понадобилось бы некоторое взламывание.

15
задан 9 August 2016 в 00:33

3 ответа

Это - проблема с тем, как nvm распределяет программное обеспечение. Они просто не делают никакого дистрибутива определенная упаковка. Быть конкретным сделало быстрое чтение nvm, и они - просто wget'ing двоичные файлы. Например, вот то, что это устанавливает для nodejs 6: https://nodejs.org/.../lates.../node-v6.3.1-linux-x64.tar.gz Это не содержит стандарта .deb или .rpm метаданных поэтому, пока они правильно не выпускают реальные пакеты нет очень ни одного из диспетчеров пакетов уровня дистрибутива, может сделать, и они будут, вероятно, конфликтовать друг с другом. Если я понимаю точку nvm, выпуск надлежащих пакетов не является чем-то, чем они интересуются точно, потому что это связывает их с поддержкой дистрибутива определенные пакеты. Так вместо этого у нас есть взлом, который является nvm. Возможно, зарегистрируйте проблему против их мерзавца. Это может только быть исправлено nodejs сообществом.

Особенно npm и nvm в настоящее время, кажется, не поддерживают любое понятие подписывания кода ( источник ) так по сравнению с упаковкой дистрибутива, которая хорошо поддерживается в диспетчерах пакетов большей части дистрибутива. Это - довольно небезопасный подход к установке системных пакетов.

5
ответ дан 23 November 2019 в 02:45

Нет, Вы не можете, как Вы уже сказали. Кв. работает на системном уровне, где регулярный nvm пакеты установки на уровне пользователя.

Вы имеете две опции -

  • Или Ваш желаемый пакет через nvm и используете другие nvm пакеты, уже установленные, или

  • устанавливают пакет с помощью apt-get и устанавливают все зависимости с ним.

4
ответ дан 23 November 2019 в 02:45

Самый простой подход, когда это возможно, должен только использовать также nvm или .deb пакеты. Это, вероятно, сохранит Вас много головных болей в конечном счете, поэтому изучит это сначала. Это походит почти на что-либо связанное с узлом, которое обеспечивается a .deb пакет мог быть установлен через nvm вместо этого.

Если это действительно не возможно, однако, Вы можете создавать "макет" .deb использование пакетов equivs-control и equivs-build сказать apt то, что Вам установили зависимости. Обратите внимание, что это могло потенциально перепутать склонный, если Вы понимаете вещи превратно. Кроме того, даже если Вы удаляете nvm пакеты, склонные, будут все еще думать, что у Вас есть замены, которые Вы определили в фиктивных пакетах, пока Вы не удаляете сами фиктивные пакеты.

Во-первых, установите "equivs", таким образом, мы можем создать фиктивные пакеты:

sudo apt-get install equivs

Создайте файл управления, который описывает фиктивный пакет:

cd ~
equivs-control nodejs-dummy

Отредактируйте этот файл управления:

nano nodejs-dummy

Не прокомментируйте и измените строки в файле управления, как желаемый. В особенности установите "Обеспечивание": строка для списка пакетов, что Вы заменили использованием nvm. Например:

Package: nodejs-dummy
Version: (version slightly higher than what the apt package actually provides)
Maintainer: Your Name <yourname@example.com>
Provides: nodejs
Architecture: all
Description: Something that will remind you what this does ;)

Создайте пакет:

equivs-build nodejs-dummy

Наконец, установите его:

sudo dpkg -i nodejs-dummy_use_the_actual_filename.deb

Промывка и повторение для любых пакетов Вы заменили использованием nvm. Если пакет зависит от определенной версии другого пакета, Вы заменили nvm, Вы, возможно, должны использовать тот точный номер версии, от которого это зависит. Я не уверен, чего могли бы явиться результатом проблемы, делают так, однако, и необходимо будет, вероятно, продолжать восстанавливать фиктивные пакеты каждый раз, когда пакеты ОС изменяют версии.

13
ответ дан 23 November 2019 в 02:45

Другие вопросы по тегам:

Похожие вопросы: