Tải xuống gói thông qua apt cho kiến ​​trúc khác


15

Tôi hiện đang ở trong một kiến ​​trúc amd64, vì vậy khi tôi thử apt-get download vlc, nó đã tải xuống kiến ​​trúc phù hợp cho hệ thống của tôi, nhưng làm cách nào tôi có thể tải xuống phiên bản i386 qua apt?

Đó là để xuất sang hệ thống khác không có kết nối internet, có cách nào để tải xuống bất kỳ phụ thuộc nào sau đây không?


Bạn có muốn cài đặt nó?
Braiam

Chỉ cần fyi, tôi đã mở rộng câu trả lời của mình với kiến ​​thức mới.
Seth

Câu trả lời:


13

Có, bạn có thể, chỉ cần thêm :i386vào lệnh tải xuống, như thế này:

sudo apt-get download <package>:i386  

Vì vậy, cho bạn:

sudo apt-get download vlc:i386  

Tôi không biết về bất kỳ cách nào tự động tải xuống một gói phụ thuộc, ngoài build-depra nó sẽ không hoạt động trong trường hợp của bạn.

Sau khi chọc vào trang cá nhân thêm một chút, tôi đã thấy rằng trên thực tế, bạn có thể sử dụng build-depđến một mức độ như thế này:

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

Sau đó sẽ tải xuống các gói cần thiết vào thư mục hiện tại. Tuy nhiên, lưu ý, đó build-deplà xem xét việc biên dịch gói từ nguồn, không cài đặt gói từ .debđó để nó sẽ gợi ý những thứ như build-essentialgcccó thể cần để biên dịch vlc, nhưng không nhất thiết phải cài đặt từ a .deb.

Có thể dễ dàng hơn để liệt kê các phụ thuộc chính của vlc với apt-cache:

apt-cache depends vlc:i386  

Nếu bạn muốn lọc chỉ bằng cách sử dụng:

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

Lưu ý rằng một số gói, như libc6được mặc định trong Ubuntu, vì vậy bạn sẽ không cần phải tải xuống các gói đó. Nếu bạn chỉ muốn tải xuống tất cả các phụ thuộc và xử lý xem bạn có cần chúng hay không sau này, bạn có thể sử dụng tập lệnh này:

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  

Điều này sẽ tải xuống tất cả các gói phụ thuộc, được đề xuất và đề xuất và định tuyến lại bất kỳ lỗi nào no32.txt. Bạn nên xem ở đó khi bạn hoàn thành, bởi vì một số gói cần thiết không có phiên bản i386 (tức là chúng không phải là nhị phân) sẽ ở đó.

Chỉ apt-get downloadnhững cái đó.

Lưu ý rằng tập lệnh này không thông minh lắm, nó không tính đến nhiều thứ, vì vậy bạn có thể gặp một số lỗi ngớ ngẩn, tuy nhiên nó sẽ hoạt động chung.


Và những gì về gói build-dep: i386?
enedil

@enedil tải xuống bản cài đặt cài đặt, vì vậy, phần này sẽ cài đặt một loạt các gói i386 trên máy của anh ta, đây không phải là thứ anh ta muốn. Xem người đàn ông apt-get để biết chi tiết.
Seth

Ngoài ra còn có một aptitude downloadlệnh. Không chắc chắn nếu nó được kích hoạt multiarch.
Faheem Mitha

@FaheemMitha Vâng, năng khiếu có thể làm mọi thứ apt-getcó thể.
Seth

0

Một cách bạn có thể làm điều này là bằng cách sử dụng chroot hoặc proot trên hệ thống máy chủ để tạo một hệ thống tập tin riêng biệt của kiến ​​trúc phù hợp. Sau đó, bạn có thể chạy apt trong môi trường giả lập đó để cài đặt các gói kiến ​​trúc cụ thể giống như khi bạn ở trên một máy của kiến ​​trúc đó. Nó chạy chậm hơn một chút vì nó đang mô phỏng kiến ​​trúc, nhưng sau đó bạn có một rootfs mà bạn có thể triển khai đến thiết bị khác của một kiến ​​trúc khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.