Pacman (Русский)
From ArchWiki
i18n |
---|
Česky |
Deutsch |
English |
Español |
Français |
Italiano |
Nederlands |
Polski |
Português de Portugal |
Romanian |
Русский |
简体中文 |
한국어 |
Contents |
Обзор
Менеджер пакетов Pacman - является одним из основных свойств Arch Linux. Он соединяет в себе простой формат бинарных пакетов и простую в использовании систему сборки (смотрите ABS и Makepkg). Pacman позволяет пользователям с легкостью управлять и настраивать под себя пакеты, вне зависимости от того, с официального ли они репозитария Arch или собранные пользователем.
Pacman поддерживает систему в актуальном состоянии, синхронизируя пакеты с главным сервером. Такая клиент-серверная модель, позволяет скачивать/устанавливать пакеты всего одной командой со всеми требуемыми зависимостями.
Pacman написан на языке C. Он использует формат пакетов .tar.gz, что позволяет ему работать ещё быстрее. Архивы, упакованные с помощью gzip, хоть и большего размера, зато быстро распаковываются, чем упакованные с помощью его аналога bzip и поэтому его использование в установке более целесобразно.
Конфигурация
Вся конфигурация Pacman находится в /etc/pacman.conf
. В этом файле, пользователь может указать все нужные ему настройки программы (более подробная информация о конфигурации может быть найдена в man pacman.conf
).
Основные Параметры
Основные парматеры находятся в секции [options]. Прочитайте страницу man или смотрите pacman.conf, который установлен по умолчанию, для получения информации о том, что тут может находится.
Пропуск обновления пакетов
Если по каким-либо причинам вы хотите пропустить обновления какого-нибудь пакет, добавьте строку:
IgnorePkg = kernel26
Пропуск обновления группы пакетов
Как и в случае с пакетом, вы также можете пропустить обновления группы пакетов, например так:
IgnoreGroup = gnome
Репозитарии
В этой секции вы указываете какие репозитарии используются, как показано в /etc/pacman.conf
. Их можно указывать прямо тут, или можно указать что, они расположены в другом файле.
Все оффициальные репозитарии используют один файл /etc/pacman.d/mirrorlist. в котором содержится переменная '$repo', вы должны сохранять этот список.
В следующем примере показаны оффициальные репозитории с выбором mirrors. Старайтесь избегать использовать ftp.archlinux.org. так как он слишком медленный.
[core] # Добавьте ваши предпочитаемые серевера здесь и они будут использоваться в первую очередь Include = /etc/pacman.d/mirrorlist [extra] # # Добавьте ваши предпочитаемые серевера здесь и они будут использоваться в первую очередь Include = /etc/pacman.d/mirrorlist [community] # # Добавьте ваши предпочитаемые серевера здесь и они будут использоваться в первую очередь Include = /etc/pacman.d/mirrorlist
Использование
Чтобы действительно узнать на что способен pacman, читайте man pacman. Примеры ниже - это только небольшая подборка операций, которые могут быть совершены.
Установка Пакетов
Для того чтобы установить или обновить один пакет или группу пакетов (включая зависимости), используйте следующую команду:
pacman -S package_name1 package_name2
Иногда пакет имеет несколько версий в разных репозиториях (например в extra и testing). Вы можете указать, какой именно вы хотите установить:
pacman -S extra/package_name pacman -S testing/package_name
Удаление Пакетов
Удалить пакет, оставляя все зависимости в системе:
pacman -R package_name
Удалить пакет со всеми зависимостями, не используемыми другими установленными пакетами:
pacman -Rs package_name
По умолчанию Pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения .pacsave. Если вы хотите удалить эти файлы используйте ключ -n. Это может быть дополнено -s, чтобы также удалить ненужные теперь зависимости:
pacman -Rn package_name pacman -Rns package_name
Примечание! Pacman не удаляет конфигурационных файлов, созданных приложениями (например .dot файлы в вашей домашней папке).
Обновление Системы
Pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько ваша система актуальна. Лучший вариант - синхронизация базы данных репозиториев И обновление вашей системы одной командой:
pacman -Syu
Пожалуйста прочитайте Package Management FAQs для получения подробной информации о обновлении и поддержке вашей системы с помощью pacman.
Запросы к Базе Данных Пакетов
Pacman может искать пакеты в базе данных (репозитариях) , поиск происходит по имени и описанию:
pacman -Ss пакет_или_описание
Поиск среди установленных пакетов:
pacman -Qs пакет_или_описание
Если вы знаете имя пакета, вы можете получить информацию о пакете:
pacman -Si пакет pacman -Qi пакет
Получение списка файлов установленного пакета:
pacman -Ql пакет
Также можно узнать, какой пакет является владельцем файла.
pacman -Qo /путь/к/файлу
Перечислить все пакеты, больше не требуемые как зависимости (сироты):
pacman -Qdt
Показать справку Pacman для запросов к установленным пакетам (запуск с ключом -Q):
pacman -Q --help
...и показать справку для запросов к сетевой базе данных (запуск с ключом -S):
pacman -S --help
Смотрите также, детальное руководство pacman(8).
Получение Списка Установленных Пакетов для Быстрого Восстановления Системы
Хорошей практикой явлется сохранение списка всех установленых пакетов. Если ваша система упала и ее сложно восстановить, pacman может легко переустановить эти пакеты.
Сначала, сохраните в список пакетов (доступных в репозитории):
pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist
# безопасная, но и более сложная альтернатива (во избежание удаления частичных совпадений) comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort) > pkglist
Сохраните этот файл на флешке или на другом носителе.
Скопируйте файл pkglist в новую систему, перейдите в эту папку.
Для восстановления используйте команду:
pacman -S $(cat pkglist)
Дополнительная Информация
Pacman является довольно обширным инструментом управления пакетами. Здесь перечислен список других свойств.
- Скачать пакет, но не устанавливать его:
pacman -Sw имя_пакета
- Установить локальный пакет (не из репозитория):
pacman -U /путь/к/пакету/полное_имя_пакета.pkg.tar.gz
- Установить 'не локальный' пакет (не из репозитория):
pacman -U http://www.examplepackage/repo/полное_имя_пакета.tar.gz
- Удалить с кэша пакетов пакеты, которые уже были удалены (/var/cache/pacman/pkg):
pacman -Sc
- Полная очистка кэша пакетов
pacman -Scc
- Для удаления сирот (рекурсивно; будьте осторожны!):
pacman -Rs $(pacman -Qtdq)
- Для переустановки всех пакетов вашей системы (которые доступны в репозитарии):
pacman -S $(pacman -Qq | grep -v "$(pacman -Qmq)")
- Получение сортированного списка локальных пакетов и их размера:
LANG=C pacman -Qi | sed -n '/^Name[^:]*: \(.*\)/{s//\1 /;x};/^Installed[^:]*: \(.*\)/{s//\1/;H;x;s/\n//;p}' | sort -nk2
Для получения детальной информации используйте pacman --help
или man pacman
.
Получение Списка Файлов не Принадлежащих Любому Пакету
Если вы всегда хотите держать свою систему в чистоте и уважаете Путь Arch, вы должны иногда проверять файлы отсутствующие в базе данных pacman. Эти файлы, зачастую установлены сторонними приложениями с использованием ./configure; make; make install и т.п. Вы можете найти все эти установленные файлы (или симлинки) используя этот простой скрипт:
#!/bin/bash time /usr/bin/pacman -Ql | cut -d ' ' -f 2- | sort -u > db.txt time find /arch /bin /boot /etc /lib /opt /sbin /usr 2>/dev/null | while read i; do if [ ! -d "$i" ]; then echo "$i" fi; done | sort -u > fs.txt time comm -23 fs.txt db.txt > non-db.txt #для проверки: #cat non-db.txt | while read i; do pacman -Qo "$i" 2>&1; done | tee test.txt
заметьте это НЕ БУДЕТ удалять все файлы указанные в non-db.txt без подтверждения. Здесь могут находится конфигурационные файлы, журналы и др. Используйте этот список только если знаете, что вы делаете.
Ошибки
Если вы получили следующую ошибку:
not found in sync db
...это скорее всего связано с тем, что пакет не найден, потому что неправильно указан репозиторий.
Для Прочтения
Страницы Man
Статьи по Теме
- Improve Pacman Performance - Must read!
- Colored Pacman output
- Downgrade packages
- Redownloading all installed packages
- ArchLinux User-community Repository (AUR)
- Local repository HOW-TO
- Custom local repository with ABS and gensync
- Howto Upgrade via Home Network (Network Shared Pacman Cache)
- Rucksack
- Pacman GUI Frontends
- Pacman Aliases (for Bash and Zsh)
- Mirrors
- Pacman rosetta (Pacman for yum/apt-get/rug/zypper converts)
Внешние Ссылки
- Использование Pacman (англ.)
- GUI Фронтенды (англ.)
- Powerpill (англ.) Обертка и ускоритель загрузки для Pacman