Packup - 通过Arch Linux中通过U盘快速共享更新的脚本
本教程教导我们在任何脱机ARCH Linux系统上安装包。
通过这样做,如果我们有很多Arch Linux系统,我们可以大大节省Internet带宽。
我们无需重复下载网络上的软件包或者更新网络上的所有Arch Linux系统。
只需更新一个Arch Linux系统(让我们称为主要或者服务器系统)并将下载的更新从主系统传递给网络中的所有其他Arch系统。
其他系统是否必须具有互联网连接并不重要。
这是Packup派上用场的地方。
它是一个简单的脚本,允许我们通过U盘或者外部硬盘共享更新。
Packup Utility的主要目标是减少Internet带宽或者以可能的方式使用Pacman和任何Aur辅助程序如Yay的任何脱机系统。
本简要教程介绍如何通过USB或者外部驱动器快速将更新分享到任何脱机ARCH Linux系统。
更新:
看起来packup github存储库已被删除。
我无法在互联网上找到它。
Packup - 通过Arch Linux中通过U盘快速共享更新的脚本
有关本教程的示范目的,我们将使用两个Arch Linux系统,一个带有互联网连接的拱门连接,另一个没有互联网连接。
并且,我们还需要一个U盘或者外部硬盘,可用空间足够。
在两个系统(离线和在线系统)进行步骤
在所有系统上安装nodejs。
NodeJS可在默认存储库上使用,因此我们可以使用Pacman安装它,如下所示。
$sudo pacman -S nodejs npm
如果要传输AUR包,则必须在ARCH Linux系统上安装任何AUR辅助程序。
请参阅以下链接以安装Yay。
- 如何在Arch Linux中安装Yay
启用Internet(在线)系统上的步骤
转到Internet连接的系统,并插入USB或者外部驱动器。
更改为U盘并克隆Packup项目。
$cd /run/media/sk/bce5f14a-097a-41c5-88ec-c38e20410182/
$git clone https://github.com/cookiengineer/packup;
Packup Github存储库的内容将在USB或者外部驱动器中称为"Packup"的目录中克隆。
切换到"Packup"目录:
$cd packup/
运行以下命令将所有可用的本地包和包索引备份到U盘。
$./backup.js;
这将需要一段时间,具体取决于系统中可用的数字包。
最后,运行以下命令:
$sync;
在删除U盘之前,必须运行上面的命令。
现在,安全地删除U盘并转到离线系统。
在离线系统上执行步骤
插入U盘并转到U盘中的"Packup"目录。
我已经安装了我的U盘/mnt。
$cd /mnt/packup/
接下来,使用命令更新pacman的索引:
$sudo cp ./sync/*.db /var/lib/pacman/sync/;
然后,运行以下命令:
$./upgrade.js;
此命令将显示pacman命令从本地软件包手动更新(使用Pacman -U)。
:: Execute this to upgrade from local package cache: cd "/run/.../packup"; sudo pacman -U gcc-7.1.1-4-x86_64.pkg.tar.xz gdb-common-8.0-1-x86_64.pkg.tar.xz
此外,如果我们缺少从主计算机(支持Internet的系统)下载的软件包,则它将显示我们在另一台计算机上执行的命令(使用"Pacman -sw -cachedir")。
:: Execute this to download upgrades into local package cache: cd "/run/.../packup"; sudo pacman -Sw --cachedir "/run/.../packup" geoip ghostscript;
因此,我们可以在Internet连接的系统上使用上面的命令,并在脱机系统中再次执行丢失的软件包以更新包。
听起来很棒?
确实!
完成Packup后,我们可以从U盘清理旧软件包,如下所示。
$cd /path/to/usb/drive/packup/
$./clean.js;
$sync;
在删除U盘之前,请不要忘记运行"sync"命令。