Aus Sicherheitsgründen wie der Produktionsumgebung nicht mit dem globalen Netzwerk verbunden. Es gibt sogenannte Standalone-Server.
Wenn Sie zusätzliche Bibliotheken und Pakete auf einem solchen Server installieren möchten Wie kann ich es installieren?
Ich war süchtig nach meinem vorherigen Job und möchte eine kleine Zusammenfassung der damaligen Lösungen schreiben. Ich hoffe, es wird jedem helfen.
Am Ende des Artikels stelle ich ein Skript vor, das diese Methode automatisch ausführt. (Mit Gif-Bild) Da es von mir persönlich erstellt wurde, garantiere ich den Betrieb nicht, aber wenn Sie eine Chance haben, nutzen Sie es bitte.
Definieren Sie die im Artikel verwendeten Wörter wie folgt:
Wort | Definition |
---|---|
Eigenständige Umgebung | Ein Server, der keine Verbindung zum globalen Netzwerk herstellt. Installationsort. |
Lokaler PC | Mein Arbeits-PC. Es ist mit dem Netzwerk verbunden. |
Name | OS | Ausführung | Bemerkungen |
---|---|---|---|
Eigenständige Umgebung | CentOS | 7 | AWS EC2 (Zur Überprüfung) |
Lokaler PC | macOS | Catalina | |
Docker-Container | CentOS | 7 |
Befolgen Sie die nachstehenden Anweisungen.
Später in diesem Artikel werde ich das oben beschriebene detaillierte Verfahren erläutern.
Wenn Sie keine Docker-Umgebung haben, können Sie diese möglicherweise auf Ihrem lokalen PC ausführen. Es kann jedoch Fälle geben, in denen es je nach Abhängigkeit nicht funktioniert. Wir empfehlen Ihnen, eine saubere Umgebung zu verwenden, in der sich fast nichts befindet.
Lass es uns tatsächlich tun!
Wir haben AWS EC2 als eigenständigen Server für die Verwendung in der Verifizierungsumgebung vorbereitet. Um es vom globalen Netzwerk zu isolieren, ist eine andere Kommunikation als ssh (Port 22) verboten.
↓ Ergebnis der Ausführung von "yum update" in einer eigenständigen Umgebung
Starten Sie einen Docker-Container so weit wie möglich in derselben Umgebung wie die eigenständige Umgebung. Dieses Mal werden wir den CentOS 7-Container starten. Wenn Sie aufstehen, greifen wir auf den Container zu.
$ docker run -itd --name centos7 centos:centos7
$ docker exec -it centos7 bash
Erstellen Sie zunächst ein Verzeichnis, um das Paket herunterzuladen.
# mkdir standalone_install
Laden Sie im erstellten Verzeichnis alle Pakete herunter, die für die eigenständige Umgebung erforderlich sind.
Dieses Mal werden wir git
und iproute2
(Zusammenstellung von Netzwerkbefehlen) zusammen herunterladen.
Durch Hinzufügen der Option "--downloadonly" ist es möglich, nur den Download ohne Installation auszuführen.
# yum install -y --downloadonly --downloaddir=standalone_install git iproute2
yum install --downloadonly --downloaddir=<directory> <package> [^1]
Wenn Sie in das heruntergeladene Verzeichnis schauen, werden Sie feststellen, dass es eine große Anzahl von "rpm" -Dateien enthält.
Installieren Sie den Repository-Erstellungsbefehl createrepo
.
# yum install -y createrepo
Erstellen Sie ein Repository mit dem soeben installierten Befehl create repo
.
Geben Sie einfach das Verzeichnis an und führen Sie es aus, um die Metadaten zu erstellen und als Repository zu fungieren.
# createrepo standalone_install
↓ repodata
sind die Metadaten, die mit dem Befehl create repo
erstellt wurden.
Mit den folgenden Schritten wird die Datei in eine eigenständige Umgebung verschoben. Komprimieren Sie die Datei daher bei Bedarf.
Verschieben Sie den mit dem Befehl createrepo
erstellten Ordner des Repositorys in die eigenständige Umgebung.
Diesmal ist es etwas mühsam, aber verschieben Sie es wie folgt.
#exit ← Verlassen Sie den Container. Strg+D ist auch OK.
$ docker cp centos7:/standalone_install/ ./
$ scp -r standalone_install standalone_ec2:/home/centos/
Alles was bleibt ist, in einer eigenständigen Umgebung zu arbeiten.
Erstellen Sie eine .repo-Datei und richten Sie das verschobene Repository ein. Die Einstellungselemente sind wie folgt.
Artikelname | Elemente einstellen |
---|---|
name | Der Name des Repositorys |
baseurl | Der Pfad des Verzeichnisses, in dem sich das eigentliche Repository befindet |
gpgcheck | ~~Guppigu überprüfen~~Gibt an, ob die GPG-Signatur bestätigt werden soll. 0=false,1=true |
$ sudo vi /etc/yum.repo.d/standalone_install.repo
[standalone_repo]
name=standalone_repo
baseurl=file:///home/centos/standalone_install/
gpgcheck=0
/
in Datei: ///
.Geben Sie das Repository mit der Option "--enablerepo" an, um das Paket zu installieren.
Zu diesem Zeitpunkt ist --disablerepo = *
so eingestellt, dass nicht nach einem externen Repository gesucht wird.
(Die Option "--disablerepo" muss vor dem "--enablerepo" gesetzt werden.)
$ sudo yum install -y --disablerepo=* --enablerepo=standalone_repo git iproute2
Ich konnte es auf diese Weise sogar in der Verifizierungsumgebung (EC2) installieren! (Dieses Bild beweist es überhaupt nicht ... lol)
Die wichtigsten Punkte dieser Installationsmethode sind:
rpm
-Datei mit der Option --downloadonly
--Erstellen eines Repositorys mit dem Befehl create repo
--Erstellen Sie eine .repo-Datei und richten Sie das Repository ein--enablerepo
an und installieren Sie esWie ich am Anfang des Artikels erwähnt habe, habe ich persönlich ein Skript erstellt, das diese Installationsmethode automatisch ausführt. In der Readme-Datei wird die Verwendung beschrieben. Verwenden Sie sie daher, wenn Sie die Möglichkeit dazu haben. https://github.com/hesma2/standalone_install
↓ Operationsbild (Die Schritte 1 bis 3 werden von einem Skript ausgeführt)
[^ 1]: Verwenden Sie yum zum Herunterladen, ohne Pakete zu installieren