如何生成包下载列表?

Anw*_*war 10 upgrade installation package-management downloads

我想生成一个包下载列表,可以用来从另一个系统下载这些包。(我的连接速度很慢)。我想使用这些下载的文件来创建一个本地存储库,我可以从中安装/升级我的系统。

我怎样才能做到这一点?

Anw*_*war 16

首先请注意,您必须拥有更新的包索引(包管理软件使用这些索引来获取有关在线可用包的信息)。因此,您必须至少下载那些索引文件。

为此,请打开终端并发出此命令。(此步骤必须有可用的互联网连接)

sudo apt-get update 
Run Code Online (Sandbox Code Playgroud)

拥有更新包索引文件后,请使用以下任一方法:

没有突触的终端方式

使用此命令生成升级系统所需的文件列表

sudo apt-get upgrade --allow-unauthenticated -y --print-uris | grep -o '\'http.*\' | tr "\'" " " > download-list 
Run Code Online (Sandbox Code Playgroud)

该文件download-list将在终端的当前文件夹中创建。

或者,如果要为特定包生成下载脚本,请使用此命令(有关另一个命令,请参阅下面的更新部分)

sudo apt-get install <package-name> --allow-unauthenticated -y --print-uris | grep -o '\'http.*\' | tr "\'" " " > download-list
Run Code Online (Sandbox Code Playgroud)

替换<package-name>为包的实际名称。比如gtgget-things-gnome等。

您现在可以使用此文件来馈送任何支持带有 URL 的输入文件的下载管理器。

例如,使用wget下面的命令来使用这个文件,

wget -c -i ./download-list
Run Code Online (Sandbox Code Playgroud)

假设download-list文件在终端的当前目录中。下载的文件将存储在终端的当前工作目录中。

更新:我找到了另一个生成包下载列表的命令:

apt-get --allow-unauthenticated -y install --print-uris package-name | cut -d\' -f2 | grep http:// > download-list
Run Code Online (Sandbox Code Playgroud)

更新命令的功劳:这篇文章的回答者


使用 Synaptic 的图形方式

Synaptic 包管理器具有内置功能来生成包下载脚本,您甚至不需要在终端中显式使用 wget,只需执行脚本就足够了。

程序如下

  1. 使用终端安装Synaptic Package Manager

     sudo apt-get update 
     sudo apt-get install synaptic
    
    Run Code Online (Sandbox Code Playgroud)

    (第一个命令不是必需的,如果您已更新包索引文件,如果您不确定,请同时使用两者)

  2. 然后通过在破折号中键入Synaptic来打开 Synaptic Package Manager 。

  3. 在窗口的右侧部分选择一个包,右键单击?将其标记为安装。或者,如果要生成升级脚本,请按工具栏中的“标记所有升级”按钮。下图使用了第二种方法。

    升级按钮的图像

  4. 当询问您是否要标记其他必需的更改,请按标记按钮。

    附加标记窗口的图像

  5. 然后转到File --> Generate package download script,通过给脚本命名并将脚本保存为文件,然后选择一个目录来保存它。现在,您有一个用于下载包的脚本。

如果要下载,请转到脚本目录并运行sh ./<script-name>. 例如,如果脚本的名称是download-list并且它在您的下载文件夹中,则命令是

cd ~/Downloads && sh ./download-list
Run Code Online (Sandbox Code Playgroud)