Arch User Repository (Українська)
Репозиторій Користувачів Arch (AUR) — репозиторій, що керується спільнотою для користувачів Arch. Він містить опис пакетів (PKGBUILD), які дозволяють компілювати пакет з вихідного джерела з makepkg, а потім встановлювати його через пакетний менеджер Pacman. AUR був створений для організації та обміну новими пакетами спільноти та допомоги прискоренню включення популярних пакетів до репозиторію спільноти. Цей документ пояснює, як користувачі можуть отримати доступ і використовувати AUR.
Значна кількість нових пакетів, які входять до офіційних репозитаріїв, починаються в AUR. Користувачі можуть вносити свої власні скрипти побудови пакетів (PKGBUILD та пов'язаних файлів) в AUR. Спільнота AUR має можливість голосувати за пакети в AUR. Якщо пакет стає досить популярним, і якщо він має сумісну ліцензію та хорошу техніку упаковки, він може бути внесений до сховища спільноти (стаючи прямо доступним через Pacman або Arch build system (ABS)).
PKGBUILD
- це абсолютно неофіційно і вони не були ретельно перевірені. Будь-яке використання наданих файлів використорвуються на ваш страх і ризик.Початок роботи
Користувачі можуть шукати і завантажувати PKGBUILD з веб-сторінки AUR. Такі (PKGBUILDs) скрипти можуть бути вбудовані в установчі пакети з використанням makepkg, а потім встановлений в систему за допомогою Pacman.
- Переконайтеся, що встановлено базові інструменти побудови пакетів (base-devel).
- Перегляньте розділ #F.A.Q. Часті запитання для отримання відповідей на найпоширеніші питання.
- Можливо, ви захочете налаштувати
/etc/makepkg.conf
щоб оптимізувати процес побудови на вашій системі перед створенням пакетів з AUR. Значне поліпшення часу збірки пакетів може бути реалізовано на системах з багатоядерними процесорами, налаштувавши зміннуMAKEFLAGS
, використовуючи кілька ядер для стискання, або за допомогою різних алгоритму стискання. Користувачі також можуть увімкнути оптимізацію компілятора, специфічних для апаратних засобів, через зміннуСFLAGS
. Дивіться makepkg#Tips and tricks для отримання додаткової інформації.
Також можна взаємодіяти з AUR через SSH: введіть команду ssh aur@aur.archlinux.org help
щоб отримати список доступних команд.
Встановлення та оновлення пакетів
Встановлення пакетів з AUR є відносно простим процесом. По суті:
- Просто, отримайте файли збірки, включаючи PKGBUILD та, можливо, інші необхідні файли, як-от модулі systemd і "заплатки" (часто це не є фактичний код).
- Переконайтеся, що файли
PKGBUILD
та супровідні файли не є шкідливими чи ненадійними. Це важливо. - Запустіть
makepkg
у каталозі, де збережено файли. Це завантажить код, скомпілює його та запакує. - Запустіть
pacman -U package_file
, щоб інсталювати зібраний пакет, у вашій системі.
Передумови
По-перше, переконайтеся, що необхідні інструменти встановлено , встановивши base-devel; Цей мета-пакет містить інструмент make та інші інструменти, що зазначені, як залежності і необхідні для компіляції з вихідного коду.
Далі виберіть відповідний каталог збірки. Каталог збірки — це просто каталог, у якому пакунок буде створено або «збірно» з джерела, і може бути будь-яким каталогом. Далі в цьому розділі буде використовуватись як як приклад, каталог збірки - ~/builds
.
Отримати файли збірки
Знайдіть пакет у AUR. Це робиться за допомогою поля пошуку у верхній частині домашньої сторінки AUR. Якщо клацнути назву програми в списку пошуку, відкриється сторінка з інформацією про пакет. Прочитайте опис, щоб переконатися, що це потрібний пакет, зверніть увагу на час останнього оновлення пакета та прочитайте коментарі.
Існує кілька методів отримання файлів збірки для пакету:
- Склонувати git-репозиторій із позначкою «URL-адреса клонування з Git» у описі пакету на сторінці AUR. Це найкращий метод, перевага якого полягає в тому, що ви можете легко отримати оновлення пакета через
git pull
.
$ git clone https://aur.archlinux.org/назва_пакета.git
- Завантажити "знімок", натиснувши посилання «Завантажити знімок» у розділі «Дії пакета» праворуч на сторінці AUR або в терміналі:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/назва_пакета.tar.gz
- Примітка: Файл миттєвого знімка стиснутий і його потрібно розпакувати (бажано в каталозі, призначеному для збірок AUR):
tar -xvf назва_пакета.tar.gz
- Використати незмінне дзеркало archlinux/aur на GitHub, де кожен пакет знаходиться у гілці. Рекомендується клонувати лише одну гілку (все сховище занадто велике, і продуктивність буде низькою). Це можна зробити одним із двох способів:
- Використавши команду
git clone --single-branch
:$ git clone --branch назва_гілки/назва_пакета --single-branch https://github.com/archlinux/aur
- Або, зробивши часткове клонування цього сховища (
git clone --depth=1
) із вибірковим додаванням гілок: :$ git clone --depth=1 https://github.com/archlinux/aur; cd aur
$ git remote set-branches --add origin назва_пакета
$ git fetch
$ git checkout назва_пакета
- Використавши команду
За потреби отримайте відкритий ключ PGP
Перевірте, чи є файл підпису у форматі .sig або .asc частиною вихідного масиву PKGBUILD. Якщо це так, отримайте один із відкритих ключів, указаних у масиві validpgpkeys. Для отримання додаткової інформації зверніться до makepkg#Signature checking.
Створіть пакет
Перейдій у каталог, що містить PKGBUILD.
$ cd назва_пакета
PKGBUILD
, будь-які файли .install, а також інші файли в git-репозиторії пакета, на наявність шкідливих або небезпечних команд. Якщо сумніваєтеся, не створюйте пакет, а зверніться за порадою на форуми чи список розсилки. Зловмисний код уже знаходили в пакетах раніше. [1]
Перегляньте вміст усіх наданих файлів. Наприклад, щоб переглядати "по-сторінково" PKGBUILD
, виконайте:
$ less PKGBUILD
- Щоб переглянути зміни з моменту останнього коміту git, ви можете використовувати
git show
. - Щоб переглянути зміни з часу останнього коміту за допомогою vimdiff , виконайте
git difftool @~..@ vimdiff
. Перевагою vimdiff є те, що ви переглядаєте весь вміст кожного файлу разом із індикаторами змін..
Зберіть пакет. Після ручного підтвердження вмісту файлів запустіть makepkg як звичайний користувач.
Деякі корисні позначки:
-
-s
/--syncdeps
автоматично вирішує та встановлює будь-які залежності за допомогою pacman перед збиранням. Якщо пакет залежить від інших пакетів AUR, вам потрібно буде спочатку встановити їх вручну. -
-i
/--install
встановлює пакет, якщо він успішно зібраний. Це дозволяє пропустити наступний крок, який зазвичай виконується вручну. -
-r
/--rmdeps
видаляє залежності потрібні під час збирання після завершення, оскільки вони більше не потрібні. Однак під час наступного оновлення пакета може знадобитися перевстановити ці залежності. -
-c
/--clean
очищає тимчасові файли збірки після збирання, оскільки вони більше не потрібні. Ці файли зазвичай потрібні лише під час налагодження процесу збірки.
git clean -dfX
для видалення всіх файлів, які git ігнорує, таким чином видаляючи всі раніше створені файли пакунків, якщо проект ігнорує ці файли. Ви також можете використовувати, git clean -dfx
оскільки це призведе до видалення всіх файлів, які не відстежуються git, включаючи файли попередньо створених пакетів. Встановлення пакета
Тепер пакунок можна встановити за допомогою pacman:
# pacman -U назва_пакета-версія-архітектура.pkg.tar.zst
- Якщо ви змінили
PKGEXT
вmakepkg.conf
, назва файла пакета може дещо відрізнятися. - Наведений вище приклад є лише коротким описом процесу збирання. Наполегливо рекомендуємо прочитати статті про makepkg та Arch build system для отримання детальної інформації
makepkg --packagelist
, щоб отримати список можливих файлів пакетів.Перехід на нову версію пакетів
У каталозі, що містить PKGBUILD пакету, необхідно спочатку оновити файли і зміни за допомогою команди
$ git pull
після чого слідувати попереднім інструкціям зі збирання та встановлення.
Оновлення пакетів
AUR не підтримується, тому оновлення пакетів, які ви встановлюєте є вашим обов'язком а не pacman. Якщо пакунки з офіційних сховищ буде оновлено, вам потрібно буде перезбирати всі пакунки AUR, які залежать від цих бібліотек.
Статус облікового запису
Інформація щодо статусу (поточного стану) облікового запису користувача, що є супровідником пакету.
Призупинення
При редагуванні користувача як довіреного Користувача можна встановити поле Призупинено, що призупиняє зазначеного користувача.Коли користувач призупинений, він не може:
- Увійти на https://aur.archlinux.org
- Отримувати сповіщення
- Взаємодіяти з інтерфейсом git
Неактивність
При редагуванні власного облікового запису або іншого, як довіреного користувача, неактивне поле може бути встановлено. Неактивні обліковки використовуються з двох причин:
- Відобразити дату, яку хтось відмітив як початок неактивності на сторінці свого облікового запису.
- Згенерувати поточну кількість активних (TU) Довірених користувачів на основі їх бездіяльності щодо нових пропозицій.
Зворотній зв'язок
Коментування пакетів
У веб-інтерфейсі AUR є можливість коментування, яка дозволяє користувачам надавати пропозиції та відгуки щодо покращень дописувачу PKGBUILD.
PKGBUILD
у розділ коментарів: вони швидко стають застарілими і просто займають багато місця. Натомість, надсилайте ці файли електронною поштою супроводжувачу або навіть використовуйте кошик
.
Python-Markdown надає базовий синтаксис Markdown для форматування коментарів.
- Ця реалізація має деякі розбіжності з офіційними правилами синтаксису.
- Хеші коммітів до сховища Git пакунка та посилання на квитки Flyspray автоматично перетворюються на посилання.
- Довгі коментарі згортаються і за потреби можуть бути розгорнуті.
Голосування за пакети
Однією з найпростіших дій для всіх користувачів Arch є перегляд AUR і голосування за улюблені пакунки за допомогою онлайн-інтерфейсу. Усі пакунки можуть бути прийняті TU (Trusted Users - Довірені Користувачі) для включення до extra, а підрахунок голосів є одним з аспектів цього процесу; голосування в інтересах кожного!
Зареєструйтеся на веб-сайті AUR, щоб отримати опцію "Проголосувати за цей пакет" під час перегляду пакетів. Після реєстрації ви також зможете голосувати з командного рядка за допомогою aurvoteAUR[пакет відсутній: package not found], aurvote-gitAUR[пакет відсутній: package not found] або aur-auto-vote-gitAUR.
Крім того, якщо ви налаштували автентифікація ssh, ви можете голосувати безпосередньо з командного рядка за допомогою вашого ключа ssh. Це означає, що вам не потрібно буде зберігати або вводити пароль AUR.
$ ssh aur@aur.archlinux.org vote назва_пакунка
Позначення пакунків як застарілих
Перш за все, вам слід позначити пакунок як "застарілий", вказавши деталі, чому він є застарілим, бажано включно з посиланнями на оголошення про випуск або архів нового випуску.
Вам також слід спробувати зв'язатися з супровідником безпосередньо електронною поштою. Якщо протягом двох тижнів від супровідника немає відповіді, ви можете подати осиротілий запит. Дивіться Настанови щодо подання запитів до AUR#Запити для отримання детальної інформації.
pkgver
; не позначайте їх, оскільки супроводжувач просто зніме позначку з пакунка і проігнорує вас. Супровідники AUR не повинні вносити до пакунків лише виправлення pkgver
.Налагодження процесу збирання пакунків
- Переконайтеся, що ваше середовище збірки оновлене за допомогою оновлення[broken link: invalid section] перед тим, як щось збирати.
- Переконайтеся, що у вас встановлено base-devel.
- Використовуйте опцію
-s
зmakepkg
для перевірки та встановлення усіх необхідних залежностей перед початком процесу збирання. - Спробуйте типовий варіант конфігурації makepkg.
- Див. розділ Makepkg#Виправлення неполадок[broken link: invalid section] щодо типових проблем.
Якщо у вас виникли проблеми зі збиранням пакунка, спершу прочитайте його PKGBUILD та коментарі на його сторінці AUR.
Можливо, PKGBUILD
не працює для всіх. Якщо ви не можете з'ясувати це самостійно, повідомте про це супроводжувачу (наприклад, опублікувавши помилки, які ви отримуєте, у коментарях на сторінці AUR[broken link: invalid section]). Ви також можете звернутися за допомогою до Форуму проблем, обговорень та запитів AUR та PKGBUILD.
Причина може бути нетривіальною. Нестандартні CFLAGS
, LDFLAGS
і MAKEFLAGS
можуть спричинити збої. Щоб уникнути проблем, спричинених особливостями конфігурації вашої системи, збирайте пакунки у чистому chroot. Якщо процес збирання у чистому chroot все одно завершується невдало, ймовірно, проблема у PKGBUILD
.
Про використання namcap
див. розділ Створення пакунків#Перевірка нормальності пакунків. Якщо ви бажаєте, щоб PKGBUILD
було перевірено, опублікуйте його у aur-general mailing list, щоб отримати відгук від TU та інших членів AUR, або на форумі Створення та модифікація пакунків. Ви також можете звернутися за допомогою на IRC-канал #archlinux-aur у мережі Libera Chat.
Надсилання пакунків
Користувачі можуть ділитися PKGBUILDами за допомогою AUR. Дивіться Настанови щодо надсилання до AUR для отримання детальної інформації.
Переклад веб-інтерфейсу
Дивіться i18n.txt у дереві джерел AUR для отримання інформації про створення та підтримку перекладу веб-інтерфейсу AUR.
Історія
На початку, був лише ресурс ftp://ftp.archlinux.org/incoming
, і люди, які зробили внесок, просто завантажували скрипт побудови PKGBUILD, необхідних додаткові файли і сам пакет, який буде побудовано на сервер. Пакет та пов'язані файли залишалися там, поки Супроводжувач пакетів не побачить програму і не прийме її.
Пізніше народилися довірені репозиторії користувачів. Деяким особам у суспільстві дозволялося розміщувати свої власні сховища для використання будь-ким. На основі цього, AUR і розширився, з метою зробити його більш гнучким і більш корисним. Насправді, супровідники АУР все ще називають TU (Trusted Users - довірені користувачі).
У період з 2015-06-08 по 2015-08-08, АУР перетворився з версії 3.5.1 до 4.0.0, впровадивши використання репозиторіїв Git для публікації PKGBUILD
. Існуючі пакети були відкинуті, якщо не мігрували вручну до нової інфраструктури їх супровідниками.
Репозиторії Git для пакетів AUR3
Архів AUR на GitHub має сховище для кожного пакету, який був у AUR-3 під час міграції. Крім того, існує aur3-mirror репозиторій, який забезпечує те ж саме.
F.A.Q. Часті запитання
Які пакунки дозволено розміщувати на AUR?
Пакунки на AUR - це просто "скрипти збірки", тобто рецепти збірки двійкових файлів для pacman. У більшості випадків дозволено все, за умови дотримання Настанови щодо подання пакунків на AUR#Настанови щодо подання пакунків#Настанови щодо корисності та обсягу, якщо ви дотримуєтесь умов ліцензування контенту. В інших випадках, коли зазначено, що "ви не можете посилатися" на завантаження, тобто на вміст, який не підлягає розповсюдженню, ви можете використовувати лише саму назву файлу як джерело. Це означає і вимагає, щоб користувачі вже мали джерело з обмеженим доступом у каталозі збірки до початку збирання пакунка. Якщо у вас є сумніви, запитайте.
Як я можу проголосувати за пакунки на AUR?
Див. розділ #Голосування за пакунки[broken link: invalid section].
Що таке довірений користувач / TU?
Довірений користувач, скорочено TU, - це людина, яку обрано для нагляду за AUR та додатковим сховищем. Саме вони підтримують популярні PKGBUILDи у "додатковому", і загалом підтримують роботу AUR.
Яка різниця між репозиторіями AUR та extra?
AUR є місцем зберігання усіх PKGBUILDів, які надсилають користувачі, і його слід збирати вручну за допомогою makepkg. Коли PKGBUILD
отримує достатній інтерес спільноти та підтримку TU, його переміщують до extra (підтримується TU), де бінарні пакунки можна встановити за допомогою pacman.
Foo у AUR застарілий; що мені робити?
Див. розділ #Позначення пакунків як застарілих.
Тим часом, ви можете спробувати оновити пакунок самостійно, відредагувавши PKGBUILD локально. Іноді оновлення не потребують змін у процесі збирання або пакування, у цьому випадку достатньо просто оновити масив pkgver
або source
.
Foo у AUR не компілюється під час запуску makepkg; що мені робити?
Ймовірно, ви пропустили щось тривіальне; див. #Налагодження процесу збирання пакунків.
ERROR: One or more PGP signatures could not be verified!; що робити?
Найімовірніше, у вашій особистій зв'язці ключів немає необхідного відкритого ключа (ключів) для перевірки завантажених файлів. Дивіться Makepkg#Перевірка підписів[broken link: invalid section] для більш детальної інформації.
Як створити PKGBUILD?
Ознайомтеся з Настановами щодо подання до AUR#Правила подання, а потім дивіться створення пакунків.
У мене є PKGBUILD, який я хочу подати; чи може хтось перевірити його на наявність помилок?
Існує декілька каналів для надсилання вашого пакунка на перевірку; див. Налагодження процесу збирання пакунків.
Як перенести PKGBUILD до репозиторію extra?
Зазвичай, для переміщення чогось до extra потрібно щонайменше 10 голосів. Однак, якщо TU хоче підтримати пакунок, його часто можна знайти у репозиторії.
Досягнення необхідного мінімуму голосів - не єдина вимога; має бути TU, який бажає підтримувати пакунок. TU не зобов'язані переміщувати пакунок до extra, навіть якщо він має тисячі голосів.
Зазвичай, коли дуже популярний пакунок залишається у AUR, це відбувається тому, що:
- Arch Linux вже має іншу версію пакунка у сховищах
- Його ліцензія забороняє розповсюдження
- Це допомагає отримати надіслані користувачами PKGBUILDи. Помічники AUR є непідтримуваними за визначенням.
Дивіться також Правила для пакунків, що вносяться до extra.
Як прискорити повторювані процеси збирання?
Дивіться Makepkg#Покращення часу компіляції[broken link: invalid section].
Яка різниця між пакунками foo та foo-git?
Багато пакунків AUR постачаються у "стабільних" версіях випуску та "нестабільних" версіях для розробки. Пакунки для розробки зазвичай мають суфікс, що позначає їхню Систему керування версіями і не призначені для регулярного використання, але можуть пропонувати нові можливості або виправлення помилок. Оскільки ці пакунки завантажують лише найновіші доступні джерела під час виконання makepkg
, їхній pkgver()
у AUR не відображає попередніх змін. Так само ці пакунки не можуть виконувати перевірку контрольної суми автентичності для будь-якого Джерела VCS.
Дивіться також Обслуговування системи#Використання перевірених програмних пакетів.
Чому foo зник з AUR?
Можливо, пакунок було прийнято у ТУ і зараз він знаходиться у додатковому сховищі.
Пакунки можуть бути видалені, якщо вони не відповідають правилам подання. Причини видалення див. в архіві aur-запитів.
Як дізнатися, чи не зникли з AUR встановлені мною пакунки?
Найпростіший спосіб - перевірити HTTP-статус сторінки AUR пакунка:
$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)
Як отримати список усіх пакунків AUR?
- https://aur.archlinux.org/packages.gz
- Використовуйте
aurpkglist
з python3-aurAUR