如何完全更新和升级基于Debian的离线系统

时间:2020-03-21 11:47:55  来源:igfitidea点击:

不久前,我们向我们展示了如何在任何离线Ubuntu系统和任何离线Arch Linux系统中安装软件。

今天,我们将看到如何完全更新和升级基于Debian的离线系统。
与以前的方法不同,我们不更新/升级单个软件包,而是整个系统。
如果Internet速度较慢或者根本没有活动的Internet连接,则此方法很有用。

全面更新和升级基于Debian的离线系统

想象一下这种情况。
我们有一个正在工作的具有高速Internet连接的系统(Windows或者Linux),以及一个在家中没有Internet连接或者Internet连接非常慢的Debian或者任何基于Debian的系统。
我们想升级离线家庭系统。
你会怎么办?
购买高速互联网连接?
没必要!我们仍然可以使用Internet更新或者升级脱机系统。
这是Apt-Offline提供帮助的地方。

顾名思义,apt-offline是一个脱机APT软件包管理器,用于基于APT的系统,例如Debian和Debian派生的发行版,例如Ubuntu,Linux Mint。
使用apt-offline,我们可以完全更新/升级基于Debian的系统,而不必将它们连接到Internet。
它是用Python编程语言编写的跨平台工具,具有CLI和图形界面。

要求

  • Internet连接的系统(Windows或者Linux)。为了方便理解本教程,我们将其称为“在线系统”。
  • 一个“离线系统”(Debian和Debian派生的系统)。
  • U盘或者外部硬盘驱动器,具有足够的空间来容纳所有更新的软件包。

离线安装Apt

Apt-Offline在Debian及其衍生版本的默认存储库中可用。
如果在线系统与Debian,Ubuntu,Linux Mint以及其他基于DEB的系统一起运行,则可以使用以下命令安装Apt-Offline:

$sudo apt-get install apt-offline

如果在线系统与Debian以外的其他发行版一起运行,则git clone Apt-Offline存储库:

$git clone https://github.com/rickysarraf/apt-offline.git

进入目录并从那里运行。

$cd apt-offline/
$sudo ./apt-offline

在离线系统上安装Apt-offline:

如果脱机系统的Internet速度较慢,则可以使用APT软件包管理器安装apt-offline,如上所示。
但是,如果该系统未与Internet连接怎么办?
没问题。
在这种情况下,请转到任何支持Internet的系统,然后从pkgs.org下载apt-offline.deb文件。

将.deb文件复制到U盘,然后返回到脱机系统,最后使用以下命令安装它:

$sudo dpkg -i apt-offline_1.7.2_all.deb

如果由于某种原因它不起作用,我们仍然可以下载Apt-offline软件包以及所有启用Internet的系统上的所有依赖项,然后按照以下教程中的说明将其安装在Offline系统上。

  • 在Ubuntu中本地下载具有依赖项的软件包

好了,我们现在已经在在线和离线系统上都安装了Apt-offline。

在离线系统(非Internet连接的系统)中要做的步骤

转到脱机系统并创建要其中存储签名文件的目录:

$mkdir ~/tmp
$cd ~/tmp/

我们可以使用我们选择的任何目录。
然后,运行以下命令以生成签名文件:

$sudo apt-offline set apt-offline.sig

输出示例为:

Generating database of files that are needed for an update.
Generating database of file that are needed for operation upgrade

默认情况下,apt-offline将生成需要更新和升级的文件数据库。
我们可以使用--update或者--upgrade选项为其中之一创建数据库。

将整个tmp文件夹复制到U盘或者外部驱动器中,然后转到在线系统(即启用Internet的系统)。

在线系统中要做的步骤

插入U盘,然后转到“ tmp”目录:

$cd tmp/

然后,运行以下命令:

$sudo apt-offline get apt-offline.sig --threads 5 --bundle apt-offline-bundle.zip

其中“-threads 5”代表APT存储库的数量。
如果要从更多存储库下载软件包,则可以增加数量。
并且,“-bundle apt-offline-bundle.zip”选项表示所有软件包都将捆绑在一个名为apt-offline-bundle.zip的存档文件中。
该存档文件将保存在我们当前的工作目录中。

上面的命令将基于脱机系统中先前生成的签名文件下载数据。

这将需要几分钟的时间,具体取决于Internet连接速度。
请注意,apt-offline是跨平台的,因此我们可以使用apt-offline在任何操作系统上下载软件包。

完成后,将tmp文件夹复制到USB或者外部驱动器,然后返回到脱机系统。
确保USB设备有足够的可用空间来保留所有下载的文件,因为所有软件包现在都保存在U盘的tmp文件夹中。

在离线系统中要做的步骤

将设备插入离线系统中,然后转至我们先前已下载所有软件包的tmp目录。

$cd tmp

然后,运行以下命令以安装所有下载软件包。

$sudo apt-offline install apt-offline-bundle.zip

这将使用脱机系统中的已下载软件包更新并填充APT数据库,因此APT将在APT缓存中找到所有必需的软件包。

注意:如果联机和脱机系统都在同一本地网络中,则可以使用“ scp”或者任何其他文件传输应用程序将tmp文件夹传输到脱机系统。
如果两个系统都位于不同的位置,请使用USB设备复制文件夹。