Как собрать свой arch linux

Arch Build System (Русский)

Система сборки Arch (Arch Build System, ABS) — схожая с портами система сборки программных пакетов из исходного кода. В отличие от pacman, который является инструментом управления двоичными пакетами (в том числе собранными с помощью ABS), система сборки Arch — набор утилит для компилирования исходников в устанавливаемый (.pkg.tar.zst) пакет.

Порты используются в ОС семейства BSD для автоматизации процесса сборки программ из файлов с исходным кодом. Порты помогают загружать, распаковывать, патчить, компилировать и устанавливать программы. Сам по себе порт является небольшой директорией на компьютере пользователя, название которой совпадает с названием устанавливаемой программы. Данная директория содержит файлы с инструкциями по установке и сборке программ. Благодаря этому установка сильно упрощается: как правило, необходимо лишь выполнить команду make или make install clean в директории порта.

Концепция ABS во многом похожа. Частью системы сборки является SVN-репозиторий и эквивалентный ему Git-репозиторий. Репозиторий состоит из каталогов, каждый из которых предназначен для отдельного пакета Arch Linux. В директориях содержатся файлы PKGBUILD (и иногда некоторые другие файлы), но в них нет ни исходников, ни двоичных файлов программ. Если выполнить команду makepkg внутри директории, то исходники программы будут загружены, скомпилированы и собраны в пакет. После этого можно воспользоваться pacman, чтобы установить данный пакет в систему.

Contents

Обзор

Система сборки Arch часто используется как обобщённый термин для целого ряда компонентов, хоть это и не совсем правильно. Обычно под ABS понимают следующие инструменты:

Дерево репозитория Набор каталогов, в которых хранятся необходимые для сборки всех официальных пакетов файлы — но не сами пакеты и не файлы с исходным кодом. Доступны две версии репозитория, svn и git. Подробнее см. раздел #Дерево репозитория. PKGBUILD Bash-скрипт, в котором находится URL для скачивания файлов с исходным кодом, а также инструкции по их компиляции в двоичный код и упаковке. makepkg Утилита командной строки, которая читает PKGBUILD, автоматически скачивает файлы с исходным кодом, компилирует их и создает пакет .pkg.tar* (какой конкретно суффикс будет у пакета определяется параметром PKGEXT в файле makepkg.conf ). makepkg также можно использовать для создания пакетов из AUR или сторонних источников, подробнее см. Создание пакетов. pacman pacman является полностью отдельным проектом, но он вызывается (утилитой makepkg или вручную) каждый раз при установке или удалении собранных пакетов, а также для установки зависимостей. AUR Пользовательский репозиторий Arch (Arch User Repository, AUR) — отдельное от ABS хранилище файлов PKGBUILD для программ, не вошедших в официальные репозитории. В отличие от дерева ABS, которое представляет собой «голый» репозиторий git, у AUR есть интерактивный веб-интерфейс. В AUR находятся тысячи предложенных пользователями файлов PKGBUILD для программ, которые не имеют официального пакета Arch. Если вам нужен пакет, которого нет в официальных репозиториях, стоит поискать его в AUR.

Читайте также:  Стандартный шрифт для mac os

Дерево репозитория

В SVN-репозитории packages хранятся файлы PKGBUILD пакетов из официальных репозиториев core, extra и testing, а в SVN-репозитории community — файлы из community и multilib.

В SVN-репозитории для каждого пакета выделен отдельный каталог, в котором находятся подкаталоги repos и trunk . В repos , в свою очередь, есть ещё один каталог, имя которого состоит из названия официального репозитория пакета (например, core) и архитектуры процессора. Файлы PKGBUILD, которые находятся в repos , используются в качестве официальной сборки. Файлы в trunk используются разработчиками до перемещения в repos .

Например, дерево каталогов для acl выглядит следующим образом:

Исходного кода пакета в SVN-репозитории нет. Вместо этого файл PKGBUILD содержит URL официального репозитория, из которого исходный код будет загружен во время сборки.

Способы применения

