Je sais que pacman -Sutous les packages sont mis à niveau. Mais comment puis-je obtenir uniquement la liste des packages qui nécessitent une mise à niveau?
Je sais que pacman -Sutous les packages sont mis à niveau. Mais comment puis-je obtenir uniquement la liste des packages qui nécessitent une mise à niveau?
Réponses:
En regardant la page de manuel quelque chose comme
pacman -Syu
pour synchroniser la base de données jusqu'à la dernière version suivie de
pacman -Qu
à
-u, --mises à niveau
Restrict or filter output to packages that are out of date on thesystème local. (Seules les versions de packages sont utilisées pour rechercher des packages obsolètes, les remplacements ne sont pas vérifiés ici.) Cette option fonctionne mieux si la base de données de synchronisation est actualisée à l'aide de -Sy.
pacman -Syest d'éviter d'installer des packages à partir de différentes mises à jour de base de données de packages. par exemple, pacman -S <something>peut vous donner un package et des dépendances différents de pacman -Sy && pacman -S <something>. D'après leur documentation cependant, il semble que ce pacman -Sy && pacman -Qusoit la bonne réponse à la question d'OP. Assurez-vous simplement que vous exécutez éventuellement pacman -Suavant d'installer des packages.
pacman -Syen soi que c'est mauvais. Il ne dit même pas que c'est "mauvais" ou "dangereux". Il indique simplement qu'une mise à niveau partielle n'est pas prise en charge et que vous devez l'éviter. En d'autres termes, exécuter pacman -Sy puis exécuter pacman -S <some package with dependencies>a le potentiel de casser quelque chose d'autre qui a les mêmes dépendances. Exécuter quelque chose comme pacman -Sy && pacman -S man-pagespour obtenir uniquement les dernières pages de manuel serait parfaitement correct (les pages de manuel n'ont pas de dépendances et ne sont requises par aucun autre package).
pacman -Syet couriez pacman -S nvidiaque vous risqueriez de casser quelque chose.
checkupdates
Les mises à jour du script bash, incluses avec le package pacman, fournissent un moyen sûr de vérifier les mises à niveau des packages installés sans exécuter une mise à jour du système en même temps.
Comme l'a mentionné @Panagiotis, checkupdatesfournit un moyen de le faire sans avoir besoin de rooter ou gâcher votre /var/lib/pacmanbase de données. Voici une version minimale:
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
Il fonctionne par:
/var/lib/pacman/local.pacman -Sysur votre dossier temporaire.pacman -Qusur votre dossier temporaire.
pacman -Sy" (source: wiki.archlinux.org/index.php/… )