如何完全更新和升级基于Debian的离线系统
不久前,我们向我们展示了如何在任何离线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设备复制文件夹。