
Tengo un servidor Red Hat (servidor 1) que no tiene acceso a Internet. También tengo otro servidor Red Hat (servidor 2) que SÍ tiene acceso a Internet y también puede acceder al servidor 1.
Necesito instalar programas en el servidor 1. En este caso se trata de un módulo de nodo llamado pm2. No estoy seguro de cómo se puede hacer esto. ¿Debo instalar el módulo en el servidor 2 y luego cargarlo en el servidor 1? O en general: ¿cuál es el enfoque a seguir en esta situación?
Respuesta1
Descargue el paquete (debe terminar con .rpm) en el servidor 2, luego transfiera el archivo al servidor 1 y ejecútelo rpm -Uvh package.rpm
como root.
Respuesta2
node
Los módulos no necesariamente vienen empaquetados en rpms. Puede leer (y lo hace) desde la red (sin pasar por el sistema rpm). Usarías elnode
gerente de empaquetación (npm
) para instalar en un archivo tar que puede copiar a la máquina que no está en red, ydeshacerallá.
Elpágina web parapm2
indica que se instalaría (usando la red) con npm
, poniendo como ejemplo
npm install pm2 -g
Podrías utilizar npm pack
para hacer un tarball desde ese punto. la respuesta portsturzlennode.js: Instalación de tar.gz en LinuxLo explica bastante bien: decida dónde colocarlo en la máquina de destino y descomprímalo allí.
Otras lecturas:
Este comando instala un paquete y cualquier paquete del que dependa. Si el paquete tiene un archivo de envoltura retráctil, la instalación de dependencias será impulsada por eso. Vernpm-envoltura retráctil.
npm issues #1349: ¿Cómo puedo instalar paquetes con todas las dependencias sin conexión?, tiene comentario (y elaboración):
Enumere las dependencias en
bundledDependencies
supackage.json
y luego ejecutenpm pack
para crear un tarball. Transfiera eso a la otra máquina y luego instale npm<tarball>
, o simplemente ábrelo manualmente.Una guía para principiantes sobre npm: el administrador de paquetes de nodos