Pacman (Русский)

From ArchWiki

Jump to: navigation, search
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
Note: Будьте осторожны, используя репозитарий testing!

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

Чтобы действительно узнать на что способен 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 
Warning: Делайте pacman -Scc, только если вы уверены, что вам не нужно будет откатывать любой пакет. 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

Статьи по Теме

Внешние Ссылки

Personal tools