在同一个文件夹中安装所有依赖项的 deb 包?

Aru*_*abu 5 apt dpkg cache

我需要在另一个 ubuntu 安装中从 apt 缓存中安装相同软件的多个 deb 文件。

例如,我在同一个文件夹(/var/cache/apt/archives)中有 vlc 的所有 deb 文件。我需要在满足所有依赖项的情况下安装 vlc。dpkg -i vlc*由于依赖关系,我无法安装它。

这个问题有方法解决吗。我的缓存中有很多软件包,我不想再次下载。请帮忙..

May*_*hux 3

事实上你有很多解决方案:

  • 将所有.deb文件从新/var/cache/apt/archives电脑复制到该目录/var/cache/apt/archives,或者仅复制.debvlc 依赖项,而不是复制所有这些 deb。您可以通过命令了解vlc的依赖关系apt-cache rdepends vlc/var/cache/apt/archives现在,一旦您在第二个系统中拥有了这些 deb ,那么您就可以运行sudo apt-get updatethen sudo apt-get install vlc

但这仅在两个系统具有相同操作系统版本和相同更新的相同软件包版本时才有效。更多信息

  • 另一个更好的解决方案创建自己的存储库,这样您就可以安装任何您想要的应用程序,而不必担心离线安装时出现依赖项地狱。看看: https: //askubuntu.com/a/648969/150504


Jim*_*ter 2

回答你的问题:

将所有 debs 从 /var/cache/apt/archives 复制到新机器的 /var/cache/apt/archives 中,然后像平常一样sudo apt-get update ; sudo apt-get install vlc- 它将拾取存档中的 .debs 并安装而无需下载。

更进一步:安装 apt-cacher-ng

在第一台机器上,执行sudo apt-get install apt-cacher-ng. 然后执行sudo nano /etc/apt/apt.conf并插入字符串Acquire::http::Proxy "http://127.0.0.1:3142/";- 这告诉机器apt-cacher-ng在更新时使用自身的实例。现在,导入现有的缓存 debs - sudo cp -a /var/cache/apt/archives/* /var/cache/apt-cacher-ng/_import/,然后打开浏览器http://localhost:3142/acng-report.html,向下滚动,然后单击Start Import。完成后,快速执行sudo apt-get update- 哇!您现在已经apt-cacher-ng在主机上运行了,每次主机下载更新时,它都会为自己网络上的任何其他计算机缓存它们。

最后,在您的第二台计算机上,sudo nano /etc/apt/apt.conf插入字符串Acquire::http::Proxy "http://first.machine.ip.address:3142/";,其中first.machine.ip.addressapt-cacher-ng是您在上一段中安装的计算机的IP地址- 现在,当您在任一计算机上下载更新时,它将apt-cacher-ng更新第一台机器,您无需再次下载它们。一旦设置完毕,就非常非常流畅和简单。