我有一台主机,该主机有防火墙,以至于 apt-get 无法下载软件包。该主机无法访问代理。
我知道在 gentoo 中我可以通过使用第二台主机获取必要的文件并将文件放在 /usr/portage/distfiles 中来解决该问题。
Ubuntu 是否有类似的地方可以让我存储文件以解决缺乏互联网访问的问题?
答案1
一种方法是使用apt-offline
。您可以下载软件包这里(确保您也获取了依赖项)并安装
sudo dpkg -i apt-offline_1.3.1_all.deb
安装完成后运行
sudo apt-offline set mypackages.sig --install-packages your_packages (you can also use `--upgrade` for a full upgrade, see `man apt-offline` for more details).
然后,获取刚刚生成的文件 ( mypackages.sig
),并运行
sudo apt-offline get mypackages.sig --no-checksum --bundle mypackages.zip
现在,返回到防火墙系统进行安装:
unzip mypackages.zip
这将生成一个.deb
文件列表,您可以使用 手动安装这些文件dpkg -i *.deb
。
我还发现了一种叫做凯瑞克斯值得一看的是:
Keryx 是一款免费的开源应用程序,用于更新 Linux。Keryx 项目最初是为使用拨号或低带宽互联网的用户提供一种方式,使他们能够下载和更新基于 Debian 的 Linux 发行版上的软件包。Keryx 主要为 Ubuntu 构建,它允许用户选择要安装的软件包、检查更新并将这些软件包下载到 USB 便携式存储设备上。这些软件包被保存到设备上,然后被带回到它起源的 Linux 机器上,然后进行安装。
最后,您还可以使用apt-get
其他系统手动完成所有操作:
sudo apt-get update --print-uris -y | sed "s/'//g" | cut -d ' ' -f 1,2 |
while read url target; do wget $url -O ./$target; done
上述命令将下载.deb
安装软件包所需的所有文件。请参阅我的回答这里了解其工作原理的更多细节。
参考
答案2
根据 terdon 链接的答案,我能够推导出以下步骤。
使用第二台主机来获取第一台主机无法下载的.deb 文件。
将这些 .deb 文件复制到防火墙主机。然后
dpkg -i *whatever*.deb
哇喔,现在我拥有了我需要的软件。
我不确定跳过所有的离线体操我会错过什么。