在Ubuntu本地下载软件包并递归下载其所有依赖包

由于最近需要在无互联网环境的ubuntu上安装软件包,而往往每个软件包都需要很多依赖项,依赖项还有各自的依赖项,手动查找下载非常麻烦。

在一些早期的ubuntu上连C编译器也没有预装,需要安装gcc等编译器才能进行下一步工作。

因此需要下载软件包及其所有递归的依赖项才能在无互联网的机子上顺利安装软件包。

有两种方法可以在 Ubuntu 及其衍生发行版中本地下载具有依赖项的软件包。

方法1:

要下载软件包而不安装它们,只需运行

sudo apt-get install --download-only <package_name>

例如,使用命令下载Vim包,而不安装它们:

sudo apt-get install --download-only vim

所有下载的文件都将保存在/var/cache/apt/archives目录中。

要安装下载的软件包,请转到缓存文件夹/var/cache/apt/archives并按如下所示安装它们。

sudo dpkg -i *

此方法仅适用于您用于下载软件包的系统已在本地安装了其依赖项的情况。

若要连同依赖一起下载,须使用“apt-rdepends”下载所有软件包和依赖包。

如果尚未安装 apt-rdepends,请使用以下命令进行安装:

sudo apt install apt-rdepends

然后使用以下命令下载主包(即我们的例子中的 Vim)以及所有依赖项:

apt download $(apt-rdepends vim | grep -v "^ ")

此命令将递归下载所有必需的依赖包。

如果遇到如下错误:

E: Can't select candidate version from package debconf-2.0 as it has no candidate

可以使用以下命令:

apt-get download $(apt-rdepends vim | grep -v "^ " | sed 's/debconf-2.0/debconf/g')

此命令将成功下载 Vim 和所有需要的包并将它们保存在/var/cache/apt/archives目录中。

将/var/cache/apt/archives目录打包拷贝到无互联网的机子上,运行以下命令安装所有下载的软件包即可:

sudo dpkg -i *
方法2:

首先,下载软件包及其依赖项。

要显示包的所有依赖项列表,以Python为例,运行:

sudo apt-cache depends python

将 python 包及其依赖项下载到我们的本地磁盘。

为此,首先创建一个目录来保存包。

mkdir python

进入目录:

cd python

然后运行:

for i in $(apt-cache depends python | 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

上面的命令将下载 Python 包以及所有必需的依赖项,并将它们保存在当前工作目录中。此命令还将在errors.txt文件中记录下载过程中所出现的错误。

接下来只需将文件夹打包拷贝到离线ubuntu系统上,运行如下命令安装 python 包:

sudo dpkg -i *
为特定架构在本地下载具有依赖项的包

上面的命令已经下载了 64 位软件包。这是因为我们是从 64 位 Ubuntu 系统下载的。如果要下载 32 位系统的软件包怎么办?也有可能!

首先,使用以下命令在 Ubuntu 系统中启用您想要的架构:

sudo dpkg --add-architecture i386

如果不添加架构,则在尝试下载包时将出现以下错误消息:

E: No packages found

启用选择的架构后,运行以下命令下载特定的架构相关包:

for i in $(apt-cache depends python:i386 | 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

上面使用 “apt-cache”命令添加了架构 “i386”,这样就下载了到32 位系统的软件包和其依赖项了。

其余与方法2相同。

参考文献:

Download Packages With Dependencies Locally In Ubuntu

  • 24
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值