Arch linux настройка репозиториев

Загрузка пакетов сообществ Arch Linux с помощью Yaourt

Что может расстроить новичков Arch Linux­ – так это очень небольшое количество официальных пакетов, которые можно загрузить с помощью стандартного менеджера pacman. Данный мануал научит вас загружать разные пакеты на Arch Linux­ при помощи Yaourt.

  • PKGBUILD: сценарий сборки пакетов Arch.
  • makepkg: инструмент, который читает PKGBUILD и собирает пакет для Arch.
  • AUR: Arch User Repository, коллекция сценариев PKGBUILD, разработанных сообществом.
  • pacman: стандартный инструмент управления пакетами Arch Linux.
  • yaourt: инструмент для сборки пакетов AUR.

Философия

После создания свежего сервера Arch Linux вы получаете доступ к 3 стандартным репозиториям pacman:

Репозиторий community поддерживается пользователями Arch.

Разработчики Arch очень строго относятся к пакетам, и пакеты редко становятся стандартными. Кроме того, что пакет должен набрать определенное количество голосов, его также должен использовать так называемый «доверенный пользователь». Разработчики системы не видят смысла предоставлять доступ к пакету через стандартный менеджер, пока пакет не используется большинством пользователей системы. Это отличает Arch от других дистрибутивов, многие из которых пытаются поддерживать как можно больше официальных пакетов (что чаще всего не получается делать). В Arch очень мало доверенных пользователей и немногим более 2000 пакетов, разработанных сообществом.

Однако, в отличие от многих дистрибутивов, Arch Linuxподдерживает дополнительный репозиторий сообщества – Arch User Repository. AUR – простой репозиторий, который поддерживается исключительно сообществом, благодаря чему количество пакетов в нем постоянно растет.

Пакеты AUR – это не исходный код и не бинарные файлы. Это сценарии (PKGBUILD), которые позволяют загрузить, собрать и установить программу. Этот подход к управлению пакетами унаследован из портов FreeBSD. Если рассмотреть PKGBUILD в исходно-бинарном контексте, то исходником здесь может быть что угодно – от репозитория git до пакетов .deb. Кроме того, тут нет никаких лицензионных ограничений.

Arch Linux – дистрибутив плавающих релизов, потому любой загруженный из AUR или стандартного репозитория пакет будет предоставлять последнюю доступную для Arch версию (даже если версия системы устарела). Поскольку загрузить можно только одну версию каждого пакета, пакеты проще исправлять (и исправления затронут все версии). Если обновление версии пакета может помешать работе системы, вы можете использовать более старую версию – для этого нужно изменить версию в PKGBUILD.

Arch Linux vs. обычный Linux

  • Стандартные пакеты поддерживаются разработчиками Arch и доверенными пользователями.
  • Пакеты, разработанные сообществом, хранятся отдельно в AUR. В репозитории находится по одному релизу для каждого пакета, потому сообщество может коллективно исправлять ошибки. Такая прозрачность привлекает в сообщество новых пользователей.
  • Стандартные пакеты загружаются на одних условиях, хотя поддерживаются на разных условиях.
  • Версия пакета зависит от релиза. Коллективная работа над исправлениями невозможна.

Ubuntu предлагает подобный AUR репозиторий, который называется universe. На данный момент он включен в систему по умолчанию. Ситуация в Ubuntu аналогична ситуации, когда пользователи Arch получают доступ к нескольким различным AUR с помощью pacman прямо из коробки, но без поддержки проектов с закрытым исходным кодом и без средств немедленной обратной связи с сообществом.

Отсутствие диалога о пакетах в Ubuntu подкрепляется такими словами на странице пакета:

It should generally not be necessary for users to contact the original maintainer.

Что такое Yaourt?

Хотя в AUR есть много хороших и постоянно поддерживаемых пакетов, у пользователей нет к ним доступа сразу после установки Arch. Однако в ArchWiki есть страница о вспомогательных инструментах, которые помогают упростить загрузку пакета. Одним из лучших среди таких инструментов является yaourt.

Yaourt сводит запутанный процесс установки пакетов AUR до поиска по ключевым словам и серии вопросов «да/нет». Он также эффективно заменяет pacman, так как он может искать и устанавливать как AUR, так и стандартные пакеты.

Установка Yaourt

Yaourt можно получить двумя способами:

  • Добавить репозиторий archlinuxfr в /etc/pacman.conf.
  • Собрать yaourt из AUR.
Читайте также:  Офис 2007 для windows 10 без активации

Ниже мы рассмотрим оба варианта, но первый гораздо проще. Если вы хотите научиться загружать и устанавливать пакеты из AUR, сразу переходите к методу 2.

