L'approche la plus simple, chaque fois que possible est de n'utiliser soit ou paquets. Cela vous évitera probablement beaucoup de maux de tête à long terme, alors examinez-le d'abord. Il semble que presque tout ce qui est lié aux nœuds et fourni par un package puisse être installé à la place.nvm
.deb
.deb
nvm
Si cela n'est vraiment pas possible, cependant, vous pourrez peut-être créer des .deb
packages "factices" en utilisant equivs-control
et equivs-build
pour indiquer apt
que les dépendances sont installées. Notez que cela pourrait potentiellement confondre apt si vous vous trompez. De plus, même si vous désinstallez des nvm
packages, apt pensera toujours que vous avez les substituts que vous avez définis dans les packages factices jusqu'à ce que vous désinstalliez les packages factices eux-mêmes.
Tout d'abord, installez "equivs" afin que nous puissions construire les paquets factices:
sudo apt-get install equivs
Créez un fichier de contrôle qui décrit le package factice:
cd ~
equivs-control nodejs-dummy
Modifiez ce fichier de contrôle:
nano nodejs-dummy
Décommentez et modifiez les lignes du fichier de contrôle comme vous le souhaitez. En particulier, définissez la ligne "Fournit:" pour répertorier les packages que vous avez substitués à l'aide nvm
. Par exemple:
Package: nodejs-dummy
Version: (version slightly higher than what the apt package actually provides)
Maintainer: Your Name <[email protected]>
Provides: nodejs
Architecture: all
Description: Something that will remind you what this does ;)
Construisez le package:
equivs-build nodejs-dummy
Enfin, installez-le:
sudo dpkg -i nodejs-dummy_use_the_actual_filename.deb
Rincez et répétez pour tous les packages que vous avez substitués en utilisant nvm
. Si un package dépend d'une version spécifique d'un autre package que vous avez remplacé nvm
, vous devrez peut-être utiliser le numéro de version exact dont il dépend. Cependant, je ne sais pas quels problèmes pourraient en résulter, et vous devrez probablement continuer à reconstruire vos packages factices chaque fois que les packages du système d'exploitation changent de version.
Il s'agit d'un problème avec la façon dont nvm distribue les logiciels. Ils ne font tout simplement aucun emballage spécifique à la distribution. Pour être précis, j'ai fait une lecture rapide de nvm et ce ne sont que des binaires. Par exemple, voici ce qu'il installe pour nodejs 6: https://nodejs.org/.../lates.../node-v6.3.1-linux-x64.tar.gz Cela ne contient aucun .deb ou Les métadonnées .rpm, donc jusqu'à ce qu'elles libèrent correctement les vrais packages, il n'y a pas grand-chose que les gestionnaires de packages de niveau distribution puissent faire et ils entreront probablement en conflit les uns avec les autres. Si je comprends l'intérêt de nvm publier des packages appropriés n'est pas quelque chose qui les intéresse exactement parce que cela les lie à la prise en charge de packages spécifiques à la distribution. Donc, à la place, nous avons le hack nvm. Peut-être déposer un problème contre leur git. Cela ne peut être corrigé que par la communauté nodejs.
Notamment, npm et nvm ne semblent actuellement prendre en charge aucun concept de signature de code ( source ), par rapport au package distro qui est bien pris en charge dans la plupart des gestionnaires de packages de distro. Il s'agit d'une approche assez peu sûre pour l'installation de packages système.
la source
Non, tu ne peux pas comme tu l'as déjà dit. Apt fonctionne au niveau du système, où les packages d'installation réguliers de nvm au niveau de l'utilisateur.
Vous avez deux options -
Soit votre package souhaité via nvm et utilisez les autres packages nvm déjà installés, soit
installez le package en utilisant
apt-get
et installez toutes les dépendances avec lui.la source