Packup — скрипт для быстрого обмена обновлениями через USB-накопитель в Arch Linux
Обновление:
Похоже, репозиторий Packup GitHub был удален. Я не смог найти его нигде в Интернете. Предлагаю всем поискать другие альтернативы.
Некоторое время назад мы написали руководство, в котором описывалось, как устанавливать пакеты в автономном режиме в Ubuntu и ее производных. Сегодня мы собираемся сделать то же самое в Arch Linux. Это руководство научит вас устанавливать пакеты в любых автономных системах Arch Linux. Сделав это, вы можете значительно сэкономить пропускную способность Интернета, если у вас много систем Arch Linux. Вам не нужно повторно загружать пакеты или обновлять все системы Arch Linux в вашей сети. Просто обновите одну систему Arch Linux (назовем ее основной или серверной системой) и передайте загруженные обновления из основной системы во все остальные системы Arch в сети. Не имеет значения, должны ли другие системы иметь подключение к Интернету или нет. Вот тут-то и пригодится Packup. Это простой скрипт, который позволяет вам делиться обновлениями через USB-накопитель или внешний жесткий диск. Основная цель утилиты Packup — уменьшить пропускную способность Интернета или разрешить любым автономным системам использовать pacman и любые вспомогательные программы AUR, такие как Yay. В этом кратком руководстве описывается, как быстро обмениваться обновлениями через USB или внешний диск с любыми автономными системами Arch Linux.
Packup — скрипт для быстрого обмена обновлениями через USB-накопитель в Arch Linux
В демонстрационных целях этого руководства мы будем использовать две системы Arch Linux: одну с подключением к Интернету, а другую без подключения к Интернету. Кроме того, нам понадобится USB-накопитель или внешний жесткий диск с достаточным количеством свободного места.
Действия в обеих системах (автономная и онлайн-системы)
Установите NodeJS во всех системах. NodeJS доступен в репозиториях по умолчанию, поэтому вы можете установить его с помощью Pacman, как показано ниже.
sudo pacman -S nodejs npm
Если вы хотите перенести пакеты AUR, вы должны установить любой помощник AUR в своей системе Arch Linux. Перейдите по следующей ссылке, чтобы установить Ура.
- Как установить Yay в Arch Linux
Действия в системе с доступом к Интернету (онлайн)
Перейдите в систему, подключенную к Интернету, и подключите USB-накопитель или внешний диск. Перейдите на USB-накопитель и клонируйте проект Packup.
cd /run/media/sk/bce5f14a-097a-41c5-88ec-c38e20410182/
git clone https://github.com/cookiengineer/packup;
Содержимое репозитория Packup GitHub будет клонировано в каталог под названием «Packup» на вашем USB-накопителе или внешнем диске.
Перейдите в каталог «Packup»:
cd packup/
Выполните следующую команду, чтобы создать резервную копию всех доступных локальных пакетов и индекса пакета на USB-накопителе.
./backup.js;
Это займет некоторое время в зависимости от количества пакетов, доступных в вашей системе.
Наконец, выполните следующую команду:
sync;
Вы должны выполнить приведенную выше команду перед извлечением USB-накопителя.
Теперь безопасно извлеките USB-накопитель и перейдите в автономную систему.
Действия в автономной системе
Подключите USB-накопитель и перейдите в каталог «Packup» на USB-накопителе. Я подключил свой 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;
Не забудьте выполнить команду «sync» перед извлечением USB-накопителя.
И это все на данный момент. Как видите, Packup — простая, но очень полезная утилита, которую необходимо иметь в своем арсенале. Если у вас много систем Arch Linux, вы можете использовать этот инструмент, чтобы значительно сэкономить пропускную способность Интернета.
Ресурс:
Репозиторий пакетов GitHub