Как вы видите, какие пакеты доступны для обновления

74

Пользователь FreeBSD вступает в ваши ряды. Меня попросили присмотреть за сервером Ubuntu, работающим 10.04 LTS.

Я вижу, /usr/lib/update-notifier/update-motd-updates-availableчто на сервере есть ряд обновлений, но я не вижу способа определить, какие из них будут обновлены.

Может ли кто-нибудь указать мне правильное направление, чтобы я мог видеть, какие пакеты будут обновляться при запуске apt-get upgrade?

ОБНОВИТЬ:

В данный момент не могу ответить на свой вопрос, поэтому добавлю это здесь:

Наряду с apt-get upgrade --dry-runпредложенным ниже, /usr/lib/update-notifier/apt-check -pбудут перечислены все пакеты, которые имеют доступные обновления.

Ян Гип
источник
Добро пожаловать в ряды, используйте и злоупотребляйте сайтом, если вам нужна дополнительная помощь;) Если вы найдете ответ, удовлетворяющий вашему вопросу, отметьте его зеленым флажком рядом с ним.
Бруно Перейра
1
Теперь у вас должна быть возможность ответить на свой вопрос, поскольку у вас достаточно представителей, чтобы снять ограничения для новых пользователей .
Джокердино
Похоже, что требуется 100репаратов или 8 часов ожидания, чтобы ответить на ваш собственный вопрос.
Ян Гип
В 2016 году ответ @doru будет точным. askubuntu.com/a/788049/560610
jeremysawesome

Ответы:

63

Вы можете установить, aptitudeесли он еще не установлен. Это отличный инструмент для управления пакетами в автономной установке.

введите описание изображения здесь

В противном случае, если вы просто хотите увидеть, что произойдет, когда вы что-то запустите, используйте --dry-runаргумент, и он на самом деле ничего не сделает, он просто скажет вам, что он будет делать:

Со страницы руководства apt-get

-s, --simulate, --just-print, --dry-run, --recon, --no-act
          No action; perform a simulation of events that would occur but do
          not actually change the system. Configuration Item:
          APT::Get::Simulate.

          Simulate prints out a series of lines each one representing a dpkg
          operation, Configure (Conf), Remove (Remv), Unpack (Inst). Square
          brackets indicate broken packages with and empty set of square
          brackets meaning breaks that are of no consequence (rare).

Добавьте опцию к команде таким образом

apt upgrade --dry-run
Оли
источник
5
Я изуродовал ваш ответ, надеюсь, вы не возражаете.
Бруно Перейра
2
Интересно, apt-get upgrade --dry-runчто не требует sudo, что делает его идеальным для автоматического отображения необходимых обновлений пакетов.
dshepherd
еще более интересно то, что на моем Ubuntu 14.04 LTS "apt-get -s update" не принимает ни "-s" ... ни "--dry-run", "--no-act" ... почему это будет?
mBardos
@mBardos Вы заменили apt-getв своем пути сценарий "помощник"? Убедитесь, which apt-getчто это/usr/bin/apt-get
Оли
martonb @ martonb-ubu: ~ / work / qt $ which apt-get / usr / bin / apt-get Работает ли это для вас в Ubuntu 14.04 LTS? martonb @ martonb-ubu: ~ / work / qt $ apt-get -s update E: опция командной строки 's' [from -s] неизвестна.
mBardos
68

На данный момент (Ubuntu 16.04) вы можете использовать apt listс --upgradableфлагом;

sudo apt update
apt list --upgradable

и вы получите список со всеми обновляемыми пакетами.

Дора
источник
1
Отлично! Это именно то, что я хотел увидеть :)
jeremysawesome
aptнеизвестна команда в 12.04
confiq
1
@confiq «APT 1.0 был выпущен 1 апреля 2014 года» , поэтому возможно, что он не будет обновлен в вашей системе. Попробуй посмотреть какая у aptтебя версия установлена ​​работает sudo apt-cache policy apt.
дору
это объясняет ...
Confiq
10

Другой альтернативой было бы использовать aptitudeс термином поиска :

aptitude search '~U'

(Обратите внимание на заглавную букву 'U')

Это означает: «искать все пакеты, которые установлены и могут быть обновлены». Ссылка: руководство пользователя aptitude

По умолчанию aptitude searchпоказывает для каждого пакета его имя, описание и несколько флагов, но вы также можете адаптировать вывод к вашим потребностям. Например, чтобы вывести только имена пакетов, команда будет выглядеть так:

aptitude search -F '%p' --disable-columns '~U'

( --disable-columnsизбегает заполнения пробелов в конце строк)

sierrasdetandil
источник
8

Команда ниже покажет вам список установленных пакетов, обновление которых доступно в репозиториях.

dpkg --get-selections | xargs apt-cache policy {} | grep -1 Installed | sed -r 's/(:|Installed: |Candidate: )//' | uniq -u | tac | sed '/--/I,+1 d' | tac | sed '$d' | sed -n 1~2p
Авинаш Радж
источник
1
Это немного магии командной строки!
Теему Лейсти
1
Хорошие, но ответы @ sierrasdetandil и @doru 'делают точно то же самое в прекрасной лаконичной форме ...
Джузеппе