Метод 1: Установка из репозитория

Откройте конфигурационный файл pacman, чтобы добавить пользовательский репозиторий.

sudo vi /etc/pacman.conf

В конец добавьте репозиторий archlinuxfr:

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

Переменная $arch просто определяет дистрибутив x86 или x86_64. Она будет заменена при обработке файла.

После того, как пользовательский репозиторий был добавлен в pacman.conf, нужно синхронизировать базу данных пакета с пакетами из archlinuxfr и всеми обновлениями стандартных пакетов, для которых требуется yaourt или его зависимости.

После этого yaourt и его зависимости можно установить так же, как и любой другой пакет.

sudo pacman -S yaourt

Последние две команды можно объединить в одну:

sudo pacman -Sy yaourt

Метод 2: установка с помощью AUR

Скажем сразу – это не для слабонервных. Но этот метод научит вас загружать, собирать и устанавливать любой пакет из AUR в отсутствие вспомогательного инструмента, такого как yaourt.

Общий процесс выглядит следующим образом:

  1. Загрузить tarball, содержащий PKGBUILD
  2. РАспаковать архив
  3. Запустить makepkg в папке, содержащей PKGBUILD
  4. Установить полученный файл .xz

Во-первых, yaourt нужен пакет package-query.

Обновите стандартные хранилища.

Загрузите файл из AUR.

curl -O https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz

Распакуйте файл, чтобы получить доступ к PKGBULD:

tar zxvf package-query.tar.gz

Перейдите в папку с PKGBUILD.

Соберите пакет. Флаг –s синхронизирует зависимости пакета из стандартных репозиториев с pacman до сборки пакета.

Примечание: Если у вас нет настроенного пользователя, добавьте флаг –asroot, чтобы запустить makepkg как root. В нормальных условиях собирать пакеты как root не рекомендуется, поскольку PKGBUILD может содержать вредоносный или неправильный код.

makepkg -s —asroot

Установите файл, собранный командой makepkg. В makepkg можно использовать флаг -i (т.е. makepkg -si вместо makepkg -s), чтобы объединить установку с предыдущей командой.

sudo pacman -U *.xz

Затем сделайте то же самое с архивом yaourt:

curl -O https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz
tar zxvf yaourt.tar.gz
cd yaourt
makepkg -si

Примечание: Несмотря на то, что package-query является зависимостью yaourt, флаг -s в makepkg не будет синхронизировать его, поскольку он не находится в стандартных репозиториях. Вот почему его нужно было собирать отдельно. Хотя package-query находится в репозитории archlinuxfr, как только вы его добавите, вы сможете также установить yaourt через pacman. Поскольку yaourt обрабатывает зависимости AUR, обычно не нужно собирать зависимости AUR отдельно.

Использование Yaourt

Как правило, работа yaourt начинается с передачи ему желаемого ключевого слова. Yaourt будет искать его как в именах пакетов, так и в описаниях.

При поиске yaourt выведет все совпадения на экран:

  • Описание
  • Номер версии
  • Установлен ли пакет в системе
  • Количество голосов за пакет

Если установленный пакет старше, чем в AUR, он будет выделен. Это полезно для отслеживания пакетов, которые нарушают работу системы.

Когда вы выбираете пакет из списка, yaourt показывает последние комментарии и спрашивает, хотите ли вы отредактировать PKGBUILD. Это позволяет редактировать пакет, если с ним что-то не так. Если кто-то разместил исправление в комментариях, вы можете внести изменения в PKGBUILD, прежде чем yaourt соберет его через makepkg.

Помимо поиска, yaourt поддерживает другие стандартные операции управления пакетами.

  • yaourt -S: установить или обновить пакет
  • yaourt -Sy: синхронизировать базу данных пакета pacman
  • yaourt -R: удалить пакет
  • yaourt -G: получить PKGBUILD для пакета
  • yaourt –stats: показать, сколько места использует пакет

У Yaourt есть опция экспорта для хранения пакетов после их создания.

yaourt -Sb —export

Это можно использовать для создания бинарных резервных копий важных пакетов. Если вы хотите создать и архивировать пакет, не устанавливая его, просто выберите no на этапе установки.

Источник

Official repositories (Русский)

Репозиторий — хранилище пакетов программ, которые можно загрузить и установить на компьютер.

Официальные репозитории Arch Linux содержат наиболее важное и популярное программное обеспечение, которое можно легко получить и установить при помощи pacman. Эти репозитории поддерживают мейнтейнеры пакетов.

