更新:
PackupGitHubリポジトリが削除されたようです。インターネットのどこにも見つかりませんでした。他の選択肢を探すことをお勧めします。
少し前に、Ubuntuにパッケージをオフラインでインストールする方法を説明したガイドを作成しました。 およびその派生物。今日は、ArchLinuxでも同じことをします。このガイドでは、オフラインのArchLinuxシステムにパッケージをインストールする方法について説明します。これを行うことで、Arch Linuxシステムがたくさんある場合に、インターネット帯域幅を大幅に節約できます。ネットワーク上のすべてのArchLinuxシステムにパッケージを繰り返しダウンロードしたり、更新したりする必要はありません。 1つのArchLinuxシステムを更新し(メインシステムまたはサーバーシステムと呼びます)、ダウンロードした更新をメインシステムからネットワーク内の他のすべてのArchシステムに渡します。他のシステムがインターネットに接続されている必要があるかどうかは関係ありません。ここがパックです 重宝します。これは、USBスティックまたは外付けハードディスクを介して更新を共有できるようにする単純なスクリプトです。 Packupユーティリティの主な目標は、インターネット帯域幅を削減すること、または pacmanを使用して可能な方法でオフラインシステムを許可することです。 およびYayなどのAURヘルパープログラム 。この簡単なチュートリアルでは、USBまたは外付けドライブを介してオフラインのArchLinuxシステムとアップデートをすばやく共有する方法について説明します。
Packup-ArchLinuxのUSBドライブを介してアップデートをすばやく共有するためのスクリプト
このガイドのデモンストレーションの目的で、2つのArch Linuxシステムを使用します。1つはインターネット接続あり、もう1つはインターネット接続なしです。また、十分な空き容量のあるUSBスティックまたは外付けHDDも必要です。
両方のシステム(オフラインシステムとオンラインシステム)で実行する手順
すべてのシステムにNodeJSをインストールします。 NodeJSはデフォルトのリポジトリで利用できるため、以下に示すようにPacmanを使用してインストールできます。
$ sudo pacman -S nodejs npm
AURパッケージを転送する場合は、ArchLinuxシステムにAURヘルパーをインストールしておく必要があります。 Yay をインストールするには、次のリンクを参照してください 。
- ArchLinuxにYayをインストールする方法
インターネット対応(オンライン)システムで実行する手順
インターネットに接続されたシステムに移動し、USBまたは外付けドライブを接続します。 USBドライブに変更し、Packupプロジェクトのクローンを作成します。
$ cd /run/media/sk/bce5f14a-097a-41c5-88ec-c38e20410182/
$ git clone https://github.com/cookiengineer/packup;
Packup GitHubリポジトリの内容は、USBまたは外付けドライブの「Packup」というディレクトリに複製されます。
「Packup」ディレクトリに切り替えます:
$ cd packup/
次のコマンドを実行して、利用可能なすべてのローカルパッケージとパッケージインデックスの両方をUSBドライブにバックアップします。
$ ./backup.js;
システムで利用可能なパッケージの数によっては、これにはしばらく時間がかかります。
最後に、次のコマンドを実行します。
$ sync;
USBドライブを取り外す前に、上記のコマンドを実行する必要があります。
次に、USBドライブを安全に取り外して、オフラインシステムに移動します。
オフラインシステムで行う手順
USBドライブを接続し、USBドライブの「Packup」ディレクトリに移動します。 USBドライブを/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
さらに、メインコンピューター(インターネット対応システム)からダウンロードする必要のあるパッケージが不足している場合は、他のコンピューターで実行する必要のあるコマンドが表示されます( "pacman -Sw --cachedir"を使用)。
:: Execute this to download upgrades into local package cache: cd "/run/.../packup"; sudo pacman -Sw --cachedir "/run/.../packup" geoip ghostscript;
したがって、インターネットに接続されたシステムで上記のコマンドを使用し、不足しているパッケージをダウンロードして、オフラインシステムで再度実行し、パッケージを更新できます。いいね?確かに!
Packupを使い終わったら、以下に示すように、USBドライブから古いパッケージをクリーンアップできます。
$ cd /path/to/usb/drive/packup/
$ ./clean.js;
$ sync;
USBドライブを取り外す前に、「sync」コマンドを実行することを忘れないでください。
そして、今のところこれですべてです。ご覧のとおり、Packupはシンプルですが、非常に便利なユーティリティであり、武器庫に保管しておく必要があります。 Arch Linuxシステムがたくさんある場合は、このツールを使用してインターネット帯域幅を大幅に節約できます。