El 能够在Ubuntu,Linux Mint及其衍生版本中安装应用程序,有多种方法。 最常见和已知的是在分发软件中心的帮助下,我们可以在其中找到大量准备安装的应用程序。
我们通常使用的另一种常用方法是借助终端,另一种 最受欢迎的方法之一是通过deb软件包进行安装。
通常 当我们安装一个deb软件包时,我们通常不检查它的依赖关系,因为它只是纯软件包,并不包括其正确操作所需的所有那些软件包或库。
第一种方法
使用这种方法 我们可以从系统中下载软件包,然后将其安装在同一系统或没有Internet连接的任何其他系统上。
也可以下载用于不同体系结构系统的软件包。 例如,您可以从32位系统下载64位软件包,反之亦然。
如何在本地下载具有依赖项的deb软件包?
至 要在Debian,Ubuntu及其衍生版本中本地下载具有依赖项的软件包,可以使用以下方法之一。
这是最简单,最直接的方法。
对于这 只需运行以下命令即可下载具有所有依赖项的软件包,而无需安装它们:
sudo apt-get install --download-only nombre-del-paquete
所有 下载的文件将保存在该文件夹中 /var / cache / apt / archives。
现在,我们可以简单地继续在任何pendrive上复制整个缓存文件夹,以稍后使用这些下载的软件包。
要安装下载的软件包,只需转到我们制作的副本并使用以下命令进行安装:
sudo dpkg -i *
现在,使用此方法的问题虽然看起来很简单,但是它是缓存文件夹不仅存储了刚刚下载的软件包及其依赖项,而且还包含系统上已安装的更多软件包。
因此,如果您不想携带不必要的软件包,则应清除缓存。 尽管对于这种情况,我们可以使用另一种方法。
第二种方法
另一种方法是首先下载所需程序的依赖项。
因此,为了知道包的所有依赖关系的列表,我们必须执行以下命令
sudo apt-cache depends nombre-del-paquete
输出将或多或少像这样:
nombre-del-paquete PreDepends: ….. Depends: xxx Depends: xxxx Conflicts: Breaks: update-manager-core Suggests: xxxx Suggests: xxxx Replaces: xxx
现在 我们只需要下载具有相关性的软件包即可。 我们可以使用以下命令执行此操作:
for i in $(apt-cache depends python | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/''/''/); do sudo apt-get download $i 2>>errors.txt; done
上面的命令将下载软件包以及所有必要的依赖项,并将它们保存在当前工作目录中。
此命令还将所有错误保存在errors.txt文件中,如果我们有问题并知道冲突的起因,我们可以查看该文件。
如何按体系结构下载软件包?
现在如上所述 可以下载任何类型的体系结构的软件包,但是由于对于64位用户,必须添加对32位体系结构的支持。
首先要做的是 我们必须使用以下命令在系统上启用他们想要的体系结构:
sudo dpkg --add-architecture i386*
T我们还可以下载用于ARM的软件包以及启用该体系结构在我们的系统中,我们只需启用以下架构即可:
sudo dpkg --add-architecture armhf
相似地 我们可以通过以下方法检查系统中可用的体系结构:
sudo dpkg --print-foreign-architectures
启用您选择的体系结构后,您必须运行以下命令来下载与特定体系结构相关的软件包。
for i in $(apt-cache depends python:i386 | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/''/''/); do sudo apt-get download $i 2>>errors.txt; done
现在,下载软件包及其依赖项之后,只需将它们复制到USB驱动器,然后将软件包安装在任何系统上即可。
3条评论,留下您的评论
感谢您带给我们教程,很久以前我在reddit论坛上看到了此命令,它曾经多次挽救了我的性命,一旦我不得不在现场CD的帮助下使用它就可以将其安装在服务器在文本模式下的网卡驱动程序。
非常感谢! 它可以为我提供帮助,因为在我居住的地区(多米尼加共和国),并非总是可以轻松地连接到Internet。 因此,本教程可以帮助我在需要访问Internet的情况下在不同的计算机上安装一些软件包,只需将这些软件包传输到USB记忆棒或类似的东西上。
谢谢,我忘了在我的ubuntu mate上实现i386架构,这是必不可少的,而我实际上遇到了仿生ubuntu中的错误,我认为这就是问题所在