Как определить, какие пакеты нужно обновить в Arch Linux?

8

Я знаю, что pacman -Suобновляет все пакеты. Но как я могу получить только список пакетов, которые нуждаются в обновлении?

Евгений Ярмаш
источник

Ответы:

11

Глядя на страницу руководства что-то вроде

pacman -Syu

синхронизировать базу данных до последней версии с последующим

pacman -Qu

в

-u, - улучшения

Restrict or filter output to packages that are out of date on the

локальная система. (Для поиска устаревших пакетов используются только версии пакетов, замены здесь не проверяются.) Этот параметр лучше всего работает, если база данных синхронизации обновляется с помощью -Sy.

иан
источник
1
ОПАСНОСТЬ : в документации написано, что «никогда не запускаться pacman -Sy» (источник: wiki.archlinux.org/index.php/… )
blippy
1
@blippy Этот документ не существовал на момент написания этого ответа, его самая ранняя редакция - несколько месяцев спустя . Кроме того, заявление, на которое вы ссылаетесь, не было добавлено в документ до (23 октября 2015 г.) [ wiki.archlinux.org/… ) более 4 лет спустя. Вместо того, чтобы быть настолько мелодраматичным, вы должны были просто отредактировать ответ и сослаться на документ как на причину для вашего запроса на изменение. Также обратите внимание, что даже сейчас на странице руководства таких предупреждений нет.
user9517
2
просто хочу уточнить тоже - причина не запускается в pacman -Syтом, чтобы избежать установки пакетов из разных обновлений базы данных пакетов. Например, pacman -S <something>может дать вам другой пакет и зависимости, чем pacman -Sy && pacman -S <something>. Из их документации, однако, кажется, pacman -Sy && pacman -Quчто это правильный ответ на вопрос ОП. Просто убедитесь, что вы в конечном итоге запустите pacman -Suдо установки каких-либо пакетов.
аааааа
1
Я просто хочу уточнить, что в статье не говорится, что pacman -Syсамо по себе это плохо. Он даже не говорит, что это «плохо» или «опасно». Это просто говорит о том, что частичное обновление не поддерживается и вам следует избегать его. Другими словами, запуск pacman -Sy и последующий запуск pacman -S <some package with dependencies>могут нарушить что-то еще с такими же зависимостями. Выполнение чего-то вроде pacman -Sy && pacman -S man-pagesтолько получения последних man-страниц было бы прекрасно (man-страницы не имеют зависимостей и не требуются никакими другими пакетами).
Дрю Чапин
Через 5 дней, когда вы забыли, что вы бежали pacman -Syи бежали pacman -S nvidia, вы, вероятно, что-то сломаете.
Дрю Чапин
7
checkupdates

Контрольные даты bash-скрипта, включенные в пакет pacman, обеспечивают безопасный способ проверки обновлений до установленных пакетов без одновременного запуска обновления системы.

Обслуживание системы

Панагиотис Димопулос
источник
Это должен быть правильный ответ
Nitz
0

Как уже упоминалось @Panagiotis, checkupdatesпредоставляет способ сделать это без необходимости рутирования или испортить вашу /var/lib/pacmanбазу данных. Вот минимальная версия:

TMPPATH="${TMPDIR:-/tmp}/checkup-db-${USER}"
DBPATH="$(pacman-conf DBPath)"

mkdir -p "$TMPPATH"
ln -s "$DBPATH/local" "$TMPPATH" &>/dev/null
fakeroot -- pacman -Sy --dbpath "$TMPPATH" --logfile /dev/null &>/dev/null
pacman -Qu --dbpath "$TMPPATH" 2>/dev/null

Работает:

  1. Создание временной папки для вашей базы данных.
  2. Симлинк твой /var/lib/pacman/local.
  3. Запуск pacman -Syна вашей временной папке.
  4. Запросы через pacman -Quвашу временную папку.
Матин Улхак
источник