Для чого призначений dpkg?


21

Моє запитання просте - я хочу дізнатися більше про dpkg - що це робить?


Це було відредаговано щонайменше двічі, щоб підвищити чіткість, оскільки, напевно, варто було б бути відкритим (за умови, що це не дублікат), оскільки він створив хоча б одну хорошу відповідь.
belacqua

1
Ви повинні відвідати перший: en.wikipedia.org/wiki/Dpkg
Пандія

Відповіді:


17

Як було сказано, dpkgце системний інструмент низького рівня для вилучення, аналізу, розпакування та встановлення або видалення файлів .deb. Однак краще використовувати Software Centreабо Gdebiвстановити або видалити .deb файли, отримані з інших джерел, оскільки ці дві програми мають роздільну здатність залежності.

Однак, що не було пояснено, є анатомія оновлення з використанням dpkgта apt-get. Якщо, наприклад, ми закликаємо apt-getінсталювати cheese, аналізується дерево залежностей і отримуються необхідні файли apt-get, які потім передають їх dpkgдля вилучення, аналізу та встановлення на правильні місця та налаштування їх відповідно до сценаріїв, що знаходяться всередині них.

Сценарії, прочитані dpkgвсередині кожного файлу .deb, важливі, оскільки вони дають програмі інформацію про встановлення, видалення та конфігурацію пакетів. Отже, коли ви заглядаєте, /var/log/dpkg.logіснує багато детальних деталей про "тригери" та пакети, що проходять різні етапи розпакування та конфігурації. У своєму блозі Рафаель Герцог (який є ключовим розробником та підтримувачем dpkgпакету Debian ) пояснює більше про тригери dpkg та спосіб dpkgперевірки та налаштування пакетів.

Зараз ми добираємось до серця того, що dpkgробить; він вміло обробляє пакети Debian, а не їх залежності. З dpkg-deb, наприклад, ви можете виконувати різні дії в аналізі і вручну витягуючи файли з архівів .deb; див. man dpkg-debдля отримання додаткової інформації.

Статус кожного пакета вказаний у /var/lib/dpkg/status, за допомогою якого можна grepперевірити певний пакет. Dpkgможна також закликати повторно налаштувати конкретні пакети, які були налаштовані (див. man dpkg-reconfigure):

sudo dpkg-reconfigure <package>

Або виконати налаштування всіх неконфігурованих пакетів, якщо виникла проблема з оновленням, а конфігурація деяких пакетів ще триває:

sudo dpkg --configure -a

Для чудового підручника, який зосереджується на dpkgта apt-get, див. Глави 5 та 6 Посібника з Debian , який є найкращим доступним обговоренням. Введіть man dpkgсвій термінал або перегляньте в Інтернеті Manbuges для перегляду всіх доступних варіантів, таких як використання dpkg -lсписку поточно встановлених пакетів.


4

dpkg - це спосіб командного рядка встановити з .deb або видалити вже встановлені пакети. Наприклад, якщо у вашому домашньому каталозі був файл .deb, запущений dpkg -i yourpackage.debвстановить цей пакет для вас. Я вважаю це корисним для мене принаймні тим, що іноді при натисканні на файл .deb він завантажує програмний центр Ubuntu Software, але ніколи насправді не встановлює його або не має проблем.


4

Як завжди, manкоманда - чудове місце для початку.
man dpkgВи можете все-таки надати всі варіанти:

dpkg - менеджер пакунків для систем на базі Debian. Він може встановлювати, видаляти та створювати пакети, але на відміну від інших систем управління пакетами, він не може автоматично завантажувати та встановлювати пакети та їх залежності.

Отже, це apt-get без вирішення залежності, і він використовується для встановлення файлів .deb.

Я попереджаю вас, хоча: видалення пакунків із використанням dpkg, у більшості випадків, НЕ рекомендується. Краще використовувати диспетчер пакунків, який обробляє залежності, щоб переконатися, що система перебуває в стабільному стані.

Наприклад, dpkg -r zipви можете видалити zip-пакет, але будь-які пакунки, які залежать від нього, все одно будуть встановлені і можуть більше не працювати належним чином.

Ви можете прочитати детальніше про це в путівнику по серверу та інших місцях .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.