Різниця між `dpkg -i` та` apt-get install`


16

З усіх інших запитань та запитань (як-от: яка різниця між dpkg та здатністю / apt-get? ) Я розумію, що apt-getце обгортка dpkgта забезпечує управління залежністю.

Якщо припустити, що я встановлюю те, що не має ніяких залежностей (або вони також встановлені одночасно), чи буде різниця між встановленням його за допомогою apt-getvsdpkg

Наприклад (якихось конкретні відмінності, які я шукаю)

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

...

Відповіді:


16

dpkg -iвстановлює *.debпакети, тобто пакети, які ви вже звідкись завантажили. Він також їх налаштовує, але не завантажує / не встановлює залежності. Потрібно завантажити файли (файли) двійкових пакетів вручну звідкись. Також можуть виникнути небезпеки при завантаженні пакетів з місць, які не є сховищами, до яких ваш дистрибутив включив / включив за замовчуванням, оскільки сторонні пакети можуть мати шкідливий характер.


apt-get/aptitude install автоматично отримує доступ до включених вами індексів сховищ та PPA, шукає найкращого кандидата, завантажує його та всі його залежності та встановлює та конфігурує їх автоматично.

Використовуючи apt-get install -f, ви можете автоматично встановити відсутні пакети залежностей, наприклад, встановлені через dpkg -i.


5
Швидка примітка тут apt-getможе встановлювати залежності від пакетів, встановлених за допомогою dpkg -i. Біжи, apt-get install -fщоб досягти цього.
noirscape

1
@ Ev1l0rd Правильно, я додав це до своєї відповіді.
командир байтів

2
Ще одна важлива відмінність, що стосується використання apt-getабо aptitude, полягає в тому, що вони пам'ятають, чи встановлено пакет вручну (спеціально запитували), чи встановлений він для виконання залежності. Таким чином, коли ви пізніше виймете пакет, вони зможуть автоматично видалити (або принаймні розповісти про них) пакунки, які "були автоматично встановлені і більше не потрібні". Якщо ви встановили кожен пакет, dpkgтоді вам доведеться запам'ятати та видалити вручну не тільки ваш пакунок, але й усі його залежності (якщо припустити, що нічого іншого від них не залежить).
Бенджамін Статон

1
@BenjaminStaton Ну, як dpkg -iне байдуже до залежностей, все, що встановлено з ним, звичайно, встановлюється "вручну".
Байт-командир
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.