通过apt下载软件包以使用另一种体系结构


15

我当前使用的是amd64体系结构,因此当我尝试使用时apt-get download vlc,它会为我的系统下载适当的体系结构,但是如何通过apt下载i386版本?

它用于导出到另一个没有Internet连接的系统,是否有任何方法可以下载随后的任何依赖项?


您要安装吗?
Braiam 2014年

仅供参考,我用新知识扩展了答案。
赛斯2014年

Answers:


13

是的,您可以,只需追加:i386到下载命令即可,如下所示:

sudo apt-get download <package>:i386  

所以对你来说:

sudo apt-get download vlc:i386  

我不知道有任何自动下载软件包依赖项的方法,build-dep但是这种方法在您的情况下不起作用。

在多输入手册页后,我发现实际上您可以使用build-dep以下方式:

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

然后将所需的软件包下载到当前目录。但是请注意,这build-dep是从源代码编译软件包,而不是从a软件包安装软件包,.deb因此它会建议类似的东西build-essentialgcc并且可能需要编译vlc,但不一定从a软件包安装.deb

使用以下命令列出vlc的主要依赖关系可能会更容易apt-cache

apt-cache depends vlc:i386  

如果要仅根据用途进行过滤:

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

请注意,有些软件包(例如libc6Ubuntu中的默认软件包)因此不需要下载它们。如果您只想下载所有依赖项并在以后处理是否需要它们,可以使用以下脚本:

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  

这将下载所有相关的,推荐的和建议的软件包,并将所有错误重新路由到no32.txt。完成后,您应该去那里看看,因为一些所需的没有i386版本(即它们不是二进制文件)的软件包将在那里。

只是apt-get download那些。

请注意,此脚本不是很聪明,它没有考虑很多事情,因此您可能会遇到一些愚蠢的错误,但是它应该可以正常工作。


那么build-dep软件包:i386呢?
埃德尼尔2014年

@enedil build-dep下载安装,因此这将在他的计算机上安装一堆i386软件包,这不是他想要的。有关详细信息,请参见man apt-get。
赛斯2014年

还有一个aptitude download命令。不确定是否启用了多体系结构。
Faheem Mitha 2014年

@FaheemMitha是的,才能几乎可以做的一切apt-get
赛斯

0

一种实现方法是在主机系统上使用chroot或proot创建具有适当体系结构的隔离文件系统。然后,您可以在该仿真环境中运行apt,以安装特定于体系结构的软件包,就像在该体系结构的计算机上一样。由于它是在模拟架构,因此它的运行速度确实有所降低,但是您拥有一个rootfs,可以将其部署到其他架构的其他设备上。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.