Pacman: различия между версиями
NOOK (обсуждение | вклад) Новая страница: «'''Pacman''' (от ''package manager'') — официальный менеджер пакетов в операционной системе Arch Linux и её производных (Manjaro, EndeavourOS, Parabola и других). Разработан основателем Arch Linux Джаддом Винетом на языке программирования Си (язык программирования...» |
NOOK (обсуждение | вклад) мНет описания правки |
||
| Строка 1: | Строка 1: | ||
'''Pacman''' (от ''package manager'') — официальный | '''Pacman''' (от ''package manager'') — официальный менеджер пакетов в операционной системе [[Arch Linux]] и её производных ([https://manjaro.org/ Manjaro], [https://endeavouros.com/ EndeavourOS], [https://www.parabola.nu/ Parabola] и других). Разработан основателем Arch Linux Джаддом Винетом на языке программирования [[Си (язык программирования)|C]] и распространяется на условиях лицензии [[GNU General Public License|GPL]] [citation:6]. | ||
Pacman сочетает в себе простой бинарный формат пакетов с удобной системой сборки из исходных кодов (Arch Build System). Главная цель Pacman — максимально упростить управление программным обеспечением: от установки и обновления до удаления пакетов [citation:3][citation:6]. | Pacman сочетает в себе простой бинарный формат пакетов с удобной системой сборки из исходных кодов (Arch Build System). Главная цель Pacman — максимально упростить управление программным обеспечением: от установки и обновления до удаления пакетов [citation:3][citation:6]. | ||
| Строка 137: | Строка 137: | ||
Pacman является основным менеджером пакетов для всех производных Arch Linux: | Pacman является основным менеджером пакетов для всех производных Arch Linux: | ||
* [ | * [https://manjaro.org/ Manjaro] — использует Pacman наряду с собственным графическим фронтендом Pamac [citation:7] | ||
* [ | * [https://endeavouros.com/ EndeavourOS] | ||
* [ | * [https://archlinuxarm.org/ Arch Linux ARM] | ||
* [ | * [https://www.parabola.nu/ Parabola GNU/Linux-libre] (полностью свободная версия) | ||
* [ | * [https://chakraos.org/bbs/ Chakra Linux []citation:6] | ||
=== Графические фронтенды === | === Графические фронтенды === | ||
Текущая версия от 10:48, 19 марта 2026
Pacman (от package manager) — официальный менеджер пакетов в операционной системе Arch Linux и её производных (Manjaro, EndeavourOS, Parabola и других). Разработан основателем Arch Linux Джаддом Винетом на языке программирования C и распространяется на условиях лицензии GPL [citation:6].
Pacman сочетает в себе простой бинарный формат пакетов с удобной системой сборки из исходных кодов (Arch Build System). Главная цель Pacman — максимально упростить управление программным обеспечением: от установки и обновления до удаления пакетов [citation:3][citation:6].
История
Pacman был создан канадским программистом Джаддом Винетом одновременно с началом разработки Arch Linux в 2001 году. Первый релиз состоялся в феврале 2002 года. Винет разработал Pacman под влиянием других менеджеров пакетов, но стремясь к большей простоте и минимализму [citation:6].
В 2007 году, когда Винет отошёл от активной разработки Arch Linux, проект Pacman перешёл к команде разработчиков (Pacman Development Team). С тех пор менеджер пакетов продолжает развиваться, сохраняя базовые принципы, но обрастая новыми возможностями и улучшениями [citation:6].
Технические особенности
Архитектура
Pacman написан на языке C и использует формат архивов `tar` для упаковки файлов (сжатие осуществляется с помощью gzip, bzip2, xz или zstd). Пакеты представляют собой архивы с расширением `.pkg.tar.zst` (по умолчанию с 2021 года) и содержат скомпилированные файлы приложения, метаданные (название, версию, зависимости) и сценарии установки [citation:3][citation:6].
Модель работы
Pacman работает по клиент-серверной модели: клиент (Pacman на машине пользователя) синхронизируется с удалёнными репозиториями, загружает актуальные списки пакетов и сами пакеты. При установке Pacman автоматически разрешает и устанавливает все необходимые зависимости [citation:6][citation:10].
Основные репозитории
Конфигурация репозиториев задаётся в файле `/etc/pacman.conf`, а список зеркал — в `/etc/pacman.d/mirrorlist` [citation:8][citation:9]. Основные официальные репозитории Arch Linux:
- core — базовые пакеты, необходимые для функционирования системы
- extra — дополнительные пакеты, включая графические окружения и приложения
- multilib — 32-битные библиотеки и программы для 64-битных систем
Использование
Pacman управляется через командную строку. Ниже приведены основные операции [citation:1][citation:3][citation:4].
| Операция | Команда | Описание |
|---|---|---|
| Синхронизация и обновление | `sudo pacman -Syu` | Синхронизирует базы данных репозиториев и обновляет все пакеты системы [citation:1][citation:2][citation:3] |
| Установка пакета | `sudo pacman -S имя_пакета` | Устанавливает один или несколько пакетов вместе с зависимостями [citation:1][citation:2][citation:3] |
| Установка из конкретного репозитория | `sudo pacman -S репозиторий/имя_пакета` | Устанавливает пакет из указанного репозитория (например, `extra/имя_пакета`) [citation:3][citation:5] |
| Поиск пакетов | `pacman -Ss ключевое_слово` | Ищет пакеты в удалённых репозиториях по имени или описанию [citation:1][citation:2][citation:3] |
| Поиск среди установленных пакетов | `pacman -Qs ключевое_слово` | Ищет только среди уже установленных пакетов [citation:5][citation:7] |
| Информация о пакете | `pacman -Si имя_пакета` | Показывает подробную информацию о пакете из репозитория [citation:1][citation:7] |
| Информация об установленном пакете | `pacman -Qi имя_пакета` | Показывает информацию об уже установленном пакете [citation:5][citation:9] |
| Список файлов пакета | `pacman -Ql имя_пакета` | Отображает все файлы, установленные данным пакетом [citation:1][citation:5] |
| Какому пакету принадлежит файл | `pacman -Qo /путь/к/файлу` | Определяет, какой установленный пакет владеет указанным файлом [citation:5][citation:7] |
| Удаление пакета | `sudo pacman -R имя_пакета` | Удаляет пакет, оставляя его зависимости [citation:1][citation:2][citation:3] |
| Удаление с зависимостями | `sudo pacman -Rs имя_пакета` | Удаляет пакет и те его зависимости, которые не нужны другим пакетам [citation:3][citation:4][citation:7] |
| Поиск сирот (ненужных зависимостей) | `pacman -Qdt` | Показывает пакеты, которые были установлены как зависимости, но больше не требуются [citation:6][citation:7][citation:9] |
| Очистка кэша | `sudo pacman -Sc` | Удаляет из кэша (`/var/cache/pacman/pkg/`) старые версии пакетов, оставляя только текущие [citation:1][citation:7][citation:9] |
| Полная очистка кэша | `sudo pacman -Scc` | Удаляет все пакеты из кэша (требуется осторожность) [citation:6][citation:7][citation:8] |
Важные предупреждения
Разработчики Arch Linux настоятельно рекомендуют избегать частичных обновлений. Не следует выполнять команду `pacman -Sy имя_пакета` (синхронизация баз и установка без полного обновления), так как это может привести к конфликтам версий и нарушению зависимостей [citation:3][citation:4][citation:5]. Правильный подход: всегда выполнять `pacman -Syu` перед установкой новых пакетов или для полноценного обновления системы.
Пакеты и система сборки
Формат PKGBUILD
Пакеты для Pacman собираются с помощью скриптов PKGBUILD — сценариев на языке Bash, описывающих, как скачать исходный код, скомпилировать программу и упаковать её в формат, понятный Pacman. Утилита makepkg (входящая в пакет pacman) автоматизирует этот процесс [citation:6].
Пример простого PKGBUILD [citation:6]:
pkgname=patch
pkgver=2.5.4
pkgrel=3
pkgdesc="Утилита для применения файлов исправлений (patches) к исходным кодам"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/patch/patch.html"
license=('GPL')
depends=('glibc' 'ed')
source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
md5sums=('ee5ae84d115f051d87fcaaef3b4ae782')
build() {
cd "$srcdir/$pkgname-$pkgver"
./configure --prefix=/usr
make
}
package() {
cd "$srcdir/$pkgname-$pkgver"
make prefix="$pkgdir/usr" install
}AUR (Arch User Repository)
Пользовательский репозиторий Arch (AUR) содержит тысячи PKGBUILD-скриптов, написанных сообществом. Они позволяют устанавливать программы, отсутствующие в официальных репозиториях, автоматизируя сборку из исходников или загрузку готовых бинарных пакетов [citation:7][citation:8].
Конфигурация
Основной файл конфигурации — `/etc/pacman.conf`. В нём задаются [citation:7][citation:8]:
- Общие опции (например, `Color` для цветного вывода, `ILoveCandy` для забавной анимации прогресса)
- Репозитории (их порядок определяет приоритет при поиске пакетов)
- Дополнительные параметры (например, пропуск обновления определённых пакетов)
Файл `/etc/pacman.d/mirrorlist` содержит список зеркал (mirrors), с которых Pacman загружает пакеты. Порядок записей влияет на скорость загрузки; рекомендуется размещать наиболее быстрые и актуальные зеркала в начале [citation:8][citation:9].
Производные и графические интерфейсы
Использование в других дистрибутивах
Pacman является основным менеджером пакетов для всех производных Arch Linux:
- Manjaro — использует Pacman наряду с собственным графическим фронтендом Pamac [citation:7]
- EndeavourOS
- Arch Linux ARM
- Parabola GNU/Linux-libre (полностью свободная версия)
- Chakra Linux [citation:6]
Графические фронтенды
Хотя официальный Pacman работает только из командной строки, сообществом созданы графические интерфейсы [citation:8][citation:10]:
- Pamac — фронтенд для Manjaro (поддерживает AUR и Flatpak)
- Octopi — графическая обёртка на Qt
- PacmanXG4 — простой GUI, работающий напрямую с X11
- PkgBrowser — утилита для просмотра информации о пакетах
Дополнительные утилиты
В пакет pacman-contrib (ранее входивший в основной пакет) включены полезные инструменты [citation:3][citation:4][citation:10]:
- pactree — отображает дерево зависимостей пакета
- checkupdates — проверяет доступные обновления без изменения системы
- paccache — гибко управляет кэшем пакетов (удаляет старые версии, сохраняя последние N)
- vercmp — сравнивает версии пакетов
Ссылки
- Официальная страница Pacman
- Pacman в ArchWiki (есть разделы на русском)
- Репозиторий исходного кода на GitHub
- Пакет pacman в репозиториях Arch