Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Администрирование систем Linux. Управление пакетами программного обеспечения

Оригинал: Package management
Автор: Paul Cobbaut
Дата публикации: 12 марта 2015 г.
Перевод: A. Панин
Дата перевода: 31 марта 2015 г.

Глава 20. Управление пакетами программного обеспечения

В большинстве дистрибутивов Linux используются системы управления пакетами программного обеспечения, позволяющие взаимодействовать с сетевыми репозиториями программного обеспечения, содержащими тысячи пакетов. Эти системы позволяют без лишних сложностей устанавливать и удалять приложения, компоненты операционной системы, документацию, а также другие программные компоненты.

В первую очередь в главе будут рассматриваться пакеты программного обеспечения дистрибутива Debian с расширением .deb, а также инструменты, предназначенные для работы с этими пакетами, а именно dpkg, apt-get и aptitude. Пакеты программного обеспечения упомянутого формата и соответствующие инструменты используются в дистрибутивах Debian, Ubuntu, Mint, а также во всех производных дистрибутивах.

После этого будут рассматриваться пакеты программного обеспечения дистрибутива Red Hat с расширением .rpm, а также инструменты, предназначенные для работы с этими пакетами, а именно rpm и yum. Пакеты программного обеспечения упомянутого формата и соответствующие инструменты используются в дистрибутивах Red Hat, Fedora, CentOS, а также во всех производных дистрибутивах.

20.1. Терминология

20.1.1. Репозиторий

Программное обеспечение и документация для вашего дистрибутива Linux могут быть получены в формате пакетов из одного или нескольких идентичных распределенных репозиториев. Пакеты из репозитория протестированы на работоспособность и могут достаточно просто устанавливаться в систему и удаляться из нее с помощью программы установки пакетов программного обеспечения с графическим интерфейсом или интерфейсом командной строки.

20.1.2. Пакеты программного обеспечения с расширением .deb

В дистрибутивах Debian, Ubuntu, Mint и во всех производных от Debian и Ubuntu дистрибутивах используются пакеты программного обеспечения с расширением .deb. Для управления программным обеспечением в данных дистрибутивах могут использоваться инструменты aptitude и apt-get, которые, в свою очередь, используют низкоуровневую утилиту dpkg.

20.1.3. Пакеты программного обеспечения с расширением .rpm

В дистрибутивах Red Hat, Fedora, CentOS, OpenSUSE, Mandriva, Red Flag, а также других дистрибутивах используются пакеты программного обеспечения с расширением .rpm. Инструментами для управления программным обеспечением в этих дистрибутивах являются yum и rpm.

20.1.4. Зависимости

Некоторым пакетам программного обеспечения для корректного функционирования требуются другие пакеты программного обеспечения. Такие инструменты, как apt-get, aptitude и yum позволяют устанавливать все необходимые зависимости в процессе установки пакетов программного обеспечения. В случае использования утилит dpkg и rpm или сборки программного обеспечения из исходных кодов вам придется установить все зависимости самостоятельно.

20.1.5. Программное обеспечение с открытым исходным кодом

Репозитории содержат широкий спектр программного обеспечения с открытым исходным кодом. Нередко в исходный код программного обеспечения вносятся изменения, направленные на лучшую интеграцию данного программного обеспечения с вашим дистрибутивом. В большинстве дистрибутивов также осуществляется распространение результирующего модифицированного исходного кода программного обеспечения в форме пакетов из репозиториев исходного кода.

При этом у вас также остается возможность посещения вебсайта интересующего вас проекта (samba.org, apache.org, github.com, ) и скачивания ванильного исходного кода (т.е., исходного кода без изменений, внесенных разработчиками дистрибутива).

20.1.6. Управление программным обеспечением с помощью приложения с графическим интерфейсом

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

Ниже приведен снимок окна Центра приложений Ubuntu из состава дистрибутива Ubuntu 12.04. Приложения с графическим интерфейсом не будут обсуждаться в рамках данной книги.

Центр приложений Ubuntu

20.2. Управление пакетами программного обеспечения формата deb

20.2.1. О пакетах программного обеспечения формата deb

Большинство пользователей применяет утилиту aptitude или apt-get для управления программным обеспечением своих дистрибутивов Linux семейства Debian/Ubuntu. Обе упомянутые утилиты используют низкоуровневую утилиту dpkg, а сами являются основой для приложения synaptic и других приложений с графическим интерфейсом.

20.2.2. Команда dpkg -l

Утилита dpkg является низкоуровневым инструментом, предназначенным для работы с пакетами программного обеспечения формата deb. Ниже приведена команда для получения списка всех установленных пакетов программного обеспечения, которая вначале выполняется на сервере, работающем под управлением дистрибутива Debian.

