Ich habe einen Ubuntu-Computer ohne Internet und einen Ubuntu-Computer mit Internet. Für einen Computer ohne Internet muss ein Treiber über ndiswrapper installiert werden. Das Problem ist, dass es darauf ndiswrapper-dkms
ankommt, dkms
was von ein paar Dingen abhängt, und diese wenigen Dinge hängen von vielen Dingen ab, die von mehr abhängen, und so weiter. Ich habe bisher 92 Abhängigkeiten manuell heruntergeladen und benötige immer noch mehr. Ich habe den Code benutzt
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 den Job, aber nur für die Abhängigkeiten eines Pakets, nicht für die Abhängigkeiten der Abhängigkeiten des Pakets und so weiter. Dies hat sich zu einem mehrstündigen Kampf um alle Pakete entwickelt und es ist wirklich mühsam. Ich habe diesen Code ausgeführt, um die .deb-Dateien auf das USB-Laufwerk meines Online-Computers herunterzuladen. Dann bin ich zum Offline-Computer gewechselt, um das Laufwerk einzulegen. Dann habe ich sudo apt install ./*
in dem 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 einfach alle .deb-Dateien für Paketabhängigkeiten und alle Unterabhängigkeiten in einem einzigen Ordner abzulegen, um meine Vernunft zu retten? Danke!
quelle
Recommends
undSuggests
nicht nurDepends
ich gehe davon aus, dass Sie am Ende das gesamte Internet installieren, egal von welchem Paket Sie ausgehen.Antworten:
Werfen Sie einen Blick auf
apt-offline
eine (benutzerfreundlichere) Möglichkeit, Offline-Abhängigkeiten zu verwalten. Sie müssen es zuerst installieren, indem Sie die Debfile herunterladen und auf Ihren Offline-Computer übertragen. Sie können so etwas wiesudo apt download apt-offline
das Herunterladen handhaben. Die Installation kann sowohlsudo dpkg -i /path/to/your/debfile.deb
auf dem Offline-Computer als auchsudo apt install
auf Ihrem Online-Computer erfolgen.Danach müssen Sie einige Dinge für die eigentliche Installation vorbereiten.
Beginnen Sie mit der Erstellung einer Signatur Ihres Offlinesystems, in der Sie aufgefordert werden, die
ndiswrapper
Pakete zu installieren :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:
Verschieben Sie das zipfile-Bundle zurück auf Ihren Offline-Computer und führen Sie den folgenden Befehl aus:
Sie sollten
ndiswrapper-dkms
zu diesem Zeitpunkt installiert haben und alles sollte gut sein.Wenn Ihr
apt-offline
Paket nicht installiert werden kann, notieren Sie sich die fehlgeschlagenen abhängigen Pakete und beheben Sie sie nacheinander (manuelles Kopieren nach Bedarf). Die Hölle der Abhängigkeit ist ärgerlich, aber das ist leider eines der Probleme mit einem offlineeren System.Sie können auch einen Blick darauf werfen
apt-rdepends
, um ein vollständiges Abhängigkeitsdiagramm zu erstellen. Kombinieren Sie dies mitapt download
und Sie haben möglicherweise eine alternative Lösung für das Problem, obwohl meine Tests damit gelinde gesagt nicht schlüssig waren.quelle