Arch Linux

(перенаправлено с «ArchLinux»)

Arch GNU/Linux (МФА: [ɑːrtʃ ˈlɪnəks][1][2][3]) — независимый дистрибутив GNU/Linux, оптимизированный для архитектуры x86-64, целью которого является предоставление пользователю последних «свежих» версий программного обеспечения, следуя модели rolling release. По умолчанию предлагается минималистичная базовая система, в которую пользователь может добавить то, что ему требуется. Для установки, удаления и обновления пакетов используется пакетный менеджер Pacman[4][5][6][7][8][9][10].

Arch GNU/Linux
Изображение логотипа
РазработчикАарон Гриффин, Аллан Макрей
Семейство ОСGNU/Linux
Исходный кодlibresoftware
Первый выпускмарт 2002
Последняя версия2024.05.01
Метод обновленияRolling release
Менеджеры пакетовPacman
Поддерживаемые платформыx86_64
Тип ядра

Официальные ядра: Linux, Linux-hardened, Linux-lts, Linux-zen

Неофициальные ядра: Linux-ck, Linux-clear, Linux-galliumos, Linux-libre, Linux-lqx, Linux-pf, Linux-rt, tkg, Linux-vfio, Linux-XanMod
ИнтерфейсCLI
ЛицензияGNU GPL
Состояниеактуальное
Репозиторий исходного кодаgit.archlinux.org
Веб-сайтarchlinux.org
Логотип Викисклада Медиафайлы на Викискладе

В официальных репозиториях Arch Linux содержится преимущественно свободное ПО, однако дистрибутив не одобрен FSF, так как придерживается лояльной политики в отношении несвободного ПО[11]. Проект GNU рекомендует к установке основанный на Arch Linux Дистрибутив Parabola[12]. В официальных репозиториях насчитывается более 14 300 пакетов[13], в AUR — более 91 200[14].

Arch Linux распространяется, в основном, в виде готовых пакетов двоичных файлов, хотя допускает сборку из исходного кода, а пакеты из AUR могут собираться как на машине пользователя, так и конвертироваться из deb/rpm пакетов в пакеты pacman. В некоторой степени, Arch напоминает Дистрибутив Slackware, но, в отличие от последнего, осуществляет контроль зависимостей пакетов. Бинарные пакеты Arch Linux собраны для архитектуры x86-64, что обеспечивает высокую производительность на современных компьютерах. Существуют неофициальные версии и для других архитектур (к примеру, PowerPC и ARM - Arch Linux [1]), а также несколько ответвлений.

У Arch Linux есть обширный раздел документации в поддомене ArchWiki[15], основанный на MediaWiki, который поддерживается разработчиками и сообществом. Документация переведена на десятки языков, однако основным является английский. В документации также можно найти официальное руководство по установке[16].

Благодаря наличию обширной документации и отсутствию графического установщика, Arch представляет большой академический интерес для тех, кто хочет освоить GNU/Linux.

Arch Linux является независимым Дистрибутивом, разработанным с нуля. Создатель Дистрибутива Джадд Винет вдохновлялся CRUX, но мнение о том, что Arch основан на CRUX, ошибочно. На Arch основаны такие дистрибутивы, как Antergos, Parabola GNU, ArchBang, Arch Hurd, Chakra, ConnochaetOS, Manjaro и другие[17].

В конце января 2017 года разработчики сообщили, что прекращают поддержку 32-разрядной версии[18]. Поддержка образов и пакетов для процессоров x86 будет продолжена сообществом[19]. Как выяснилось позже, сообщество Parabola GNU/Linux-libre неофициально продолжило поддержку x86[20].

Основные особенности Arch

Философия Arch Linux базируется на нескольких основных принципах[21]:

  • Простота
  • Современность
  • Прагматизм
  • Нацеленность на определённых пользователей (user-centric, а не user-friendly)
  • Гибкость

