Удобное размаскирование пакетов в Gentoo
В Gentoo часто приходится взаимодействовать с различные версиями файлов и иногда они замаскированы по ~ARCH флагу. Чтобы быстро размаскировать и хранить эти данные в понятной структуре предлагаю такой скрипт
#!/bin/bash
# Проверка аргументов
if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
echo "Использование: $0 <полное имя пакета> [версия]"
exit 1
fi
PKG="$1"
VERSION="${2:-}"
CATEGORY="$(echo "$PKG" | cut -d/ -f1)"
ACCEPT_KEYWORDS_DIR="/etc/portage/package.accept_keywords"
# Создание каталога, если он еще не существует
sudo mkdir -p "${ACCEPT_KEYWORDS_DIR}"
# Создание файла для категории, если он еще не существует
CATEGORY_FILE="${ACCEPT_KEYWORDS_DIR}/${CATEGORY}"
if [ ! -f "${CATEGORY_FILE}" ]; then
sudo touch "${CATEGORY_FILE}"
fi
# Добавление пакета в файл категории с указанием версии, если она была передана
if [ -z "$VERSION" ]; then
echo "${PKG} ~amd64" | sudo tee -a "${CATEGORY_FILE}"
else
echo "=${PKG}-${VERSION} ~amd64" | sudo tee -a "${CATEGORY_FILE}"
fi
# Обновление мира с учетом размаскированного пакета
sudo emerge -avuDN @world
Таким образом размаскированный пакет будет сохранен в /etc/portage/package.accept_keywords/<категория пакета>.
Другие записи