root@debian6:~# dpkg -l | wc -l
265

Сравните этот вывод с выводом этой же команды, выполненной на настольном компьютере, который работает под управлением дистрибутива Ubuntu.

root@ubu1204~# dpkg -l | wc -l
2527

20.2.3. Команда dpkg -l $имя_пакета

Ниже приведен пример команды для получения информации об отдельном пакете программного обеспечения. Символы ii в начале строки говорят о том, что пакет программного обеспечения установлен.

root@debian6:~# dpkg -l rsync | tail -1 | tr -s ' ' 
ii rsync 3.0.7-2 fast remote file copy program (like rcp)

20.2.4. Команда dpkg -S

Вы можете найти пакет программного обеспечения, из которого был извлечен определенный файл, находящийся в файловой системе вашего компьютера, с помощью команды dpkg -S. В данном примере показана методика поиска пакета программного обеспечения, из которого были извлечены три файла, которые можно обнаружить на среднестатистическом работающем под управлением дистрибутива Debain сервере.

root@debian6:~# dpkg -S /usr/share/doc/tmux/ /etc/ssh/ssh_config /sbin/ifconfig 
tmux: /usr/share/doc/tmux/
openssh-client: /etc/ssh/ssh_config
net-tools: /sbin/ifconfig

20.2.5. Команда dpkg -L

Также вы можете получить список всех файлов, которые устанавливаются в процессе установки определенной программы. Ниже приведен список файлов, устанавливаемых в процессе установки пакета программного обеспечения tmux.

root@debian6:~# dpkg -L tmux
/.
/etc
/etc/init.d
/etc/init.d/tmux-cleanup
/usr
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/tmux
/usr/share/doc
/usr/share/doc/tmux
/usr/share/doc/tmux/TODO.gz
/usr/share/doc/tmux/FAQ.gz
/usr/share/doc/tmux/changelog.Debian.gz
/usr/share/doc/tmux/NEWS.Debian.gz
/usr/share/doc/tmux/changelog.gz
/usr/share/doc/tmux/copyright
/usr/share/doc/tmux/examples
/usr/share/doc/tmux/examples/tmux.vim.gz
/usr/share/doc/tmux/examples/h-boetes.conf
/usr/share/doc/tmux/examples/n-marriott.conf
/usr/share/doc/tmux/examples/screen-keys.conf
/usr/share/doc/tmux/examples/t-williams.conf
/usr/share/doc/tmux/examples/vim-keys.conf
/usr/share/doc/tmux/NOTES
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/tmux.1.gz
/usr/bin
/usr/bin/tmux

10.2.6. Основные функции утилиты dpkg

Вы можете использовать команду dpkg -i для установки пакета программного обеспечения и команду dpkg -r для удаления пакета программного обеспечения, но в этом случае вам придется вручную разрешить все зависимости. Гораздо проще пользоваться такими инструментами, как apt-get и aptitude.

20.3. Утилита apt-get

Утилита apt-get используется для управления пакетами программного обеспечения в дистрибутиве Debian с 1998 года. На сегодняшний день в рамках дистрибутива Debian, а также множества основанных на Debain дистрибутивов осуществляется активная поддержка утилиты apt-get, хотя некоторые эксперты и заявляют, что утилита aptitude обрабатывает зависимости гораздо лучше, чем apt-get.

Обе упомянутые утилиты используют одни и те же конфигурационные файлы и могут заменять друг друга; если вы обнаружите упоминание об утилите apt-get в какой-либо документации, можете смело заменять apt-get на aptitude.

Сначала рассмотрим утилиту apt-get, после чего перейдем к обсуждению утилиты aptitude в следующем разделе.

20.3.1. Команда apt-get update

При исполнении команды apt-get update осуществляется автоматическая загрузка файлов со списками имен, версий и краткими описаниями всех пакетов программного обеспечения, доступных из всех репозиториев, которые активированы в вашей системе.

В выводе из примера ниже можно обнаружить несколько репозиториев с строками URL, начинающимися с be.archive.ubuntu.com из-за того, что данный компьютер установлен в Бельгии. В вашем случае строки URL могут отличаться.