Так разработчики описывают основные особенности и принципы, на которых базируется Arch[22]:

  • Простота. (Заметим, что под простотой подразумевается не простота использования ОС, а простота её внутренней организации: минимализм, лаконичность, следование принципам KISS и Unix-way.)
  • Рассчитана не на новичков, а на более опытных пользователей.
  • Джадд Винет основал этот дистрибутив, руководствуясь своим видением идеального дистрибутива и желая вернуть хоть что-то сообществу свободного программного обеспечения, после того как столько заимствовал из него.
  • Цель — сделать Arch совершенной основой. Основой, не включающей в себя причудливых утилит и автонастроек, но с утилитами для ручной настройки и некоторыми функциями для пользователей, чтобы они могли продолжить дальнейшую разработку сами.
  • «Вернуть хоть что-то сообществу свободного программного обеспечения» — это свободный дар. Когда вы получаете подарок от кого-либо, это обычно подразумевает, что вам придется что-либо отдать взамен. Так что идеи, предложения, утилиты от пользователей приветствуются.
  • Есть две стороны Arch Linux: (1) сторона разработчика и (2) сторона пользователя. Не надейтесь объединить обе стороны, но создайте между ними взаимную связь, тогда каждый может получить то, что он хочет добавить к своей системе.
  • Не позволяйте утилитам настройки или GUI управлять системой, она должна управляться пользователем. Нет ничего плохого в GUI до тех пор, пока графический интерфейс соответствует этим принципам.
  • Не будьте зависимы от того, что предлагают утилиты. Когда вы пишете или выбираете инструмент, он должен быть написан на читаемом языке программирования (KISS), чтобы позволить пользователям изменить его, если они захотят.
  • Ядро разработки Arch Linux не будет представлено какими-либо «дружественными» GUI/утилитами в ближайшем будущем.
  • Arch будет тем, что вы из него сделаете.
  • Слово «проще» в Arch рассматривается по-другому, нежели в других дистрибутивах. Чтобы легко чего-либо достичь, нужно учиться.
  • Надежда на графический интерфейс для настройки/использования системы в конце концов принесёт пользователю только проблемы. В какой-то момент времени пользователь почувствует, что ему нужно знать, что скрывает графический интерфейс.
  • Попытки скрыть сложность системы и сделать её проще за счёт графических утилит и автоматизации рутинных задач обычно приводят к ещё более сложной системе. Вместо этого лучше сделать её более простой и логичной изнутри, разумеется, учитывая ваши задачи, взгляды и предпочтения.
  • Рано или поздно вам потребуется искать информацию в Интернете или в Usenet (если страницы man окажется недостаточно). Уметь искать в сети — это первое, чему должен научиться начинающий пользователь.
  • В то время как пользователи говорят, что такой-то дистрибутив не похож на какой-то другой, Arch позволяет пользователю вносить желаемый вклад до тех пор, пока это не противоречит принципам и философии Arch.
  • Основное свойство возможности сделать свой вклад заключается в том, что вам не нужно разрешение, чтобы его сделать. Никто не может остановить вас при написании того, что вы лично находите полезным, даже если «силы, которые существуют» не считают это благодеянием. Напишите это и поместите в User Contributions форум. Если людям это понравится, вы получите ответ. Даже если предположить, что все вокруг это не оценят, разве вас это будет волновать, если для вас польза очевидна?
  • Не надо требовать от разработчиков утилит и документации. Попытайтесь понять цель и философию Arch — это то, что отличает Arch от других.
  • Единственный бинарный дистрибутив, где собрано всё так, как задумали разработчики без каких-либо изменений в исходном коде. По этой причине и появился миф о стабильности Arch Linux.

Установка

В отличие от большинства дистрибутивов, установка Arch Linux происходит практически «вручную». Вместо графического установщика предоставляется Grml-кастомизированный[23] zsh в качестве командной оболочки и набор специализированных скриптов (Arch Install Scripts). Для редактирования конфигурационных файлов во время установки доступны текстовые редакторы vi, vim и nano. Во время установки, после подключения к интернету, можно перейти на сайт https://wiki.archlinux.org/index.php/Installation_guide. Более ранние версии системы включали установщик с псевдографическим интерфейсом, но его официальная поддержка закончена. Также в 2021 году разработчики представили консольную программу установки archinstall, которая позволяет полностью автоматизировать процесс установки за счёт скриптов.

