Я пытаюсь установить a .deb
пакет однако, требуется несколько зависимостей, таких как nodejs, nodejs-подчеркивание, но все те уже установлены через nvm
и доступны.
Есть ли так или иначе, я могу иметь apt-get
распознайте пакеты, установленные через nvm так, чтобы они не сталкивались? Я знаю, что склонный - добираются, в масштабе всей системы, тогда как работы nvm над локальным пространством пользователя, таким образом, этому, возможно, понадобилось бы некоторое взламывание.
Это - проблема с тем, как 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 в настоящее время, кажется, не поддерживают любое понятие подписывания кода ( источник ) так по сравнению с упаковкой дистрибутива, которая хорошо поддерживается в диспетчерах пакетов большей части дистрибутива. Это - довольно небезопасный подход к установке системных пакетов.
Нет, Вы не можете, как Вы уже сказали. Кв. работает на системном уровне, где регулярный nvm пакеты установки на уровне пользователя.
Вы имеете две опции -
Или Ваш желаемый пакет через nvm и используете другие nvm пакеты, уже установленные, или
устанавливают пакет с помощью apt-get
и устанавливают все зависимости с ним.
Самый простой подход, когда это возможно, должен только использовать также 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
, Вы, возможно, должны использовать тот точный номер версии, от которого это зависит. Я не уверен, чего могли бы явиться результатом проблемы, делают так, однако, и необходимо будет, вероятно, продолжать восстанавливать фиктивные пакеты каждый раз, когда пакеты ОС изменяют версии.