Ich habe einen Ubuntu-Computer ohne Internet und einen Ubuntu-Computer mit Internet. Für den ohne Internet muss ein Treiber über ndiswrapper installiert werden. Das Problem ist, dass ndiswrapper-dkms
Abhängigkeiten dkms
von einigen wenigen Dingen abhängen, und diese wenigen Dinge hängen von vielen Dingen ab, die wiederum von weiteren abhängen, und so weiter. Ich habe bisher 92 Abhängigkeiten manuell heruntergeladen und brauche immer noch mehr. Ich habe den Code verwendet
for i in $(apt-cache depends <package> | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); do sudo apt-get download $i 2>>errors.txt; done
das erledigt die Aufgabe, aber nur für die Abhängigkeiten eines Pakets, nicht für die Abhängigkeiten der Abhängigkeiten des Pakets und so weiter. Das hat sich zu einem mehrstündigen Kampf entwickelt, um alle Pakete zu bekommen, und es ist wirklich mühsam. Ich habe diesen Code ausgeführt, um die .deb-Dateien auf das USB-Laufwerk auf meinem Online-Computer herunterzuladen, bin dann zum Offline-Computer gewechselt, um das Laufwerk einzustecken, habe es dann sudo apt install ./*
im Ordner ausgeführt und auf das Beste gehofft. Normalerweise spuckt es so etwas aus:
...
The following packages have unmet dependencies:
binutils : Depends: binutils-common (= 2.30-21ubuntu1~18.04.1) but 2.30-21ubuntu1~18.04 is to be installed
Depends: libbinutils (= 2.30-21ubuntu1~18.04.1) but 2.30-21ubuntu1~18.04 is to be installed
Depends: binutils-x86-64-linux-gnu (= 2.30-21ubuntu1~18.04.1) but 2.30-21ubuntu1~18.04 is to be installed
cpp-doc : Depends: cpp-7-doc (>= 7.4.0-1~) but it is not installable
file : Depends: libmagic1 (= 1:5.32-2ubuntu0.2) but 1:5.32-2ubuntu0.1 is to be installed
g++-7 : Depends: libstdc++-7-dev (= 7.4.0-1ubuntu1~18.04) but it is not installable
g++-multilib : Depends: g++-7-multilib (>= 7.4.0-1~) but it is not installable
gcc-7-multilib : Depends: lib32gcc-7-dev (= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libx32gcc-7-dev (= 7.4.0-1ubuntu1~18.04) but it is not installable
gfortran : Depends: gfortran-7 (>= 7.4.0-1~) but it is not installable
glibc-doc : Depends: glibc-doc-reference (>= 2.18) but it is not installable
libasan4-dbg : Depends: libasan4 (= 7.4.0-1ubuntu1~18.04) but it is not installable
libatomic1-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libatomic1 (= 8.3.0-6ubuntu1~18.04) but it is not installable
libbabeltrace1 : Depends: libdw1 (>= 0.126) but it is not installable
libcc1-0 : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libcilkrts5-dbg : Depends: libcilkrts5 (= 7.4.0-1ubuntu1~18.04) but it is not installable
libfl-dev : Depends: libfl2 (= 2.6.4-6) but it is not installable
libgcc-7-dev : Depends: libitm1 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libatomic1 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libasan4 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: liblsan0 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libtsan0 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libubsan0 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libcilkrts5 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libmpx2 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
libgcc1 : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libgcc1-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libgomp1-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libgomp1 (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libitm1-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libitm1 (= 8.3.0-6ubuntu1~18.04) but it is not installable
liblsan0-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: liblsan0 (= 8.3.0-6ubuntu1~18.04) but it is not installable
libmpx2-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libmpx2 (= 8.3.0-6ubuntu1~18.04) but it is not installable
libquadmath0-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libquadmath0 (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libstdc++6 : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libtsan0-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libtsan0 (= 8.3.0-6ubuntu1~18.04) but it is not installable
libubsan0-dbg : Depends: libubsan0 (= 7.4.0-1ubuntu1~18.04) but it is not installable
libumfpack5 : Depends: libcholmod3 (>= 1:4.5.2) but it is not going to be installed
m4 : Depends: libsigsegv2 (>= 2.9) but it is not installable
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Kennt jemand eine Methode, um alle .deb-Dateien für die Abhängigkeiten und alle Unterabhängigkeiten eines Pakets einfach in einen einzigen Ordner zu kopieren, damit ich nicht verrückt werde? Danke!
Antwort1
Schauen Sie sich anapt-offline
, eine (mehr) benutzerfreundliche Methode zur Verwaltung von Offline-Abhängigkeiten. Sie müssen es zuerst installieren, indem Sie die Deb-Datei herunterladen und auf Ihren Offline-Rechner übertragen. Sie können etwas wie verwenden, um den Download abzuwickeln. Die Installation kann auf dem Offline-Rechner und nur auf Ihrem Online-Rechner sudo apt download apt-offline
durchgeführt werden .sudo dpkg -i /path/to/your/debfile.deb
sudo apt install
Sobald dies erledigt ist, müssen Sie eine Reihe von Dingen für die eigentliche Installation vorbereiten.
Beginnen Sie mit der Erstellung einer Signatur Ihres Offline-Systems mit der Aufforderung zur Installation der
ndiswrapper
Pakete:sudo apt-offline set offline.sig --install-packages ndiswrapper-dkms
Kopieren Sie die Datei auf Ihren Online-Computer und führen Sie den folgenden Befehl auf dem Online-Computer aus, um alle erforderlichen Dateien herunterzuladen:
apt-offline get offline.sig --bundle ndis-ao.zip
Verschieben Sie das ZIP-Dateipaket zurück auf Ihren Offline-Computer und führen Sie diesen Befehl darauf aus:
sudo apt-offline install ndis-ao.zip
Die Installation sollte ndiswrapper-dkms
nun abgeschlossen sein und alles sollte in Ordnung sein.
Wenn apt-offline
die Installation Ihres Pakets fehlschlägt, notieren Sie sich die abhängigen Pakete, bei denen die Installation fehlgeschlagen ist, und lösen Sie sie nacheinander auf (bei Bedarf manuell kopieren). Die Abhängigkeitshölle ist ärgerlich, aber leider ist das eines der Probleme bei einem eher offline geschalteten System.
Sie können einen Blick aufapt-rdepends
sowie zur Generierung einesvollständigAbhängigkeitsdiagramm. Kombinieren Sie dies mit apt download
und Sie haben möglicherweise eine alternative Lösung für das Problem, obwohl meine Tests damit, gelinde gesagt, nicht schlüssig waren.