Управление пакетами

Pacman

Одной из главных особенностей Arch является пакетный менеджер Pacman, который стремится упростить управление пакетами. По аналогии с другими пакетными менеджерами, для поддержания системы в актуальном состоянии, Pacman синхронизирует списки (базы данных) пакетов с главным сервером Arch, обычно посредством зеркал.

Pacman предоставляет простой и в то же время очень мощный CLI со множеством расширенных возможностей (например таких как выявление пакетных файлов, которые были изменены пользователем или системой).

Для проверки подлинности пакетов Pacman использует GnuPG-ключи, которыми пакеты должны быть подписаны[24]. Хотя все официальные пакеты в настоящее время подписаны, работа над подписью баз данных пакетов всё ещё ведется, однако у пользователей есть возможность включить проверку подписей баз данных.

Arch базируется, в основном, на бинарных пакетах, но способен к прозрачной интеграции пакетов, построенных из исходных кодов (наподобие Gentoo). Управление ими производится с помощью менеджера пакетов Pacman, который управляет установочными пакетами, обновлениями, удалениями и запросами к базе.

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

Начиная с марта 2010 года[25] все пакеты Pacman представляют собой tar-архивы, сжатые по алгоритму сжатия LZMA2, каждый из которых содержит программы в скомпилированном виде и дополнительную информацию. Тем не менее, используемый ранее алгоритм сжатия gzip по-прежнему поддерживается.[26] По поводу именования и формата пакетов велись дебаты. Было принято решение оставить пакеты обычными архивами, так как это позволяет легко извлечь и проанализировать содержимое пакета. Типичное имя файла пакета может выглядеть примерно так: linux-4.14.13-1-x86_64.pkg.tar.xz, где часть суффикса .pkg говорит о том, что архив является пакетом.

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

Репозитории

Официальный репозиторий Arch Linux содержит две ветви: официально поддерживаемая (англ. supported) ветвь и пользовательский репозиторий — AUR[27][28].

Официально поддерживаемая ветвь

Официально поддерживаемая ветвь имеет общий баг-трекер и содержит 7 разделов[29]:

Core
Содержит все пакеты, необходимые для работы системы (наподобие Debian netinst, за исключением X Window System).
Extra
Содержит пакеты, необязательные для работы с системой, но популярные (KDE, GNOME, различные графические приложения).
Core-testing
Содержит пакеты, которые могут вызвать проблемы во время работы, и пока ожидают сообщений об ошибках, после отладки включаются в Core, а также пакеты программ в разработке и официально не выпущенных программ (SVN-сборки, альфа-, бета-релизы). Раздел core-testing не является необходимым для работы и не рекомендован для повседневной работы ввиду повышенных рисков стабильности.
Extra-testing
Содержит пакеты, которые могут вызвать проблемы во время работы и пока ожидают сообщений об ошибках, после отладки включаются в Extra. Раздел extra-testing не является необходимым для работы и не рекомендован для повседневной работы ввиду повышенных рисков стабильности.
Multilib
Репозиторий для архитектуры x86_64 с удобной возможностью установки 32-битных приложений на 64-битную среду.
Multilib-Testing
Multilib, но со свежими (тестируемыми) версиями пакетов из multilib.

Пакеты из официально поддерживаемой ветви — бинарные (в противоположность AUR), но при желании всегда могут быть собраны из исходных кодов с помощью ABS или дополнительных приложений, упрощающих процесс, таких как yay или pacaur.

AUR

