Використання dpkg для встановлення пакетів оновлення та dist-upgrade


9

Тому я розмовляю з встановленням офлайн-пакету на сервері 12.04, завантажуючи пакунки, завантажуючи та відбиваючи їх URI, використовуючи тут інструкції: http://www.webupd8.org/2009/11/get-list-of-packages- і-зависимостей.html

Я зробив це з, apt-get upgradeа apt-get dist-upgradeпотім пішов про встановлення завантажених пакетів за допомогою dpkg -i. Так процес виглядав так:

  1. Отримати URI
  2. wgetпакети в папку ( upgradeпакети для / оновлення та dist-upgradeпакети для / dist-upgrade)
  3. біжи dpkg -i /upgrade/*.debі тодіdpkg -i /dist-upgrade/*.deb

Моє запитання: чи правильно цей спосіб вручну встановити оновлені пакети все оновлюватиме, даючи такий же результат, як якщо б я просто запустив apt-get upgradeі apt-get dist-upgradeнормально? Або є щось, що звичайні apt-getкоманди роблять, що не вдалося б зробити так?

Відповіді:


15

Замість використання dpkg, який є менеджером пакетів низького рівня, вам краще використовувати apt. Щоб встановити .deb файли за допомогою apt, скопіюйте їх у підходящий кеш

sudo cp *.deb /var/cache/apt/archives/

а потім просто виконайте регулярне оновлення:

apt-get upgrade

aptКоманда буде використовувати файли в кеші , а не завантажувати його від мережі, так що в значній мірі служить вашої мети.


Дякую, це чудово працює. Хоча мені все ще цікаво, що конкретно aptпоступається dpkgв цьому випадку, враховуючи, що я спочатку використовував aptURI для всіх пакетів, включаючи їх залежність? Що стосується фактичного акту встановлення, то, схоже, aptце дуже просто використовується dpkgдля розпакування та встановлення пакунків, різниця полягає лише в тому, що aptзаздалегідь перевіряються залежності (але це вже охоплено, тому що я aptзавантажував пакунки, в т.ч. залежності, в першу чергу). Якщо я щось не пропускаю?
R4mzy

Крім того, частина причини, про яку я запитую, полягає в тому, що я переживаю, якою apt'sможе бути поведінка, якщо, скажімо, завантажені пакети були скопійовані в систему, яка мала доступ до Інтернету, а потім aptбачить, що деякі або всі завантажені пакети не є останніми (але новіше, ніж те, що зараз встановлено), і тоді він швидше намагається отримати оновлені версії цих конкретних пакетів (я хочу, щоб він встановлював лише певні пакунки / версії, які я завантажив). По суті, чи aptвіддаєте перевагу останній інтернет-версії чи надаватиме перевагу локальній, новітнійшій, але не найновішій версії?
R4mzy

1
@ R4mzy У вас там дійсна точка. aptспробує дістати останній пакет з Інтернету, навіть якщо є старіші пакети, доступні на місцях. Можливо, вам доведеться змінити /etc/apt/sources.listt, не забудьте встановити локальні пакети.
Саянтанкхан

@sayantankhan чи можете ви показати, як це виглядатиме у вашій відповіді? Я прошу, тому що я скопіював свій .deb файл, /var/cache/apt/archives/але sudo apt-get update && sudo apt-get upgradeне бачу його чи оновлення / оновлення потрібного мені пакету. Я відчуваю, що мені потрібно оновити список, але не знаю як.
Тодд

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