root@ubu1204~# apt-get update
Игн http://be.archive.ubuntu.com precise InRelease
Игн http://extras.ubuntu.com precise InRelease
Игн http://security.ubuntu.com precise-security InRelease 
Игн http://archive.canonical.com precise InRelease 
Игн http://be.archive.ubuntu.com precise-updates InRelease 
...
В кэше http://be.archive.ubuntu.com precise-backports/main Translation-en 
В кэше http://be.archive.ubuntu.com precise-backports/multiverse Translation-en 
В кэше http://be.archive.ubuntu.com precise-backports/restricted Translation-en 
В кэше http://be.archive.ubuntu.com precise-backports/universe Translation-en 
Получено 13.7 МБ за 8с (1682 kБ/c) 
Чтение списков пакетов  Готово
root@ubu1204~#

Выполняйте команду apt-get update каждый раз перед выполнением других операций с пакетами программного обеспечения.

20.3.2. Команда apt-get upgrade

Одна из наиболее полезных возможностей утилиты apt-get заключается в безопасном обновлении всего установленного на данный момент на вашем компьютере программного обеспечения с помощью единственной команды.

root@debian6:~# apt-get upgrade
Чтение списков пакетов  Готово 
Построение дерева зависимостей       
Чтение информации о состоянии  Готово
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
root@debian6:~# 

В примере выше показана ситуация, в которой все программное обеспечение уже обновлено до последних версий, доступных в моей версии дистрибутива.

20.3.3. Команда apt-get clean

Утилита apt-get хранит копии загруженных пакетов программного обеспечения в директории /var/cache/apt/archives, что хорошо видно в примере ниже.

root@ubu1204~# ls /var/cache/apt/archives/ | head
accountsservice_0.6.15-2ubuntu9.4_i386.deb
apport_2.0.1-0ubuntu14_all.deb
apport-gtk_2.0.1-0ubuntu14_all.deb
apt_0.8.16~exp12ubuntu10.3_i386.deb
apt-transport-https_0.8.16~exp12ubuntu10.3_i386.deb
apt-utils_0.8.16~exp12ubuntu10.3_i386.deb
bind9-host_1%3a9.8.1.dfsg.P1-4ubuntu0.4_i386.deb
chromium-browser_20.0.1132.47~r144678-0ubuntu0.12.04.1_i386.deb
chromium-browser-l10n_20.0.1132.47~r144678-0ubuntu0.12.04.1_all.deb
chromium-codecs-ffmpeg_20.0.1132.47~r144678-0ubuntu0.12.04.1_i386.deb

Команда apt-get clean позволяет удалить все файлы из этой директории.

