Tengo una computadora Ubuntu sin internet y una computadora Ubuntu con internet. El que no tiene Internet requiere la instalación de un controlador a través de ndiswrapper. El problema es que ndiswrapper-dkms
depende de dkms
cual depende de unas pocas cosas, y esas pocas cosas dependen de muchas cosas, que dependen de más, y así sucesivamente. He descargado manualmente 92 dependencias hasta ahora y todavía necesito más. He estado usando el código
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
que hace el trabajo pero solo para las dependencias de un paquete, no para las dependencias de las dependencias del paquete, etc. Esto se ha convertido en una pelea de varias horas para conseguir todos los paquetes y es realmente tediosa. He estado ejecutando este código para descargar los archivos .deb a la unidad USB en mi computadora en línea, luego me moví a la computadora fuera de línea para insertar la unidad, luego ejecuté sudo apt install ./*
en la carpeta y espero lo mejor. Generalmente escupe algo como esto:
...
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.
¿Alguien conoce un método para simplemente volcar todos los archivos .deb de las dependencias de un paquete y todas las subdependencias en una sola carpeta para salvar mi cordura? ¡Gracias!
Respuesta1
Echa un vistazo aapt-offline
, una forma (más) fácil de usar de gestionar dependencias fuera de línea. Primero deberá instalarlo descargando el archivo deb y transfiriéndolo a su máquina fuera de línea. Puedes usar algo como sudo apt download apt-offline
para manejar la descarga. La instalación se puede realizar sudo dpkg -i /path/to/your/debfile.deb
en la máquina fuera de línea y solo sudo apt install
en su máquina en línea.
Una vez hecho esto, deberás preparar un montón de cosas para la instalación real.
Comience creando una firma de su sistema fuera de línea solicitando instalar los
ndiswrapper
paquetes:sudo apt-offline set offline.sig --install-packages ndiswrapper-dkms
Copie el archivo a su máquina en línea y ejecute el siguiente comando en la máquina en línea para descargar todos los archivos necesarios:
apt-offline get offline.sig --bundle ndis-ao.zip
Mueva el paquete de archivos zip nuevamente a su máquina fuera de línea y ejecute este comando en él:
sudo apt-offline install ndis-ao.zip
Deberías haberlo ndiswrapper-dkms
instalado en este punto y todo debería estar bien.
Si su apt-offline
paquete no se instala, tome nota de los paquetes dependientes que fallaron y resuélvalos uno por uno (copiando manualmente según sea necesario). El infierno de dependencia es molesto, pero desafortunadamente ese es uno de los problemas con un sistema más fuera de línea.
Puedes intentar echar un vistazo aapt-rdepends
así como generar unacompletográfico de dependencia. Combine esto con apt download
y es posible que tenga una solución alternativa al problema, aunque mis pruebas con esto no han sido concluyentes, por decir lo menos.