Поиск по сайту:

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

Статьи по данной тематике