sudo dpkg i что это
Установка программ Ubuntu/Debian с помощью пакетного менеджера
Одна из самых сложных задач, возникающих в процессе установки Unix-программ — отслеживание зависимостей.
Любая более-менее сложная программа в своей работе использует возможности, предоставляемые другими модулями, системными библиотеками и т.д. Таким образом, появляется зависимость — если мы хотим установить программу «А», которая при работе использует библиотеки программы «Б», сначала необходимо установить программу «Б» (у которой, в свою очередь, могут быть свои зависимости). Таким образом, чем больше программ и зависимостей появляется на сервере, тем сложнее их отслеживать и управлять ими. Хорошая новость в том, что это можно делать с помощью пакетного менеджера APT (Advanced Packaging Tool).
Установка с помощью пакетного менеджера
Эволюция методов установки и управления программными пакетами со временем дошла до использования пакетных менеджеров, плотно интегрированных с репозиториями. В репозиториях содержатся упакованные файлы программ с данными об их зависимостях. После установки к операционной системе уже подключены системные репозитории: с их помощью можно обновлять ОС и устанавливать программные пакеты, которые были адаптированы и оптимизированы для работы с этой версией операционной системы.
Перед началом установки пакетов рекомендуется обновить данные о версиях и зависимостях в репозитории следующей командой:
sudo apt-get update
Если необходимо уточнить название пакета, который требуется установить — ищем в локальном кэше менеджер по ключевым словам, например, web server:
sudo apt-cache search web server
В результате получим большой перечень пакетов, где данное ключевое слово присутствует в описании:
Выбираем нужный нам пакет — в данном случае это apache2, и устанавливаем его:
sudo apt-get install apache2
Пакетный менеджер проверяет зависимости, версии, сравнивает их с уже установленными через apt-get пакетами, после чего выдает список необходимых для установки компонентов и запрашивает разрешение на продолжение операции:
Нажимаем y и дожидаемся окончания установки.
Часто используемые команды пакетного менеджера:
Установка через Debian package
Программные пакеты могут распространяться и не через репозитории. Например, они могут быть доступны на сайтах разработчиков. В таком случае, пакет можно скачать и воспользоваться утилитой dpkg (debian package) для установки. При использовании dpkg не происходит автоматическое отслеживание зависимостей и скачивание дополнительных пакетов. В случае нехватки каких-либо программ или библиотек установка завершится ошибкой с указанием списка отсутствующих пакетов. Их придется установить отдельно, например, через apt-get, если они присутствуют в подключенных репозиториях, либо скачивать с сайтов разработчиков и устанавливать в нужном порядке через dpkg.
Для примера скачаем из системного репозитория установочный пакет веб-сервера Nginx командой:
sudo apt-get download nginx
и попробуем установить через dpkg –i имя_файла.deb:
В результате система выдает ошибку с перечнем отсутствующих пакетов:
Основные опции dpkg:
Установка через файлы сценариев
после чего запустить непосредственно сценарий:
Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами
Краткая справка Debian администратора
Основное и общеизвестное
Получение информации о новых/обновлённых пакетах
Поиск пакета по именам пакетов
Поиск пакета по точному названию
Информация о пакете
Полное удаление (вместе с конфигами)
Очистить кэш загруженных пакетов (освободить место)
Для получения доп информации
и смотрим документацию (/usr/share/doc/aptitude/html/en/index.html), кому быструю справку по поисковым шаблонам, тому сюда — /usr/share/doc/aptitude/html/en/ch02s04.html. Если лень ставить доку, то в сети она есть.
Вводная на Debian Wiki: wiki.debian.org/Aptitude
А теперь то что не очевидно или требует полного прочтения документации
1. Как после update посмотреть какие пакеты будут обновлены?
также можно юзать (если поставить)
но после его установки точно также будет себя вести и обычный update
2. Как узнать что изменилось в пакетах которые будут обновлены?
Можно пробовать
для каждого пакета.
Но лучше поставить apt-listchanges, тогда перед любой установкой обновлений будет показан список изменений, по умолчанию настройки не очень удобные, поэтому лучше перенастроить под себя, например, выбрать формат вывода (пока использую текст, при больших обновлениях наверно pager лучше), не слать писем, спрашивать подтверждения, выводить всю информацию. Для этого нужно запустить
3. Что делать если обновление что-то поломало и нужно откатиться?
Отката нет, можно попробовать найти предыдущую версию пакета
4. Как найти все пакеты установленные вручную?
есть вариант команды (aptitude search ‘
M’), но к сожалению он не даёт желаемого результата, так что вопрос остаётся открытым, есть куча способов основанных на анализе логов
но простого и готового решения нет, да информация теоретически может быть потеряна при ротациях, нужно конфигурить
5. Как посмотреть список файлов в пакете?
если пакет установлен
для любых пакетов поставить apt-file и
6. Как посмотреть какому пакету принадлежит файл?
7. Как удалить все пакеты, где есть key в названии пакета?
8. Как удалить оставшиеся конфиги от удалённых пакетов?
9. Как найти пакет пакет, в котором содержится файл lib.so:
10. Как сконвертировать rpm пакет в deb?
11. Как найти список установленных ядер?
12. Как установить пакет из testing или experimental?
На эту тему нужно писать отдельно (например так), но если кратко, то команды для этого есть
13. Как удалить метапакет, но оставить одну из зависимостей?
придётся почитать документацию про ключ unmarkauto или глянуть сюда.
14. Как узнать что попало в файловую систему мимо системы управления пакетами?
Есть утилита cruft, хотя вопрос интерпретации результатов (файла report) пока открыт
15. Какие есть дополнительные репозитории?
Debian — wiki.debian.org/UnofficialRepositories
Ubuntu — множество всяких PPA
16. Что есть ещё?
apt-cdrom
apt-spy
auto-apt. заметка на хабре
apt-key
apt-add-repository
Некоторые вещи умеет только apt-get
Есть альтернативные утилиты для управления пакетами, например wajig, который пытается вобрать в себя функционал всех остальных утилит.
17. Как найти пакеты зависящие от данного
также может пригодится
Благодарю всех кто помог своими советами в рассылке, жж (JackYF) и хабре ( run4way, sledopit, nazarpc, AgaFonOff, amarao, traaance, adrianopol, Karamax). Замечания и дополнения приветствуются.
Ubuntu-desktop.ru
Установи Linux! Стань свободным!
DPKG — УТИЛИТА ДЛЯ УПРАВЛЕНИЯ DEB ПАКЕТАМИ
dpkg — это программное обеспечение, являющееся основой системы управления пакетами в Debian и ряде других операционных систем, основанных на Debian, например Ubuntu. dpkg используется для установки, удаления, и получения информации о deb пакетах.
dpkg является довольно низкоуровневой утилитой.
Установка deb пакета:
Удаление deb пакета:
Удаление deb пакета вместе с конфигурационными файлами:
Deb-пакет это обычный архив, содержащий файлы, предназначенные для установки в систему, а так же некоторые служебные файлы, необходимые для того чтобы эту установку сделать гибкой.
Файлы и каталоги запакованные в deb пакете, предназначенные для установки в систему и их расположение в архиве соответствует положению их в файловой системе если считать от корня. Для того чтобы посмотреть расположение файлов установленного deb пакета в файловой системе можно воспользоваться командой:
Deb пакет при этом должен быть установлен
Так же можно посмотреть будущее расположение файлов и каталогов неустановленного deb пакета в файловой системе:
Так же встречаются случаи, когда необходимая Вам программа состоит из нескольких deb пакетов, в этом случае установить пакеты можно по отдельности или же все сразу целиком, для установки всех пакетов одновременно, необходимо указать путь к паке с deb пакетами:
cd /путь к папке с deb пакетами/
далее можно установить deb пакеты воспользовавшись следующей командой:
Также можно воспользоваться другой командой при установки одновременно нескольких deb пакетов:
Консольные инструменты управления пакетами
В Ubuntu есть три основных основных консольных инструмента для работы с пакетами: dpkg, aptitude и apt-get. По умолчанию установлена только apt-get. Но вы всегда можете установить остальные две, с помощью той же apt-get.
Утилита APT (Advanced Packaging Tool)
Начнём с того, что установить пакеты из репозиториев можно командой
Сколько бы вы не указали пакетов, apt-get автоматически разрешит все зависимости и предложит вам конечный вариант необходимых действий, вам останется только лишь согласиться, нажав Enter :
Аналогично установке, удалить пакеты можно одной из двух команд:
Первая удаляет только файлы пакета, оставляя настройки нетронутыми, вторая же удаляет пакет полностью (пользовательские настройки не удаляются).
Напоследок, несколько полезных команд:
apt-key служит для добавления и удаления ключей от репозиториев в систему. Ключи защищают репозитории от возможности подделки пакета.
Утилита dpkg
Утилита aptitude
Посмотреть версию конкретного пакета можно командой
Произвести поиск нужного пакета по доступным источникам приложений можно командой
По умолчанию поиск производится по именам пакетов, для поиска по описаниям надо перед искомой фразой добавить символы
Несмотря на неприглядный вид работать с этим очень удобно, но всё-таки обычно пользователю более привычны инструменты вроде Synaptic, поэтому подробно описывать работу с графической оболочкой aptitude я не буду.
И напоследок хочется заметить, что обычно в разнообразных инструкциях для установки пакетов вы увидите команду
Это ни в коей мере не значит, что кровь из носу надо исполнять эту команду. Вы спокойно можете поставить указанные пакеты через тот же Synaptic. Просто авторы инструкций обычно экономят своё время на объяснении куда и как надо нажимать в Synaptic, давая вместо всего этого одну маленькую команду. Но в конечном итоге и aptitude и apt-get и Synaptic выполняют одни и те же действия, так что используйте тот инструмент, который вам удобен.
Я описал только малую часть возможностей консольных утилит управления пакетами, однако всё остальное вам вряд ли потребуется.
P.S. Немного позитива
Забавно? Как же может ответить на это aptitude :
Вот незадача! Но постойте, а если попросить повежливей?
А можно и ещё вежливей, и даже намного вежливей:
Что называется, продолжайте по аналогии. Но это всё развлечения, нас же ждёт следующая тема:
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Sudo dpkg i что это
Это руководство не следует использовать сопровождающим пакетов, которые хотят понять, как 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 из старого пакета.
4. Распаковываются новые файлы, в тоже самое время сохраняя старые, чтобы если что-то пойдет не так, можно было их восстановить.
5. Если ранее была установлена другая версия этого пакета, то запускается сценарий postrm для старого пакета. Заметим, что этот сценарий запускается после сценария preinst нового пакета, потому что новые файлы записываются в то же самое время, когда удаляются старые.
Настройка состоит из следующих шагов:
1. Распаковка конфигурационных файлов, в то же самое время сохраняя старые конфигурационные файлы, чтобы можно было восстановить их, если что-то пойдет не так.
Удаление пакета состоит из следующих шагов:
1. Запуск сценария prerm
2. Удаление установленных фалов
dpkg-query actions Смотрите dpkg-query (1) для более подробной информации о нижеследующих действиях.
ПАРАМЕТРЫ
Предупреждение: Эти параметры предназначены только для использования экспертами. Использование без полного понимания их действия может нарушить работоспособность всей системы.
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 : Всегда устанавливать пропущенный конфигурационный файл. Это опасно, так как не будут сохранены изменения (удаление) файла.
overwrite : Перезаписать файл из одного пакета файлом из другого пакета.
overwrite-dir : Перезаписать каталог из одного пакета файлом из другого.
overwrite-diverted : Перезаписать файл с изменённым расположением(diverted) его неизменённой версией.
architecture : Обрабатывать даже пакеты с неправильной архитектурой.
bad-path : В PATH отсутствуют важные программы, поэтому могут возникнуть проблемы.
not-root : Попытаться установить или удалить пакет, даже если не нет прав суперпользователя.
bad-verify : Устанавливать пакет, даже если он не прошёл проверку подлинности.
‘. Errors are reported as `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:
Вручную просмотреть список пакетов:
Удалить установленный пакет elvis:
Чтобы установить пакет, сначала нужно найти его в архиве или на CDROM. Файл «available» показывает, что пакет vim находится в секции «editors» («редакторы»):
Получить локальную копию состояний выбранных пакетов:
Вы можете перенести этот файл на другой компьютер и установить его там с помощью:
Заметим, что при этом ничего не будет ни установлено, ни удалено, просто будут заданы состояния запрошенных пакетов. Для того, чтобы на самом деле скачать и установить запрошенные пакеты, вам понадобится другая программа. Например, запустите dselect и выберите «Установить».
Обычно dselect (8) предоставляет более удобный способ изменить состояния выбранных пакетов.