Пакеты в официальных репозиториях постоянно обновляются, при этом старые версии пакетов сразу удаляются. В Arch нет главных (major) релизов дистрибутива: каждый пакет обновляется сразу после того, как его новая версия становится доступна в upstream. Каждый репозиторий полноценен в том смысле, что содержит в себе совместимые между собой версии программ.

Читайте также:  System windows forms keys control

Contents

Стабильные репозитории

Этот репозиторий можно найти в каталоге . /core/os/ на каждом из доступных зеркал.

core содержит пакеты для:

  • Загрузки Arch Linux
  • Подключения к интернету
  • Сборки пакетов
  • Управления и восстановления поддерживаемых файловых систем
  • Процесса установки системы (например, openssh )

а также все необходимые зависимости этих пакетов (необязательно из makedepends) и мета-пакета base .

core имеет достаточно строгие требования к качеству. Разработчики/пользователи должны подтвердить (в ответ на signoff-запрос в почтовой рассылке) работоспособность обновлений, прежде чем они будут приняты. Для малоиспользуемых пакетов обычно достаточно следующих шагов: информирование пользователей об обновлении, запрос подтверждений, удержание пакета в #testing около недели (в зависимости от серьёзности изменений), отсутствие серьёзных баг-репортов и неявное подтверждение от мейнтейнера пакета.

extra

Этот репозиторий можно найти в каталоге . /extra/os/ на каждом из доступных зеркал.

extra содержит все пакеты, которые не подходят для core. Например: Xorg, оконные менеджеры, веб-браузеры, медиаплееры, инструменты для работы с языками, такими как Python и Ruby, и многое другое.

community

Этот репозиторий можно найти в каталоге . /community/os/ на каждом из доступных зеркал.

community содержит пакеты из AUR, принятые доверенными пользователями. Некоторые из этих пакетов в конечном итоге могут оказаться в репозиториях core или extra, если разработчики посчитают их важными для дистрибутива.

multilib

Этот репозиторий можно найти в каталоге . /multilib/os/ на каждом из доступных зеркал.

multilib содержит 32-битное программное обеспечение и библиотеки, которые можно использовать для запуска и сборки 32-битных приложений на 64-битных системах (например, wine , steam и т.д.).

32-битные библиотеки хранятся в директории /usr/lib32/ при включённом репозитории multilib.

Включение multilib

Раскомментируйте раздел [multilib] в /etc/pacman.conf , чтобы включить репозиторий multilib:

Затем обновите систему и установите необходимые multilib-пакеты.

Отключение multilib

Выполните следующую команду, чтобы удалить все пакеты, установленные из репозитория multilib:

Если вы столкнулись с конфликтами с gcc-libs, переустановите пакет gcc-libs и группу base-devel .

Закомментируйте раздел [multilib] в /etc/pacman.conf :

Тестовые репозитории

Тестовые репозитории предоставляют площадку для размещения пакетов перед принятием их в основные репозитории. Сопровождающие пакетов (и широкая аудитория) могут получить доступ к тестовым пакетам, чтобы убедиться в отсутствии проблем при работе с новой версией приложения. Пакет может быть перемещён в основные репозитории, как только он был протестирован и ошибок не было обнаружено.

Требование тестирования пакетов в таких репозиториях обязательно только для пакетов из репозитория core и пакетов, затрагивающих множество других программ (например, perl и python ), а также обычно применимо к большим коллекциям ПО, например, GNOME или KDE.

testing

Этот репозиторий можно найти в каталоге . /testing/os/ на каждом из доступных зеркал.

testing содержит пакеты, являющиеся кандидатами на внесение в репозитории core и extra.

Новые пакеты попадают в testing в следующих случаях:

  • Они предназначены для репозитория core. Все пакеты для core сперва должны пройти через testing.
  • Есть вероятность того, что они повредят что-либо при обновлении, в следствие чего их необходимо сперва протестировать.

testing — единственный репозиторий, в котором могут быть совпадения имён с другими официальными репозиториями. Если он включён, он должен быть первым репозиторием среди перечисленных в файле /etc/pacman.conf .

community-testing

Этот репозиторий похож на репозиторий testing, но создан для пакетов, являющихся кандидатами на внесение в репозиторий community.

multilib-testing

Этот репозиторий похож на репозиторий testing, но создан для пакетов, являющихся кандидатами на внесение в репозиторий multilib.

gnome-unstable

Этот репозиторий содержит пакеты с будущим релизом (или кандидатом в релиз) окружения рабочего стола GNOME до их перевода в главный репозиторий testing.

Добавьте нижеприведенные строки в файл /etc/pacman.conf , чтобы включить данный репозиторий:

Репозиторий gnome-unstable должен быть первым в списке репозиториев (в том числе выше записи для репозитория testing).

