НАЗВАНИЕ
dpkg −− менеджер пакетов Debian
СИНТАКСИС
dpkg [параметры] действие
ПРЕДУПРЕЖДЕНИЕ
Это руководство предназначено для пользователей, желающих более подробно ознакомиться с параметрами командной строки dpkg и состояниями пакетов: здесь это описано более детально, чем в dpkg −−help.
Это руководство не следует использовать сопровождающим пакетов, которые хотят понять, как dpkg будет устанавливать их пакеты. Описание того, что делает dpkg при установке и удалении пакетов особенно не полно.
ОПИСАНИЕ
dpkg is a tool to install, build, remove and manage Debian packages. The primary and more user−friendly front−end for dpkg is dselect(1). dpkg itself is controlled entirely via command line parameters, which consist of exactly one action and zero or more options. The action−parameter tells dpkg what to do and options control the behavior of the action in some way.
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:
−b, −−build,
−c, −−contents,
−I, −−info,
−f, −−field,
−e, −−control,
−x, −−extract,
−X, −−vextract и
−−fsys−tarfile.
Все эти
действия
описаны в
dpkg−deb(1).
ИНФОРМАЦИЯ О ПАКЕТАХ
dpkg управляет некоторой полезной информацией о доступных пакетах. Эта информация делится на три класса: состояния, выбранные состояния и флаги. Предполагается, что в большинстве случаев эта информация изменяется с помощью dselect.
СОСТОЯНИЯ
ПАКЕТА
installed
Пакет распакован и успешно настроен.
half−installed
Установка пакета была запущена, но не закончена по какой−либо причине.
not−installed
Пакет в системе не установлен.
unpacked
Пакет распакован, но не настроен.
half−configured
Пакет распакован и настройка была запущена, но пока ещё не завершена по какой−либо причине.
config−files
В системе остались только конфигурационные файлы пакета.
ВЫБРАННЫЕ
СОСТОЯНИЯ
ПАКЕТА
install
Пакет выбран для установки.
deinstall
Пакет выбран для удаления (т.е. будут удалены все файлы, кроме конфигурационных).
purge |
Пакет выбран для полной очистки (т.е. будут удалены абсолютно все файлы, включая конфигурационные). |
ФЛАГИ ПАКЕТА
hold |
Пакет помечен как зафиксированный и не обрабатывается dpkg, только если не указан параметр −−force−hold. |
reinst−required
Пакет, помеченный как reinst−required, является сломанным и требует переустановки. Такие пакеты не могут быть удалены, пока не указан параметр −−force−reinstreq.
ДЕЙСТВИЯ
dpkg −i | −−install имя файла пакета...
Установить заданный пакет. Если указан параметр −−recursive или −R, то вместо имени файла пакета должен быть указан каталог.
Установка состоит из следующих шагов:
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 <файл Packages>
Обновить информацию 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 <n>
Принимает серию команд из входного файлового дескриптора <n>. Замечание: дополнительные параметры, заданные в командной строке, а также через этот дескриптор, не сбрасываются для последующих команд, выполняющихся далее в этом запуске.
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
−b | −−build
каталог
[имя
файла]
Собирает deb
пакет.
dpkg −c | −−contents
имя
файла
Показывает
содержимое
deb пакета.
dpkg −e | −−control
имя
файла
[каталог]
Извлекает
управляющую
информацию
из пакета.
dpkg −x | −−extract
имя
файла
<каталог>
Извлекает
файлы,
содержащиеся
в данном
пакете.
dpkg −f | −−field
имя
файла
[управляющее−поле]
...
Показывает
управляющее(ие)
поле(я)
пакета.
dpkg −−fsys−tarfile
имя
файла
Выдает на
стандартный
вывод
tar−файл с
файловой
системой
из
указанного
пакета Debian.
dpkg −I | −−info
имя
файла
[файл control]
Выдает
информацию
о данном
пакете.
dpkg −X | −−vextract
имя файла
каталог
Извлекает
и выдает
имена
файлов,
содержащиеся
в пакете.
dpkg−query actions
Смотрите dpkg−query(1) для более подробной информации о нижеследующих действиях.
dpkg
−l | −−list
шаблон
имени
пакета ...
Показывает
пакеты,
соответствующие
данному
шаблону.
dpkg −s | −−status
имя
пакета ...
Сообщает
о
состоянии
указанного
пакета.
dpkg −L | −−listfiles
имя
пакета ...
Показывает
файлы,
установленные
в системе
из пакета
с
указанным
именем.
dpkg −S | −−search
шаблон
имени
файла ...
Ищет в
установленных
пакетах
имя файла
по
заданному
шаблону.
dpkg −p | −−print−avail I
<имя
пакета>
Выводит
детальную
информацию
о пакете,
которую
извлекает
из файла
/var/lib/dpkg/available.
ПАРАМЕТРЫ
Все
параметры
можно
указывать
как в
командной
строке,
так и в
конфигурационном
файле dpkg
−− /etc/dpkg/dpkg.cfg.
Каждая
строка в
конфигурационном
файле
должна
быть либо
параметром
(в
точности
как в
командной
строке, но
без
начальных
дефисов),
либо
комментарием
(если
начинается
с #).
−−abort−after=число
Change after how many errors dpkg will abort. The default is 50.
−B|−−auto−deconfigure
При удалении пакета есть вероятность, что есть другой установленный пакет зависящий от удаляемого пакета. Указание этого параметра приведёт к автоматической деконфигурации пакета, который зависит от удаляемого пакета.
−Doctal | −−debug=octal
Switch debugging on. octal is formed by bitwise−orring desired values together from the list below (note that these values may change in future releases). −Dh or −−debug=help display these debugging values.
Маска
Описание
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 <n>
Send package status info to file descriptor <n>. This can be given multiple times. Status updates are of the form ’status: <pkg>: <pkg state>’. Errors are reported as ’status: <pkg>: 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 <state> <pkg> <installed−version>’ for status change updates; ’YYYY−MM−DD HH:MM:SS <action> <pkg> <installed−version> <available−version>’ for actions where <action> is one of install, upgrade, remove, purge; and ’YYYY−MM−DD HH:MM:SS conffile <filename> <decision>’ for conffile changes where <decision> is either install or keep.
−−no−debsig
Не пытаться проверять подпись пакета.
ФАЙЛЫ
/etc/dpkg/dpkg.cfg
Файл конфигурации с параметрами по умолчанию.
/var/log/dpkg.log
Файл журнала по умолчанию (смотрите /etc/dpkg/dpkg.cfg(5) и параметр −−log).
Остальные
файлы
перечислены
с
указанием
их
каталогов
по
умолчанию,
смотрите
параметр
admindir, чтобы
узнать,
как
изменить
местоположение
этих
файлов.
/var/lib/dpkg/available
Список доступных пакетов.
/var/lib/dpkg/status
Состояния доступных пакетов. Этот файл содержит информацию о том, помечен ли пакет для удаления или нет, установлен он или нет, и т.д. Смотрите раздел ИНФОРМАЦИЯ О ПАКЕТАХ, где приведена подробная информация.
Нижеследующие
файлы
являются
компонентами
бинарного
пакета.
Смотрите
deb(5), где
приведена
подробная
информация:
control
conffiles
preinst
postinst
prerm |
||
postrm |
ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
DPKG_NO_TSTP
Если она определена, то dpkg при запуске оболочки не приостанавливает себя, а создаёт новый процесс.
SHELL |
The program dpkg will execute when starting a new shell. |
COLUMNS
Задаёт количество колонок текста, используемых программой dpkg при форматировании текста. В настоящий момент используется только с параметром −l.
ПРИМЕРЫ
To list
packages related to the editor vi(1):
dpkg −l '*vi*'
To see the
entries in /var/lib/dpkg/available of two packages:
dpkg −−print−avail elvis vim |
less
Вручную
просмотреть
список
пакетов:
less /var/lib/dpkg/available
Удалить
установленный
пакет elvis:
dpkg −r 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
<myselections
Заметим, что при этом ничего не будет ни установлено, ни удалено, просто будут заданы состояния запрошенных пакетов. Для того, чтобы на самом деле скачать и установить запрошенные пакеты, вам понадобится другая программа. Например, запустите dselect и выберите "Установить".
Обычно dselect(8) предоставляет более удобный способ изменить состояния выбранных пакетов.
ДОПОЛНИТЕЛЬНАЯ ФУНКЦИОНАЛЬНОСТЬ
Дополнительная функциональность может быть получена установкой любых следующих пакетов: apt, aptitude и debsums.
СМОТРИТЕ ТАКЖЕ
dselect(1), dpkg−deb(1), dpkg−query(1), deb(5), deb−control(5), dpkg.cfg(5) и dpkg−reconfigure(8).
ОШИБКИ РЕАЛИЗАЦИИ
−−no−act обычно дает меньше информации, чем могло бы быть полезным.
АВТОРЫ
Смотрите файл /usr/share/doc/dpkg/THANKS, где приведён список тех, кто участвовал в разработке dpkg.
ПЕРЕВОД
Это руководство перевел с английского Виктор Вислобоков (2:5054/8.34@FidoNet). Обновление и корректура: Alexey Mahotkin <alexm [AT] hsys.ru>.