Я знаю, что pacman -Su
обновляет все пакеты. Но как я могу получить только список пакетов, которые нуждаются в обновлении?
Я знаю, что pacman -Su
обновляет все пакеты. Но как я могу получить только список пакетов, которые нуждаются в обновлении?
Ответы:
Глядя на страницу руководства что-то вроде
pacman -Syu
синхронизировать базу данных до последней версии с последующим
pacman -Qu
в
-u, - улучшения
Restrict or filter output to packages that are out of date on the
локальная система. (Для поиска устаревших пакетов используются только версии пакетов, замены здесь не проверяются.) Этот параметр лучше всего работает, если база данных синхронизации обновляется с помощью -Sy.
pacman -Sy
том, чтобы избежать установки пакетов из разных обновлений базы данных пакетов. Например, pacman -S <something>
может дать вам другой пакет и зависимости, чем pacman -Sy && pacman -S <something>
. Из их документации, однако, кажется, pacman -Sy && pacman -Qu
что это правильный ответ на вопрос ОП. Просто убедитесь, что вы в конечном итоге запустите pacman -Su
до установки каких-либо пакетов.
pacman -Sy
само по себе это плохо. Он даже не говорит, что это «плохо» или «опасно». Это просто говорит о том, что частичное обновление не поддерживается и вам следует избегать его. Другими словами, запуск pacman -Sy
и последующий запуск pacman -S <some package with dependencies>
могут нарушить что-то еще с такими же зависимостями. Выполнение чего-то вроде pacman -Sy && pacman -S man-pages
только получения последних man-страниц было бы прекрасно (man-страницы не имеют зависимостей и не требуются никакими другими пакетами).
pacman -Sy
и бежали pacman -S nvidia
, вы, вероятно, что-то сломаете.
checkupdates
Контрольные даты bash-скрипта, включенные в пакет pacman, обеспечивают безопасный способ проверки обновлений до установленных пакетов без одновременного запуска обновления системы.
Как уже упоминалось @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
Работает:
/var/lib/pacman/local
.pacman -Sy
на вашей временной папке.pacman -Qu
вашу временную папку.
pacman -Sy
» (источник: wiki.archlinux.org/index.php/… )