[Linux] So installieren Sie ein Paket auf einem Server ohne Internetumgebung (eigenständig)

Einführung

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.

Voraussetzungen

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.

Nutzungsumgebung

Name OS Ausführung Bemerkungen
Eigenständige Umgebung CentOS 7 AWS EC2(Zur Überprüfung)
Lokaler PC macOS Catalina
Docker-Container CentOS 7

Gesamtdurchfluss

Befolgen Sie die nachstehenden Anweisungen.

  1. Starten Sie einen Docker-Container auf Ihrem lokalen PC
  2. Laden Sie das Paket in den Docker-Container herunter
  3. Erstellen Sie den Download-Zielordner als Repository
  4. Verschieben Sie das erstellte Repository in eine eigenständige Umgebung
  5. Richten Sie das Repository in einer eigenständigen Umgebung ein
  6. Installieren Sie in einer eigenständigen Umgebung

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.

wichtiger Punkt

Detaillierte Vorgehensweise

Lass es uns tatsächlich tun!

0. Vorbereitung einer eigenständigen Umgebung

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 スクリーンショット 2020-02-13 18.11.11.png

1. Starten Sie einen Docker-Container auf Ihrem lokalen PC

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

2. Laden Sie das Paket in den Docker-Container herunter

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.

スクリーンショット 2020-02-13 19.01.37.png

3. Erstellen Sie den Download-Zielordner als Repository

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. image.png

Mit den folgenden Schritten wird die Datei in eine eigenständige Umgebung verschoben. Komprimieren Sie die Datei daher bei Bedarf.

4. Verschieben Sie das erstellte Repository in eine eigenständige Umgebung

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.

  1. Verlassen Sie den Docker-Container
  2. Kopieren Sie den Ordner aus dem Docker-Container auf Ihren lokalen PC
  3. Kopieren Sie den Ordner von Ihrem lokalen PC in eine eigenständige Umgebung
#exit ← Verlassen Sie den Container. Strg+D ist auch OK.
$ docker cp centos7:/standalone_install/ ./
$ scp -r standalone_install standalone_ec2:/home/centos/

5. Richten Sie das Repository in einer eigenständigen Umgebung ein

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

6. Installieren Sie in einer eigenständigen Umgebung

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) スクリーンショット 2020-02-15 23.08.01.png

Zusammenfassung / Bonus

Die wichtigsten Punkte dieser Installationsmethode sind:

Wie 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) demo

Referenz

[^ 1]: Verwenden Sie yum zum Herunterladen, ohne Pakete zu installieren

Recommended Posts

[Linux] So installieren Sie ein Paket auf einem Server ohne Internetumgebung (eigenständig)
So installieren Sie Linux auf einem 32-Bit-UEFI-PC
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
Verwendung der TP-Link-WLAN-Slave-Einheit, die Linux nicht unterstützt
Ein Hinweis zur einfachen Vorbereitung einer Linux-Übungsumgebung
So installieren Sie VMware-Tools unter Linux
So installieren Sie das aws-session-manager-Plugin unter Manajro Linux
So installieren Sie ein Paket mithilfe eines Repositorys
So installieren Sie Pakete unter Alpine Linux
Wie installiere ich php7.4 unter Linux (Ubuntu)
So beheben Sie einen Fehler, bei dem das Jupyter-Notebook nicht automatisch gestartet wird
So installieren Sie das Python-Paket in einer lokalen Umgebung als allgemeiner Benutzer
Erstellen Sie Linux in einer Windows-Umgebung. Schritte zum Installieren und Migrieren von Laradock
So installieren Sie Camunda Modeler unter Manjaro Linux
So erstellen Sie eine Django (Python) -Umgebung auf Docker
[AWS EC2] So installieren Sie Maven unter Amazon Linux 2
So installieren Sie Git unter Linux wie EC2
So führen Sie Django unter IIS auf einem Windows-Server aus
So erstellen Sie eine schöne Python-Umgebung auf einem neuen Mac und installieren Jupter Notebook
So stellen Sie pyenv unter Amazon Linux und Ubuntu ein, um eine Python 3.6.0-Umgebung zu erstellen
Verwendung von GitHub auf einem Server für mehrere Personen ohne Kennwort
Die parallele Verarbeitung der Python-Joblib funktioniert in der uWSGI-Umgebung nicht. Wie verarbeite ich parallel auf uWSGI?
So erstellen Sie eine neue virtuelle Python-Umgebung unter Ubuntu
So richten Sie WSL2 unter Windows 10 ein und erstellen eine Lernumgebung für Linux-Befehle
Hinweise zum Laden einer virtuellen Umgebung mit PyCharm
So registrieren Sie ein Paket in PyPI (Stand September 2017)
So installieren Sie nkf mit der RPM-Datei unter Red Hat Enterprise Linux 7.7 (für Umgebungen ohne Internetverbindung)
So lösen Sie das Problem, dass APL nach der Übertragung auf das eigentliche Gerät unter Kivy-iOS nicht gestartet wird
Ich habe versucht, eine Methode zur Berechnung des Bewertungsindex (Spezifität, NPV) zu implementieren, die scikit-learn nicht hat
Ein Hinweis zum Überprüfen der Verbindung zum Lizenzserver-Port
So erstellen Sie eine Python-Umgebung mit Virtualenv unter Ubuntu 18.04 LTS
Python-Spezialcodec, der zu wissen scheint, aber nicht weiß
So setzen Sie die Verarbeitung fort, nachdem Sie eine Antwort auf aiohttp Server zurückgegeben haben
Hosten Sie die Netzwerkbibliothek Mirror for Unity auf einem Linux-Server
So installieren Sie mysql-connector-python auf einem Mac
Installieren Sie Arch Linux auf DeskMini A300
So erstellen Sie ein Conda-Paket
So installieren Sie das Graph-Tool unter macOS
Führen Sie einen Linux-Server mit GCP aus
So installieren Sie OpenCV auf einem Mac
So installieren Sie MBDyn (Linux Ubuntu)
So installieren Sie PyPy unter CentOS
Erstellen Sie eine Linux-Umgebung unter Windows 10
So installieren Sie TensorFlow unter CentOS 7
So installieren Sie Maven unter CentOS
So installieren Sie Musik 21 unter Windows
Die NVM-Prüfsumme ist ungültig, eine Lösung für das Problem, das das kabelgebundene LAN von Intel unter Linux nicht erkennt.
Eine Geschichte, die mich süchtig nach dem Versuch machte, LightFM unter Amazon Linux zu installieren
Wie baue ich meinen eigenen Linux-Server?
So erstellen Sie eine Sphinx-Übersetzungsumgebung
So installieren Sie drobertadams / toggl-cli auf einem Mac
So fügen Sie ein Paket mit PyCharm hinzu