Descargue el paquete a través de apt para otra arquitectura


15

Actualmente estoy en una arquitectura amd64, así que cuando lo intento apt-get download vlc, descargó la arquitectura adecuada para mi sistema, pero ¿cómo puedo descargar la versión i386 a través de apt?

Es para exportar a otro sistema que no tiene conexión a Internet, ¿hay alguna forma de descargar las dependencias que siguen?


¿Quieres instalarlo?
Braiam

Solo para tu información, he ampliado mi respuesta con nuevos conocimientos.
Septiembre

Respuestas:


13

Sí, puedes, solo agrega :i386el comando de descarga, así:

sudo apt-get download <package>:i386  

Entonces para ti:

sudo apt-get download vlc:i386  

No conozco ninguna forma de descargar automáticamente las dependencias de un paquete, además, build-deppero eso no funcionará en su caso.

Después de hurgar un poco más en la página de manual, descubrí que, de hecho, puedes usarlo build-depen una medida como esta:

sudo apt-get build-dep --download-only vlc:i386  

Que luego descargará los paquetes necesarios en el directorio actual. Sin embargo, build-deptenga en cuenta que se trata de compilar el paquete desde la fuente, no instalarlo desde a, .debpor lo que sugerirá cosas como build-essentialy gccque pueden ser necesarias para compilar vlc, pero no necesariamente instalar desde a .deb.

Puede ser más fácil enumerar las principales dependencias de vlc con apt-cache:

apt-cache depends vlc:i386  

Si desea filtrar solo depende de su uso:

apt-cache depends vlc:i386 | grep 'Depends'  

Tenga en cuenta que algunos paquetes, como los que libc6vienen por defecto en Ubuntu, no necesitará descargarlos. Si solo desea descargar todas las dependencias y tratar si las necesita o no más tarde, puede usar este script:

for i in $(apt-cache depends vlc:i386 | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); do sudo apt-get download $i 2>>no32.txt; done  

Esto descargará todos los paquetes dependientes, recomendados y sugeridos y redirigirá cualquier error no32.txt. Debería echar un vistazo allí cuando haya terminado, porque algunos paquetes necesarios que no tienen versiones i386 (es decir, no son binarios) estarán allí.

Solo apt-get downloadesos.

Tenga en cuenta que este script no es muy inteligente, no tiene muchas cosas en cuenta, por lo que puede obtener algunos errores tontos, sin embargo, debería funcionar en general.


¿Y qué hay del paquete build-dep: i386?
enedil

@enedil build-dep descarga e instala, por lo que esto instalaría un montón de paquetes i386 en su máquina, que no es lo que él quiere. Ver man apt-get para más detalles.
Seth

También hay un aptitude downloadcomando. Sin embargo, no estoy seguro si está habilitado para multiarch.
Faheem Mitha

@FaheemMitha Sí, aptitude puede hacer casi todo lo que apt-getpuede.
Seth

0

Una forma de hacerlo es mediante el uso de chroot o proot en el sistema host para crear un sistema de archivos aislado de la arquitectura adecuada. Luego puede ejecutar apt en ese entorno emulado para instalar los paquetes específicos de la arquitectura como si estuviera en una máquina de esa arquitectura. Se ejecuta un poco más lento ya que está emulando la arquitectura, pero luego tiene un rootfs que puede implementar en su otro dispositivo de una arquitectura diferente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.