Яка різниця між dpkg та здатністю / apt-get?


125

Встановлюючи програмне забезпечення через dpkg -i packageA.deb, чи packageAавтоматично завантажуються та встановлюються залежності, необхідні для завантаження? Чим це відрізняється від використання apt-getабо aptitude?


Пов'язані (особливо стосовно залежностей): askubuntu.com/q/40779/250300
Мелебій

Відповіді:


168

Ні, dpkgвстановлюється лише пакет, тому dpkg -i packageName.debвстановлення цього пакета Deb встановлюватиметься лише про всі залежності, які потрібно встановити, але він їх не встановить, і він не налаштує, packageName.debтому що добре ... залежності не там.

apt-getце система управління пакетами, яка обробляє встановлення пакунків Deb на дистрибутивах Linux, заснованих на Debian . Система управління пакетами - це набір інструментів, які допоможуть вам легко встановити, видалити та змінити пакунки. Так apt-getце як розумний dpkg.

Мені подобається думати про часову шкалу таким чином (далі я лише кажу з досвіду. Маю на увазі лише уявити тобі все це):

  • Вони придумали спосіб "зберігати" файли програми в "пакеті", щоб її можна було легко встановити. Так, народився пакет Deb ( .debфайл розширення ).

    .debФайл містить файли , необхідні додатки для роботи, а також (я хотів назвати його) «мета-даних» , який містить іншу інформацію, таку як імена залежностей до потреб конкретного додатка. Якщо ви хочете переглянути вміст .debфайлу, ви можете скористатися командою dpkg -c packageName.deb, а якщо ви хочете побачити цю інформацію "метаданих", скористайтеся командою dpkg -I pacakgeName.deb(а якщо ви хочете бачити лише залежності, зробіть dpkg -I packageName.deb | grep Depends).

  • Їм знадобився інструмент для встановлення цих .debфайлів, тому вони придумали dpkgінструмент. Цей інструмент, проте, просто встановить .debфайл, але не встановить його залежності, оскільки у нього немає цих файлів, і він не має доступу до "сховищ", з яких можна витягнути залежності.

  • Потім вони придумали apt-get, що автоматизує проблеми в попередньому пункті. Внизу капот - apt-getце в основному dpkg(мені подобається думати про це як apt-getпро передній край dpkg), але розумний, який буде шукати залежності і встановлювати їх. Він навіть переглядає встановлені в даний час залежності та визначає ті, які не використовуються жодними іншими пакетами, і повідомить, що ви можете їх видалити.

aptitudeпотім прийшов. Він використовує бібліотеки, які apt-getвикористовує, і фактично має інтерактивний інтерфейс користувача (інтерфейс користувача). Якщо ви хочете побачити цей інтерфейс, просто введіть aptitudeтермінал. Ось так aptitude . Він використовує бібліотеки, щоб надати більше можливостей та переваг, ніж apt-get. Наприклад, aptitudeавтоматично видаляються придатні пакети, тоді як для цього apt-getпотрібна окрема команда. Але, врешті-решт, робити sudo aptitude install packageName.debпотрібно як мінімум так само, як sudo apt-get install packageName.deb. Тут і там можуть бути тонкі відмінності, про які я не знаю, але вони обидва будуть шукати залежності і робити все це. Ви можете прочитати відповідь тут для отримання додаткової інформації про відмінності між aptitudeта apt-get.

Крім того, aptitudeне має суперкоролівських сил.

EDIT: Мабуть, так і є. aptitude -v[v[v[v[v]]]] moo.

aptitudeможе не встановлено за замовчуванням. Щоб встановити його, зробіть sudo apt-get install aptitudeабо натисніть це: aptitudeВстановити здатність .


Додатково

Наступна інформація насправді не відповідає безпосередньо " Яка різниця між dpkg та здатністю / apt-get? ", Але це сприяє загальній картині.


Від Карлоса Campderrós ' коментар нижче :

gdebiє ще одним інструментом, який є своєрідною сумішшю між apt-getта aptitude. Коли ви використовуєте його для встановлення .debпакета ( gdebi packageName.deb), він виявить відсутні залежності, встановить їх за допомогою apt-get, а потім, нарешті, встановить і налаштує пакет за допомогою dpkg. У нього навіть є простий і акуратний графічний інтерфейс, який дає вам інформацію про .debпакет, файли, що входять до пакету, та про те, які залежності потрібно встановити. Щоб побачити цей графічний інтерфейс, ви зробите це gdebi-gtk packageName.deb. Ви можете gdebiспробувати, встановивши його sudo apt-get install gdebiабо натисніть на це: gdebiВстановіть gdebi .


