Использование dpkg для установки пакетов обновления и dist-upgrade


9

Поэтому я поиграюсь с автономной установкой пакетов на сервере 12.04, загрузив пакеты, извлекая и добавляя их URI с помощью инструкций здесь: http://www.webupd8.org/2009/11/get-list-of-packages- и-dependencies.html

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

  1. Получить URI
  2. wgetпакеты в папку ( upgradeпакеты в / 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, скопируйте их в кэш apt

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

а затем просто выполните обычное обновление:

apt-get upgrade

Команда aptбудет использовать файлы в своем кэше, а не загружать их из сети, так что это в значительной степени соответствует вашим целям.


Спасибо, это прекрасно работает. Хотя мне все еще любопытно, что именно aptделает dpkgв этом случае иначе , учитывая, что я первоначально использовал, aptчтобы получить URI всех пакетов, включая их зависимости? Когда дело доходит до самого акта установки, похоже, что aptон в основном используется dpkgдля распаковки и установки пакетов, с той лишь разницей, что aptпредварительно проверяет зависимости (но это уже было рассмотрено, потому что я использовал aptдля загрузки пакетов, включая зависимости, в первую очередь). Если я что-то упустил?
R4mzy

Кроме того, одна из причин, по которой я спрашиваю, заключается в том, что я обеспокоен тем, что apt'sможет быть, если, скажем, загруженные пакеты были скопированы в систему, которая имела доступ к Интернету, а затем aptвидит, что некоторые или все загруженные пакеты не самые последние (но новее, чем то, что установлено в настоящее время), а затем он пытается получить обновленные версии этих конкретных пакетов (я хочу установить только определенные пакеты / версии, которые я скачал). В основном, aptотдаёт ли предпочтение последней онлайн-версии или будет отдавать предпочтение локальной, более новой, но не самой последней версии?
R4mzy

1
@ R4mzy У тебя есть верная точка зрения. aptбудет пытаться получить последний пакет из Интернета, даже если есть локальные пакеты более старых версий. Возможно, вам придется изменить его, /etc/apt/sources.listчтобы убедиться, что он устанавливает локальные пакеты.
Саянтанхан

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

1
@ Тодд Я сам этого не делал, но вот как кто-то перевесил приоритет пакета apt.
Саянтанхан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.