arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
Решил я тут некоторое время назад избавиться от всех возможных (приложений, опубликованных в открытом доступе) пакетов из аура и перенести их в свой специально созданный репозиторий. В этой теме я коснусь темы автоматизации поддержки своего репозитория, т.к. пакман по дефолту предоставляет только утилиты repo-remove и repo-add, которые для автоматизации не совсем годятся (хотя, конечно, будут использованы). warning по сути, все ниже написанное - лютый быдлокод и велосипед костыльного типа. 1. Обновление пакетов. 1.1. Зависимости В том варианте, который я предлагаю, предполагается наличие двух пакетов в системе (помимо base, base-devel): yaourt для скачивания PKGBUILD'ов (package-query - зависимость йогурта - для запросов к базам данных), devtools для сборки пакетов. Резюмируя: 1.2. ПеременныеФункция, вызывающаяся при ошибке (сообщение + выход из скрипта): Сами переменные: Объяснение директорий чуть ниже. DBNAME - имя репозитория, SYMLINK - ниже, USEGPG - подписывать или нет пакеты.1.3. Структура директорий repo/{i686,x86_64} - собственно репозиторий, смысл repo/non-versioned раскрою чуть позже, root - директория для сборки пакетов, prepare - директория с собранными пакетами, staging - директория, из которой пакеты будут собираться.Создадим директории =) 1.4. Процесс сборки
Автоматизация этого этапа будет рассмотрена в п.2. В общем случае выглядит примерно так: 1.6. Сборка пакетовСама фукнция сборки: Автоматически распознает под какие архитекторы и как надо собирать пакет. На вход получает два параметра - директория, где будут лежать готовые пакеты, и директория, где будет создан чистый рут. Так как в процессе выполняется чрут в директорию, то нужны права рута. Предлагаю для упрощения внести следующие строки в /etc/sudoers: Процесс сборки: 1.7. Подписывание (если нужно)Все простенько. Только нужно gpg настроить и лучше настроить gpg-agent Альтернативный вариант - подписывать только базу данных - оставлю на самостоятельно решение (читать справку по repo-add).1.8. Создание списка пакетов, обновление репозитория Получаем список того, что насобирали: Функция для удаления пакетов: Обновление i686 пакетов: и аналогично для x86_64: 1.9. Создание симлинков (если нужно)Пакеты, ессно, версионные, но иногда хочется давать прямые постоянные ссылки на нужные пакеты. Для этого я решил создать отдельную директорию и понаделать там симлинков =) Процесс обновления симлинков выглядит так: 1.10. Очистка
|
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
2. Автоматическое получение списка пакетов 2.1. Переменные из нового IGNORELIST - мало ли, вдруг какие то пакеты не хотим пересобирать. В моем варианте, это список пакетов, разделенный ;;Директории: 2.2. Функция, отвечающая за обновление VCS пакеты не обновляются (ручками, ручками). Получение версии пакета из аура, сравнение с локальной версией и получение тарбола, если пакет устарел.2.3. Получение списка пакетов Создание спискоты для списка игнорируемых пакетов Обновление локальной базы (нужен sudo!) Получение списка пакетов для разных архитектур 2.4. Проверка версийПолучаем имя пакета и его версию в своем репозитории. Запускаем с этими данными функцию func_update: 2.5. Переход к п.1Если что то есть, значит на5до собирать: 2.6. Ручная сборкаЕсли мы хотим пересобрать какой то пакет по каким то там причинам (например, VCS), то перед запуском этого скрипта нужно всего лишь Выполнить команду из п.1.5:
|
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
3. Ссылки Немного есть у меня в блоге (чуть чуть в другом виде и только про п.1). Скрипты (с файлом настроек и цветами) доступны на github. Для совсем ленивых есть уже собранный пакет 4. Использование скриптов Для проверки и сборки устаревших пакетов просто набираем Для только сборки тех пакетов, тарболы которых мы предварительно сами закинули:
5. Немного о расшаривании В моем случае, это добро работает по ftp, который поднят через vsftpd с анонимным доступом. Защита от записи осуществляется путем биндинга директории repo в директорию ftp с правами ro (просто на ftp есть еще директория с правами rw). Конфиг (/etc/vsftpd.conf) выглядит примерно так: а /etc/fstab так:
Замечания/предложения, как обычно, приветствуются |
Bendalf |
|
Темы:
36
Сообщения:
395
Участник с: 14 мая 2019
|
arcanisбольше не с нами. Рекомендуют Смотря на эту статью https://wiki.archlinux.org/index.php/AUR_helpers логичным выводом будет установить Aurman что нужно изменить ?
С уважением, .
|
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
BendalfНемного странная логика, там автор обидчивый Почти полная копия по использованию yay https://repo.archlinuxcn.org/x86_64/yay-9.2.0-1-x86_64.pkg.tar.xz P.s. вообще если просто нужны пакеты с аура то многие собранные можно скачать с этой репы https://repo.archlinuxcn.org/x86_64 |
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
Надо на yay, да, но мне лень переписывать рабочий код. aurman тоже утонул |