- Что такое dpkg linux
- ОПИСАНИЕ
- ИНФОРМАЦИЯ О ПАКЕТАХ
- СОСТОЯНИЯ ПАКЕТА
- ВЫБРАННЫЕ СОСТОЯНИЯ ПАКЕТА
- ФЛАГИ ПАКЕТА
- ДЕЙСТВИЯ
- ПАРАМЕТРЫ
- ФАЙЛЫ
- ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
- ПРИМЕРЫ
- Администрирование систем Linux. Управление пакетами программного обеспечения
- Глава 20. Управление пакетами программного обеспечения
- 20.1. Терминология
- 20.2. Управление пакетами программного обеспечения формата deb
- 20.3. Утилита apt-get
- 20.4. Утилита aptitude
- 20.5. Директория apt
- 20.6. Управление пакетами программного обеспечения формата rpm
- 20.7. Утилита yum
- 20.8. Утилита alien
- 20.9. Загрузка программного обеспечения в обход репозитория дистрибутива
- 20.10. Компиляция программного обеспечения из исходного кода
- 20.11. Практическое задание: управление пакетами программного обеспечения
- 20.12. Корректная процедура выполнения практического задания: управление пакетами программного обеспечения
Что такое dpkg linux
Это руководство не следует использовать сопровождающим пакетов, которые хотят понять, как dpkg будет устанавливать их пакеты. Описание того, что делает dpkg при установке и удалении пакетов особенно не полно.
ОПИСАНИЕ
dpkg can be also be used as a front-end to dpkg-deb (1). The following are dpkg-deb actions, and if they are encountered, dpkg just runs dpkg-deb with the parameters given to it: Все эти действия описаны в dpkg-deb (1).
ИНФОРМАЦИЯ О ПАКЕТАХ
СОСТОЯНИЯ ПАКЕТА
ВЫБРАННЫЕ СОСТОЯНИЯ ПАКЕТА
ФЛАГИ ПАКЕТА
ДЕЙСТВИЯ
Установка состоит из следующих шагов:
1. Извлечение управляющих файлов нового пакета.
2. Если другая версия этого пакета была установлена ранее, то запускается сценарий prerm из старого пакета.
3. Запускается сценарий preinst , если он есть в пакете.
4. Распаковываются новые файлы, в тоже самое время сохраняя старые, чтобы если что-то пойдет не так, можно было их восстановить.
5. Если ранее была установлена другая версия этого пакета, то запускается сценарий postrm для старого пакета. Заметим, что этот сценарий запускается после сценария preinst нового пакета, потому что новые файлы записываются в то же самое время, когда удаляются старые.
6. Настройка пакета. Смотрите описание —configure , где приведена подробная информация об этом шаге. dpkg —unpack имя файла пакета . Распаковать пакет, но не настраивать. Если указан параметр —recursive или —R , то вместо имени файла пакета должен быть указан каталог. dpkg —configure имя пакета . | -a | —pending Повторно настроить распакованный пакет. Если вместо имени пакета задан параметр -a или —pending , то все распакованные, но не настроенные пакеты будут настроены.
Настройка состоит из следующих шагов:
1. Распаковка конфигурационных файлов, в то же самое время сохраняя старые конфигурационные файлы, чтобы можно было восстановить их, если что-то пойдет не так.
2. Запуск сценария postinst , если он есть в пакете. dpkg -r | —remove | -P | —purge имя пакета . | -a | —pending Удалить установленный пакет. Если указан параметр -r или —remove то удаляется всё, кроме конфигурационных файлов. Это позволяет избежать переконфигурации пакета, если он будет повторно установлен у будущем. (Конфигурационные файлы — это те, что указаны в управляющем файле debian/confiles ). Если указан параметр -P или —purge то удаляется всё, включая конфигурационные файлы. Если вместо имени пакета задан параметр -a или —pending, то все распакованные пакеты, но отмеченные в файле /var/lib/dpkg/status для удаления или полной очистки, соответственно, удаляются или полностью очищаются.
Удаление пакета состоит из следующих шагов:
1. Запуск сценария prerm
2. Удаление установленных фалов
3. Запуск сценария postrm
dpkg —update-avail | —merge-avail I Обновить информацию dpkg и dselect о доступных пакетах. Действие —merge-avail комбинирует старую информацию с информацией из файла Packages . Действие —update-avail перезаписывает старую информацию информацией из файла Packages . Файл Packages распространяется с Debian под именем Packages . dpkg хранит информацию о доступных пакетах в файле /var/lib/dpkg/available .
Для упрощения процедуры получения и обновления файла available можно использовать команду dselect update . dpkg -A | —record-avail имя файла пакета . Обновить информацию dpkg и dselect о доступных пакетах информацией из пакета имя файла пакета . Если задан параметр —recursive или -R , то вместо имени файла пакета должен быть указан каталог. dpkg —forget-old-unavail Забыть о неустановленных недоступных пакетах. dpkg —clear-avail Очистить имеющуюся информацию о том, какие пакеты доступны. dpkg -C | —audit Найти пакеты, которые были установлены в системе только частично. dpkg посоветует, что делать, чтобы восстановить их работоспособность. dpkg —get-selections [ шаблон имени пакета . ] Get list of package selections, and write it to stdout. Without a pattern, packages marked with state purge will not be shown. dpkg —set-selections Установить список выбранных пакетов, принимая его со стандартного ввода. Этот файл должен быть в формате ‘ ‘, где состоянием может быть install, hold, deinstall или purge. Допускаются пустые строки и строки комментариев (начинающиеся с #). dpkg —clear-selections Set the requested state of every non-essential package to deinstall. This is intended to be used immediately before —set-selections, to deinstall any packages not in list given to —set-selections. dpkg —yet-to-unpack Найти пакеты, выбранные для установки, но по какой-то причине ещё не установленные. dpkg —print-architecture Print architecture of packages dpkg installs (for example, «i386»). dpkg —compare-versions ver1 op ver2 Сравнить номера версий, используя op в качестве бинарного оператора. dpkg возвращает код успешного завершения (нуль), если указанное условие удовлетворяется, или неудачу (не-нуль) в противном случае. Есть две группы операторов, которые работают по-разному при отсутствующем параметре ver1 или ver2 . Операторы lt le eq ne ge gt считают отсутствующий номер версии более ранним, чем любой другой. Операторы lt-nl le-nl ge-nl gt-nl считают отсутствующий номер версии более поздним, чем любой другой. Операторы = >> > используются только для совместимости с синтаксисом файла control. dpkg —command-fd Принимает серию команд из входного файлового дескриптора . Замечание: дополнительные параметры, заданные в командной строке, а также через этот дескриптор, не сбрасываются для последующих команд, выполняющихся далее в этом запуске. dpkg —help Вывести небольшую подсказку. dpkg —force-help Вывести подсказку о параметрах —force- что-нибудь . dpkg -Dh | —debug=help Вывести подсказку о параметрах отладки. dpkg —licence | dpkg —license Показать лицензию dpkg . dpkg —version Показать информацию о версии dpkg . dpkg-deb actions Смотрите dpkg-deb (1) для более подробной информации о нижеследующих действиях.
dpkg-query actions Смотрите dpkg-query (1) для более подробной информации о нижеследующих действиях.
ПАРАМЕТРЫ
Маска Описание
1 Основная полезная информация по ходу выполнения
2 Вызов и состояния скриптов поддержки
10 Вывод по каждому обработанному файлу
100 Подробный вывод по каждому обработанному файлу
20 Вывод по каждому конфигурационному файлу
200 Подробный вывод по каждому конфигурационному файлу
40 Зависимости и конфликты
400 Подробное освещение зависимостей и конфликтов
1000 Подробная ерунда, например о каталоге dpkg/info
2000 Невероятное количество ерунды —force- things | —no-force- things | —refuse- things
Принудительно выполнять или же отказываться выполнять ( no-force и —refuse означают одно и то же) те или иные вещи. things — это список через запятую элементов описанных далее). —force-help выдает сообщение, описывающие их. Элементы, обозначенные звёздочкой (*), принудительно выполняются по умолчанию.
Предупреждение: Эти параметры предназначены только для использования экспертами. Использование без полного понимания их действия может нарушить работоспособность всей системы.
all : Turns on (or off) all force options.
downgrade (*): Установить пакет, даже если уже установлена его более новая версия.
Предупреждение: На данный момент dpkg не выполняет проверку зависимостей при переходе на более старую версию и поэтому не предупредит если это поломает зависимости с остальными пакетами. Это может иметь серьёзные последствия: замена на более старую версию системных компонентов первой необходимости может привести к полной неработоспособности системы. Использовать осторожно.
configure-any : Настроить также все распакованные, но ненастроенные пакеты, от которых зависит текущий пакет.
hold : Обрабатывать даже пакеты, помеченные как «зафиксированные».
remove-reinstreq : Удалить пакет, даже если он сломан и отмечен как требующий переустановки. Это может, например, привести к тому, что части пакета останутся в системе, а dpkg про них забудет.
remove-essential : Удалить, даже если это пакет первой необходимости (имеет приоритет «Essential»). Эти пакеты в основном содержат базовые команды Unix. Удаление такого пакета может привести к потере работоспособности системы, так что используйте данный параметр осторожно.
depends : Превратить проблемы с зависимостями в предупреждения.
depends-version : Не обращать внимание на версии при проверке зависимостей.
conflicts : Установить, даже если пакет конфликтует с другим пакетом. Это опасно, так как обычно приводит к перезаписи некоторых файлов.
confmiss : Всегда устанавливать пропущенный конфигурационный файл. Это опасно, так как не будут сохранены изменения (удаление) файла.
confnew : Если конфигурационный файл был изменён, то всегда устанавливать новую версию без запроса подтверждения, если не задан также параметр —force-confdef , при котором предпочтение отдаётся действию по умолчанию.
confold : Если конфигурационный файл был изменён, всегда сохранять старую версию без запроса подтверждения, если не задан также параметр —force-confdef , при котором предпочтение отдаётся действию по умолчанию.
confdef : Если конфигурационный файл был изменён, всегда выбирать действие по умолчанию. Если такового нет, то спросить у пользователя, если не задан параметр —force-confnew или —force-confold (в этом случае соответствующий параметр используется для выяснения, что именно нужно делать).
overwrite : Перезаписать файл из одного пакета файлом из другого пакета.
overwrite-dir : Перезаписать каталог из одного пакета файлом из другого.
overwrite-diverted : Перезаписать файл с изменённым расположением(diverted) его неизменённой версией.
architecture : Обрабатывать даже пакеты с неправильной архитектурой.
bad-path : В PATH отсутствуют важные программы, поэтому могут возникнуть проблемы.
not-root : Попытаться установить или удалить пакет, даже если не нет прав суперпользователя.
bad-verify : Устанавливать пакет, даже если он не прошёл проверку подлинности.
—ignore-depends = пакет . Игнорировать проверку зависимостей для указанных пакетов (на самом деле, проверка выполняется, но выдаются только предупреждения о конфликтах и ничего более). —new | —old Выбрать, соответственно, новый или старый формат пакета. Это параметр программы dpkg-deb (1). —nocheck Не читать и не проверять содержимое файла control при создании пакета. Это параметр программы dpkg-deb (1). —no-act | —dry-run | —simulate Делать всё, что необходимо, но не записывать на диск изменения. Он используется для того, чтобы посмотреть, что произошло бы при выполнении указанного действия, но при этом ничего не меняется.
Убедитесь, что указали —no-act перед действием, или у вас могут получиться нежелаемые результаты. (например, dpkg —purge foo —no-act сперва выполнит полное удаление пакета foo, а затем будет пытаться полностью удалить пакет —no-act, хотя вы ожидали, что ничего выполнено не будет) -R | —recursive Рекурсивная обработать все файлы, отвечающие шаблону *.deb , которые найдены в заданных каталогах и во всех их подкаталогах. Этот параметр можно использовать вместе с действиями -i , -A , —install , —unpack и —avail . -G Don’t install a package if a newer version of the same package is already installed. This is an alias of —refuse-downgrade . —root= dir | —admindir= dir | —instdir= dir Change default directories. admindir defaults to /var/lib/dpkg and contains many files that give information about status of installed or uninstalled packages, etc. instdir defaults to / and refers to the directory where packages are to be installed. instdir is also the directory passed to chroot (2) before running package’s installation scripts, which means that the scripts see instdir as a root directory. Changing root changes instdir to dir and admindir to dir /var/lib/dpkg . -O | —selected-only Обрабатывать только пакеты, выбранные для установки. Такой выбор делается программой dselect или же самой программой dpkg при работе с пакетами. Например, когда пакет удаляется, он будет помечен для удаления. -E | —skip-same-version Не устанавливать пакет, если та же версия этого пакета уже установлена. —status-fd Send package status info to file descriptor . This can be given multiple times. Status updates are of the form `status:
‘. Errors are reported as `status:
: error: extend-error-message’. Configuration file conflicts are reported as `status: conffile-prompt: conffile : ‘current-conffile’ ‘new-conffile’ useredited distedited’. —log= имя файла Log status change updates and actions to filename , instead of the default /var/log/dpkg.log . If this option is given multiple times, the last filename is used. Log messages are of the form `YYYY-MM-DD HH:MM:SS status
‘ for status change updates; `YYYY-MM-DD HH:MM:SS
ФАЙЛЫ
ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
ПРИМЕРЫ
To list packages related to the editor vi (1):
To see the entries in /var/lib/dpkg/available of two packages:
dpkg —print-avail elvis vim | less
Вручную просмотреть список пакетов:
Удалить установленный пакет elvis:
Чтобы установить пакет, сначала нужно найти его в архиве или на CDROM. Файл «available» показывает, что пакет vim находится в секции «editors» («редакторы»):
cd /cdrom/hamm/hamm/binary/editors
dpkg -i vim_4.5-3.deb
Получить локальную копию состояний выбранных пакетов:
dpkg —get-selections >myselections
Вы можете перенести этот файл на другой компьютер и установить его там с помощью:
dpkg —clear-selections
dpkg —set-selections
Заметим, что при этом ничего не будет ни установлено, ни удалено, просто будут заданы состояния запрошенных пакетов. Для того, чтобы на самом деле скачать и установить запрошенные пакеты, вам понадобится другая программа. Например, запустите dselect и выберите «Установить».
Обычно dselect (8) предоставляет более удобный способ изменить состояния выбранных пакетов.
Источник
Администрирование систем Linux. Управление пакетами программного обеспечения
Глава 20. Управление пакетами программного обеспечения
В большинстве дистрибутивов Linux используются системы управления пакетами программного обеспечения , позволяющие взаимодействовать с сетевыми репозиториями программного обеспечения , содержащими тысячи пакетов. Эти системы позволяют без лишних сложностей устанавливать и удалять приложения, компоненты операционной системы, документацию, а также другие программные компоненты.
В первую очередь в главе будут рассматриваться пакеты программного обеспечения дистрибутива Debian с расширением .deb , а также инструменты, предназначенные для работы с этими пакетами, а именно dpkg , apt-get и aptitude . Пакеты программного обеспечения упомянутого формата и соответствующие инструменты используются в дистрибутивах Debian, Ubuntu, Mint, а также во всех производных дистрибутивах.
После этого будут рассматриваться пакеты программного обеспечения дистрибутива Red Hat с расширением .rpm , а также инструменты, предназначенные для работы с этими пакетами, а именно rpm и yum . Пакеты программного обеспечения упомянутого формата и соответствующие инструменты используются в дистрибутивах Red Hat, Fedora, CentOS, а также во всех производных дистрибутивах.
20.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 .
Некоторым пакетам программного обеспечения для корректного функционирования требуются другие пакеты программного обеспечения. Такие инструменты, как 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.
Сравните этот вывод с выводом этой же команды, выполненной на настольном компьютере, который работает под управлением дистрибутива Ubuntu.
20.2.3. Команда dpkg -l $имя_пакета
Ниже приведен пример команды для получения информации об отдельном пакете программного обеспечения. Символы ii в начале строки говорят о том, что пакет программного обеспечения установлен.
20.2.4. Команда dpkg -S
Вы можете найти пакет программного обеспечения, из которого был извлечен определенный файл, находящийся в файловой системе вашего компьютера, с помощью команды dpkg -S . В данном примере показана методика поиска пакета программного обеспечения, из которого были извлечены три файла, которые можно обнаружить на среднестатистическом работающем под управлением дистрибутива Debain сервере.
20.2.5. Команда dpkg -L
Также вы можете получить список всех файлов, которые устанавливаются в процессе установки определенной программы. Ниже приведен список файлов, устанавливаемых в процессе установки пакета программного обеспечения 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 могут отличаться.
Выполняйте команду apt-get update каждый раз перед выполнением других операций с пакетами программного обеспечения.
20.3.2. Команда apt-get upgrade
Одна из наиболее полезных возможностей утилиты apt-get заключается в безопасном обновлении всего установленного на данный момент на вашем компьютере программного обеспечения с помощью единственной команды.
В примере выше показана ситуация, в которой все программное обеспечение уже обновлено до последних версий, доступных в моей версии дистрибутива.
20.3.3. Команда apt-get clean
Утилита apt-get хранит копии загруженных пакетов программного обеспечения в директории /var/cache/apt/archives , что хорошо видно в примере ниже.
Команда apt-get clean позволяет удалить все файлы из этой директории.
20.3.4. Команда apt-cache search
Используйте команду apt-cache search для проверки доступности пакета программного обеспечения. В данном примере мы ищем пакет с именем rsync .
20.3.5. Команда apt-get install
Вы можете установить одно или несколько приложений, разместив имена в строке команды после apt-get install . В примере ниже показан процесс установки пакета программного обеспечения с именем rsync .
20.3.6. Команда apt-get remove
Вы можете удалить одно или несколько приложений, разместив их имена в строке команды после apt-get remove . В примере ниже показан процесс удаления пакета программного обеспечения с именем rsync .
Обратите внимание на то, что при удалении пакета с помощью рассматриваемой команды некоторые конфигурационные денные не удаляются.
20.3.7. Команда apt-get purge
Вы можете удалить полностью одно или несколько приложений, разместив их имена в строке команды после apt-get purge . В ходе полного удаления приложения будут также удаляться все существующие файлы конфигурации, имеющие отношение к данному приложению. В примере ниже показан процесс полного удаления пакета программного обеспечения с именем rsync .
Обратите внимание на то, что утилита dpkg не обладает информацией о полностью удаленном пакете помимо той, что пакет был удален и в системе не осталось файлов конфигурации.
20.4. Утилита aptitude
Большинство пользователей применяет утилиту aptitude для управления пакетами программного обеспечения в дистрибутивах Debain, Mint и Ubuntu.
Команда для синхронизации списков программного обеспечения с репозиториями:
Команда для обновления всех программных компонентов до последних версий в дистрибутиве Debian.
Команда для обновления всех программных компонентов до последних версий в дистрибутивах Ubuntu и Mint.
Команда для установки приложения со всеми зависимостями:
Команда для поиска в репозиториях приложений, имена или описания которых содержат указанную строку:
Команда для удаления приложения:
Команда для удаления приложения вместе со всеми его файлами конфигурации:
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, данный файл выглядит следующим образом:
На моем настольном компьютере, работающем под управлением дистрибутива Ubuntu, используется в четыре раза больше сетевых репозиториев.
Ввиду того, что в рамках данной книги не рассматриваются некоторые аспекты работы со списками репозиториев 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 .
20.6.3. Команда rpm -q
Чтобы убедиться в том, что определенный пакет программного обеспечения был установлен, вы можете использовать команду rpm -q .
20.6.4. Команда rpm -Uhv
Для установки или обновления пакета программного обеспечения следует использовать параметры -Uvh рассматриваемой утилиты. Параметр -U аналогичен параметру -i, предназначенному для установки пакета программного обеспечения, но в случае его использования более старые версии пакетов программного обеспечения будут удаляться. Параметры -vh предназначены для активации режима вывода, более удобного для чтения.
20.6.5. Команда rpm -e
Для удаления пакета программного обеспечения следует использовать параметр -e рассматриваемой утилиты.
В случае использования команды rpm -e утилита rpm будет осуществлять проверку зависимостей, предотвращая тем самым возможность случайного удаления пакетов программного обеспечения, которые требуются для корректной работы программных компонентов из других пакетов программного обеспечения.
20.6.6. Директория /var/lib/rpm
База данных менеджера пакетов программного обеспечения Red Hat расположена в директории /var/lib/rpm . Эта база данных содержит все метаданные, относящиеся к пакетам программного обеспечения, которые были установлены (с помощью утилиты rpm). В ней хранится информация обо всех файлах из пакетов программного обеспечения, благодаря наличию которой имеется возможность полного удаления программного обеспечения.
20.6.7. Утилита rpm2cpio
Мы можем использовать утилиту rpm2cpio для преобразования пакета программного обеспечения формата rpm в архив формата cpio .
Но для чего это может понадобиться?
Возможно, просто для того, чтобы ознакомиться со списком имен файлов, хранящихся в пакете программного обеспечения формата rpm .
Или для извлечения какого-либо файла из пакета программного обеспечения формата rpm .
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 является необязательным.
Выполните команду yum list $имя_пакета для получения списка всех доступных версий указанного пакета программного обеспечения (из различных репозториев).
20.7.3. Команда yum search
Для осуществления поиска пакета, имя или описание которого содержит заданную строку, следует использовать команду yum search $строка .
20.7.4. Команда yum provides
Для поиска пакета программного обеспечения, содержащего файл с определенным именем (что может понадобиться в процессе компиляции программного обеспечения из исходных кодов), следует использовать команду yum provides $имя_файла .
20.7.5. Команда yum install
Для установки приложения следует использовать команду yum install $имя_пакета . Утилита yum позаботится об установке всех необходимых зависимостей.
В рамках данной команды вы можете использовать более одного параметра.
20.7.6. Команда yum update
Для обновления всех приложений путем загрузки и установки новых пакетов программного обеспечения, следует использовать команду yum update . Все программное обеспечение, которое было установлено в помощью утилиты yum , будет обновлено до последних версий, доступных в репозитории.
Если вы желаете обновить только один пакет программного обеспечения, вы можете использовать команду yum update $имя_пакета .
20.7.7. Группы программного обеспечения yum
Выполните команду yum grouplist для ознакомления со списком всех доступных групп программного обеспечения.
Для установки приложений, объединенных в рамках группы, следует использовать команду yum groupinstall $имя_группы .
Обратитесь к странице руководства утилиты 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 . Используйте следующую команду, если вы желаете использовать репозиторий, который не активирован по умолчанию.
В примере приведено необходимое содержимое файла описания репозитория с расширением .repo: MyRepo.repo
20.8. Утилита alien
Утилита alien является экспериментальным инструментом, который предназначен для преобразования форматов пакетов rpm и deb (и других).
Ниже приведен пример использования утилиты alien для преобразования пакета программного обеспечения формата rpm в пакет программного обеспечения формата deb .
В реальной жизни следует использовать пакет с утилитой netcat из репозитория вашего дистрибутива или пакет программного обеспечения формата deb с вебсайта проекта.
20.9. Загрузка программного обеспечения в обход репозитория дистрибутива
При загрузке любого программного обеспечения в обход репозитория дистрибутива первым и наиболее важным шагом является чтение поставляемого в комплекте файла README!
Обычно в файле README даются пояснения относительно ваших действий после загрузки пакета программного обеспечения. С большой вероятностью для загрузки вам будет предложен файл архива с расширением .tar.gz или .tgz. Прочитайте документацию, после чего переместите загруженный файл архива в отдельную директорию. Вы можете использовать следующую команду, чтобы выяснить, в какую директорию по умолчанию будет распакован архив.
Если вы распакуете данный архивный файл с помощью команды tar xzf , будет создана директория с именем $имя_приложения-версия.
Замените параметр z на j в том случае, если файл архива имеет расширение .tar.bz2. Приемы работы с утилитами tar , gzip и bzip2 подробно описаны в книге «Фундаментальные основы Linux».
Если вы загрузили файл с расширением .deb , для установки программного обеспечения придется использовать утилиту dpkg , а в случае загрузки файла с расширением .rpm установка программного обеспечения может осуществляться с помощью утилиты rpm .
20.10. Компиляция программного обеспечения из исходного кода
При загрузке исходного кода любого программного компонента с целью последующей компиляции и установки первым и наиболее важным шагом является чтение поставляемого в комплекте файла README!
Чаще всего процесс сборки программного обеспечения из исходного кода может быть разделен на три шага: запуск сценария конфигурации ./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:
В дистрибутиве Debian/Ubuntu:
2. Используйте утилиту yum или aptitude для поиска и установки пакетов программного обеспечения с именами scp, tmux и man-pages. Удалось ли найти в репозитории вашего дистрибутива все перечисленные пакеты.
В дистрибутиве RedHat/CentOS:
В дистрибутиве Debian/Ubuntu:
3. Найдите в сети Интернет информацию о программном обеспечении ‘webmin’ и выясните способ установки этого программного обеспечения в систему.
Поисковая система Google приведет вас на вебсайт webmin.com.
С данного вебсайта могут быть загружены пакеты программного обеспечения различных форматов, поэтому в зависимости от дистрибутива следует выбрать файл с расширением .rpm, .deb или .tgz.
4. Если есть время, найдите пакеты программного обеспечения samba, а также пакеты с документацией проекта samba в формате pdf (тысячи страниц документации в рамках двух файлов формата pdf).
Источник