Как мне установить пакеты из AUR?


61

Arch Linux имеет AUR (Arch User Repository), набор пользовательских пакетов. Как мне установить эти пакеты в Arch Linux ARM?


2
Похоже, есть много пакетов aur, уже предоставленных через репозиторий «aur». Я нашел это случайно. pacman -S ваш пакет может действительно работать. Например, он работает с cower и gmrender-resurrect-git.
загадочный

Ответы:


53

Согласно странице Building Packages от Arch Linux ARM, вам нужно.

  1. Установите основы сборки. Они необходимы для компиляции пакетов в Arch Linux ARM.

    $ sudo pacman -S kernel26-headers file base-devel abs
    
  2. Получить PKGBUILD. Вам нужно скачать тарбол, который вы хотите. Вы можете найти tar-архивы для программ в AUR .

  3. Сделайте пакеты. Далее вам нужно запустить makepkg, чтобы сгенерировать пакет, который pacman может установить.

    $ makepkg -Acs
    

    -AПараметр игнорирует целевую Arch архитектуру. -cОпция очищает каталог после того, как makepkgэто сделано, и -sустанавливает необходимую зависимость.

    Рекомендуется не запускать makepkgс правами root, так как это может привести к необратимому повреждению вашей системы. Если вам действительно нужно запустить его как root, используйте --asrootопцию.

  4. Установите пакет. makepkgдолжен был создать файл в каталоге с типом файла .pkg.tar.xz. Вам следует установить этот пакет, используя -Uопцию с pacman.

    $ sudo pacman -U x.pkg.tar.xz
    

    Убедитесь, что вы заменили x.pkg.tar.xzфактическое имя пакета.


Создание пакетов вручную определенно не рекомендуется для начинающих пользователей. На самом деле, каждый должен использовать Yaourt. Это делает весь процесс простым.
Jivings

Вам все еще нужны эти пакеты и отредактировать PKGBUILD для компиляции для armv6h arch.
Anglepoise

5
@Jivings На самом деле единственная причина, по которой yaourt и другие помощники AUR не участвуют в официальном репо, заключается в том, что вы должны научиться устанавливать сторонние пакеты вручную, прежде чем использовать автоматизированный инструмент.
PyRulez

2
Пакет 'abs' отсутствует в хранилище
dmnc

это kernel26-headersеще актуально? Не нашел ничего об этом с гуглом. И группа base-develсодержит file.
user3123159

34

Самым простым решением является использование Yaourt (все же AnOther User Repository Tool) .

Вы можете установить с:

pacman -S yaourt

И затем синхронизировать с AUR:

yaourt -Syy

Затем вы можете искать пакеты AUR:

yaourt package-name

Который будет предоставлять интерактивные подсказки для установки.

Или, если вы точно знаете название пакета:

yaourt -S package-name

Большинство команд pacman одинаковы для yaourt.


В чем разница между pacmanи yaourt?
Алекс Чемберлен

Yaourt также проверяет AUR и официальные репозитории. Пакеты AUR также имеют больше возможностей для настройки.
Jivings

Это больше не работает. Какое официальное решение?
Текнолаги

2
pacman -S yaourtне работает, и я не могу добавить, так archlinuxfrкак, по-видимому, они не хостarmv6h
Tekknolagi

1
@tekknolagi yaourtраньше был в главном хранилище Arch Arm. Возможно, они удалили его ... Но вы все равно можете собрать его из источника, что объясняется в статье AUR на Arch Wiki. И есть файл пакета для него здесь . Надеюсь, это поможет!
Jivings

10

Все вышеперечисленные ответы устарели. Мой ответ не очень хороший, но, надеюсь, позволит избежать проблемы устаревания.

Официальной вики объясняет подробно, как один идет об установке / сборке пакета , который не является частью Pacman (упаковщик и Yaourt по состоянию на эту дату).

Упаковщик и yaourt помечены как устаревшие в AUR. (это может измениться в будущем).


Хороший ответ! Я рекомендую также использовать makepkg -si (после проверки файла PKGBUILD)
smoothware

7

Для этого я использую упаковщик, который, по моему мнению, является более быстрой альтернативой yaourt.

Просто добавьте эти две строки к себе /etc/pacman.conf:

[archlinuxfr]
Server = http://repo.archlinux.fr/$arch

Затем вы можете установить / обновить упаковщик через pacman:

# pacman -Sy packer

И используйте упаковщик почти так же, как вы используете pacman:

$ packer -S some_aur_package

Также, если вы не хотите обновлять все пакеты, включая пакеты из AUR:

$ packer -Syu

Сначала запустится Packer pacman -Syuдля обновления пакетов из официальных репозиториев, затем он обновит все пакеты AUR.


