arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
284 lines (182 loc) • 30.4 kB
Markdown
Ссылки по теме
* [Стандарты создания пакетов для Arch](/index.php/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D1%8B_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_Arch "Стандарты создания пакетов для Arch")
* [Пользовательский репозиторий Arch](/index.php/%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9_%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B9_Arch "Пользовательский репозиторий Arch")
* [Создание пакетов](/index.php/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2 "Создание пакетов")
* [Сборка ядра через ABS](/index.php/Kernels_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9A.D0.BE.D0.BC.D0.BF.D0.B8.D0.BB.D1.8F.D1.86.D0.B8.D1.8F_.D1.8F.D0.B4.D1.80.D0.B0 "Kernels (Русский)")
* [makepkg (Русский)](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)")
* [Официальные репозитории](/index.php/%D0%9E%D1%84%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B8 "Официальные репозитории")
* [pacman (Русский)](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)")
* [PKGBUILD (Русский)](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)")
* [Patching in ABS](/index.php/Patching_in_ABS "Patching in ABS")
**Состояние перевода:** На этой странице представлен перевод статьи [Arch Build System](/index.php/Arch_Build_System "Arch Build System"). Дата последней синхронизации: 6 сентября 2015\. Вы можете [помочь](/index.php/ArchWiki_Translation_Team_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "ArchWiki Translation Team (Русский)") синхронизировать перевод, если в английской версии произошли [изменения](https://wiki.archlinux.org/index.php?title=Arch_Build_System&diff=0&oldid=398463).
В этой статье представлен обзор системы сборки Arch (сокращенно ABS) и пошаговое руководство для начинающих. Это не исчерпывающее руководство. Если вам нужна дополнительная информация, обратитесь к man страницам.
**Примечание:** Дерево ABS синхронизируется один раз в день, поэтому оно может не содержать то, что уже доступно в репозиториях.
## Contents
* [1 Что такое Arch Build System?](#.D0.A7.D1.82.D0.BE_.D1.82.D0.B0.D0.BA.D0.BE.D0.B5_Arch_Build_System.3F)
* [1.1 Что такое система наподобие портов?](#.D0.A7.D1.82.D0.BE_.D1.82.D0.B0.D0.BA.D0.BE.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D0.B0_.D0.BD.D0.B0.D0.BF.D0.BE.D0.B4.D0.BE.D0.B1.D0.B8.D0.B5_.D0.BF.D0.BE.D1.80.D1.82.D0.BE.D0.B2.3F)
* [1.2 ABS имеет такую же концепцию](#ABS_.D0.B8.D0.BC.D0.B5.D0.B5.D1.82_.D1.82.D0.B0.D0.BA.D1.83.D1.8E_.D0.B6.D0.B5_.D0.BA.D0.BE.D0.BD.D1.86.D0.B5.D0.BF.D1.86.D0.B8.D1.8E)
* [1.3 Обзор ABS](#.D0.9E.D0.B1.D0.B7.D0.BE.D1.80_ABS)
* [2 Зачем мне использовать ABS?](#.D0.97.D0.B0.D1.87.D0.B5.D0.BC_.D0.BC.D0.BD.D0.B5_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D1.8C_ABS.3F)
* [3 Как использовать ABS](#.D0.9A.D0.B0.D0.BA_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D1.8C_ABS)
* [3.1 Установка инструментов](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B8.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2)
* [3.2 /etc/abs.conf](#.2Fetc.2Fabs.conf)
* [3.3 Дерево ABS](#.D0.94.D0.B5.D1.80.D0.B5.D0.B2.D0.BE_ABS)
* [3.3.1 Загрузка дерева ABS](#.D0.97.D0.B0.D0.B3.D1.80.D1.83.D0.B7.D0.BA.D0.B0_.D0.B4.D0.B5.D1.80.D0.B5.D0.B2.D0.B0_ABS)
* [3.4 /etc/makepkg.conf](#.2Fetc.2Fmakepkg.conf)
* [3.4.1 Задание переменной PACKAGER в /etc/makepkg.conf](#.D0.97.D0.B0.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.BE.D0.B9_PACKAGER_.D0.B2_.2Fetc.2Fmakepkg.conf)
* [3.4.1.1 Отобразить все пакеты (включая пакеты из AUR)](#.D0.9E.D1.82.D0.BE.D0.B1.D1.80.D0.B0.D0.B7.D0.B8.D1.82.D1.8C_.D0.B2.D1.81.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B_.28.D0.B2.D0.BA.D0.BB.D1.8E.D1.87.D0.B0.D1.8F_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B_.D0.B8.D0.B7_AUR.29)
* [3.4.1.2 Отобразить только пакеты из репозиториев](#.D0.9E.D1.82.D0.BE.D0.B1.D1.80.D0.B0.D0.B7.D0.B8.D1.82.D1.8C_.D1.82.D0.BE.D0.BB.D1.8C.D0.BA.D0.BE_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B_.D0.B8.D0.B7_.D1.80.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.82.D0.BE.D1.80.D0.B8.D0.B5.D0.B2)
* [3.5 Создание каталога для сборки](#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BA.D0.B0.D1.82.D0.B0.D0.BB.D0.BE.D0.B3.D0.B0_.D0.B4.D0.BB.D1.8F_.D1.81.D0.B1.D0.BE.D1.80.D0.BA.D0.B8)
* [3.6 Сборка пакета](#.D0.A1.D0.B1.D0.BE.D1.80.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0)
* [3.6.1 fakeroot](#fakeroot)
* [3.7 Оставлять модифицированные пакеты](#.D0.9E.D1.81.D1.82.D0.B0.D0.B2.D0.BB.D1.8F.D1.82.D1.8C_.D0.BC.D0.BE.D0.B4.D0.B8.D1.84.D0.B8.D1.86.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B)
* [4 Другие инструменты](#.D0.94.D1.80.D1.83.D0.B3.D0.B8.D0.B5_.D0.B8.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B)
## Что такое Arch Build System?
Arch Build System — это система *наподобие портов* для сборки и пакетирования программ из исходного кода. [Pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)") является специализированным инструментом в Arch для управления бинарными пакетами (включая пакеты, собираемые с помощью ABS), а ABS — это набор инструментов для компиляции исходников в пакеты `.pkg.tar.xz`, которые уже можно устанавливать.
### Что такое система наподобие портов?
*Порты* — это система используемая в *BSD для автоматизации процесса сборки программ из исходного кода. Система использует *порт* для загрузки, распаковки, исправления, компиляции и установки нужной программы. *Порт* — это всего лишь небольшой каталог на компьютере пользователя, название которого соответствует устанавливаемой программе. Этот каталог содержит несколько файлов, которые содержат инструкции по сборке и установке программ из исходных кодов. Таким образом для установки программы всего лишь нужно выполнить `make` или `make install clean` находясь в каталоге порта.
### ABS имеет такую же концепцию
ABS состоит из дерева каталогов (дерева ABS), которое находится в `/var/abs`. Это дерево содержит множество подкаталогов, распределённых по названиям репозиториев и названых в соответствии с названием пакета. Это дерево представляет собой (но не содержит) все *официальные программы Arch*, получаемые через систему SVN. Вы можете воспринимать каждый такой подкаталог как 'ABS', хотя большинство называют их 'портами'. Эти ABS (или подкаталоги) не содержат ни пакета с программой, ни исходных кодов, а только файл [PKGBUILD](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)") (и иногда другие файлы). PKGBUILD — это просто Bash скрипт для сборки — текстовый файл, содержащий инструкции по компиляции и упаковке пакета, а также URL соответствующего tarball архива с **исходниками**, который нужно скачать. (Самым главным компонентом ABS являются PKGBUILDы.) Выполнив команду [makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)") в ABS каталоге, программа сначала компилируется, а затем *упаковывается* внутри каталога сборки. Теперь вы можете воспользоваться [pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)") (пакетным менеджером Arch Linux), для установки, обновления или удаления вашего нового пакета.
### Обзор ABS
'ABS' можно использовать в качестве обобщающего термина, поскольку она неразрывно связана с некоторыми другими компонентами. Несмотря на то, что это технически неверно, под 'ABS' может подразумеваться набор следующих компонентов:
Дерево ABS
Структура каталогов ABS. Каталоги синхронизируется с SVN и расположены в `/var/abs/` на вашем (локальном) компьютере. Дерево содержит много подкаталогов, названных в соответствии со всеми доступными официальными программами Arch Linux из репозиториев, которые прописаны в `/etc/abs.conf`, но не сами пакеты. Дерево создаётся после установки пакета [abs](https://www.archlinux.org/packages/?name=abs) с помощью [pacman](/index.php/Pacman "Pacman") и последующего выполнения скрипта `abs`.
**Примечание:** Сами пакеты находятся в [svn](https://www.archlinux.org/svn/) и [git](https://projects.archlinux.org/svntogit/packages.git/) репозиториях, а скрипт `abs` скачивает их с помощью [rsync](/index.php/Rsync "Rsync").
[PKGBUILD](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)")
[Bash](/index.php/Bash_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Bash (Русский)") скрипт, который содержит URL исходного кода и инструкции по компиляции и упаковыванию пакета.
[makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)")
Шелл команда, которая читает PKGBUILDы, автоматически скачивает и компилирует исходники и создаёт `.pkg.tar*` в зависимости от массива `PKGEXT` в `makepkg.conf`. Вы также можете использовать makepkg, чтобы собирать ваши собственные пакеты из [AUR](/index.php/AUR_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "AUR (Русский)") или других источников. Для дополнительной информации смотрите [Создание пакетов](/index.php/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2 "Создание пакетов").
[pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)")
pacman — это совершенно независимая программа. Он всегда используется либо программой makepkg либо вручную для установки и удаления собранных пакетов и для просмотра зависимостей.
[AUR](/index.php/AUR_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "AUR (Русский)")
Пользовательский репозиторий Arch — это не имеющие отношение к ABS PKGBUILDы (неподдерживаемые), которые используются программой makepkg для компиляции и упаковки программ. В отличие от дерева ABS, которое расположено на вашем локальном компьютере, AUR представлен в виде веб сайта. AUR содержит тысячи PKGBUILDов, созданных пользователями для программ, которые недоступны в качестве официальных пакетов Arch. Если вам нужно собрать пакет, которого нет в официальном дереве Arch, то вероятнее всего вы найдёте его в AUR.
## Зачем мне использовать ABS?
Система сборки Arch используется для:
* Компиляции или перекомпиляции пакета по какой-либо причине
* Сборки и установки новых пакетов из исходных кодов для программ, для которых ещё нет пакетов (смотрите [Создание пакетов](/index.php/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2 "Создание пакетов"))
* Изменения существующих пакетов под ваши нужды (включение или отключение опций, наложение патчей)
* Перестройки всей системы с использованием новых флагов компиляции "à la FreeBSD" (например с [pacbuilder](/index.php/Pacbuilder "Pacbuilder"))
* Чистой сборки и установки вашего собственного ядра (смотрите [Компиляция ядра](/index.php/Kernels_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9A.D0.BE.D0.BC.D0.BF.D0.B8.D0.BB.D1.8F.D1.86.D0.B8.D1.8F_.D1.8F.D0.B4.D1.80.D0.B0 "Kernels (Русский)"))
* Получения работающих модулей ядра для вашего собственного ядра
* Легкой компиляции и установки новой/старой/бета или девел версии Arch пакета, с помощью редактирования номера версии в PKGBUILD
ABS не является необходимой для использования в Arch Linux, но она удобна для автоматизации некоторых задач при компиляции из исходников.
## Как использовать ABS
Сборка пакетов с помощью abs состоит из следующих шагов:
1. Установка пакета [abs](https://www.archlinux.org/packages/?name=abs) с помощью [pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)").
2. Запуск команды `abs` с правами root для создания дерева ABS, синхронизированного с сервером Arch Linux.
3. Копирование файлов для сборки (обычно расположенных в `/var/abs/<репозиторий>/<название_пакета>`) в каталог сборки.
4. Переход в этот каталог, редактирование PKGBUILD (если это необходимо) и выполнение команды **makepkg**.
5. В соответствии с инструкциями в PKGBUILD, makepkg скачает нужный tarball архив с исходным кодом, распакует его, наложит патч (если необходимо), скомпилирует в соответствии с флагами `CFLAGS`, заданными в `makepkg.conf` и наконец сожмёт собранные файлы в пакет с расширением `.pkg.tar.gz` или `.pkg.tar.xz`.
6. Установка, заключающаяся в выполнении команды `pacman -U <файл .pkg.tar.xz>`. Удаление пакета также осуществляется с помощью pacman.
### Установка инструментов
Чтобы использовать ABS, вы должны [установить](/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C "Установить") пакет [abs](https://www.archlinux.org/packages/?name=abs).
Этот пакет включает в себя скрипты синхронизации abs, некоторые скрипты сборки и [rsync](/index.php/Rsync "Rsync") (в качестве зависимости, если он у вас ещё не установлен).
Однако, перед тем как вы сможете что-то собрать, вам также понадобятся основные инструменты сборки. Они уже подготовлены для вас в [группе пакетов](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B3.D1.80.D1.83.D0.BF.D0.BF.D1.8B_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2 "Pacman (Русский)") [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/). Эту группу можно установить с помощью pacman.
### /etc/abs.conf
Отредактируйте файл `/etc/abs.conf`, чтобы он включал в себя нужные вам репозитории.
Уберите `!` перед соответствующими репозиториями. Например:
```
REPOS=(core extra community !testing)
```
### Дерево ABS
Дерево ABS — это иерархия каталогов, синхронизируемая с SVN, расположенная в `/var/abs` и выглядит оно примерно так:
```
| -- core/
| || -- acl/
| || || -- PKGBUILD
| || -- attr/
| || || -- PKGBUILD
| || -- abs/
| || || -- PKGBUILD
| || -- autoconf/
| || || -- PKGBUILD
| || -- ...
| -- extra/
| || -- acpid/
| || || -- PKGBUILD
| || -- apache/
| || || -- PKGBUILD
| || -- ...
| -- community/
| || -- ...
```
Дерево ABS имеет в точности такую же структуру, как и база данных пакетов:
* Первый уровень вложенности: Название репозитория
* Второй уровень вложенности: Каталоги, названные именами пакетов
* Третий уровень вложенности: PKGBUILD (содержит информацию, необходимую для сборки пакета) и другие необходимые файлы (патчи и иные файлы, необходимые для сборки пакета)
Исходные код для пакетов не представлен в ABS каталоге. Вместо этого `PKGBUILD` содержит URL, с которого будет произведена загрузка исходных кодов когда пакет будет собираться. Поэтому размер дерева abs довольно мал.
#### Загрузка дерева ABS
Выполните:
```
# abs
```
Теперь ваше дерево ABS находится в каталоге `/var/abs`. Обратите внимание, что ветви дерева ABS были созданы в соответствии с заданными вами репозиториями в `/etc/abs.conf`.
Команду abs нужно выполнять периодически, чтобы ваше дерево было синхронизировано с официальными репозиториями. Файлы конкретного ABS пакета можно также закачать командой:
```
# abs <репозиторий>/<пакет>
```
В этом случае вам не нужно обновлять всё дерево только для того, чтобы собрать один пакет.
### /etc/makepkg.conf
Файл `/etc/makepkg.conf` программы [makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)") определяет глобальные переменные окружения и флаги компиляции, которые вы можете захотеть отредактировать если вы используете [SMP](https://en.wikipedia.org/wiki/ru:%D0%A1%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BD%D0%BE%D1%81%D1%82%D1%8C для дополнительной информации.)
#### Задание переменной PACKAGER в /etc/makepkg.conf
Настройка переменной `PACKAGER` в файле `/etc/makepkg.conf` является необязательным, но *настоятельно рекомендуемым* шагом. Это позволяет сделать "пометку", чтобы быстро определить, какие пакеты были собраны и/или установлены ВАМИ, а не официальным сопроводителем! Это можно легко сделать с помощью [expac](https://www.archlinux.org/packages/?name=expac):
##### Отобразить все пакеты (включая пакеты из AUR)
`$ grep myname /etc/makepkg.conf` `PACKAGER="myname <myemail@myserver.com>"` `$ expac "%n %p" | grep "myname" | column -t`
```
archey3 myname
binutils myname
gcc myname
gcc-libs myname
glibc myname
tar myname
```
##### Отобразить только пакеты из репозиториев
В этом примере отобразятся только те пакеты, которые находятся в репозиториях, заданных в `/etc/pacman.conf`:
`$ . /etc/makepkg.conf; grep -xvFf <(pacman -Qqm) <(expac "%n\t%p" | grep "$PACKAGER$" | cut -f1)`
```
binutils
gcc
gcc-libs
glibc
tar
```
### Создание каталога для сборки
Рекомендуется создать каталог, в котором непосредственно будет производиться компиляция; вы никогда не должны изменять дерево ABS, производя сборку в его каталогах, поскольку данные будут потеряны (перезаписаны) при каждом обновлении ABS. Хорошей практикой является использование вашего домашнего каталога, хотя некоторые пользователи Arch предпочитают создавать каталог 'local' в `/var/abs/`, которым владеет обычный пользователь.
Создайте ваш каталог для сборки, например:
```
$ mkdir -p $HOME/abs
```
Скопируйте ABS из дерева (`/var/abs/<репозиторий>/<имя_пакета>`) в ваш каталог сборки.
### Сборка пакета
В данном примере мы будем собирать пакет *slim*.
Скопируйте slim ABS из дерева ABS в каталог сборки:
```
$ cp -r /var/abs/extra/slim/ ~/abs
```
Перейдите в каталог сборки:
```
$ cd ~/abs/slim
```
Измените PKGBUILD под ваши нужды, затем выполните *makepkg* (с флагом `-s` для того, чтобы автоматически обрабатывать зависимости, необходимые на время сборки):
```
$ makepkg -s
```
**Примечание:** Прежде чем жаловаться на недостающие зависимости (во время make), не забудьте проверить, что группа [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/) установлена, поскольку это подразумевается при сборке пакетов с помощью *makepkg*. Смотрите [#Установка инструментов](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B8.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2).
Установите с правами супер пользователя:
```
# pacman -U slim-1.3.0-2-i686.pkg.tar.xz
```
Вот и всё. Вы только что собрали slim из исходных кодов и правильно установили его в вашу систему с помощью pacman. Удаление пакета также осуществляется с помощью pacman командой `pacman -R slim`.
Метод установки программ с использованием ABS предоставляет удобство, сохраняя при этом полную прозрачность и контроль над *build* и *install* функциями, включёнными в PKGBUILD.
#### fakeroot
По сути, такие же самые шаги предпринимаются при традиционном способе установки (обычно включающем шаги `./configure, make, make install`), но программа устанавливается в *fake root* окружение. (*fake root* — это просто подкаталог внутри каталога сборки, который функционирует и ведёт себя как корневой каталог системы. С помощью программы **fakeroot**, *makepkg* создаёт ненастоящий корневой каталог и устанавливает скомпилированные бинарники и необходимые файлы в него, в качестве владельца выставляя **root**.) Затем *fake root*, т.е. дерево подкаталогов, содержащее скомпилированную программу, сжимается в архив с расширением `.pkg.tar.xz`, т.е. в *пакет*. Затем, когда запускается pacman, он извлекает пакет (устанавливает его) в настоящий системный корневой каталог (`/`).
### Оставлять модифицированные пакеты
При обновлении системы, pacman затрёт изменённый вами пакет из ABS на пакет, который имеет такое же имя в официальных репозиториях. Следуйте инструкции ниже для того, чтобы этого избежать.
Впишите массив групп в PKGBUILD и добавьте пакет в группу под названием `modified`.
`PKGBUILD` `groups=('modified')`
Добавьте эту группу в секцию `IgnoreGroup` в `/etc/pacman.conf`.
`/etc/pacman.conf` `IgnoreGroup = modified`
Если в официальных репозиториях появится новая версия, то во время обновления системы pacman напечатает замечание, что он пропускает обновление этого пакета, поскольку он находится в секции IgnoreGroup. С этого момента изменённый пакет должен быть пересобран из ABS во избежание частичных обновлений.
## Другие инструменты
* [pbget](http://xyne.archlinux.ca/projects/pbget/) - получение PKGBUILDов для конкретных пакетов прямо из веб интерфейса. Также работает для AUR.
* [asp](https://github.com/falconindy/asp) - инструмент для управления сборкой из исходных кодов, использующийся для создания Arch Linux пакетов. Использует git интерфейс, что предоставляет более свежие исходные коды.