Моє запитання просте - я хочу дізнатися більше про dpkg - що це робить?
Моє запитання просте - я хочу дізнатися більше про dpkg - що це робить?
Відповіді:
Як було сказано, 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
списку поточно встановлених пакетів.
dpkg - це спосіб командного рядка встановити з .deb або видалити вже встановлені пакети. Наприклад, якщо у вашому домашньому каталозі був файл .deb, запущений dpkg -i yourpackage.deb
встановить цей пакет для вас. Я вважаю це корисним для мене принаймні тим, що іноді при натисканні на файл .deb він завантажує програмний центр Ubuntu Software, але ніколи насправді не встановлює його або не має проблем.
Як завжди, man
команда - чудове місце для початку.
man dpkg
Ви можете все-таки надати всі варіанти:
dpkg - менеджер пакунків для систем на базі Debian. Він може встановлювати, видаляти та створювати пакети, але на відміну від інших систем управління пакетами, він не може автоматично завантажувати та встановлювати пакети та їх залежності.
Отже, це apt-get без вирішення залежності, і він використовується для встановлення файлів .deb.
Я попереджаю вас, хоча: видалення пакунків із використанням dpkg, у більшості випадків, НЕ рекомендується. Краще використовувати диспетчер пакунків, який обробляє залежності, щоб переконатися, що система перебуває в стабільному стані.
Наприклад, dpkg -r zip
ви можете видалити zip-пакет, але будь-які пакунки, які залежать від нього, все одно будуть встановлені і можуть більше не працювати належним чином.
Ви можете прочитати детальніше про це в путівнику по серверу та інших місцях .