我需要apache2
在一台没有互联网连接的 Ubuntu 16.04.1 机器上安装几个软件包,包括。的一个有趣的特性apache2
是它具有依赖关系。解决方案需要递归。
在机器上和互联网连接,我可以成功使用
sudo apt install apache2
在早期版本的 Ubuntu 上,我可以成功使用deb 文件。然后我会将这些文件apt-get install <package>
复制/var/cache/apt
到未连接的机器上并apt-get install <package>
在那里运行。
在 16.04 上,没有出现 debs /var/cache/apt
。
我努力了:
apt-get --print-uris --yes install [package] | grep ^\' | cut -d\' -f2 | wget -i -
...但这只深入了一个层次。
for i in $(apt-cache depends [package] | 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
...但这漏掉了一些东西。它忽略了顶层,我可以使用第一种方法修复它,但它也漏掉了其他更底层的依赖项,我不理解这些依赖项,也没有解决方法。
APTonCD
...但是它没有列出 16.04 上的任何包 - 大概是因为缓存中没有包。
Keryx
...据我所知,四年内没有更新过,所以我没费心去尝试。
请问,有正确的方法可以做到这一点吗?
有效的解决方案无论所连接的系统是否已包含相关包会比没有的更好。
在将此标记为重复之前请谨慎。到目前为止,我为 Ubuntu 14.04 及更早版本找到的所有解决方案都不是工作。
答案1
这些包出现在 中/var/cache/apt/archives
。