
Ich habe einen Red Hat-Server (Server 1), der keinen Internetzugang hat. Ich habe auch einen anderen Red Hat-Server (Server 2), der Internetzugang hat und auch auf Server 1 zugreifen kann.
Ich muss auf Server 1 Programme installieren. In diesem Fall handelt es sich um ein Node-Modul namens pm2. Ich bin mir nicht sicher, wie das geht. Soll ich das Modul auf Server 2 installieren und dann auf Server 1 hochladen? Oder allgemein: Wie ist in dieser Situation vorzugehen?
Antwort1
Laden Sie das Paket (sollte mit .rpm enden) auf Server 2 herunter, übertragen Sie die Datei dann per SCP auf Server 1 und führen Sie sie rpm -Uvh package.rpm
als Root aus.
Antwort2
node
Module sind nicht unbedingt in RPMs verpackt. Es kann – und tut – vom Netzwerk lesen (unter Umgehung des RPM-Systems). Sie würden das verwendennode
Paket-Manager (npm
) in ein Tarball zu installieren, das Sie auf die nicht vernetzte Maschine kopieren können, undentpackenDort.
DerWebseite fürpm2
gibt an, dass es (über das Netzwerk) mit installiert wird npm
. Als Beispiel wird angegeben
npm install pm2 -g
Sie könnten npm pack
von diesem Punkt aus ein Tarball erstellen. Die Antwort vonAbonnierenInnode.js: Installieren eines tar.gz unter Linuxerklärt es gut genug: Entscheiden Sie, wo Sie es auf dem Zielcomputer ablegen möchten, und entpacken Sie es dort.
Weiterführende Literatur:
Dieser Befehl installiert ein Paket und alle Pakete, von denen es abhängt. Wenn das Paket eine Shrinkwrap-Datei hat, wird die Installation der Abhängigkeiten davon gesteuert. Siehenpm-Schrumpffolie.
npm-Probleme Nr. 1349 – Wie kann ich Pakete mit allen Abhängigkeiten offline installieren?, hat einen Kommentar (und eine Erläuterung):
Listen Sie die Abhängigkeiten in
bundledDependencies
Ihrem aufpackage.json
und führen Sie dann ausnpm pack
um ein Tarball zu erstellen. Übertragen Sie es auf die andere Maschine und führen Sie entweder npm install<tarball>
, oder öffnen Sie es einfach manuell.