将deb文件从存储库保存到自定义位置以进行离线安装。

可能重复: 如何离线安装软件? 我想从存储库(apt-get、aptitude)下载并保存某些应用程序的deb文件以及它们的依赖项,最好是到自定义位置而不进行安装,以便在机器离线时安装这些应用程序。另外,我想知道是否可以在32位机器上下载64位机器的deb文件。
7个回答

你可以使用以下命令保存带有依赖的所有 deb 文件。
sudo apt-get --download-only install packagename

文件将存储在/var/cache/apt/archives目录下。

如果您需要使用另一台机器或操作系统下载Ubuntu软件包,请在Synaptic中选择所需的软件包,然后选择“文件”>“生成软件包下载脚本”。
您可以在此处下载32位和64位的离线安装包

注意:
首先运行apt-get clean命令,以清空目录。然后,如果您想要(例如)a2ps软件包及其所有依赖项,您应该输入
sudo apt-get --download-only install a2ps。这些软件包将存储在/var/cache/apt/archives目录中。您可以使用它进行离线安装。

您还可以在以下网站上下载用于离线安装的软件包, http://packages.ubuntu.com/


http://ubottu.com/ljl/apt/ 这个链接是404错误。 - luckydonald

我厌倦了在重新安装系统后重新安装所有软件,所以这是我做的事情...
mkdir /home/jj/Documents/Repository

和一个循环将它们带到那里...
for i in `ls -1 /var/cache/apt/archives` ; do sudo cp /var/cache/apt/archives/$i /home/jj/Documents/Repository ; done

它们是由root拥有的,所以我执行了'chown jj:jj *'命令,这样我就可以将它们复制到我的备份介质上。(我将/home设置为sda3,因此在重新安装时手动分区设置会保存我的/home分区)。
要一次性重新安装它们,请使用kickstart。
sudo dpkg -i /home/jj/Documents/Repository/*.deb

这是一个bash脚本,因为我们讨厌重复输入相同的内容。
#!/bin/bash
for i in `ls -1 /var/cache/apt/archives/` ; do sudo cp /var/cache/apt/archives/$i /home/jj/Documents/Repository ; done

你可以忽略这个错误 "cp: omitting directory `/var/cache/apt/archives/partial'"。
我的是空的。
这里有一个由karthick87提供的清理脚本

Keryx可以从任何在线的Linux或Windows计算机下载软件包,用于离线Ubuntu计算机。

只需在离线计算机上创建一个“Keryx项目”,将其加载到在线计算机上下载软件包,然后返回离线计算机进行安装。


1http://keryxproject.org/ 这个链接是404错误。 - luckydonald
@luckydonald 更新了。该项目不再维护(我的错,真的很抱歉),但仍然可以在 Launchpad 上获取到。 - crenshaw-dev

你只能从开发者网站下载软件包,而且你也可以在32位机器上下载64位机器的文件...

如果只是从主要仓库获取一些东西,并且不需要依赖和其他东西,你可以尝试在http://packages.ubuntu.com/上查找。
你可以将软件包下载到任何地方,用于任何目的。但是,如果它有很多依赖关系,那么在该网站上逐个搜索并单独下载它们可能会很麻烦。

我认为这将回答你问题的第一部分,是的,你可以下载离线安装包。当你使用Synaptic软件包管理器并选择一个应用程序进行安装时,在点击应用按钮后弹出的对话框中有一个选项,它说:“仅下载软件包文件”。如果你在Synaptic对话框中勾选了“保留所有已下载的软件包”或“仅删除不再可用的软件包”,那么你的应用程序包和依赖项将在此位置离线可用:/var/cache/apt/archives,在你点击应用并且Synaptic完成后。
你可以在终端中使用apt-get命令加上-d开关来实现这一点,输入以下命令:sudo apt-get -d install package。

你可以使用Apt-Off脚本:https://help.ubuntu.com/community/AptGet/AptOfft 将其复制到USB盘上,在没有互联网的电脑上,通过终端进入USB盘目录,然后执行以下操作:
./apt-off --generate something anotherthing ect

或者

./apt-off --generate dist-upgrade

这将在USB磁盘上创建一个名为offline.packages的文件。将USB磁盘插入连接到互联网的PC上(可以是Linux发行版,但不需要apt,只需要wget),然后执行以下操作:
./apt-off --download

这将在USB磁盘上下载所有必要的软件包。等待它完成后,将USB磁盘插入没有互联网连接的计算机,并:
./apt-off --extract

完成了。