Comment voyez-vous quels paquets sont disponibles pour la mise à jour

74

Utilisateur FreeBSD rejoignant vos rangs. On m'a demandé de prendre en charge un serveur Ubuntu exécutant 10.04 LTS.

Je vois à partir de /usr/lib/update-notifier/update-motd-updates-availablecela qu'il y a un certain nombre de mises à jour sur le serveur, mais je ne vois pas de moyen de savoir lesquelles seront mises à jour.

Est-ce que n'importe qui pourrait me diriger dans la bonne direction afin que je puisse voir quels paquets seront mis à jour quand je cours apt-get upgrade?

MISE À JOUR:

Je ne peux pas répondre à ma propre question pour le moment, alors jetez ceci ici pour le moment:

Avec la apt-get upgrade --dry-runsuggestion ci-dessous, /usr/lib/update-notifier/apt-check -plistera tous les packages pour lesquels des mises à jour sont disponibles.

Jan Geep
la source
Bienvenue dans les rangs, utilisez et abusez du site si vous avez besoin d'aide supplémentaire;) Si vous trouvez une réponse qui répond à votre question, cochez la case verte à côté de la réponse.
Bruno Pereira
1
Vous devriez maintenant pouvoir répondre à votre propre question car vous avez suffisamment de représentants pour supprimer les nouvelles restrictions d’utilisateur .
jokerdino
On dirait qu'il faut 100rep ou 8h d'attente pour répondre à votre propre question.
Jan Geep
En 2016, la réponse donnée par @doru est parfaite. askubuntu.com/a/788049/560610
jeremysawesome

Réponses:

63

Vous pouvez installer aptitudes'il n'est pas déjà installé. C'est un excellent outil pour gérer les paquets dans une configuration sans tête.

entrez la description de l'image ici

Sinon, si vous voulez juste voir ce qui va se passer lorsque vous exécutez quelque chose, utilisez l' --dry-runargument et il ne fera rien, il vous dira simplement ce qu'il ferait :

Depuis la page de manuel d'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).

Ajouter l'option à la commande de cette façon

apt upgrade --dry-run
Oli
la source
5
J'ai défiguré votre réponse, j'espère que cela ne vous dérange pas.
Bruno Pereira
2
Fait intéressant, apt-get upgrade --dry-runne nécessite pas sudo, ce qui le rend parfait pour un affichage automatisé des mises à jour de paquets requises.
dshepherd
Ce qui est encore plus intéressant, c’est que sur mon Ubuntu 14.04 LTS, la "mise à jour de apt-get -s" n’accepte pas les "-s" ... ni "--dry-run", "--no-act" ... pourquoi serait-ce?
mBardos
@ mBardos Avez-vous remplacé le apt-getdans votre chemin par un script "helper"? Assurez- which apt-getvous que c'est bien/usr/bin/apt-get
Oli
martonb @ martonb-ubu: ~ / travail / qt $ quel apt-get / usr / bin / apt-get Est-ce que cela fonctionne pour vous sur Ubuntu 14.04 LTS? martonb @ martonb-ubu: ~ / work / qt $ apt-get -s update E: l'option de ligne de commande 's' [from -s] n'est pas connue.
mBardos
68

À partir de maintenant (Ubuntu 16.04), vous pouvez utiliser apt listle --upgradabledrapeau.

sudo apt update
apt list --upgradable

et vous obtiendrez une liste avec tous les paquets pouvant être mis à jour.

doru
la source
1
Excellent! C'est exactement ce que je voulais voir :)
jeremysawesome
aptest inconnu
Command
1
@confiq "APT 1.0 est sorti le 1er avril 2014" , il est donc possible de ne pas être mis à niveau sur votre système. Essayez de voir quelle version de aptvous avez installé en cours d'exécution sudo apt-cache policy apt.
Doru
cela explique ...
Confiq
10

Une autre alternative serait d'utiliser aptitudeavec un terme de recherche :

aptitude search '~U'

(Notez le 'U' majuscule)

Cela signifie: "recherchez tous les paquetages installés et pouvant être mis à niveau". Référence: manuel utilisateur d'aptitude

Par défaut, aptitude searchaffiche pour chaque paquet son nom, sa description et quelques indicateurs, mais vous pouvez également adapter le résultat à vos besoins. Par exemple, pour ne lister que les noms de paquet, la commande serait:

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

( --disable-columnsévite les espaces blancs à la fin des lignes)

sierrasdetandil
la source
8

La commande ci-dessous vous montrera la liste des paquets installés avec une mise à jour disponible dans les référentiels.

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
Avinash Raj
la source
1
C'est un peu de magie en ligne de commande!
Teemu Leisti
1
Bien, mais les réponses de @ sierrasdetandil et @doru font exactement la même chose d'une manière très concise ...
Giuseppe