4

ВАЖНЫЙ! yaourtнебезопасен и не рекомендуется в соответствии с вики: https://wiki.archlinux.org/index.php/AUR_helpers

Хотя ответ @Jivings был лучше всего в `12, я бы порекомендовал установить один из более безопасных и многофункциональных менеджеров пакетов arch (и я предлагаю кому-то обновить ответ @Jivings, так как он наиболее заметен).

Я использую aurmanи копаю это. Обладает всеми функциями, безопасен и работает почти так же, как pacman. Установить:

cd ~/Downloads
git clone https://aur.archlinux.org/aurman.git
cd aurman
makepkg -Acs
# Change xxx below to downloaded version
sudo pacman -U aurman-xxx.pkg.tar.xz

Затем вы можете почти точно следовать указаниям pacman, но использовать aurmanвместо pacman. Следующее руководство было взято с https://www.digitalocean.com/community/tutorials/how-to-use-arch-linux-package-management и помогло мне начать:


Начиная

Arch Linux предоставляет средства управления пакетами, аналогичные тем, которые есть в других современных дистрибутивах Linux. Это руководство по распространенным операциям по управлению пакетами.

Прежде чем продолжить, убедитесь, что ваши базы данных пакетов обновлены:

sudo pacman -Sy

поиск

В интересах краткости, а не интуитивности, большинство операций управления пакетами в Arch Linux отображаются в формате:

pacman -<a-z><a-z>.

Например, обычная команда для поиска в репозиториях pacman:

pacman -Ss <package> 

...

В качестве альтернативы вы можете использовать pacman -Qs с обратной стороной отсутствия цветовой подсветки.

pacman -Qs linux

Если вы хотите выделить цветом с помощью pacman -Ss, вы можете раскомментировать Color из /etc/pacman.conf. Тем не менее, он выделяет разные вещи, чем pacsearch, так что вы можете попробовать оба и посмотреть, какой из них вам больше нравится.

sudo vi /etc/pacman.conf

...
# Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
...

Получение информации

pacman -Qi displays basic information about an installed package.

pacman -Qi linux

Name           : linux
Version        : 3.8.4-1
Description    : The linux kernel and modules
Architecture   : x86_64
URL            : http://www.kernel.org/
Licenses       : GPL2
Groups         : base
Provides       : kernel26=3.8.4
Depends On     : coreutils  linux-firmware  kmod  mkinitcpio>=0.7
Optional Deps  : crda: to set the correct wireless channels of your country
Required By    : None
Optional For   : None
Conflicts With : kernel26
Replaces       : kernel26
Installed Size : 64728.00 KiB
Packager       : Tobias Powalowski <tpowa@archlinux.org>
Build Date     : Wed Mar 20 21:16:17 2013
Install Date   : Fri Mar 29 01:02:14 2013
Install Reason : Explicitly installed
Install Script : Yes
Validated By   : Unknown

Если pacman -Qi передается без аргументов, он возвращает все пакеты в системе. Вы можете искать этот вывод, чтобы получить специализированную информацию об установленных пакетах.

Например, если вы хотите получить каждый пакет и его размер:

pacman -Qi | grep -e "Name" -e "Installed Size"

Name           : a52dec
Installed Size : 244.00 KiB
Name           : aalib
Installed Size : 768.00 KiB

...

В то время как pacman -Qi предоставляет информацию об установленных пакетах, pacman -Si запрашивает в базе данных самую последнюю полученную информацию о пакете.

pacman -Si linux

pacman -Ql перечисляет все файлы, связанные с пакетом.

pacman -Ql vi

vi /usr/
vi /usr/bin/
vi /usr/bin/edit
vi /usr/bin/ex
vi /usr/bin/vedit
vi /usr/bin/vi

...

Имя пакета в каждой строке может затруднить использование выходных данных в скрипте. pacman -Qlq (т. е. «pacman query list, quiet») не будет печатать имя пакета.

pacman -Qlq vi

/usr/
/usr/bin/
/usr/bin/edit
/usr/bin/ex
/usr/bin/vedit
/usr/bin/vi

...

Вы можете использовать pacman -Qlq | grep bin, чтобы найти все файлы в этом пакете, которые находятся в папке bin (и, следовательно, являются, вероятно, исполняемыми файлами). Это удобно, когда команда, связанная с пакетом, отличается от имени пакета.

pacman -Qql pacman | grep bin

Установка

Типичный способ установки или обновления стандартного пакета - pacman -S.

sudo pacman -S <package>

Пакеты часто имеют похожий шаблон в своих именах. Скобки можно использовать как ярлык.

sudo pacman -S lua-{sec,socket,zlib}

Иногда вы можете просто скачать пакет для архивных целей без его установки. pacman -Sw загрузит пакет в папку кеша.

sudo pacman -Sw <package>

Если пакет был загружен, или если вы знаете URL, вы можете установить его напрямую.

sudo pacman -U <package_path>

Обновления

Поскольку pacman вращается вокруг идеи «синхронизации» пакета с удаленным репозиторием, pacman -Sон обновит пакет, если он уже установлен.

Pacman может перечислить пакеты, которые устарели.

pacman -Qu

К сожалению, он не отображает версию пакета в хранилище, поэтому вы не сможете сказать, насколько устарел каждый пакет. Если это важно для вас, вы можете обратиться к сторонним менеджерам пакетов или написать скрипт, который связывает воедино версию пакета, полученную из pacman -Qi и pacman -Si.

Вы можете получить версию из pacman -Qi или pacman -Si с помощью регулярного выражения.

pacman -Qi linux | grep "Version" | sed 's/^Version\s*:\s//'

3.8.4-1

А затем напишите сценарий, который показывает версии рядом.

for i in $(pacman -Qqu)
do
  printf "$i: "
  printf "$(pacman -Qi "$i" | grep 'Version' | sed 's/^Version\s*:\s//') "
  echo   "$(pacman -Si "$i" | grep 'Version' | sed 's/^Version\s*:\s//')"
done

Pacman предоставляет способ обновить все ваши пакеты одновременно, но это не рекомендуется, потому что Arch - это дистрибутив с непрерывным выпуском. Если возникают проблемы, может потребоваться время, чтобы определить причины.

sudo pacman -Syu

понизило

Arch Linux официально не поддерживает устаревшие пакеты. Вместо этого вам нужно будет полагаться на кеш вашего пакета и такие места, как машина отката Arch. кэш

Каждый пакет, загруженный с помощью pacman, хранится в / var / cache / pacman / pkg.

ls /var/cache/pacman/pkg | grep linux

linux-3.11.6-1-x86_64.pkg.tar.xz
linux-3.9.7-1-x86_64.pkg.tar.xz

...

Если вы хотите вернуться к пакету в вашем кэше, просто установите его напрямую.

pacman -U <path_to_cached_file>

Арка отката машина

Arch Rollback Machine - это коллекция снимков официального зеркала Arch Linux. На момент написания статьи прошло четыре месяца. ARM в настоящее время размещается по адресу http://seblu.net/a/arm , хотя это может измениться в будущем.

Пакеты ARM можно установить удаленно, используя pacman -U.

pacman -U http://seblu.net/a/arm/2013/08/31/extra/os/x86_64/apache-2.2.25-1-x86_64.pkg.tar.xz

Не совсем удобно просматривать ARM для более старых пакетов. К счастью, есть инструменты, которые делают это проще:

downgrade
downgrader

Они ищут более старые версии в кеше и ARM. Их использование - это то, что вы ожидаете.

downgrade <package>
downgrader <package>

Оба инструмента находятся в AUR, поэтому их проще всего установить с помощью помощника типа yaourt.

Примечание. ARM - это неофициальный проект, который был закрыт в прошлом, поэтому рекомендуется избегать очистки кэша в случае, если ARM выйдет из строя или снова изменит расположение. Если вы хотите запустить свой собственный ARM, на github появится проект NodeJS. Удаление

Удалите пакет при условии, что от него ничего не зависит. Оставьте свои зависимости установленными.

sudo pacman -R <package>

Удалите пакет при условии, что от него ничего не зависит. Удалите его зависимости, которые больше никому не нужны.

sudo pacman -Rs <package>

Принудительное удаление пакета. Это команда, которую вы достигнете, чтобы просто стереть пакет из вашей системы и переустановить, если одной только переустановки недостаточно.

sudo pacman -Rdd <package>

Чтобы полностью удалить пакет:aurman -Rsn <package>
mjd2

0

Первое, что вам нужно сделать, это загрузить пакет из AUR. Для этого запустите: git clone http://aur.archlinux.org/package.gitНесмотря на то, что, похоже, вы загружаете .gitфайл, на выходе будет каталог.

cd packageнайти PKGBUILDфайл. Это будет использовано на следующем шаге.

Наконец, запустите эту команду, чтобы скомпилировать и установить только что загруженный пакет. makepkg -Sri, Если вы хотите получить исчерпывающее объяснение того, что означает каждая из этих букв, вы можете указать, makepkg -hгде все они будут объяснены.


2
Добро пожаловать в Stack Exchange, Ашиш ... не могли бы вы немного рассказать о своем ответе - зачем нужно делать вышеперечисленное, что делают заявления и т. Д.?
Фил Б.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.