Скрипты на bash — Автоматизируем установку из AUR
Я очень недавно начал работать с ArchLinux - до этого плотно сидел на deb-based дистрибутивах. В частности Debian и Ubuntu. Но совсем недавно сподобился поставить ArchLinux и он мне приглянулся. У него достаточно обширные репозитарии, и существует AUR - репозиторий пакетов собираемых самими пользователями. Собственно именно работа с AUR и сподвигла меня написать этот пост.
Итак. Основные действия пользователя как описано в wiki для работы с AUR это:
1. Поставить base-devel
2. Выбрать директорию куда будут складываться архивы с AUR и собираться пакеты для установки (как пример выбран ~/builds, этот же каталог будет использоваться далее)
3. Скачать понравившийся вам пакет из AUR
4. Перейти в ~/builds и сделать tar -xzvf packet_name.tar.gz
5. Перейти в директорию packet_name
6. Выполнить makepkg -s
7. Установить полученный пакет с помощью pacman -U
Как видите - довольно просто, но требует много телодвижений не нужных и вредных в случае если архивы ставятся частенько.
Немного посмотрев на все это дело я склепал быстренько скрипт:
Порядок работы со скриптом:
1. Скачать архив из AUR в директорию ~/builds
2. Запустить скрипт aur_install packet_name
3. Profit!
Как видно из самого скрипта он ищет любой пакет в директории ~/builds название которого начинается так же как и параметр который вы ему передали. Далее архив распаковывается, и идет создание пакета. Затем скрипту потребуется ваш пользовательский пароль для запуска pacman и установки пакета в систему. В конце всего скрипт чистит за собой все что осталось в директории начиная с распаковки архива.
Пара важных моментов которые следует иметь в виду:
Итак. Основные действия пользователя как описано в wiki для работы с AUR это:
1. Поставить base-devel
2. Выбрать директорию куда будут складываться архивы с AUR и собираться пакеты для установки (как пример выбран ~/builds, этот же каталог будет использоваться далее)
3. Скачать понравившийся вам пакет из AUR
4. Перейти в ~/builds и сделать tar -xzvf packet_name.tar.gz
5. Перейти в директорию packet_name
6. Выполнить makepkg -s
7. Установить полученный пакет с помощью pacman -U
Как видите - довольно просто, но требует много телодвижений не нужных и вредных в случае если архивы ставятся частенько.
Немного посмотрев на все это дело я склепал быстренько скрипт:
1 2 3 4 5 6 7 8 9 10 |
#!/bin/bash #script_name - aur_install #Author Mirivlad [email protected], [email protected] #Automatic build & install package from AUR repository tar -xvzf /home/$USER/builds/$1*.tar.gz -C /home/$USER/builds cd /home/$USER/builds/$1 makepkg -s sudo pacman -U $1*.pkg.tar.gz rm -rf /home/$USER/builds/$1 |
Порядок работы со скриптом:
1. Скачать архив из AUR в директорию ~/builds
2. Запустить скрипт aur_install packet_name
3. Profit!
Как видно из самого скрипта он ищет любой пакет в директории ~/builds название которого начинается так же как и параметр который вы ему передали. Далее архив распаковывается, и идет создание пакета. Затем скрипту потребуется ваш пользовательский пароль для запуска pacman и установки пакета в систему. В конце всего скрипт чистит за собой все что осталось в директории начиная с распаковки архива.
Пара важных моментов которые следует иметь в виду:
- В параметр передается либо часть названия либо полное название без расширения .tar.gz
- В директории не следует размещать архивы название которых начинается одинаково (к примеру разные версии одной и тоже библиотеки) Если так уж приспичит, то тогда следует указать не начало названия архива, а его полное имя без .tar.gz
- Скрипт требует чтобы у вашего пользователя была возможность работать под sudo и ваша домашняя директория называлась так же как и пользователь под которым скрипт запущен
- Для удобства работы я скопировал скрипт в /bin диреторию, изменил группу владельца на users и дал ему права на выполнение.