Я не хочу нікого плутати, але просто для того, щоб дати вам ще одну частину зображення, є ще один популярний формат пакету Linux, який називається RPM, і його файли мають .rpmрозширення. Цей формат пакета використовується в дистрибутивах Linux на базі RPM (таких як Red Hat, CentOS і Fedora). Вони використовують команду rpmдля встановлення пакету, і yumце передня частина, це розумна. Отже їх .rpmфайли - це наші .debфайли, їх rpmінструмент - наш dpkgінструмент, а їх yum- наш apt-get.

З Педді Ландау «s коментар нижче :

alienце інструмент, який здійснює перетворення між пакетами .rpmта .debпакетами. Отже, якщо ви коли-небудь потрапляєте в ситуацію, коли у вас є .rpmпакет, і ви хочете встановити свій Ubuntu (або будь-який інший дистрибутив на базі Debian), ви можете скористатися командою alien rpm_packageName.rpmдля його перетворення .deb, а потім встановити за допомогою dpkg. Ви можете зробити реверс (перетворити .debна .rpm) за допомогою alien -r packageName.deb.


5
Це було дуже корисно і саме те, що я шукав. Тх!
Анікет Такур

4
Також ви можете використовувати gdebi( apt-get install gdebi-core), який змішується apt-get/ aptitudeз dpkg. Ви зателефонуєте до нього, gdebi some_package.debі він проаналізує його залежності, зателефонує apt-getвстановити відсутні і коли всі залежності виконані, тоді зателефонуйте, dpkgщоб остаточно встановити ваш пакет.
Карлос Кампдеррос

2
@Alaa У розділі Extra можна також згадати, що alienперетворює пакети між .rpmі .deb. Це корисно для пакетів, доступних для RPM, але не для DEB (або навпаки). Наприклад, alien packagename.rpmщоб зробити його корисним для Ubuntu.
Падді Ландау


1
@edwardtorvalds AskUbuntu - це сайт із запитаннями та відповідями. Шукайте свою відповідь тут, на сайті, з тисяч старих запитань, і якщо ви не знайдете її, задайте власне запитання, більш досвідчені люди, ніж я, сподіваємось, також відповідуть.
Алаа Алі

5

вдало дістати

Управління пакунками здійснюється за допомогою файлу apt-getрука об руку /etc/apt/sources.list.

apt-get install <package_name> встановлює новий пакет на ваш комп’ютер.

apt-get build-dep <package_name> Ця команда здійснює пошук у сховищах та встановлює залежності побудови. Якщо пакет не знаходиться у сховищах, він поверне помилку.

apt-get install <package1_name> <package2_name> <package3_name> apt-get дозволяє встановити багаторазовий пакет. розділіть пакети пробілом.

auto-apt run <command_string> Після виклику команда auto-apt автоматично встановлює пакети при відсутності доступу до файлу. Якщо програма намагається отримати доступ до файлу, який, як відомо, належить до невстановленого пакету, автоматичне встановлення цього пакета встановить за допомогою apt-get. Ця функція вимагає спритності та судо для роботи.

Відвідайте сторінку інструкцій з влучного отримання

здатність

aptitudeзабезпечує функціональність dselectта apt-getбагато додаткових функцій, які не зустрічаються в жодній програмі.

aptitude має власну оболонку, яка активована клавіатурою чи мишкою та працює у вікні терміналу

aptitude build-dep <package> - Встановіть залежність збирання пакетів - це означає, що пакети, необхідні для складання (або складання ) його вихідного пакету. Наприклад, багато пакунків потрібно debhelperабо autotoolsстворити, але вони не потребують їх запуску.

Перейдіть на сторінку інструкцій щодо вміння

дпкг

це інструмент для встановлення, створення, видалення та управління пакетами Debian. посилання

dpkg -i <package.deb>встановлює пакет Debian на ваш комп'ютер. Він не встановлює ніяких залежностей, наскільки я можу дізнатися з файлів довідки.

Деталі введіть dpkg --helpу вікно терміналу.

Посібники

посібник з управління файлами можна знайти тут


0

Я думаю, що найважливіше, а також відмінність полягає в тому, що ви повинні використовувати apt-getінструмент для встановлення пакетів. ( aptабо aptitudeтакож добре).

Це тому dpkg, що призначена для встановлення пакетів без встановлення залежних пакетів. Через це просто встановлення пакету з dpkg, може призвести до більш пізньої проблеми, коли розв'язання залежності може закінчитися порушенням системи.

Ви повинні використовувати командний рядок apt-getабо apt(починаючи з 14.04) інструмент для встановлення пакетів. Ці інструменти використовуються dpkgдля вас і одночасно мають механізм вирішення залежності всередині.

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