Lorsque j'ajoute un PPA et que je veux installer une partie de son contenu, il est très embêtant de mettre à jour toutes mes listes d'apt via apt-get update
.
Est-il possible de synchroniser uniquement le contenu d'un référentiel donné?
Oui, apt-get peut le faire et peut le faire d'une manière agréable.
Ajoutez les éléments suivants à ~/.bash_funcs
update-repo() {
for source in "[email protected]"; do
sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/${source}" \
-o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
done
}
Ajoutez les éléments suivants à ~/.bashrc
if [ -f $HOME/.bash_funcs ]; then
. $HOME/.bash_funcs
fi
Ajoutez les éléments suivants à ~/.bash_completion
# Debian user-defined completion -*- shell-script -*-
_ppa_lists(){
local cur
_init_completion || return
COMPREPLY=( $( find /etc/apt/sources.list.d/ -name "*$cur*.list" \
-exec basename {} \; 2> /dev/null ) )
return 0
} &&
complete -F _ppa_lists update-repo
Puis source les fichiers
. ~/.bashrc
. ~/.bash_completion
Fait et commence à le lancer
update-repo <tab> <tab>
Vous pouvez mettre à jour un seul référentiel ppa sans avoir à mettre à jour l’ensemble de la source apt, avec un outil de bash-completion.
Si le référentiel est configuré dans un fichier spécifique du répertoire /etc/apt/sources.list.d/
, dites myrepo.list
, vous pouvez mettre à jour ce référentiel unique avec la commande:
sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/myrepo.list" \
-o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
Néanmoins, ce n'est pas très pratique.
Cela peut être simplifié en définissant une fonction bash
update_repo() {
sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/.list" \
-o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
}
pour que vous puissiez simplement lancer
update_repo myrepo
Y PPA Manager est fourni avec un outil de ligne de commande appelé update-ppa
qui vous permet de mettre à jour un seul PPA.
Par exemple:
sudo update-ppa ppa:nilarimogard/webupd8
De plus, lorsque vous ajoutez un PPA via Y PPA Manager, la source PPA est automatiquement mise à jour (uniquement pour ce PPA). Dans une prochaine version, il y aura une interface graphique pour mettre à jour manuellement des PPA individuels.
Plus d’informations sur Y PPA Manager, ICI .
Pour mettre à jour un référentiel spécifique, utilisez -o
, par exemple:
apt-get update -o Dir::Etc::sourcelist=/path/to/repo.list
Voici une mise à jour à une seule ligne qui vient d’ajouter le référentiel apt
find /etc/apt/sources.list.d -type f -name '*.list' -exec sudo apt-get update -o Dir::Etc::sourcelist="{}" ';'
Il est beaucoup plus rapide que de mettre à jour tous les référentiels, en particulier lors du provisionnement de VM après l'ajout de nouveaux fichiers.
Lire d'autres questions sur les étiquettes apt package-management software-sources