El enfoque más simple, siempre que sea posible, es usar solo uno nvm
o los .deb
paquetes. Esto probablemente le ahorrará muchos dolores de cabeza a largo plazo, así que investigue primero. Parece que casi todo lo relacionado con los nodos que proporciona un .deb
paquete podría instalarse en su nvm
lugar.
Sin embargo, si eso realmente no es posible, puede crear .deb
paquetes "ficticios" utilizando equivs-control
y equivs-build
decir apt
que tiene instaladas las dependencias. Tenga en cuenta que esto podría confundir a apt si se equivoca. Además, incluso si desinstala nvm
paquetes, apt seguirá pensando que tiene los sustitutos que ha definido en los paquetes ficticios hasta que desinstale los paquetes ficticios.
Primero, instale "equivs" para que podamos construir los paquetes ficticios:
sudo apt-get install equivs
Cree un archivo de control que describa el paquete ficticio:
cd ~
equivs-control nodejs-dummy
Edite este archivo de control:
nano nodejs-dummy
Descomente y cambie las líneas en el archivo de control como desee. En particular, configure la línea "Proporciona:" para enumerar los paquetes que ha sustituido utilizando nvm
. Por ejemplo:
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 ;)
Construye el paquete:
equivs-build nodejs-dummy
Finalmente, instálalo:
sudo dpkg -i nodejs-dummy_use_the_actual_filename.deb
Enjuague y repita los paquetes que haya sustituido usando nvm
. Si un paquete depende de una versión específica de otro paquete con el que ha reemplazado nvm
, es posible que deba usar el número de versión exacto del que depende. Sin embargo, no estoy seguro de qué problemas pueden surgir, y es probable que deba seguir reconstruyendo sus paquetes ficticios cada vez que los paquetes del sistema operativo cambien de versión.
Este es un problema con la forma en que nvm distribuye el software. Simplemente no están haciendo ningún empaque específico de la distribución. Para ser específicos, hice una lectura rápida de nvm y son solo binarios. Por ejemplo, esto es lo que instala para nodejs 6: https://nodejs.org/.../lates.../node-v6.3.1-linux-x64.tar.gz Esto no contiene ningún estándar .deb o .rpm metadatos, por lo que hasta que liberen correctamente los paquetes reales, no hay mucho que los administradores de paquetes de nivel de distribución puedan hacer y probablemente entren en conflicto entre sí. Si entiendo el punto de que nvm publique paquetes adecuados no es algo en lo que estén interesados exactamente porque los vincula a admitir paquetes específicos de distribución. Entonces, en cambio, tenemos el truco que es nvm. Tal vez presentar un problema contra su git. Esto solo puede ser corregido por la comunidad de nodejs.
En particular, npm y nvm actualmente no parecen admitir ningún concepto de firma de código ( fuente ), por lo que, en comparación con el paquete de distribución, que es bien compatible con la mayoría de los administradores de paquetes de la distribución. Este es un enfoque bastante inseguro para instalar paquetes de sistema.
fuente
No, no puedes como ya dijiste. Apt funciona a nivel de sistema, donde los paquetes de instalación de nvm regulares a nivel de usuario.
Tienes dos opciones:
O su paquete deseado a través de nvm y use los otros paquetes nvm ya instalados, o
instale el paquete usando
apt-get
e instale todas las dependencias con él.fuente