среда, 6 апреля 2016 г.

Переходим на pacman и AUR

Самые популярные команды менеджера пакетов pacman. Что такое AUR и с чем его едят? Осваиваем...



Вообще, сама затея написания статьи для pacman является несколько сумбурной, потому как пользователи Archlinux возразят - И зачем? Есть же замечательная вики. И они будут правы, ведь круче и подробней вики, чем у Archlinux, я лично не встречал. И все-таки пусть эта статья будет своего рода шпаргалкой, для вновь обращенных новичков.
И так, давайте по порядку.


PACMAN
pacman (package manager) - это официальный пакетный менеджер Archlinux и Arch-based систем (Manjaro, Antergos, KaOS и т.д.). Отличается от других пакетных менеджеров мощными возможностями и очень быстрой скоростью работы. Имеет графические интерфейсы для работы Pamac (GTK) и Octopi (Qt).

Pamac (GTK)

Octopi (Qt)

Как и в других Linux системах для pacman доступны страницы справки и мануала:
pacman -h
man pacman


Так же доступна справка по каждому действию. К примеру, страница помощи синхронизации:
pacman -S -h


Теперь давайте перейдем непосредственно к самим командам и перечислим самые популярные, используя примеры.
Синхронизация списка пакетов с репозиториями:
sudo pacman -Sy
Принудительная синхронизация списка пакетов с репозиториями:
sudo pacman -Syy
Синхронизация списка пакетов и обновление:
sudo pacman -Syu
Поиск пакета smplayer:
pacman -Ss smplayer
Установка пакета smplayer:
sudo pacman -S smplayer
Удаление пакета smplayer:
sudo pacman -R smplayer
Удаления пакета smplayer со всеми зависимостями, не используемыми другими установленными пакетами:
sudo pacman -Rs smplayer
Удаления пакета smplayer, его зависимостей и всех пакетов, зависящих от smplayer:
sudo pacman -Rsc smplayer
ПРЕДУПРЕЖДЕНИЕ: Новичкам не рекомендую использовать опцию -Rsc, которая удаляет пакеты рекурсивно. Эта операция может удалить очень важные пакеты для работы системы. Поэтому читайте перед удалением, что удаляете или не используйте эту команду.
Очистка кеша и базы данных списка пакетов:
sudo pacman -Scc
Какому пакету принадлежит файл /usr/bin/akonadi_control:
pacman -Qo /usr/bin/akonadi_control
Список пакетов установленных вручную или из AUR:
pacman -Qm
Вывести список пакетов, входящих в группу gnome:
pacman -Sg gnome
Установить все пакеты, входящие в группу gnome:
sudo pacman -S gnome

Думаю, что этого достаточно для новичка. С остальными возможностями pacman вы можете ознакомиться в вики.

РЕПОЗИТОРИЯ
Репозитория - это хранилища пакетов, предлагаемые разработчиками ОС. Именно в них и содержатся базовые и популярные программы, библиотеки и другие утилиты для работы системы.
В официальных репозиториях Archlinux попадают только проверенные и самые необходимые пакеты по мнению разработчиков и мантейнеров. Но перед тем как попасть в стабильные ветки, они сначала тестируются в тестовой ветке.
Список официальных репозиториев:

  • Core - базовые пакеты для работы системы
  • Extra - окружения рабочего стола, программы и т.д.
  • Multilib - 32-битные пакеты библиотек и программ
  • Community - репозиторий сообщества (не путать с AUR)
  • Testing  - тестовый репозиторий (не рекомендуется использовать)
В Arch-based системах используются собственные репозитория или дополнительные. К примеру, у Antergos подключены официальные репозитория Archlinux, но так же подключен и свой, сдополнительными пакетами программ, обоями, темами оформления, значков и т.д. А в Manjaro используются только собственные репозитория, которые тоже имеют как тестовые ветки, так и стабильные. Подробнее о репозиториях вы можете узнать здесь.
Подключение и отключение репозиториев  настраивается в файле /etc/pacman.conf.
ЗАМЕЧАНИЕ: Для обладателей систем Antergos и Manjaro не имеет смысла что-либо подключать или отключать, за вас это уже сделали разработчики.
Так же доступны зеркала серверов с репозиториями, которые вы можете подключить. Для Antergos редактируем 2 файла списков зеркал.
Репозитории Archlinux:
kdesu kate /etc/pacman.d/mirrorlist
Вставляем в самом верху строчку:
Server = http://mirror.yandex.ru/archlinux/$repo/os/$arch
Репозиторий Antergos:
kdesu kate /etc/pacman.d/antergos-mirrorlist
Вставляем в самом верху строчку:
Server = http://mirror.yandex.ru/mirrors/cinnarch/$repo/$arch
После добавления обновляем принудительно список пакетов:
sudo pacman -Syy

