dpkg - менеджер пакетів Debian
ПОПЕРЕДЖЕННЯ
Ця інструкція призначена для користувачів, що бажають більш детально ознайомитися з параметрами командного рядка 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: Всі ці дії описані в 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.
dpkg-query actions Дивіться dpkg-query (1) для більш докладної інформації про такі дії.
Примусово виконувати або ж відмовлятися виконувати (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. Встановлювати пакет, навіть якщо він не пройшов перевірку автентичності.
Переконайтеся, що вказали --no-act перед дією, або у вас можуть вийти небажані результати. (Наприклад, dpkg --purge foo --no-act спершу виконає повне видалення пакета foo, а потім намагатиметься повністю видалити пакет --no-act, хоча ви очікували, що нічого виконано не буде) -R | --recursive Рекурсивна обробити всі файли, що відповідають шаблоном * .deb. які знайдені в заданих каталогах і у всіх їх підкаталогах. Цей параметр можна використовувати разом з діями -i. -A. --install. --unpack і --avail. -G Do not 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
/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), де наведена докладна інформація: controlconffilespreinstpostinstprermpostrm
ЗМІННІ ОТОЧЕННЯ
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):
To see the entries in / var / lib / dpkg / available of two packages:
dpkg --print-avail elvis vim | less
Видалити встановлений пакет elvis:
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) надає більш зручний спосіб змінити стану обраних пакетів.
ДОДАТКОВА ФУНКЦІОНАЛЬНІСТЬ
Додаткова функціональність може бути отримана установкою будь-яких наступних пакетів: apt. aptitude і debsums.
ПОМИЛКИ РЕАЛІЗАЦІЇ
--no-act зазвичай дає менше інформації, ніж могло б бути корисним.
Переклав з англійської Віктор Вислобоков