Comment mettre à jour un seul paquet ? D'après man apt-get
, apt-get upgrade
ne prend pas un paquet/une liste de paquets comme paramètre :
upgrade
upgrade est utilisé pour installer les versions les plus récentes de tous les paquets actuellement installés sur le système à partir des sources énumérées dans
/etc/apt/sources.list
. Les paquets actuellement installés avec de nouvelles versions disponibles sont récupérés et mis à niveau ; en aucun cas En aucun cas, les paquets actuellement installés ne sont supprimés, et les paquets qui ne sont pas déjà installés sont récupérés et installés. installés ne sont récupérés et installés. Les nouvelles versions des paquets actuellement installés installés qui ne peuvent pas être mis à niveau sans changer le statut d'installation d'un autre paquet seront laissées à leur version actuelle. Une mise à jour doit d'abord être effectuée pour qu'apt-get sache que de nouvelles versions de paquets sont disponibles. paquets sont disponibles.
Il vous suffit de faire apt-get install --only-upgrade <packagename>
. Cela ne mettra à jour que ce seul paquet, et seulement s'il est installé.
Si vous souhaitez installer le paquet s’il n’existe pas, ou le mettre à niveau s’il existe, vous pouvez omettre --only-upgrade
.
Il y a deux façons possibles auxquelles je pense :
sudo apt-get install nameofpackage
Ceci va mettre à jour le paquet même s'il est déjà installé:
~$ sudo apt-get install emesene
Lecture des listes de paquets... Terminé
Construction de l'arbre des dépendances
Lecture des informations d'état... Terminé
Les paquets suivants seront mis à jour :
emesene
1 mis à jour, 0 nouvellement installé, 0 à supprimer et 5 non mis à jour.
Besoin de récupérer 1 486 kB d'archives.
Après cette opération, 696 kB d'espace disque seront libérés.
Get:1 http://il.archive.ubuntu.com/ubuntu/ natty-updates/universe emesene all 2.11.4+dfsg-0ubuntu1 [1,486 kB]
! [entrer la description de l'image ici] [1]
[1] : http://i.stack.imgur.com/6wI7O.png
Note : Parfois, il peut demander des paquets ou des dépendances supplémentaires, c'est normal.
Pour une solution en ligne de commande qui n'installe pas le paquet s'il n'existe pas déjà :
dpkg -s <package> 2>/dev/null | grep -q Status.*installed && sudo apt-get install <package>
Ceci peut facilement être transformé en script, par exemple :
upgrade-package.sh:
#!/bin/bash
[[ -z $1 ]] && { echo "Usage: $(basename $0) package"; exit 1; }
if dpkg -s "$1" 2>/dev/null | grep -q Status.*installed; then
echo "Attempting to upgrade $1"
sudo apt-get install "$1"
else
echo "Package $1 is not installed"
fi