AUR
Я понимаю, что вас утомил ) Но теперь мы добрались до самого вкусного.
AUR (Arch User Repository) - это неофициальный пользовательские репозитория, который поддерживается только пользователями. Разработчики ОС не несут ответственности за содержание и стабильность этих репозиториев. Поэтому все, что вы устанавливаете из AUR - вы делаете на свой риск и страх! Но переживать не стоит, потому как большинство стабильных и проверенных программ уже доступно в официальных репозиториях. AUR незаменим и очень удобен для установки небольших программ, тем оформления, значков, каких-то интересных утилит и т.д.


В отличии от других репозиториев, репозитория AUR имеют ряд преимуществ:

  • Отдельная WEB-страница для поиска пакетов, голосования за пакет, комментарии, составление багрепорта и т.д.
  • Сами репозитория содержат в себе только специальные текстовые файлы для установки PKGBUILD, patch, install  и т.д.
  • Вы сами можете создать свой репозиторий с нужными программами или изменить его при установке.
  • Специальная утилита yaourt, которая является скриптом-надстройкой для pacman и позволяет работать с репозиториями AUR.
Теперь давайте это все пережуем ) И так, как вы уже поняли в AUR находятся только текстовые файлы установки. Главным из них является PKGBUILD, в котором описана информация о пакете, версии, зависимостях для сборки и установки, конфликтующие или заменяющие пакеты, ссылка на исходный код и команды компиляции и сборки пакета. Грубо говоря состав PKGBUILD - эта некая смесь дебиановского rules и control. Да, в отличии от Launchpad где пакеты собираются роботами, вы компилируете и собираете пакет на своем ПК. Поэтому подумайте несколько раз стоит ли собирать какой-нибудь mesa-git, который будет компилироваться несколько часов. Описывать структуру PKGBUILD я не буду, кто захочет, тот сам сможет узнать как правильно создать свой PKGBUILD в вики.
И плавно переходим к работе с AUR. Как я уже писал выше, для AUR существует множество утилит для работы. Одной из самых популярных является yaourt (в народе йогурт), ее мы и будем использовать.
Поиск пакета viber в AUR:
yaourt -Ss viber
Установка пакета viber из AUR:
yaourt -S viber
ВАЖНО: Не рекомендуется использовать sudo для работы с yaourt, для безопасности вашей ОС. yaourt автоматически запросит пароль, когда это будет необходимо.
Удаление пакетов производится через pacman обычным способом:
sudo pacman -R viber
Так же поступаем и с рекурсивным удалением:
sudo pacman -Rs viber
Получение исходников viber из AUR:
yaourt -G viber
Компиляция и сборка локального пакета (должен присутствовать файл PKGBUILD):
makepkg
Установка локального пакета:
sudo pacman -U пакет

На этом всё. Будьте осторожны при обновлениях, читайте новости и смотрите что удаляете.

6 комментариев:

  1. А я наверно по-деревенски пользуюсь, но работает! Из октопи ищу пакет нужный просто в строке поиска, если не находит, значит пакет в AUR. Жму не черепушку с костями (рядом со строкой поиска) - значит перехожу в AUR, снова вбиваю поиск - и вуаля нужный пакет или программа найдена!

    ОтветитьУдалить
    Ответы
    1. Да, тоже пользуюсь Octopi для поиска. Более наглядней и удобней.

      Удалить
    2. Попробуйте Pamac, он сразу ищет в родных репозиториях и в AUR.

      Удалить
    3. Спасибо, попробую.
      Отдельное преимущество AUR - можно ставить всякие "горячие" плюшки - различные git версии программ, снапшоты. В Ubuntu такого не найти, там надо ждать, пока репозитории обновят и не факт, что сделают это быстро, могут и болт забить.
      Поставил снапшот браузера Vivaldi, очень понравился. Плюс обновления со скоростью от разрабов..

      Удалить
  2. Блин, так вы эти йогурты вкусно описываете, что так и хочется спрыгнуть с Минта на Antergos. Хотя там все работает и не глючит :)Но прям подмывает новый дистр установить, уже и образ скачал.

    ОтветитьУдалить
  3. Этот комментарий был удален автором.

    ОтветитьУдалить