Ubuntu中下载包的递归依赖项
时间:2020-03-21 11:43:29 来源:igfitidea点击:
如何在Ubuntu中下载包的递归依赖关系。
换句话说,我们将下载依赖项的依赖关系。
让我们说你正在尝试安装名为a.deb的包。
A.Deb包取决于包B.Deb和再次依赖于包C.Deb的包。
在此方法中,我们不仅下载了a.deb的依赖关系,还不仅下载了b.deb和c.deb的依赖关系。
即使在使用APT-RDepends命令下载所有必需的依赖项后,当我们无法安装包时,这可能是有用的。
下载具有依赖关系的软件包提供三个主要目的。
- 一遍又一遍地避免重复下载相同的包装集。例如,如果要在多个系统上安装Vim编辑器,则可以使用所有必需的依赖项下载Vim,将它们保存在U盘(或者通过LAN传输)并在其他系统上安装Vim。
- 保存Internet带宽和时间。
- 在非互联网连接系统上安装包。这是在本地下载依赖关系的包的主要原因。我们可以通过U盘或者LAN将其推向离线系统,并在无互联网的情况下将它们转移到离线系统。
下载Ubuntu中包的递归依赖项
出于本教程的目的,我们将以VIM计划为例。
首先,让我们使用以下命令列出Vim包的递归依赖项:
$apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances vim | grep "^\w" | sort -u
用自己的包装替换Vim。
如果要以列格式显示输出以便于阅读,请运行:
$apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances vim | grep "^\w" | sort -u | column
示例输出:
cdebconf libacl1 libdb5.3 liblzma5:i386 libpython3.6-stdlib libtinfo5 vim debconf libacl1:i386 libdebian-installer4 libmpdec2 libreadline7 libzstd1 vim-common dpkg libattr1 libexpat1 libncursesw5 libselinux1 libzstd1:i386 vim-runtime dpkg:i386 libattr1:i386 libffi6 libnewt0.52 libselinux1:i386 mime-support xxd gcc-8-base libbz2-1.0 libgcc1 libpcre3 libslang2 perl-base xxd:i386 gcc-8-base:i386 libbz2-1.0:i386 libgcc1:i386 libpcre3:i386 libsqlite3-0 readline-common zlib1g install-info libc6 libgpm2 libpython3.6 libssl1.1 tar zlib1g:i386 install-info:i386 libc6:i386 liblzma5 libpython3.6-minimal libtextwrap1 tar:i386
这些是Vim程序依赖性的依赖性。
请注意,所有这些都可能不需要安装Vim。
让我们继续使用命令下载VIM包的递归依赖项:
$apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances vim | grep "^\w" | sort -u)
此命令将在当前目录中下载Vim以及其依赖项程序。
它还将下载Vim依赖项的依赖项。
检查所有依赖项是否使用"LS"命令下载:
$ls
以下是vim程序的依赖项列表以及我的Ubuntu 18.04桌面中依赖关系的依赖关系:
现在将所有下载的文件通过U盘或者LAN移动到脱机系统。
然后转到我们在脱机系统中保存所有下载的软件包的位置并使用命令安装它们:
$sudo dpkg -i *
或者,我们可以使用APT包管理器构建所有下载的软件包的索引并安装它们。
要构建下载的软件包的索引,请转到存储包的位置并运行以下命令:
$dpkg-scanpackages . | gzip -c9 > Packages.gz
使用以下命令将此文件夹添加到APT源列表:
$echo "deb[trusted=yes] file:///home/sk/vim ./" | sudo tee -a /etc/apt/sources.list
其中我在我的离线系统中保存了所有文件/home/sk/vim文件夹中的所有文件。
我们需要用自己的方式替换此路径。
使用命令更新包索引:
$sudo apt-get update
最后,使用APT包管理器安装Vim软件包:
$sudo apt-get install vim
同样,我们也可以下载并安装其他软件包。