J'apprends l'interface CLI de Advanced Packaging Tool. À partir de la sortie de apt(8)
lorsque sa sortie standard n'est pas un terminal, il ne convient pas aux "scripts qui attendent une interface de programmation stable", donc je regarde apt-get(8)
.
Une différence entre apt update
et apt-get update
est que ce dernier manque une dernière ligne après que tout le cache a été mis à jour:
8 packages can be upgraded. Run 'apt list --upgradable' to see them.
Je veux savoir comment afficher cette ligne exacte avec apt-get(8)
.
apt
(Advanced Packaging Tool) etapt-get
sont des choses différentes. Ils sont conçus pour fonctionner différemment de ce que j'ai compris. Si l'on vous donne ce que vous voulez, prenez peut-être l'habitude d'utiliser cette commande à la place.Réponses:
man apt-get
montre:Donc, si vous le faites:
apt-get upgrade --dry-run
il affichera:
la source
man 8 apt-get
et j'ai trouvé cette option, mais la sortie était différente deapt
.apt
c'est vraiment un wrapper programmatiqueapt-get
et c'est la raison pour laquelle l'avertissement existe.apt
montre8 packages can be upgraded. Run 'apt list --upgradable' to see them.
, tandis que votre réponse montre4 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
apt
ne vous garantira pas ce texte, et ils peuvent même ne pas vous garantir ce numéro.apt-get
a cependant une exigence de sortie stricte car il est utilisé par d'autres logiciels (comme les interfaces utilisateur et les démons) pour le traiter de différentes manières. Vous pouvez donc soit modifier votre code pour accepterapt-get
la sortie de, soit le faire| sed 's/to upgrade/packages can be upgraded/g'
par exemple (et risquer de casser votre code plus tard).En supposant que vous devez gérer le nombre de mises à jour disponibles, voici une suggestion:
Pas besoin de sudo
La sortie est facile à utiliser
Plus d'options:
la source
motd
connexion SSH?De
man 8 apt
:Ensuite, j'ai parcouru
/usr/share/doc/apt/examples/configure-index.gz
(en utilisantzcat(1)
pour afficher le contenu texte) et j'ai remarqué cette option:J'ai donc élaboré la commande suivante qui a fait exactement ce que je voulais:
Testé pour travailler sur Xenial et Bionic.
la source