Как установить dpkg пакет
Глава 8. Инструменты управления пакетами Debian
Содержание
8.1. Какие программы для управления пакетами имеются в Debian?
В Debian для управления пакетами имеется множество средств, от программ с графическими или текстовыми интерфейсами, до низкоуровневых утилит установки пакетов. Корректная работа всех доступных инструментов зависит от низкоуровневых утилит, и все они представлены здесь в порядке уменьшения уровня сложности.
See Chapter 2. Debian package management of the Debian reference for more information about the Debian package management utilities. This document is available in various languages and formats, see the Debian Reference entry in the DDP Users’ Manuals overview.
8.1.1. dpkg
Это основная программа управления пакетами. dpkg может вызываться с многими параметрами. Наиболее часто используемые из них:
8.1.2. APT
Инструмент apt совмещает функциональность apt-get и apt-cache, а также по умолчанию использует красивый цветной формат вывода, что очень удобно. Для использования в сценариях или для продвинутого использования предпочтительнее использовать apt-get (а иногда он просто необходим).
Часто используемые команды apt-get :
To update the list of packages known by your system, you can run:
(вы должны регулярно запускать эту команду для обновления списка пакетов)
Установить пакет foo и все его зависимости:
Удалить пакет из системы:
Удалить из системы пакет и все его файлы настроек:
To list all packages for which newer versions are available, run:
Обновить все пакеты в системе (без установки дополнительных пакетов или удаления пакетов):
Обновить все установленные в системе пакеты с установкой или удалением дополнительных пакетов, если это потребуется для обновления какого-то пакета:
(Команда upgrade оставит старую установленную версию пакета, если для разрешения новых зависимостей при обновлении потребуется установка дополнительных пакетов. Команда full-upgrade менее консервативна.)
Note that you must be logged in as root to perform any commands that modify packages.
Note that apt-get now also installs recommended packages as default, and thanks to its robustness it’s the preferred program for package management from console to perform system installation and major system upgrades.
Найти пакеты, содержащие в своём описании слово :
Показать подробную информацию о пакете:
Показать зависимости пакета:
To print detailed information on the versions available for a package and the packages that reverse-depends on it:
8.1.3. aptitude
aptitude — это менеджер пакетов для систем Debian GNU/Linux, он предоставляет интерфейс к инфраструктуре управления пакетами apt. aptitude представляет собой текстовый интерфейс на основе библиотеки curses. Действия можно выполнять как из визуального интерфейса, так и из командной строки.
aptitude может использоваться для лёгкого и быстрого выполнения задач по управлению пакетами. Она позволяет пользователю просматривать список пакетов и выполнять такие задачи по управлению пакетами как установка, обновление и удаление.
обеспечивает лёгкий доступ ко всем версиям пакета;
позволяет легко отслеживать устаревшее ПО, занося его в «список устаревших пакетов и пакетов, созданных локально»;
можно использовать для установки заранее сформированных наборов для определённых задач. Подробности см. в Раздел 8.1.5, «tasksel»;
aptitude in full screen mode has su functionality embedded and can be run by a normal user. It will call su (and ask for the root password, if any) when you really need administrative privileges.
Note that aptitude is the preferred program for daily package management from the console.
For more information, read the manual page aptitude (8) and install the aptitude-doc package.
8.1.4. synaptic
synaptic is a graphical package manager. It enables you to install, upgrade and remove software packages in a user friendly way. Along with most of the features offered by aptitude, it also has a feature for editing the list of used repositories, and supports browsing all available documentation related to a package. See the Synaptic Website for more information.
8.1.5. tasksel
Typically, the Debian installer will automatically install the task associated with a standard system and a desktop environment. The specific desktop environment installed will depend on the CD/DVD media used, most commonly it will be the GNOME desktop ( gnome-desktop task). Also, depending on your selections throughout the installation process, tasks might be automatically installed in your system. For example, if you selected a language other than English, the task associated with it will be installed automatically too and if the installer recognises you are installing on a laptop system the laptop task will also be installed.
8.1.6. Другие инструменты управления пакетами
8.1.6.1. dpkg-deb
8.2. Говорят, что Debian способен обновить работающую программу; как это делается?
Ядро (файловая система) в системах Debian GNU/Linux поддерживает замену файлов, даже когда они используются.
8.3. Как узнать, какие пакеты установлены в системе Debian?
Чтобы получить список всех установленных пакетов, выполните команду
Эта команда выведет для каждого пакета однострочную сводку, включающую два символа состояния (объясняемые в заголовке), имя пакета, установленную версию и краткое описание.
To learn the status of packages whose names match any pattern beginning with «foo», run the command:
Чтобы получить более подробный отчёт о состоянии определённого пакета, выполните команду:
8.4. How do I display the files of an installed package?
Учтите, что файлы, созданные сценариями установки, не отображаются.
8.5. Как определить пакет, которому принадлежит определённый файл?
zgrep foo Contents-ARCH.gz
apt-file search foo
8.6. Why is `foo-data’ not removed when I uninstall `foo’? How do I make sure old unused library-packages get purged?
Some packages are split in program (`foo’) and data (`foo-data’) (or in `foo’ and `foo-doc’). This is true for many games, multimedia applications and dictionaries in Debian and has been introduced since some users might want to access the raw data without installing the program or because the program can be run without the data itself, making `foo-data’ optional.
Подобное относится и к библиотекам: обычно они устанавливаются, так как пакеты приложений зависят от них. Когда пакет приложения вычищается, пакет библиотеки может остаться в системе. Или когда пакет приложения больше не зависит, скажем, от libdb4.2, а зависит от libdb4.3, то пакет libdb4.2 может остаться в системе при обновлении пакета приложения.
In these cases, `foo-data’ doesn’t depend on `foo’, so when you remove the `foo’ package it will not get automatically removed by most package management tools. The same holds true for the library packages. This is necessary to avoid circular dependencies. However, if you use apt-get (see Раздел 8.1.2, «APT») or aptitude (see Раздел 8.1.3, «aptitude») as your package management tool, they will track automatically installed packages and give the possibility to remove them, when no packages making use of them remain in your system.
[5] Notice that there are ports that make this tool available with other package management systems, like Red Hat package manager, also known as rpm
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Управление пакетами в Debian-подобных операционных системах
Данная тема наиболее важная из всех пред идущих, в ней пойдет речь об управлении пакетами.
Установка, удаление, обновление пакетов. Поиск пакетов и их зависимостей. Получение полной информации о пакетах.
Dpkg утилита управления пакетами в Debian системах и во всех операционных системах которые от нее пошли это mint, Ubuntu и другие. Утилита достаточно большая и работать с ней не очень удобно, поэтому обычно предпочитают использовать более распространённый пакетный менеджер apt. Сама утилита имеет большое количество ключей, в добавок значение ключей зависит от регистра ключа. Заглавная буква в ключе или прописная, имеют разный функционал. Основные ключи:
Dpkg-reconfigure переконфигурация пакета. Можно сказать, что это мастер настройки пакета. Полезная утилита.
И видим, что пакет mc, он установлен, размер его, архитектуру (разрядность), зависимости. Используя, ключ S, мы можем посмотреть в какой пакет входит данная программа. Программа mc входит во множество пакетов. А вот, например, /bin/ls входит в базовые утилиты ядра, о чем вы можете убедится, набрав команду с ключом S, т.е в базовый состав любого дистрибутива Ubuntu.
При установке система выдала ошибки, на то что необходимые зависимости не установлены, но набирая информацию о пакете можно увидеть, что пакет webmin уже установлен. Но он не будет работать т. к. зависимости необходимые для работы не установились, но сам dpkg его установил.
APT Advance Packaging Tool Программа для работы с пакетами в Debian системах. Продвинутый пакетный менеджер, причем иногда используется в дистрибутивах, основанных на Mandriva.
В основном используется несколько утилит:
Для работы с пакетным менеджером нам так же понадобится понятие репозитория.
Теперь мы можем посмотреть apt-cache, как работает. Для начала справку. apt-get help
Это инструмент для поиска информации в двоичных файлах, у него тоже есть куча настроек и ключей.
Попробуем воспользоваться поиском. apt-cache search gmail ищем все пакеты, где может встречаться «gmail«.
С помощью команды и ключа apt-cache depends gnome-gmail мы можем посмотреть от каких зависимостей зависит пакет. Т.е. без каких пакетов программное обеспечение работать не будет.
Мы можем посмотреть обратные зависимости apt-cache rdepends gnome-gmail т.е. кто зависит от данного программного обеспечения.
Далее посмотрим утилиту aptitude.
Можно зайти, например, в не установленные пакеты и установить, что необходимо. Для этого необходимо встать на интересующий пакет и нажать знак плюса и нажимаем g, для произведения действия. Для выхода из графического режима используем q.
Смотрим cat /etc/apt/sources.list
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Как установить dpkg пакет
В дистрибутивах на базе RHEL используется RPM формат пакетов, а управлять ими можно при помощи rpm или yum. Второе направление используется в операционных системах семейства Debian (например Ubuntu). В них применяется формат пакетов deb, а роль инструментов, помогающих управлять ими, apt и dpkg. Именно вторую группу мы и обсудим в статье. В этой статье-шпаргалке мы пройдемся по всем основным инструментам для управления пакетами, которыми пользуются системные администраторы на Debian и Ubuntu. Сохранив эту статью вы сможете всегда к ней обратиться при возникновении проблем с пакетами.
Как применять это руководство
Мы рассмотрим часто применяемые пользовательские инструменты в Debian и Ubuntu системах. Оставим инструменты для создания пакетов, так как они сильно различаются от дистрибутива к дистрибутиву в силу различий в лицензионных соглашениях.
Каждый отдельный инструмент мы рассмотрим в разделе “Описание инструментов управления пакетами для Debian”. Вся остальная часть руководства будет основываться больше на отдельных функциях, чем на инструменте как таковом. Такое построение руководства более логично, так как сначала вы сталкиваетесь с задачей, а уже потом ищите инструменты для её решения.
Не забывайте про следующие моменты, обращаясь к данному руководству:
Описание инструментов управления пакетами для Debian
Debian/Ubuntu системы используют довольно небольшое количество инструментов для управления пакетами.
Большинство из них имеют много общего и работают с одной БД пакетов. Одни инструменты используют довольно высокий уровень абстрагирования от систем управления, другие же предлагают низкоуровневый доступ.
Apt-get
Чаще всего, apt-get применяется для обновления кеша и выполнения операций на рабочей системе.
Apt-cache
Например, если вам необходимо установить определенный пакет или найти подходящий инструмент, то начать поиск стоит именно здесь. Вы легко найдете информацию о доступной версии пакета, прямых и обратных зависимостях.
Aptitude
Taskel
Taskel стоит особняком в этом ряду. Эта программа объединяет пакеты, основываясь на выполнении определенной задачи.
Вы можете выбрать задачу как при помощи текстового интерфейса, так и отдельного пакета. Конечно такой подход не назовешь кропотливым, но когда вам надо быстро установить ряд пакетов, он может подойти как нельзя лучше.
Другие
Обновление кеша пакетов и самой системы
В Debian/Ubuntu системах реализован очень удобный подход не только для поддержания актуальности списка пакетов, но и для их обновления.
Обновление локального кеша пакетов
Удаленные хранилища, в которых хранятся пакеты, постоянно обновляются. А так как все инструменты управления пакетами работают с локальным кешем, следует следить за актуальностью кеша.
В общем, перед тем как начать работу с пакетами, всегда рекомендуется для начала обновить кеш. Более того, некоторые команды могут закончиться неудачно, если информация о пакетах сильно устарела.
Для обновления кеша воспользуйтесь командой apt-get и её подкомандой update :
Информация о доступных пакетах для вашей операционной системы полностью обновится.
Обновление пакетов без их удаления
Команда apt предоставляет вам возможность легко поддерживать актуальность установленных пакетов.
Этот момент может иметь довольно большое значение, в случае, когда вам необходимо сохранить определенные установленные пакеты. Тем не менее, иногда для обновления требуется удаление других пакетов с целью избежания конфликтов. Следующая команда игнорирует обновления требующие удаления других пакетов:
После выполнения этой команды вы все пакеты, чье обновление не требует удаления других пакетов, будут обновлены.
Обновление пакетов с удалением по необходимости
Команда apt предоставляет вам возможность легко поддерживать актуальность установленных пакетов.
Чаще всего, удаляемые пакеты заменяются на аналоги, поэтому эта операция, как правило, безопасна. Тем не менее, всегда обращайте внимание на список удаляемых пакетов для избежания неожиданностей. Для выполнения такого типа обновления вам понадобится следующая команда:
В итоге получите полностью обновленную систему.
Установка и скачивание пакетов
Поиск пакетов
Так как эта команда просто ищет необходимую информацию о пакете, ей не требуются права администратора. В качестве результата поиска вы получите название подходящего пакета и его полное описание.
Установка пакета из хранилищ
В качестве аргументов команде следует передать название пакета или пакетов точно так, как они названы в хранилищах.
Можно установить несколько пакетов за раз, разделив их названия пробелом:
Если для установки требуемых пакетов нужны определенные зависимости, то их список будет выведен и потребуется подтверждение действий. Пример вывода:
Как видите, хотя мы устанавливаем только apache2, пакет apache2-data устанавливается в качестве зависимости. В это случае вы можете просто нажать Enter или Y для подтверждения действия или N для отмены.
Установка определенной версии пакета из хранилища
Если вам нужна определенная версия пакета, то указать её вы можете через знак равенства после имени пакета:
В этом случае версия должна совпадать с одной из доступных из хранилища. Чтобы получить список доступных версий выполните следующую команду:
Переустановка пакетов
Таким образом вы получите доступ к тем же (а иногда и к другим) вариантам настройки пакета.
Холостой запуск действий с пакетами
В результате вы увидите полный список требуемых зависимостей и изменений для установки пакета. Таким образом, вы можете увидеть что произойдет в системе, как если бы вы выполнили эту команду с правами администратора (sudo).
Например, чтобы увидеть что произойдет при установке apache2, надо выполнить следующее:
Вы видите полный список пакетов и их версий, которые будут установлены, но это всего лишь симуляция процесса.
Такой же подход можно применять и к другим процедурам, например полному обновлению системы:
Отключение запроса на подтверждение действий
По-умолчанию, apt требуется подтверждение от пользователя по многим действиям. К ним относятся установка зависимостей и обновление пакетов.
В результате все пакеты будут установлены без лишних вопросов к администратору. Также можно поступить и при обновлении системы:
Восстановление испорченных зависимостей и пакетов
Apt попробует найти необходимые зависимости и установить их. При столкновении с подобными проблемами, первое, что вам следует сделать это выполнить вышеописанную команду.
Загрузка пакетов из хранилища
Так как вы не вносите изменений в систему, права администратора не требуются.
Пакет будет загружен в текущий рабочий каталог.
Загрузка исходного кода пакета
После выполнения требуемых действий, исходный код можно скачать следующей командой:
Такой подход может быть полезен, если вы хотите внести свои изменения в имеющийся пакет.
Важно помнить, что dpkg не обрабатывает зависимости автоматически. То есть при обнаружении проблем с зависимостями, установка прекратится. Но, к счастью, dpkg выводит список требуемых зависимостей, которые можно установить в дальнейшем при помощи:
Все необходимые пакеты будут установлены.
Установка программных “задач” при помощи Tasksel
Не на всех системах tasksel установлен по-умолчанию. Установить его можно следующим образом:
Выбрать группу задач можно в интерактивном режиме командой:
Вы увидите интерфейс, позволяющий вам выбрать нужную задачу и выполнить требуемые изменения.
Список установленных и доступных к установке задач можно получить следующим образом:
Далее можно установить задачу из командной строки выполнив:
Удаление пакетов и их файлов
Удаление пакетов так же можно выполнить при помощи систем управления пакетами. В этом разделе мы рассмотрим как удалить пакеты и файлы, оставшиеся после них.
Удаление пакета
Для удаления необходимо указать название пакета:
Пакет будет удален, а файлы настройки сохранены.
Удаление пакета и связанного с ним файлов
Теперь при переустановке пакета будет использованы настройки по-умолчанию.
Автоматическое удаление невостребованных зависимостей
При использовании apt-get remove или apt-get purge вы удаляете указанный вами пакет. Но все зависимости, что были установлены ранее для этого пакета остаются нетронутыми. Для удаления таких брошенных зависимостей используйте команду autoremove :
Очистка устаревших загруженных пакетов
Таким образом вы поддерживаете кеш на своем сервере в актуальном состоянии и избавляетесь от ненужных файлов, экономя дисковое пространство.
Получение информации о пакетах
Каждый пакет содержит в себе довольное большое количество мета информации, доступ к которой можно получить средствами инструментов управления пакетами.
Отображение информации о пакете
Команда выведет вам подробную информацию о пакете, включая его зависимости, версию, архитектуру, конфликты, полное название пакета, размер пакета в установленном виде и др. информацию.
Вы увидите различную мета информацию, включая название пакета, его версию, архитектуру, размер, список зависимостей, полное описание и возможные конфликты.
Отображение прямых и обратных зависимостей
Вы получите полный список жестких зависимостей, рекомендаций и конфликтных пакетов. Для вывода списка обратных зависимостей используйте подкоманду rdepends
Вывод версий установленных и доступных к установке пакетов
Довольно часто в хранилище находятся несколько версий пакетов, причем одна из них устанавливается по-умолчанию. Чтобы получить список доступных версий, используйте подкоманду policy команды apt-cache
Вы увидите номер установленной версии, версию по-умолчанию, если не указать её отдельно, а так же таблицу версий с указанием приоритета.
Таким образом вы видите какая версия пакета будет установлена и какие вы можете выбрать. Так как вы также получите адреса хранилищ где хранятся пакеты, что даст вам представление о дополнительных хранилищах пакетов.
Существует несколько способов получить список установленных пакетов, выбор которого зависит от необходимой вам детальности.
Вывод будет произведен для каждого пакета в системе. Вверху вы видите описание значения первых трех символов каждой строки. Первый символ указывает на состояние пакета. Он может принимать значения:
Второй символ показывает действительный статус пакета в системе управления пакетами. Он принимает значения:
Третий символ, как правил, пробел, но может принимать только одно значение:
Остальные столбцы содержат имя пакета, версию, архитектуру и описание.
Вывод состояния пакета при помощи фильтров
Как видите первый и четвертый результаты не установлены, то есть вы получаете информацию не только о установленных пакетах, но и о доступных.
Вы получите список всех установленных и удаленных с сохранением настроек пакетов.
Чтобы вывести только установленные пакеты, используйте:
Для вывода удаленных пакетов используйте:
Поиск среди установленных пакетов
Так же как и в предыдущем примере, допускается использование ключей awk.
Вывод установленных пакетом файлов
Вы получите список абсолютных путей к файлам. Файлов настроек, которые были созданы в процессе работы, вы не увидите.
Поиск пакета, установленного по адресу
Вы увидите название пакета, ответственного за файл:
Не забывайте, что это связка работает только для файлов, созданных в процессе установки.
Обнаружение пакета, ответственного за файл, без его установки
Установить её можно следующим образом:
Затем обновите базу данных утилиты и приступайте к поиску:
И снова, такой метод подходит только для файлов, созданных в процессе установки.
Передача списка пакетов между системами
Иногда вам приходится создавать системы с одинаковым набором пакетов. В таком случае можно экспортировать список установленных пакетов на одной машине и использовать её на другой. Такой подход так же можно использовать при создания резервных копий. В этом разделе мы рассмотрим методы создания списков пакетов.
Экспорт списка пакетов
Этот список позднее можно скопировать на другую машину и импортировать. Также имеет смысл сохранить список хранилищ и ключей к ним. Для этого создайте каталог для хранения необходимых файлов и просто скопируйте её.
Экспортировать ключи можно следующим образом:
Все созданные файлы теперь можно перенести на другую машину.
Импорт списка пакетов
Для начала надо добавить ключи и списки репозиториев. Если все файлы находятся в домашнем каталоге, то достаточно будет выполнить следующие команды:
Теперь обнулите состояние не основных пакетов в системе. То есть изменения надо наносить на свежие пакеты. Команда должна быть выполнена с правами администратора.
Убедитесь в том, что она установлена и обновите её БД.
Теперь мы можем применить наш список пакетов поверх имеющегося:
Эта команда установит нужные состояния для интересующих нас пакетов. Чтобы применить изменения выполните следующую команду:
Она загрузит, установит и удалит все необходимые пакеты. В итоге вы должны получить полный аналог предыдущей машины, за исключением файлов настроек, которые следует скопировать или изменить отдельно.
Добавление хранилищ и PPA
Конечно список репозиториев по-умолчанию довольно обширен, но все же иногда вам может понадобится добавить какие-то свои хранилища. В этом разделе мы рассмотрим как это сделать.
Добавление PPA
Добавление хранилища
Существует два подхода для добавления хранилищ в ubuntu и debian.
Добавлять источник нужно в формате:
Часто их указывает владелец хранилища, чтобы отобразить, например, лицензию. Эти строки следует добавить в сам файл. Как правило, вы можете найти формат добавления хранилища в самом хранилище.
Далее, просто отдавайте хранилища в указанном формате этой утилите.
Не забывайте обновлять кеш после добавления хранилища. Иначе система не увидит новых пакетов.
Заключение
Конечно это не полный список возможностей систем управления пакетами в ubuntu и debian, но постарались выделить наиболее важные на наш взгляд. Не забывайте добавлять свои замечания в коментариях.