Информацию об относящихся к упаковке багах сообщайте в нашу систему отслеживания ошибок, прочая информация должна направляться непосредственно разработчикам на GNOME Gitlab.

kde-unstable

Этот репозиторий содержит самую свежую бета-версию или версию-кандидат на выпуск KDE Plasma и Applications.

Читайте также:  Как вернуть все файлы после переустановки windows

Добавьте нижеприведенные строки в файл /etc/pacman.conf , чтобы включить данный репозиторий:

Репозиторий kde-unstable должен быть первым в списке репозиториев (в том числе выше записи для репозитория testing).

Отключение тестовых репозиториев

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

  1. Удалить (закомментировать) их из файла /etc/pacman.conf .
  2. Выполнить pacman -Syuu , чтобы «откатить» обновления из этих репозиториев.

Второй пункт необязателен, но помните об этом на случай, если вы заметите какие-либо проблемы.

Репозитории Staging

Данные репозитории содержат нерабочие пакеты и используются исключительно разработчиками во время одновременной пересборки большого количества пакетов. Чтобы пересобрать пакет, зависящий, например, от новой разделяемой библиотеки, необходимо сначала собрать саму библиотеку и загрузить её в staging-репозиторий — таким образом она будет доступна другим разработчикам. После пересборки всех зависимых пакетов эту группу перемещают в тестовые или основные репозитории (в зависимости от случая).

См. [1] для получения информации об исторических деталях.

Историческая справка

Разделение репозиториев появилось по историческим причинам. Когда дистрибутивом не пользовалось много людей, был только один репозиторий, известный как official (нынешний core). В то время official содержал в основном приложения, которые предпочитал Джадд Винет (Judd Vinet — основатель Arch Linux). Репозиторий был устроен таким образом, чтобы содержать «всего по одному»: одно окружение рабочего стола, один основной браузер и т.д.

Конечно, были пользователи, которым не нравился выбор Джадда, и, когда появилась удобная система сборки пакетов, они начали создавать собственные пакеты. Эти пакеты вошли в репозиторий unofficial и поддерживали их другие разработчики, а не Джадд. В конце концов, разработчиками было принято решение поддерживать оба репозитория, и названия official и unofficial перестали отображать их истинный смысл. Примерно в районе версии 0.5 названия были изменены на current и extra.

Вскоре после выхода версии 2007.8.1, current был переименован в core, чтобы не было неоднозначностей в трактовке того, что, собственно, должен содержать репозиторий. Сейчас репозитории практически равны в глазах разработчиков и сообщества, но core имеет некоторые отличия. Самое главное из них — то, что только пакеты из core включаются в установочные CD и релизы. Этот репозиторий все ещё содержит полноценную систему Linux, однако, скорее всего, это не та система, которую вы хотели бы использовать.

Примерно между версиями 0.5 и 0.6 обнаружилось, что есть большое количество пакетов, которые разработчики не хотели поддерживать. Джейсон Чу (Jason Chu) создал неофициальные «Репозитории Доверенных Пользователей» (Trusted User Repositories), где доверенные пользователи могли размещать созданные ими пакеты. Также существовал репозиторий staging, из которого пакеты могли быть перенесены в официальные репозитории одним из разработчиков Arch Linux, но, если не считать этого пункта, разработчики и доверенные пользователи были практически равны.

Такое разделение работало до тех пор, пока доверенным пользователям не надоело поддерживать собственные репозитории, а обычные пользователи не захотели выкладывать свои пакеты. Это привело к развитию AUR. Доверенные пользователи объединились в меньшую по размеру группу, которая сейчас поддерживает репозиторий community. Доверенные пользователи все ещё образуют отдельную от разработчиков Arch Linux группу и довольно мало общаются между собой. Тем не менее, популярные пакеты время от времени все ещё перемещают из community в extra. AUR позволяет также обычным пользователям выкладывать свои файлы PKGBUILD.

После того, как однажды ядро из репозитория core поломало множество систем, в репозитории была введена политика подтверждения («core signoff policy»). С тех пор все обновления пакетов для core должны сперва пройти через репозиторий testing и только после нескольких подтверждений («signoffs») от других разработчиков пакет можно перенести. Через какое-то время было замечено, что некоторые пакеты в core почти не используются, а число подписей пользователей и отсутствие отчётов об ошибках неофициально стали критерием для утверждения таких пакетов.

В конце 2009 и начале 2010, в связи с созданием новых файловых систем и желанием поддерживать их при установке, а также осознанием того, что репозиторий core никогда не был чётко структурирован (просто «важные пакеты, выбранные разработчиками»), назначение репозитория было сформулировано более точно.

Источник

Оцените статью