Vor einiger Zeit haben wir darüber gesprochen, wie man Software in Ubuntu offline installiert . In diesem Handbuch haben wir erklärt, wie Sie Pakete in einem internetfähigen System herunterladen und auf einem anderen System installieren können, das über eine langsame oder keine Internetverbindung verfügt. In diesem Tutorial werden wir sehen, wie man Pakete mit Abhängigkeiten lokal in Ubuntu, Debian, Pop OS und anderen DEB-basierten Systemen herunterlädt.
Mit dieser Methode können wir eine .deb
Paket zusammen mit allen erforderlichen Abhängigkeiten, ohne es tatsächlich zu installieren. Auf diese Weise können wir Pakete von einem System herunterladen und sie später auf demselben System selbst oder einem anderen System ohne Internetverbindung installieren. Wir können auch Pakete für verschiedene Architektursysteme herunterladen. Beispielsweise ist es möglich, die 32-Bit-Pakete von einem 64-Bit-System herunterzuladen und umgekehrt.
Pakete mit Abhängigkeiten lokal in Ubuntu herunterladen
Wir können dies auf zwei Arten tun. Ich habe diese Anleitung auf den Desktop-Editionen Ubuntu 16.04 und 18.04 LTS getestet. Es hat wie unten beschrieben einwandfrei funktioniert.
Methode 1:
Dies ist die einfachste und unkomplizierteste Methode im Vergleich zu anderen unten aufgeführten Methoden.
Um ein Paket mit allen Abhängigkeiten herunterzuladen, ohne sie zu installieren, führen Sie einfach Folgendes aus:
$ sudo apt-get install --download-only
Lassen Sie uns zum Beispiel Vim herunterladen Paket mit allen erforderlichen Abhängigkeiten, ohne sie zu installieren, mit dem Befehl:
$ sudo apt-get install --download-only vim
Beispielausgabe:
Paketlisten lesen... FertigAbhängigkeitsbaum erstellen Zustandsinformationen lesen... FertigVorgeschlagene Pakete:ctags vim-doc vim-scriptsDie folgenden NEUEN Pakete werden installiert:vim0 aktualisiert, 1 neu installiert, 0 zu entfernen und 82 nicht aktualisiert. Es müssen 1.152 kB an Archiven abgerufen werden. Nach diesem Vorgang werden 2.852 kB zusätzlicher Speicherplatz verwendet.Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 vim amd64 2:8.0.1453- 1ubuntu1.1 [1.152 kB]Holt 1.152 kB in 3s (372 kB/s)Download vollständig und im Nur-Download-Modus
Wie Sie in der obigen Ausgabe sehen, haben wir das Vim-Paket mit allen Abhängigkeiten heruntergeladen, aber wir haben es nicht wirklich installiert.
Alle heruntergeladenen Dateien werden in /var/cache/apt/archives
gespeichert Verzeichnis.
Kopieren Sie einfach den gesamten Cache-Ordner auf einen beliebigen USB-Stick oder übertragen Sie ihn über das Netzwerk auf ein System, auf dem Sie die Pakete installieren möchten.
Um die heruntergeladenen Pakete zu installieren, gehen Sie zum Cache-Ordner und installieren Sie sie wie unten gezeigt.
$ sudo dpkg -i *
Sehen? So einfach ist das!
Diese Methode funktioniert jedoch nur, wenn auf dem System, das Sie zum Herunterladen der Pakete verwenden, das Hauptpaket oder seine Abhängigkeiten nicht lokal installiert sind.
Wenn Sie versuchen, ein Paket herunterzuladen, das bereits auf demselben System selbst installiert ist, sehen Sie eine Ausgabe wie unten.
$ sudo apt-get install --download-only vim Paketlisten werden gelesen... DoneBuilding-Abhängigkeitsbaum Statusinformationen werden gelesen... Donevim ist bereits die neueste Version (2:8.0.1453-1ubuntu1.3).0 aktualisiert, 0 neu installiert, 0 zu entfernen und 6 nicht aktualisiert.Verwenden Sie in solchen Fällen "
apt-rdepends
" um alle Pakete herunterzuladen. Wennapt-rdepends
noch nicht installiert ist, installieren Sie es mit dem Befehl:$ sudo apt install apt-rdependsLaden Sie dann das Hauptpaket (d. H. Vim in unserem Fall) zusammen mit allen Abhängigkeiten mit dem Befehl herunter:
$ apt herunterladen $(apt-rdepends vim | grep -v "^ ")Dieser Befehl lädt alle erforderlichen Pakete rekursiv herunter.
Nur für den Fall, dass Sie auf einen Fehler wie den folgenden gestoßen sind:
E:Kann keine Kandidatenversion aus dem Paket debconf-2.0 auswählen, da es keinen Kandidaten hatVersuchen Sie stattdessen diesen Befehl:
$ apt-get download $(apt-rdepends vim | grep -v "^ " | sed 's/debconf-2.0/debconf/g')Dieser Befehl lädt Vim mit allen benötigten Paketen herunter und speichert sie im aktuellen Arbeitsverzeichnis.
Um alle heruntergeladenen Pakete zu installieren, führen Sie Folgendes aus:
$ sudo dpkg -i *Methode 2:
Laden Sie zuerst die Abhängigkeiten des Pakets herunter, das Sie herunterladen wollten.
Um eine Liste aller Abhängigkeiten eines Pakets anzuzeigen, zum Beispiel Python , ausführen:
$ sudo apt-cache hängt von Python abBeispielausgabe:
pythonPreDepends:python-minimalDepends:python2.7Depends:libpython-stdlibConflicts:Breaks:update-manager-coreSuggests:python-docSuggests:python-tkReplaces:python-dev Lassen Sie uns das Python-Paket mit seinen Abhängigkeiten auf unsere lokale Festplatte herunterladen.
Erstellen Sie dazu zunächst ein Verzeichnis zum Speichern der Pakete.
$ mkdir pythonWechseln Sie in das Verzeichnis:
$ cd pythonUnd führen Sie dann Folgendes aus:
$ für i in $(apt-cache hängt von Python ab | grep -E 'Abhängig|Empfehlungen|Vorschläge' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ - e s/'>'/''/); tun sudo apt-get download $i 2>>errors.txt; fertigDer obige Befehl lädt das Python-Paket zusammen mit allen erforderlichen Abhängigkeiten herunter und speichert sie im aktuellen Arbeitsverzeichnis. Dieser Befehl speichert auch alle Fehler in der
errors.txt
Datei.Lassen Sie uns die heruntergeladenen Dateien mit '
ls
anzeigen ' Befehl:$lsBeispielausgabe:
errors.txtlibpython-stdlib_2.7.11-1_amd64.debpython2.7_2.7.11-7ubuntu1_amd64.debpython-doc_2.7.11-1_all.debpython-minimal_2.7.11-1_amd64.debpython-tk_2.7.11-2_amd64.debWie Sie in der obigen Ausgabe sehen, wurde das Python-Paket mit all seinen Abhängigkeiten heruntergeladen.
Kopieren Sie sie einfach auf Ihr USB-Laufwerk und installieren Sie die Python-Pakete auf einem beliebigen Offline-System, wie unten gezeigt.
Mounten Sie das USB-Laufwerk, gehen Sie zu dem Ort, an dem Sie das Laufwerk gemountet haben, und führen Sie den folgenden Befehl aus, um Python zu installieren.
$ sudo dpkg -i *Empfohlene Lektüre:
- So laden Sie ein RPM-Paket mit allen Abhängigkeiten in CentOS herunter
Pakete mit Abhängigkeiten lokal für eine bestimmte Architektur herunterladen
Möglicherweise stellen Sie fest, dass der obige Befehl die 64-Bit-Pakete heruntergeladen hat. Das liegt daran, dass ich sie vom 64-Bit-Ubuntu-System herunterlade. Was ist, wenn Sie Pakete für 32-Bit-Arch-Systeme herunterladen möchten? Geht auch!
Aktivieren Sie zunächst die gewünschte Architektur in Ihrem Ubuntu-System mit dem Befehl:
$ sudo dpkg --add-architecture i386
Wenn Sie die Architektur nicht hinzufügen, erhalten Sie die folgende Fehlermeldung, wenn Sie versuchen, die Pakete herunterzuladen.
E:Keine Pakete gefunden
Nachdem Sie die Architektur Ihrer Wahl aktiviert haben, führen Sie den folgenden Befehl aus, um bestimmte architekturbezogene Pakete herunterzuladen.
$ für i in $(apt-cache hängt von python ab:i386 | grep -E 'Hängt davon ab|Empfiehlt|Vorschläge' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); tun sudo apt-get download $i 2>>errors.txt; fertig
Wie Sie in der obigen Ausgabe sehen, habe ich die Architektur 'i386
hinzugefügt ' mit 'apt-cache
' Befehl.
Beispielausgabe:
Get:1 http://in.archive.ubuntu.com/ubuntu xenial/main i386 python-minimal i386 2.7.11-1 [28,2 kB]28,2 kB in 1 s abgerufen (25,8 kB/s) Get:1 http://in.archive.ubuntu.com/ubuntu xenial/main i386 python2.7 i386 2.7.11-7ubuntu1 [220 kB]220 kB in 1 s abgerufen (116 kB/s) Get:1 http://in.archive.ubuntu.com/ubuntu xenial/main i386 libpython-stdlib i386 2.7.11-1 [7.664 B]Hat 7.664 B in 0s (13,3 kB/s) abgerufen:1 http://in.archive.ubuntu.com/ubuntu xenial/main i386 python-tk i386 2.7.11-2 [28,0 kB]28,0 kB in 1 s abgerufen (24,8 kB/s)
Lassen Sie uns die heruntergeladenen Pakete überprüfen.
$ls
Beispielausgabe:
errors.txtlibpython-stdlib_2.7.11-1_i386.debpython2.7_2.7.11-7ubuntu1_i386.debpython-minimal_2.7.11-1_i386.debpython-tk_2.7.11-2_i386.deb
Sehen? Der obige Befehl hat nur die 32-Bit-Pakete heruntergeladen.
Sie wissen jetzt, wie Sie Pakete mit Abhängigkeiten in Ubuntu-Systemen herunterladen. Diese Methoden sind für alle DEB-basierten Systeme gleich.
Verwandte Lektüre:
- So laden Sie rekursive Abhängigkeiten eines Pakets in Ubuntu herunter
- So simulieren Sie Linux-Befehle, ohne etwas im System zu ändern