ABS позволяет автоматизировать некоторые задачи, связанные с компиляцией из исходников. Например:

  • Компиляция или перекомпиляция пакета;
  • Сборка из исходных кодов и установка программ, для которых ещё нет официального пакета (см. Создание пакетов);
  • Изменение существующих пакетов под свои нужды (включение или отключение опций, внесение исправлений);
  • Перестройка всей системы с использованием новых флагов компиляции «à la FreeBSD»;
  • Чистая сборка и установка собственного ядра (см. Ядро#Компиляция);
  • Создание модулей для вашего собственного ядра;
  • Компиляция и установка новой/старой/beta/devel версии Arch-пакета с помощью редактирования номера версии в PKGBUILD.

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

Получение PKGBUILD

Существует два способа добыть необходимый для сборки конкретного пакета из исходников файл PKGBUILD: либо посредством SVN, либо через Git программой asp , которая представляет собой обёртку для svntogit-репозиториев. Ниже рассматриваются оба подхода.

PKGBUILD из Git

Установите пакет asp . Asp — инструмент для скачивания исходных файлов пакетов Arch Linux через Git-интерфейс. Подробнее см. обсуждение на форуме.

Чтобы выполнить «сверку» (checkout) пакета из репозитория, выполните:

Пакет будет клонирован в каталог, имя которого совпадает с названием пакета. Для обновления клонированного git-репозитория необходимо перейти в него и последовательно выполнить команды asp update и git pull .

Кроме того, можно использовать другие команды git для сверки более старых версий пакета и отслеживания изменений. Подробнее см. Git.

Если необходимо просто получить копию снимка (snapshot) текущего PKGBUILD для конкретного пакета, выполните:

PKGBUILD из SVN

Предварительные условия
Сверка репозитория

Соответствующая команда для репозиториев community и multilib:

В обоих случаях единственным видимым результатом будет создание пустого каталога.

Сверка пакета

Перейдите в созданный каталог, packages или community, и выполните:

Эта команда выполнит сверку указанного пакета. С этого момента каждый раз при выполнении svn update будет происходить его обновление.

Если запрошенный пакет не существует, svn не выдаст предупреждение. В терминале появится только что-то вроде «At revision 358704» без создания каких-либо файлов. Если это произошло:

  • проверьте правильность имени пакета;
  • проверьте, не был ли пакет перемещен в другой репозиторий (например, из community в packages);
  • проверьте страницу https://archlinux.org/packages чтобы убедиться, что ваш пакет не собирается на основе другого пакета (например, python-tensorflow собирается по PKGBUILD пакета tensorflow ).

Все синхронизированные пакеты можно периодически обновлять, если вы желаете пересобирать актуальные версии пакетов из репозиториев. Для этого выполните:

Сверка старой версии пакета

Находясь в сверенном svn-репозитории (т.е. packages или community, как описано в разделе #Сверка репозитория), сначала изучите лог:

Найдите ревизию, которая вам нужна, и укажите её номер в команде синхронизации. Например, чтобы синхронизировать ревизию r1729 , выполните:

Выбранный пакет обновится до нужной версии.

Читайте также:  Auto system shutdown windows 10

Вместо номера ревизии можно указать дату. Если на эту дату нет ревизии, то svn найдет ближайшую ревизию перед ней. Пример (для даты 2009-03-03):

Это даёт возможность синхронизации пакета с последней версией до перемещения в другой репозиторий. Необходимо лишь найти в логах дату перемещения или же последний номер ревизии.

Сборка пакета

Перед сборкой пакета из файла PKGBUILD настройте makepkg в соответствии с указаниями из раздела makepkg#Настройка.

Скопируйте каталог с файлом PKGBUILD в другое место, отредактируйте его, если необходимо, после чего соберите пакет и установите его в систему, как описано в разделе makepkg#Использование.

Советы и рекомендации

Сохранение изменённых пакетов

При первом же обновлении системы pacman заменит модифицированный вами пакет из ABS на стандартный пакет с таким же названием из официальных репозиториев. Ниже описано, как этого не допустить.

Добавьте параметр groups в PKGBUILD пакета и укажите в нём группу modified .

Добавьте эту группу в раздел IgnoreGroup файла /etc/pacman.conf .

Если в официальных репозиториях появится новая версия этого пакета, то во время обновления системы pacman напечатает замечание, что он пропускает пакет, поскольку тот находится в разделе IgnoreGroup . После этого необходимо вручную пересобрать новую версию пакета из ABS, чтобы ваша система не оказалась «частично обновлённой».

Источник

Как установить Arch с минимальной болью?

Предисловие

Слышал, что некоторые считают Arch сложным в установке. Отчасти они правы, но для любого человека, который способен разобраться в установке и настройке linux, установка Arch довольно проста. Также это самый гибкий дистрибутив, поэтому настроить под себя его получится лучше других дистрибутивов.

Данный гайд является сборной солянкой из всех гайдов, что я прочитал (как русскоязычные, так и иноязычные). Его цель просто и без лишней технической информации показать пошаговую установку Arch и сделать это на русском языке. Главное, что статья написана от непонимающего для непонимающих. Заранее скажу, что некоторые скрины будут уже с установленного Arch, но это никак не меняет работу команд и то, что вы увидите при их использование.

Итак, начнём с простого.

Идём на сайт и качаём ISO-файл:

Там ищем зеркало(скорее всего русское) и скачиваем образ:

Для упрощения дальнейшей жизни лучше скачать Etcher, прямо на сайте есть довольно понятная инструкция в картинках, так что справятся все.

Установка

// начну с настройки VirtualBox, если вы используете её, то выполните следующие действия

1.Идём в настройки машины:

2.Во вкладке система ставим галочку около пункта »Включить EFI»:

3.Далее идём во вкладку носители, там добавляем контроллер IDE и выбираем наш дистрибутив

Далее установка будет для всех одинакова.

Начинаем с запуска

Выбираем первую строку и жмём Enter

Проверим соединение с интернетом:

Это нужно, потому что Arch требует интернет для своей установки.

Такой командой можно проверить своё соединение и увидеть время ответа сайта.

Если вы используете wifi на своём ПК, то используйте утилиту :

Вы увидите примерно это:

Разделы диска

Для того, чтоб разбить наш диск на разделы, можно сначала узнать какие диски подключены. Скорее всего у вас будет USB флешка и HDD\SSD вашего ПК.

Команда для просмотра разделов (понадобится нам ещё много раз):

Если у вас несколько дисков, а вы хотите установить на какой-то конкретный, то можно посмотреть диски по размерам.

Время размечать наш диск. Используем команду cfdisk для этого и выбираем gpt формат :

Читайте также:  Bash linux логические операции

Bажно! если во время использования команды lsblk и fdisk вы увидели что sda является не тем диском, что нужен вам, то вы дописываете в конец название другого диска, например sdb.

Используя стрелочки создаём 3 раздела на диске:

  • /dev/sda1 # размером 1G места под UEFI
  • /dev/sda2 # размером примерно 10-15 GB под root
  • /dev/sda3 # всё оставшееся место под директорию home

PS: Если вы решили переделать разметку диска, то через эту утилиту можно и удалять разделы

Для проверки используем lsblk снова. Если всё норм, что /dev/sda будет содежать в себе 3 раздела.

Далее форматируем наши разделы.

Форматируем тот раздел, который мы выделили под UEFi

Монтируем root и создаём папку home:

И снова lsblk для проверки

Установка

Начинается самая долгая часть, потому что нужно будет много скачать. Устанавливаем все основные пакеты, а также nano, чтоб редачить файлы системы. Если вдруг вы знакомы с vim можете скачать и его (дописать в конец).

Вам предложат что установить выбирайте all и далее yes. Встречался с проблемой, что можно было скачать первый или второй вариант, можно просто выполнить команду дважды выбирая вначале один пакет, а затем второй.

Создадим fstab файл

Настраиваем установленную систему

Chroot

Chroot (change root) нужен нам, чтобы мы могли сменить root пользователя (как и сказано в названии команды).

Настройка файла локали

Для начала идём в файл локали, чтоб настроить язык

Находим там #en_US.UTF-8 и стираем #, с русским языком так же. PS: можно использовать Ctrl + W для поиска языка в файле.

Чтобы всё сохранить Ctrl + O, затем Enter и Ctrl + X, затем Enter

Далее пишем команды, которые сгенерируют локаль и создаём locale.conf с нужными настройками языка.

Настраиваем временную зону

Далее жмём 2 раза на Tab и видим список регионов, после городов.

В моём случае было так:

Задаём время

Тут 2 команды. Одна ставит время для системы, а другая его показывает.

Имя хоста и адрес

Я решил назвать ПК ArchMe, поэтому используем следующую команду:

Далее идём в файл localhosts и записываем ip. Если у вас ip статический, используйте свой.

Сетевой менеджер

Качаем и включаем.

Установка GRUB

Для начала сменим пароль root пользователя :

GRUB — это загрузчик, который нужен, чтоб запускать нашу установленную систему (в режиме EFI). Далее будет куча команд, которые нужно выполнить.

Перезагрузка

Чтобы без потерь перезагрузить нашу систему используем эти команды:

После перезагрузки вы увидите следующее. Если это так, то наш GRUB установился правильно

Входим в root аккаунт и создаём swapfile (что-то вроде доп оперативки) и задаём ему размер как у вашей ОЗУ

Далее выполняем следующие команды:

И проверяем, работает ли swap:

Добавим пользователя и окружение

username замените на то имя, что хотите вы)

Также нужно дать ему права суперюзера:

там ищем и убираем #, а дальше Ctrl + O, затем Enter и Ctrl + X, затем Enter

Дрова

Вам будет предложен выбор, выбирайте исходя из своей графики.

Окружение

Вначале покажу как поставить довольно простое — XFCE

И моё любимое i3, там выбираем пакеты 2 4 5. Возможно вы увидите квадраты вместо символов, но это нормально, вам просто нужно будет скачать шрифт dejavu ( pacman -S ttf-dejavu ). Cписок горячих клавиш можно посмотреть тут

Если вы решите поменять своё окружение, то нужно будет менять запись в файле xinitrc.

Источник

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