AUR (Arch User Repository) — поддерживаемый сообществом репозиторий, содержащий PKGBUILD, скрипты для автоматической сборки приложений из исходных кодов при помощи ABS, не вошедшие в основные репозитории. Каждый имеет право добавить понравившееся приложение в репозиторий, просто написав и отослав PKGBUILD, после чего один из Проверенных Пользователей (Trusted User) его проверит, и если всё нормально (нет руткитов, и приложение правильно собирается и устанавливается), пометит как Safe (безопасный). Конечная цель пакетов из AUR — миграция в официально-поддерживаемую ветвь (раздел Community); присутствует система голосования (с помощью утилиты aurvote), которая позволяет определить наиболее важных кандидатов для перемещения.[30]Однако пакеты из AUR можно ставить и не дожидаясь попадания в репозиторий Community, для этого можно установить вспомогательный инструмент для работы с AUR (например pacaur, yay, yaourt (устарел) и многие другие), либо собрать его из исходного кода при помощи makepkg[31].

Неофициальные репозитории

В дополнение к официальным, пользователи создают репозитории, в основном содержащие изменённые, дополнительные или более новые версии пакетов.[32] Наиболее популярный из них — репозиторий Archlinux.fr[33].

Arch Build System

Утилита abs была упразднена. Deprecation of ABS tool.

Arch Build System (ABS) — это схожая с портами во FreeBSD система сборки бинарных пакетов из исходников. Пакет можно собрать при помощи утилиты makepkg, используя специальные скрипты — PKGBUILD. Созданные пакеты могут быть легко установлены и отслеживаться при помощи pacman[34].

Система инициализации

Arch Linux несколько отличался от других дистрибутивов стилем стартовых скриптов до выпуска 2012.08.04. Использовался так называемый стиль BSD вместо System V. Это позволяло свести все настройки по запуску системы, такие как загружаемые модули ядра, программы-демоны, параметры локализации и сетевых интерфейсов, в один файл /etc/rc.conf, имеющий простой и понятный синтаксис.[35]

В настоящее время системой инициализации по умолчанию в Arch Linux является systemd[36]. systemd — централизованная система инициализации и управления системой Linux, призванная устранить недостатки init, а также собрать множество разрозненных программ и других средств для администрирования системы в одном месте. Мнения по поводу перехода среди пользователей неоднозначны, однако часть разработчиков считают его выгодной заменой init[37]. Как бы то ни было, Arch «будет тем, что вы из него сделаете» и рассчитан не на новичков, а на более опытных пользователей, поэтому замена системы инициализации по умолчанию с sysvinit на systemd несёт чисто формальный характер. Простота sysvinit позволяет пользователю самостоятельно его поддерживать, даже когда официальная его поддержка закончится.

Выпуск пакетов и сборок

Rolling release

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

История выпуска сборок

С момента создания и до версии Voodoo включительно сборки Arch нумеровались версией дистрибутива (0.1—0.8). Начиная с выпуска 2007.05 (Duke), номер версии имеет формат ГГГГ.ММ — год и месяц выпуска установочного ISO-образа. В ISO-образ входят только пакеты из репозитория Core. В настоящее время выпуск Core-сборок прекращен. Вместо этого выпускаются минималистичные netinstall-сборки, цель которых — загрузиться и создать сетевое подключение, чтобы можно было установить текущую версию системы по сети. Остальные репозитории всегда находятся в текущем состоянии и никак не связаны с выпуском сборок.[38]

