Ads 468x60px

воскресенье, 16 октября 2011 г.

Установка пакетов в archlinux. Основы pacman.

Pacman на мой взгляд одна из наиболее удобных и простых для понимания систем управления пакетами. Легко настраивается, осуществляет поиск зависимостей и пакет сирот (те которые по мнению системы могут быть удалены).
Настройка
Основной файл настройки  /etc/pacman.conf, в нем  указывается список репозиториев пакеты из которых доступны для установки в систему. Так же в нем можно указать дополнительные настройки обновления и установки пакетов, полный список и описание которых можно просмотреть здесь http://www.archlinux.org/pacman/pacman.conf.5.html#_options.
Наиболее полезными мне показались следующие:
- пропустить обновление пакетов
 IgnorePkg = <package_name1> <package_name2> 
- тоже но для группы
 IgnoreGroup = <group_name1>  <group_name2>
- не обновлять файлы (обычно включают файлы настроек)
NoUpgrade = <file1> <file2>
Список используемых серверов для загрузки пакетов можно просмотреть в файле /etc/pacman.d/mirrorlist. Для подключения новых источников достаточно снять комментарий с  нужной строчку с описанием сервера, например:
Server = ftp://mirror.academica.fi/archlinux/$repo/os/$arch
Установка программ
Поиск программного обеспечения осуществляется командой:
# pacman -Ss <serch_word>
Пример поиск архиватора 7zip
#pacman -Ss 7zip
  extra/p7zip 9.20.1-5
    Command-line version of the 7zip compressed file archiver
Вывод на экране показывает что данный пакет находится в репозитории extra имя пакета 7zip версия 9.20.1-5, далее идет краткое его описание.
Для установки, включая зависимости, необходимо запустить pacman с ключем -S
# pacman -S <package_name>
Установка 7zip
# pacman -S p7zip
looking for inter-conflicts...
resolving dependencies...
 looking for inter-conflicts...

 Targets (1): p7zip-9.20.1-5

 Total Download Size:    1.82 MB
 Total Installed Size:   8.16 MB

 Proceed with installation? [Y/n]
вопрос о продолжении установки, значение ответа по умолчанию выделено заглавной буквой, достаточно нажать [enter], что бы ответить 'Y'
:: Retrieving packages from extra..
p7zip-9.20.1-5-i686                     1865.3K  438.3K/s 00:00:04 [######] 100%
(1/1) checking package integrity                                   [######] 100%
(1/1) checking for file conflicts                                  [######] 100%
(1/1) installing p7zip                                             [######] 100%
Optional dependencies for p7zip
     wxgtk: GUI
    desktop-file-utils: desktop entries
достаточно полезная информация следует после строчки
"Optional dependencies for p7zip" (дополнительные зависимости)
В данном случае нам говорят о необходимости пакета  "wxgtk" для использования графического режима и пакета "desktop-file-utils" для интеграции пакета с окружением рабочего стола.
Все на этом установка 7zip закончена.
Дополнительные опции:
-y  предварительное обновление дерева пакетов, рекомендуется для
     установки последних версий программ. 
# pacman -Sy <package_name>
Удаление программ
 Для удаления, оставляя зависимости, необходимо запустить pacman с ключем -R
# pacman -R <package_name>
 Удаление 7zip
# pacman -R p7zip
checking dependencies...

Remove (1): p7zip-9.20.1-5

Total Removed Size:   8.16 MB

 Do you want to remove these packages? [Y/n]
(1/1) removing p7zip                                                 [#######] 100%
 Дополнительные опции:
 -s удалить пакет, включая зависимости, которые не используются другими пакетами. 
# pacman -Rs <package_name>
 -n удалить пакет,не сохраняя резервные копии конфигурационных файлов, которые по умолчанию создаются pacman`ом с расширением .pacsave
# pacman -Rn <package_name>
так же можно использовать комбинацию данных опций, что я обычно и делаю. 
# pacman -Rns <package_name>
Управление пакетами
Обновление системы
# pacman -Syu
 -y  синхронизация дерева пакетов
 -u обновление всех установленных пакетов
Список пакетов сирот, могут быть удалены из системы
# pacman -Qdt
 -Q запрос к базе установленных пакетов
 -d список пакетов установленных как зависимости
 -t  список пакетов в которых не нуждается ни один другой пакет
Удаление пакет сирот, отрабатывает рекурсивно, рекомендуется использовать аккуратно.
# pacman -Rns $(pacman -Qtdq)
 -q выводит только имя пакета
Привожу пример из своей системы
# pacman -Qtdq
gobject-introspection
orbit2

#pacman -Rns $(pacman -Qtdq)
checking dependencies...

Remove (3): orbit2-2.14.19-1  libidl2-0.8.14-1  gobject-introspection-1.30.0-1

Total Removed Size:   10.70 MB

Do you want to remove these packages? [Y/n]
как видно при удалении появился еще один пакет libidl2-0.8.14-1.

более полную информацию можно получить на
https://wiki.archlinux.org/index.php/Pacman (есть ссылка на русский язык),
а так же непосредственно в командной строке
# man pacman

Комментариев нет: