Библиотека сайта 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. Приложения с графическим интерфейсом не будут обсуждаться в рамках данной книги.
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. Общая информация о сетях |