ВерсияКодовое имяДатаПримечание
0.1Homerмарт 2002Первый выпуск.
0.2Vegaапрель 2002
0.3Fireflyавгуст 2002
0.4Dragonдекабрь 2002
0.5[39]Novaиюль 2003Поддержка PAM, LVM и GRUB.
0.6[40]Widgetмарт 2004Добавлена поддержка файловых систем JFS и XFS.
0.7[41]Wombatянварь 2005
0.8[42]Voodooмарт 2007Расширены возможности программы установки.
2007.05[43]Dukeмай 2007Pacman v3.0
2007.08[44]Don’t Panicавгуст 2007Исправлены ошибки в программе установки.
2008.06[45]Overlordиюнь 2008Использование .img образов для записи на USB-устройства.
2009.02[46]февраль 2009Использование AIF (Фреймворк установки Arch).
2009.08[47]август 2009Pacman 3.3, использование переработанного AIF (возможность использования LVM и другие изменения), различные улучшения.
2010.05[48]май 2010Использование единого образа для записи на CD и USB устройства. Появление dual-образа, помимо отдельных образов для архитектур x86 и x86-64.
2011.08.19[49]август 2011Расширены возможности программы установки
2012.07.15[50]июль 2012Удален AIF, вместо него используются простые установочные скрипты
2012.08.04[51]август 2012GRUB 2.0, ZSH в качестве командной оболочки, автозапуск сети если доступен DHCP.
2012.09.07[52]сентябрь 2012Linux 3.5.3, возможно подключиться к интернету через UMTS USB модем на Live системе
2012.10.06[53]октябрь 2012Используется systemd для загрузки системы, initscripts не доступны на Live системе, упрощены загрузка и установка EFI, gummiboot используется для отрисовки меню в EFI
2012.11.01[54]ноябрь 2012Linux 3.6, ConsoleKit удалён из репозиториев, polkit и networkmanager перенесены в extra, загрузка производится с использованием systemd-logind[55]
2012.12.01[56]декабрь 2012Linux 3.6.8, systemd 196
2013.01.04январь 2013Linux 3.6.11
2013.06.01июнь 2013Linux 3.9.4
2013.07.01июль 2013Linux 3.9.8
2013.08.01август 2013Linux 3.10.3
2013.09.01сентябрь 2013Linux 3.10.10
2013.10.01октябрь 2013Linux 3.11.2
2014.01.05январь 2014Linux 3.12.6
2014.02.01февраль 2014Linux 3.12.9
2014.03.01март 2014Linux 3.13.5
2014.04.01апрель 2014Linux 3.13.7
2014.05.01май 2014Linux 3.14.1
2014.06.01июнь 2014Linux 3.14.4
2014.07.03июль 2014Linux 3.15.3
2014.09.03сентябрь 2014Linux 3.16.1
2014.10.01октябрь 2014Linux 3.16.3
2014.11.01ноябрь 2014Linux 3.17.1
2014.12.01декабрь 2014Linux 3.17.4
2015.01.01январь 2015Linux 3.17.6
2015.03.01март 2015Linux 3.18.6
2015.06.01июнь 2015Linux 4.0.4
2015.08.01август 2015Linux 4.1.3
2015.12.01декабрь 2015Linux 4.2.5
2016.01.01январь 2016Linux 4.3.3
2016.04.01апрель 2016Linux 4.4.5
2016.05.01май 2016Linux 4.5.1
2016.06.01июнь 2016Linux 4.5.4
2016.07.01июль 2016Linux 4.6.3
2016.08.01август 2016Linux 4.6.4
2016.09.03сентябрь 2016Linux 4.7.2
2016.12.01декабрь 2016Linux 4.8.11
2017.01.01январь 2017Linux 4.8.13
2017.02.01февраль 2017Linux 4.9.6
2017.03.01март 2017Linux 4.9.11
2017.04.01апрель 2017Linux 4.10.6
2017.05.01май 2017Linux 4.10.13
2017.06.01июнь 2017Linux 4.11.3
2017.07.01июль 2017Linux 4.11.7
2017.08.01август 2017Linux 4.12.3
2017.09.01сентябрь 2017Linux 4.12.8
2017.10.01октябрь 2017Linux 4.13.3
2017.11.01ноябрь 2017Linux 4.13.9
2017.12.01декабрь 2017Linux 4.13.12
2018.01.01январь 2018Linux 4.14.9
2018.02.01февраль 2018Linux 4.14.15
2018.03.01март 2018Linux 4.15.6
2018.04.01апрель 2018Linux 4.15.14
2018.05.01май 2018Linux 4.16.5
2018.06.01июнь 2018Linux 4.16.12
2018.07.01июль 2018Linux 4.17.3
2018.08.01август 2018Linux 4.17.11
2018.09.01сентябрь 2018Linux 4.18.5
2018.10.01октябрь 2018Linux 4.18.9
2018.11.01ноябрь 2018Linux 4.18.16
2018.12.01декабрь 2018Linux 4.19.4
2019.01.01январь 2019Linux 4.20.0
2019.02.01февраль 2019Linux 4.20.6
2019.03.01март 2019Linux 4.20.13
2019.04.01апрель 2019Linux 5.0.5
2019.05.01май 2019Linux 5.0.10
2019.05.02май 2019Linux 5.0.10
2019.06.01июнь 2019Linux 5.1.5
2019.07.01июль 2019Linux 5.1.15
2019.08.01август 2019Linux 5.2.5
2019.09.01сентябрь 2019Linux 5.2.11
2019.10.01октябрь 2019Linux 5.3.1
2019.11.01ноябрь 2019Linux 5.3.8
2019.12.01декабрь 2019Linux 5.3.13
2020.01.01январь 2020Linux 5.4.6
2020.02.01февраль 2020Linux 5.4.15
2020.03.01март 2020Linux 5.5.6
2020.04.01апрель 2020Linux 5.5.13
2020.05.01май 2020Linux 5.6.8
2020.06.01июнь 2020Linux 5.6.15
2020.07.01июль 2020Linux 5.7.6
2020.08.01август 2020Linux 5.7.11
2020.09.01сентябрь 2020Linux 5.8.5
2020.10.01октябрь 2020Linux 5.8.12
2020.11.01ноябрь 2020Linux 5.9.2
2020.12.01декабрь 2020Linux 5.9.11
2021.01.01январь 2021Linux 5.10.3
2021.02.01февраль 2021Linux 5.10.11
2021.03.01март 2021Linux 5.11.2
2021.04.01апрель 2021Linux 5.11.11
2021.05.01май 2021Linux 5.11.16
2021.06.01июнь 2021Linux 5.12.8
2021.07.01июль 2021Linux 5.12.13
2021.08.01август 2021Linux 5.13.6
2021.09.01сентябрь 2021Linux 5.13.13
2021.10.01октябрь 2021Linux 5.14.8
2021.11.01ноябрь 2021Linux 5.14.15
2021.12.01декабрь 2021Linux 5.15.5
2022.01.01январь 2022Linux 5.15.12
2022.02.01февраль 2022Linux 5.16.4
2022.03.01март 2022Linux 5.16.11
2022.04.01апрель 2022Linux 5.17.1
2022.04.05апрель 2022Не содержит первоапрельской шутки
2022.05.01май 2022Linux 5.17.5
2022.06.01июнь 2022Linux 5.18.1
2022.07.01июль 2022Linux 5.18.7
2022.08.05август 2022Linux 5.18.16
2022.09.03сентябрь 2022Linux 5.19.6
2022.10.01октябрь 2022Linux 5.19.12
2022.11.01ноябрь 2022Linux 6.0.6
2022.12.01декабрь 2022Linux 6.0.10
2023.01.01январь 2023Linux 6.1.1
2023.02.01февраль 2023Linux 6.1.8
2023.03.01март 2023Linux 6.2.1
2023.04.01апрель 2023Linux 6.2.8
2023.05.03май 2023Linux 6.2.13
2023.06.01июнь 2023Linux 6.3.5
2023.07.01июль 2023Linux 6.3.9
2023.08.01август 2023Linux 6.4.7
2023.09.01сентябрь 2023Linux 6.4.12
2023.10.14октябрь 2023Linux 6.5.7
2023.11.01ноябрь 2023Linux 6.5.9
2023.12.01декабрь 2023Linux 6.6.3
2024.01.01январь 2024Linux 6.6.8
2024.02.01февраль 2024Linux 6.7.2

Условные обозначения:

 Прошлый выпуск Последний выпуск

Примечания

Ссылки

Интервью и обзоры