保存 apt-get 文件以备将来安装,我该怎么做?

Mip*_*hix 6 apt

我的下载限额非常有限,并且有多台计算机。所以,我的问题是。我能否保存通过 apt-get 安装的内容以及我尝试的任何其他终端安装?

sou*_* c. 6

当您安装软件包时,使用apt-get相应deb文件下载到您的/var/cache/apt/archives. 除非用户删除它们,否则所有这些文件都应该在那里。您可以复制并保存它们以备将来使用。

您所需要的只是设置一个本地存储库[ Source ]。然后你可以像往常一样使用apt-get它安装所有这些包。localrepo在您的主目录中创建一个文件夹,并将其中的所有.deb文件/var/cache/apt/archives放入其中。

$ mkdir ~/localrepo
$ cp /var/cache/apt/archives/*.deb .
Run Code Online (Sandbox Code Playgroud)

接下来,您需要为您的存储库创建一个索引文件。为此,您需要安装dpkg-dev(仅在源计算机上)。

$ sudo apt-get install dpkg-dev
Run Code Online (Sandbox Code Playgroud)

要创建索引文件,

$ cd ~/localrepo
$ dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
Run Code Online (Sandbox Code Playgroud)

这将创建一个名为索引文件Packages.gz~/localrepo。将来您只需要将整个复制~/localrepo到要安装的其他机器上。如果修改了里面的 deb 文件,~/localrepo还需要更新索引文件。

现在,您需要apt-get在要从本地存储库安装软件包的所有计算机中显示正在编辑源列表的存储库。首先备份你的原始文件source.list

$ sudo cp /etc/apt/source.list /etc/apt/source.list.original
$ sudo gedit /etc/apt/source.list
Run Code Online (Sandbox Code Playgroud)

在其中写入以下行并保存,

deb file:/home/<user_name>/localrepo ./
Run Code Online (Sandbox Code Playgroud)

替换<user_name>为您的确切用户名。现在您已准备好安装源计算机中存在的任何软件包。

sudo apt-get update
sudo apt-get install <package_name>
Run Code Online (Sandbox Code Playgroud)

您可能需要给予额外的肯定。由于存储库不受信任。对于家庭使用目的,它应该足够了,因为创建受信任的存储库需要付出很多额外的努力。但是您的软件中心可能无法使用不受信任的存储库。但优点是它会自行处理包的所有依赖项。

如果你/var/cache/apt/archives在你的源机器上不包含任何包。您可以在终端中使用以下命令下载所有现有软件包的 deb 文件,[来源]

dpkg -l | grep "^ii"| awk ' {print $2} ' | xargs sudo apt-get -y install --reinstall --download-only
Run Code Online (Sandbox Code Playgroud)


小智 2

假设您有一个服务器/备用盒,您可以设置 Apt-Cacher,它将为您存储所有 .deb 文件。