root@ubu1204~# apt-get clean
root@ubu1204~# ls /var/cache/apt/archives/*.deb
ls: невозможно получить доступ к /var/cache/apt/archives/*.deb: Нет такого файла или каталога

20.3.4. Команда apt-cache search

Используйте команду apt-cache search для проверки доступности пакета программного обеспечения. В данном примере мы ищем пакет с именем rsync.

root@ubu1204~# apt-cache search rsync | grep ^rsync
rsync - fast, versatile, remote (and local) file-copying tool
rsyncrypto - rsync friendly encryption

20.3.5. Команда apt-get install

Вы можете установить одно или несколько приложений, разместив имена в строке команды после apt-get install. В примере ниже показан процесс установки пакета программного обеспечения с именем rsync.

root@ubu1204~# apt-get install rsync
Чтение списков пакетов  Готово 
Построение дерева зависимостей       
Чтение информации о состоянии  Готово
НОВЫЕ пакеты, которые будут установлены:
  rsync
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 8 пакетов не обновлено.
Необходимо скачать 299 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 634 kB.
Получено:1 http://be.archive.ubuntu.com/ubuntu/ precise/main rsync i386 3.0.9-1ubuntu1 [299 kB]
Получено 299 kБ за 0с (740 kБ/c)
Выбор ранее не выбранного пакета rsync.
(Чтение базы данных ... на данный момент установлено 323649 файлов и каталогов.)
Распаковывается пакет rsync (из файла .../rsync_3.0.9-1ubuntu1_i386.deb) ...
Обрабатываются триггеры для man-db ... 
Обрабатываются триггеры для ureadahead ...
Настраивается пакет (3.0.9-1ubuntu1) ...
 Removing any system startup links for /etc/init.d/rsync ...
root@ubu1204~#

20.3.6. Команда apt-get remove

Вы можете удалить одно или несколько приложений, разместив их имена в строке команды после apt-get remove. В примере ниже показан процесс удаления пакета программного обеспечения с именем rsync.

root@ubu1204~# apt-get remove rsync
Чтение списков пакетов  Готово 
Построение дерева зависимостей       
Чтение информации о состоянии  Готово 
Пакеты, которые будут УДАЛЕНЫ:
  rsync ubuntu-standard
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 2 пакетов, и 8 пакетов не обновлено.
После данной операции, объём занятого дискового пространства уменьшится на 692 kB.
Хотите продолжить [Д/н]? y 
(Чтение базы данных ... на данный момент установлено 323681 файлов и каталогов.)
Удаляется пакет ubuntu-standard ...
Удаляется пакет rsync ...
 * Stopping rsync daemon rsync [ OK ] 
Обрабатываются триггеры для ureadahead ... 
Обрабатываются триггеры для man-db ...
root@ubu1204~#

Обратите внимание на то, что при удалении пакета с помощью рассматриваемой команды некоторые конфигурационные денные не удаляются.

root@ubu1204~# dpkg -l rsync | tail -1 | tr -s ' ' 
rc rsync 3.0.9-1ubuntu1 fast, versatile, remote (and local) file-copying tool

20.3.7. Команда apt-get purge

Вы можете удалить полностью одно или несколько приложений, разместив их имена в строке команды после apt-get purge. В ходе полного удаления приложения будут также удаляться все существующие файлы конфигурации, имеющие отношение к данному приложению. В примере ниже показан процесс полного удаления пакета программного обеспечения с именем rsync.

root@ubu1204~# apt-get purge rsync
Чтение списков пакетов  Готово 
Построение дерева зависимостей       
Чтение информации о состоянии  Готово 
Пакеты, которые будут УДАЛЕНЫ:
  rsync*
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 1 пакетов, и 8 пакетов не обновлено.
После данной операции, объём занятого дискового пространства уменьшится на 0 kB.
Хотите продолжить [Д/н]? y 
(Чтение базы данных ... на данный момент установлено 323651 файлов и каталогов.) 
Удаляется пакет rsync ...
Вычищаются файлы настройки пакета rsync ...
Обрабатываются триггеры для ureadahead ...
root@ubu1204~#

Обратите внимание на то, что утилита dpkg не обладает информацией о полностью удаленном пакете помимо той, что пакет был удален и в системе не осталось файлов конфигурации.

root@ubu1204~# dpkg -l rsync | tail -1 | tr -s ' ' 
un rsync <нет> (описание недоступно)

20.4. Утилита aptitude

Большинство пользователей применяет утилиту aptitude для управления пакетами программного обеспечения в дистрибутивах Debain, Mint и Ubuntu.

Команда для синхронизации списков программного обеспечения с репозиториями:

aptitude update

Команда для обновления всех программных компонентов до последних версий в дистрибутиве Debian.

aptitude upgrade

Команда для обновления всех программных компонентов до последних версий в дистрибутивах Ubuntu и Mint.

aptitude safe-upgrade

Команда для установки приложения со всеми зависимостями:

aptitude install $имя_пакета

Команда для поиска в репозиториях приложений, имена или описания которых содержат указанную строку:

aptitude search $строка

Команда для удаления приложения:

aptitude remove $имя_пакета

Команда для удаления приложения вместе со всеми его файлами конфигурации:

aptitude purge $имя_пакета

20.5. Директория apt

И утилита apt-get, и утилита aptitude используют одни и те же файлы конфигурации, расположенные в директории /etc/apt. Следовательно, в случае добавления репозитория для установки программного обеспечения с помощью одной из упомянутых утилит, вы сможете устанавливать программное обеспечение из добавленного репозитория и с помощью другой утилиты.

20.5.1. Файл конфигурации /etc/apt/sources.list

Список ресурсов, используемый утилитами apt-get и aptitude, расположен в файле /etc/apt/sources.list. Данный файл содержит строки URL для доступа по протоколам http и ftp к ресурсами, с которых могут быть получены пакеты для используемого дистрибутива.

На моем сервере, работающем под управлением дистрибутива Debian, данный файл выглядит следующим образом:

root@debian6:~# cat /etc/apt/sources.list
deb http://ftp.be.debian.org/debian/ squeeze main
deb-src http://ftp.be.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

# squeeze-updates, previously known as 'volatile'
deb http://ftp.be.debian.org/debian/ squeeze-updates main
deb-src http://ftp.be.debian.org/debian/ squeeze-updates main

На моем настольном компьютере, работающем под управлением дистрибутива Ubuntu, используется в четыре раза больше сетевых репозиториев.

root@ubu1204~# wc -l /etc/apt/sources.list
63 /etc/apt/sources.list

Ввиду того, что в рамках данной книги не рассматриваются некоторые аспекты работы со списками репозиториев apt, вам следует разобраться с ними самостоятельно, обратив особое внимание на такие команды, как add-apt-repository, apt-key и aprops apt.

20.6. Управление пакетами программного обеспечения формата rpm

20.6.1. О пакетах программного обеспечения формата rpm

Менеджер пакетов программного обеспечения Red Hat (Red Hat package manager) может использоваться посредством утилиты rpm с интерфейсом командной строки в терминале или посредством приложения с графическим интерфейсом, вызываемого с помощью пункта меню "Приложения - Системные настройки - Установка/Удаление приложений". Выполните команду rpm --help для ознакомления с некоторыми параметрами утилиты.

При формировании имен файлов пакетов программного обеспечения формата rpm используется следующий формат: название_программного_компонента-версия.платформа.rpm.

20.6.2. Команда rpm -qa

Для получения списка установленных пакетов программного обеспечения следует использовать команду rpm -qa.

[root@RHEL52 ~]# rpm -qa | grep samba
system-config-samba-1.2.39-1.el5
samba-3.0.28-1.el5_2.1
samba-client-3.0.28-1.el5_2.1
samba-common-3.0.28-1.el5_2.1

20.6.3. Команда rpm -q

Чтобы убедиться в том, что определенный пакет программного обеспечения был установлен, вы можете использовать команду rpm -q.

root@RHELv4u4:~# rpm -q gcc
gcc-3.4.6-3
root@RHELv4u4:~# rpm -q laika
пакет laika не установлен

20.6.4. Команда rpm -Uhv

Для установки или обновления пакета программного обеспечения следует использовать параметры -Uvh рассматриваемой утилиты. Параметр -U аналогичен параметру -i, предназначенному для установки пакета программного обеспечения, но в случае его использования более старые версии пакетов программного обеспечения будут удаляться. Параметры -vh предназначены для активации режима вывода, более удобного для чтения.

root@RHELv4u4:~# rpm -Uvh gcc-3.4.6-3

20.6.5. Команда rpm -e

Для удаления пакета программного обеспечения следует использовать параметр -e рассматриваемой утилиты.

root@RHELv4u4:~# rpm -e gcc-3.4.6-3

В случае использования команды rpm -e утилита rpm будет осуществлять проверку зависимостей, предотвращая тем самым возможность случайного удаления пакетов программного обеспечения, которые требуются для корректной работы программных компонентов из других пакетов программного обеспечения.

[root@RHEL52 ~]# rpm -e gcc-4.1.2-42.el5
ошибка: Неудовлетворенные зависимости:
gcc = 4.1.2-42.el5 нужен для (установлен)gcc-c++-4.1.2-42.el5.i386
gcc = 4.1.2-42.el5 нужен для (установлен)gcc-gfortran-4.1.2-42.el5.i386
gcc нужен для (установлен)systemtap-0.6.2-1.el5_2.2.i386

20.6.6. Директория /var/lib/rpm

База данных менеджера пакетов программного обеспечения Red Hat расположена в директории /var/lib/rpm. Эта база данных содержит все метаданные, относящиеся к пакетам программного обеспечения, которые были установлены (с помощью утилиты rpm). В ней хранится информация обо всех файлах из пакетов программного обеспечения, благодаря наличию которой имеется возможность полного удаления программного обеспечения.

20.6.7. Утилита rpm2cpio

Мы можем использовать утилиту rpm2cpio для преобразования пакета программного обеспечения формата rpm в архив формата cpio.

[root@RHEL53 ~]# file kernel.src.rpm 
kernel.src.rpm: RPM v3 src PowerPC kernel-2.6.18-92.1.13.el5
[root@RHEL53 ~]# rpm2cpio kernel.src.rpm > kernel.cpio
[root@RHEL53 ~]# file kernel.cpio 
kernel.cpio: ASCII cpio archive (SVR4 with no CRC)

Но для чего это может понадобиться?

Возможно, просто для того, чтобы ознакомиться со списком имен файлов, хранящихся в пакете программного обеспечения формата rpm.

[root@RHEL53 ~]# rpm2cpio kernel.src.rpm | cpio -t | head -5
COPYING.modules
Config.mk
Module.kabi_i686
Module.kabi_i686PAE
Module.kabi_i686xen

Или для извлечения какого-либо файла из пакета программного обеспечения формата rpm.

[root@RHEL53 ~]# rpm2cpio kernel.src.rpm | cpio -iv Config.mk
Config.mk
246098  блоков

20.7. Утилита yum

20.7.1. Информация об утилите yum

Модифицированный инструмент для обновления дистрибутива Yellowdog Linux (Yellowdog Updater, Modified - yum) является утилитой с интерфейсом командной строки, предназначенной для упрощения работы с пакетами программного обеспечения формата rpm. Данная утилита устанавливается по умолчанию в процессе установки таких дистрибутивов, как Fedora и Red Hat Enterprise Linux начиная с версии 5.2.

20.7.2. Команда yum list

Выполните команду yum list available для получения списка доступных для установки пакетов программного обеспечения. Параметр available является необязательным.

root@rhel65:/etc# yum list | wc -l
This system is receiving updates from Red Hat Subscription Management.
3935
root@rhel65:/etc#

Выполните команду yum list $имя_пакета для получения списка всех доступных версий указанного пакета программного обеспечения (из различных репозториев).

[root@rhel55 ~]# yum list samba
Loaded plugins: rhnplugin, security
Установленные пакеты
samba.i386                 3.0.33-3.28.el5         installed 
Доступные пакеты
samba.i386                 3.0.33-3.29.el5_5       rhel-i386-server-5

20.7.3. Команда yum search

Для осуществления поиска пакета, имя или описание которого содержит заданную строку, следует использовать команду yum search $строка.

[root@rhel55 ~]# yum search gcc44
Loaded plugins: rhnplugin, security
========================== N/S matched: gcc44 ===========================
gcc44.i386 : Preview of GCC version 4.4
gcc44-c++.i386 : C++ support for GCC version 4.4
gcc44-gfortran.i386 : Fortran support for GCC 4.4 previe

20.7.4. Команда yum provides

Для поиска пакета программного обеспечения, содержащего файл с определенным именем (что может понадобиться в процессе компиляции программного обеспечения из исходных кодов), следует использовать команду yum provides $имя_файла.

root@rhel65:/etc# yum provides /usr/share/man/man5/passwd.5.gz
Loaded plugins: product-id, subscription-manager
This system is receiving updates from Red Hat Subscription Management.
rhel-6-server-cf-tools-1-rpms                       | 2.8 kB 00:00
rhel-6-server-rpms                                  | 3.7 kB 00:00
man-pages-3.22-12.el6.noarch : Man (manual) pages from the Linux Documenta...
Источник    : rhel-6-server-rpms
Совпадения с:
Имя файла   : /usr/share/man/man5/passwd.5.gz



man-pages-3.22-20.el6.noarch : Man (manual) pages from the Linux Documenta...
Источник    : rhel-6-server-rpms
Совпадения с:
Имя файла   : /usr/share/man/man5/passwd.5.gz



man-pages-3.22-17.el6.noarch : Man (manual) pages from the Linux Documenta...
Источник    : rhel-6-server-rpms
Совпадения с:
Имя файла   : /usr/share/man/man5/passwd.5.gz



man-pages-3.22-20.el6.noarch : Man (manual) pages from the Linux Documenta...
Источник    : installed
Совпадения с:
Имя файла   : Provides-match: /usr/share/man/man5/passwd.5.gz



root@rhel65:/etc#

20.7.5. Команда yum install

Для установки приложения следует использовать команду yum install $имя_пакета. Утилита yum позаботится об установке всех необходимых зависимостей.

В рамках данной команды вы можете использовать более одного параметра.

yum install $имя_пакета1 $имя_пакета2 $имя_пакета3

20.7.6. Команда yum update

Для обновления всех приложений путем загрузки и установки новых пакетов программного обеспечения, следует использовать команду yum update. Все программное обеспечение, которое было установлено в помощью утилиты yum, будет обновлено до последних версий, доступных в репозитории.

yum update

Если вы желаете обновить только один пакет программного обеспечения, вы можете использовать команду yum update $имя_пакета.

[root@rhel55 ~]# yum update sudo
Loaded plugins: rhnplugin, security
Skipping security plugin, no data
Setting up Update Process
Разрешение зависимостей
Skipping security plugin, no data
--> Проверка сценария
---> Пакет sudo.i386 0:1.7.2p1-7.el5_5 помечен как обновление
--> Проверка зависимостей окончена

Dependencies Resolved

================================================================================
 Package                   Архитектура
                                  Версия                  Репозиторий     Размер
================================================================================
Обновление:
 sudo                      i386   1.7.2p1-7.el5_5  rhel-i386-server-5     230 k

Итого за операцию
================================================================================
Обновить  1 пакет

Объем загрузки: 230 k
Is this ok [y/N]: y
Downloading Packages:
sudo-1.7.2p1-7.el5_5.i386.rpm | 230 kB 00:00 
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Обновление  : sudo 1/2
  Очистка     : sudo 2/2

Обновлено:
  sudo.i386 0:1.7.2p1-7.el5_5

Выполнено!

20.7.7. Группы программного обеспечения yum

Выполните команду yum grouplist для ознакомления со списком всех доступных групп программного обеспечения.

[root@rhel55 ~]# yum grouplist
Loaded plugins: rhnplugin, security
Setting up Group Process
Installed Groups:
   Administration Tools
   Authoring and Publishing
   DNS Name Server
   Development Libraries
   Development Tools
   Editors
   GNOME Desktop Environment
   GNOME Software Development
   Graphical Internet
   Graphics
   Legacy Network Server
   Legacy Software Development
   Legacy Software Support
   Mail Server
   Network Servers
   Office/Productivity
   Printing Support
   Server Configuration Tools
   System Tools
   Text-based Internet
   Web Server
   Windows File Server
   X Software Development
   X Window System
Available Groups:
   Engineering and Scientific
   FTP Server
   Games and Entertainment
   Java Development
   KDE (K Desktop Environment)
   KDE Software Development
   MySQL Database
   News Server
   OpenFabrics Enterprise Distribution
   PostgreSQL Database
   Sound and Video
Done

Для установки приложений, объединенных в рамках группы, следует использовать команду yum groupinstall $имя_группы.

[root@rhel55 ~]# yum groupinstall 'Sound and video'
Loaded plugins: rhnplugin, security
Setting up Group Process
Пакет alsa-utils-1.0.17-1.el5.i386 уже установлен и это последняя версия
Пакет sox-12.18.1-1.i386 уже установлен и это последняя версия
Пакет 9:mkisofs-2.01-10.7.el5.i386 уже установлен и это последняя версия
Пакет 9:cdrecord-2.01-10.7.el5.i386 уже установлен и это последняя версия
Пакет cdrdao-1.2.1-2.i386 уже установлен и это последняя версия
Разрешение зависимостей
--> Проверка сценария
---> Пакет cdda2wav.i386 9:2.01-10.7.el5 помечен для установки
---> Пакет cdparanoia.i386 0:alpha9.8-27.2 помечен для установки
---> Пакет sound-juicer.i386 0:2.16.0-3.el5 помечен для установки
--> Обработка зависимостей: libmusicbrainz >= 2.1.0 пакета: sound-juicer
--> Обработка зависимостей: libmusicbrainz.so.4 пакета: sound-juicer
---> Пакет vorbis-tools.i386 1:1.1.1-3.el5 помечен для установки
--> Обработка зависимостей: libao >= 0.8.4 пакета: vorbis-tools
--> Обработка зависимостей: libao.so.2 пакета: vorbis-tools
--> Проверка сценария
---> Пакет libao.i386 0:0.8.6-7 помечен для установки
---> Пакет libmusicbrainz.i386 0:2.1.1-4.1 помечен для установки
--> Проверка зависимостей окончена
...

Обратитесь к странице руководства утилиты yum для получения дополнительной информации об управлении группами программного обеспечения средствами yum.

20.7.8. Файл конфигурации /etc/yum.conf и репозитории

Данные для доступа к репозиториям, которые используются утилитой yum, приводится в рамках файла конфигурации /etc/yum/yum.conf и файлов описания репозиториев из директории /etc/yum/repos.d/.

Конфигурация утилиты yum осуществляется в рамках файла конфигурации /etc/yum.conf. Данный файл должен содержать путь к файлу журнала и директории для кэширования данных, загружаемых утилитой yum, а также может содержать данные для доступа к репозиториям.

Не так давно утилита yum получила возможность обработки множества файлов описания репозиториев с расширением .repo, каждый из которых может содержать данные для доступа к репозиториям. Эти файлы с расширением .repo должны быть помещены в директорию /etc/yum.repos.d/.

Одним из наиболее важных флагов утилиты yum является флаг enablerepo. Используйте следующую команду, если вы желаете использовать репозиторий, который не активирован по умолчанию.

yum $операция $имя_пакета --enablerepo=$имя_репозитория

В примере приведено необходимое содержимое файла описания репозитория с расширением .repo: MyRepo.repo

[$имя_репозитория]
name=Мой репозиторий
baseurl=http://путь/к/репозиторию
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MyRep

20.8. Утилита alien

Утилита alien является экспериментальным инструментом, который предназначен для преобразования форматов пакетов rpm и deb (и других).

Ниже приведен пример использования утилиты alien для преобразования пакета программного обеспечения формата rpm в пакет программного обеспечения формата deb.

paul@barry:~$ ls -l netcat*
-rw-r--r-- 1 paul paul 123912 2009-06-04 14:58 netcat-0.7.1-1.i386.rpm
paul@barry:~$ alien --to-deb netcat-0.7.1-1.i386.rpm 
netcat_0.7.1-2_i386.deb generated
paul@barry:~$ ls -l netcat*
-rw-r--r-- 1 paul paul 123912 2009-06-04 14:58 netcat-0.7.1-1.i386.rpm
-rw-r--r-- 1 root root 125236 2009-06-04 14:59 netcat_0.7.1-2_i386.deb

В реальной жизни следует использовать пакет с утилитой netcat из репозитория вашего дистрибутива или пакет программного обеспечения формата deb с вебсайта проекта.

20.9. Загрузка программного обеспечения в обход репозитория дистрибутива

При загрузке любого программного обеспечения в обход репозитория дистрибутива первым и наиболее важным шагом является чтение поставляемого в комплекте файла README!

Обычно в файле README даются пояснения относительно ваших действий после загрузки пакета программного обеспечения. С большой вероятностью для загрузки вам будет предложен файл архива с расширением .tar.gz или .tgz. Прочитайте документацию, после чего переместите загруженный файл архива в отдельную директорию. Вы можете использовать следующую команду, чтобы выяснить, в какую директорию по умолчанию будет распакован архив.

tar tvzpf $загруженный_файл.tgz

Если вы распакуете данный архивный файл с помощью команды tar xzf, будет создана директория с именем $имя_приложения-версия.

tar xzf $applicationName.tgz

Замените параметр z на j в том случае, если файл архива имеет расширение .tar.bz2. Приемы работы с утилитами tar, gzip и bzip2 подробно описаны в книге "Фундаментальные основы Linux".

Если вы загрузили файл с расширением .deb, для установки программного обеспечения придется использовать утилиту dpkg, а в случае загрузки файла с расширением .rpm установка программного обеспечения может осуществляться с помощью утилиты rpm.

20.10. Компиляция программного обеспечения из исходного кода

При загрузке исходного кода любого программного компонента с целью последующей компиляции и установки первым и наиболее важным шагом является чтение поставляемого в комплекте файла README!

Чаще всего процесс сборки программного обеспечения из исходного кода может быть разделен на три шага: запуск сценария конфигурации ./configure с последующим запуском процесса сборки make (которая по сути и является компиляцией) и выполнением команды установки make install для копирования результирующих файлов в необходимые директории файловой системы.

./configure
make
make install

20.11. Практическое задание: управление пакетами программного обеспечения

1. Проверьте, установлены ли пакеты программного обеспечения с именами gcc, sudo и wesnoth в вашей системе.

2. Используйте утилиту yum или aptitude для поиска и установки пакетов программного обеспечения с именами scp, tmux и man-pages. Удалось ли найти в репозитории вашего дистрибутива все перечисленные пакеты.

3. Найдите в сети Интернет информацию о программном обеспечении 'webmin' и выясните способ установки этого программного обеспечения в систему.

4. Если есть время, найдите пакеты программного обеспечения samba, а также пакеты с документацией проекта samba в формате pdf (тысячи страниц документации в рамках двух файлов pdf).

20.12. Корректная процедура выполнения практического задания: управление пакетами программного обеспечения

1. Проверьте, установлены ли пакеты программного обеспечения с именами gcc, sudo и wesnoth в вашей системе.

В дистрибутиве RedHat/CentOS:

rpm -qa | grep gcc
rpm -qa | grep sudo
rpm -qa | grep wesnoth

В дистрибутиве Debian/Ubuntu:

dpkg -l | grep gcc
dpkg -l | grep sudo
dpkg -l | grep wesnoth

2. Используйте утилиту yum или aptitude для поиска и установки пакетов программного обеспечения с именами scp, tmux и man-pages. Удалось ли найти в репозитории вашего дистрибутива все перечисленные пакеты.

В дистрибутиве RedHat/CentOS:

yum search scp
yum search tmux
yum search man-pages

В дистрибутиве Debian/Ubuntu:

aptitude search scp
aptitude search tmux
aptitude search man-pages

3. Найдите в сети Интернет информацию о программном обеспечении 'webmin' и выясните способ установки этого программного обеспечения в систему.

Поисковая система Google приведет вас на вебсайт webmin.com.

С данного вебсайта могут быть загружены пакеты программного обеспечения различных форматов, поэтому в зависимости от дистрибутива следует выбрать файл с расширением .rpm, .deb или .tgz.

4. Если есть время, найдите пакеты программного обеспечения samba, а также пакеты с документацией проекта samba в формате pdf (тысячи страниц документации в рамках двух файлов формата pdf).


Предыдущий раздел: Оглавление Следующий раздел:
Глава 19. Мониторинг использования ресурсов системы   Глава 21. Общая информация о сетях