Pobierz pakiet przez apt dla innej architektury


15

Obecnie jestem w architekturze amd64, więc kiedy próbuję apt-get download vlc, pobrałem odpowiednią architekturę dla mojego systemu, ale jak mogę pobrać wersję i386 za pośrednictwem apt?

To jest do eksportu do innego systemu, który nie ma połączenia z Internetem, czy jest też jakiś sposób, aby pobrać następujące zależności?


Czy chcesz go zainstalować?
Braiam

Po prostu, poszerzyłem swoją odpowiedź o nową wiedzę.
Seth

Odpowiedzi:


13

Tak, możesz po prostu dołączyć :i386do polecenia pobierania, tak:

sudo apt-get download <package>:i386  

Więc dla ciebie:

sudo apt-get download vlc:i386  

Nie znam żadnego sposobu automatycznego pobierania zależności między pakietami, build-depale to nie zadziała w twoim przypadku.

Po nieco pogłębieniu strony podręcznika odkryłem, że w rzeczywistości możesz używać build-depw takim stopniu:

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

Który następnie pobierze wymagane pakiety do bieżącego katalogu. Należy jednak pamiętać, że build-deppatrzy się na kompilacji pakiet od źródła, nie instalując go od A .debwięc będzie to sugerować takie rzeczy build-essential, a gccktóre mogą być potrzebne do kompilacji VLC, ale nie koniecznie zainstalować z .deb.

Można łatwiej wymienić główne zależności VLC z apt-cache:

apt-cache depends vlc:i386  

Jeśli chcesz filtrować według tylko zależy, użyj:

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

Pamiętaj, że niektóre pakiety, takie jak libc6domyślnie dostarczane w Ubuntu, nie musisz ich pobierać. Jeśli chcesz tylko pobrać wszystkie zależności i zająć się ich potrzebą, czy nie, możesz użyć tego skryptu:

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  

Spowoduje to pobranie wszystkich zależnych, zalecanych i sugerowanych pakietów i przekierowanie wszelkich błędów do no32.txt. Powinieneś zajrzeć tam, kiedy skończysz, ponieważ niektóre potrzebne pakiety, które nie mają wersji i386 (tj. Nie są plikami binarnymi), będą tam.

Tylko apt-get downloadte.

Zauważ, że ten skrypt nie jest zbyt inteligentny, nie bierze pod uwagę wielu rzeczy, więc możesz dostać jakieś głupie błędy, powinien jednak ogólnie działać.


A co z pakietem build-dep: i386?
enedil

@enedil build-dep pobiera i instaluje, więc zainstalowałoby to kilka pakietów i386 na swoim komputerze, czego nie chce. Zobacz man apt-get po szczegóły.
Seth

Jest też aptitude downloadpolecenie. Nie jestem jednak pewien, czy jest włączony tryb multiarch.
Faheem Mitha

@FaheemMitha Tak, aptitude może zrobić wszystko, co apt-getmoże.
Seth

0

Jednym ze sposobów na to jest użycie chroot lub proot w systemie hosta, aby utworzyć izolowany system plików o odpowiedniej architekturze. Następnie możesz uruchomić apt w tym emulowanym środowisku, aby zainstalować pakiety specyficzne dla architektury tak, jakbyś był na komputerze o tej architekturze. Działa nieco wolniej, ponieważ emuluje architekturę, ale masz rootfy, które możesz wdrożyć na innym urządzeniu o innej architekturze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.