Je crois que j'ai fait une connerie : j'ai installé mon premier paquet AUR par
yay -Syu python-pyglet
Comment je peux faire pour répertorier tout ce qui a été installé via yay et tout désinstaller proprement sans toucher à Pyglet ?
yay -Syu python-pyglet
y
passé en paramètre)grep '2024-10' /var/log/pacman.log
grep '2024-10-14' /var/log/pacman.log
pacman -Qm
js102 102.15.1-2
kdelibs4support 5.116.0-1
kemoticons 5.116.0-1
kfilemetadata5 5.116.0-2
khotkeys 5.27.11-1
khtml 5.115.0-1
kjs 5.115.0-1
kpeople5 5.116.0-1
kpeoplevcard 0.1-2
kquickcharts5 5.115.0-1
krunner5 5.115.0-1
libkcddb5 24.05.2-1
libsidplay 1.36.59-10
manjaro-hotfixes 2024.1-2
manjaro-settings-manager-kcm 0.5.7-21
modemmanager-qt5 5.116.0-1
plasma-simplemenu 1.0.12-1
pulseaudio-ctl 1.70-1
python-async_generator 1.10-9
python-backcall 0.2.0-8
python-jarowinkler 2.0.1-2
python-jinja-time 0.2.0-9
python-manjaro-sdk 1:0.1.1-1
python-pyglet 2.0.17-1
spectre-meltdown-checker 0.46+26+gbd0c7c9-1
systemd-fsck-silent 239-1
systemd-kcm 1.2.1-8
web-installer-url-handler 2.3-1
webkit2gtk-5.0 2.38.6-1
xsane 0.999-6
xsane-gimp 0.999-6
youtube-dl 2021.12.17-3
pacman -Qm | awk '{print $1}' | xargs -I{} bash -c "echo -n '{}: '; grep 'installed {}' /var/log/pacman.log | tail -1"
js102: [2023-04-17T09:24:14+0200] [ALPM] installed js102 (102.9.0-1)
kdelibs4support: kemoticons: kfilemetadata5: [2023-10-14T07:37:42+0200] [ALPM] installed kfilemetadata5 (5.110.0-1)
khotkeys: khtml: kjs: kpeople5: [2023-10-14T07:37:49+0200] [ALPM] installed kpeople5 (5.110.0-1)
kpeoplevcard: kquickcharts5: [2023-10-14T07:37:49+0200] [ALPM] installed kquickcharts5 (5.110.0-1)
krunner5: [2023-10-14T07:37:49+0200] [ALPM] installed krunner5 (5.110.0-2)
libkcddb5: [2023-11-30T14:42:42+0100] [ALPM] installed libkcddb5 (23.08.3-4)
libsidplay: [2023-04-12T14:20:18+0200] [ALPM] installed libsidplayfp (2.4.2-1)
manjaro-hotfixes: manjaro-settings-manager-kcm: modemmanager-qt5: [2023-10-14T07:37:57+0200] [ALPM] installed modemmanager-qt5 (5.110.0-1)
plasma-simplemenu: pulseaudio-ctl: python-async_generator: [2023-04-12T17:33:43+0200] [ALPM] installed python-async_generator (1.10-7)
python-backcall: [2023-04-12T17:33:43+0200] [ALPM] installed python-backcall (0.2.0-7)
python-jarowinkler: [2023-04-12T17:33:43+0200] [ALPM] installed python-jarowinkler (1.2.3-1)
python-jinja-time: [2023-04-12T17:33:44+0200] [ALPM] installed python-jinja-time (0.2.0-8)
python-manjaro-sdk: python-pyglet: [2024-10-14T12:42:27+0200] [ALPM] installed python-pyglet (2.0.17-1)
spectre-meltdown-checker: systemd-fsck-silent: systemd-kcm: web-installer-url-handler: webkit2gtk-5.0: [2023-04-17T09:24:14+0200] [ALPM] installed webkit2gtk-5.0 (2.38.5-2)
xsane: [2023-05-15T11:10:55+0200] [ALPM] installed xsane-gimp (0.999-6)
xsane-gimp: [2023-05-15T11:10:55+0200] [ALPM] installed xsane-gimp (0.999-6)
youtube-dl: [2023-07-31T12:15:34+0200] [ALPM] installed youtube-dl (2021.12.17-2)
Au milieu du fouillisMarie-Chantal a écrit : ↑il y a 9 mois où je remarque que seul python-pyglet a été installé le 14/10 ??
python-pyglet: [2024-10-14T12:42:27+0200] [ALPM] installed python-pyglet (2.0.17-1)
Installe le paquet fzf et essaye cette commande :Est ce que je me suis plantée dans la commande pacman -Qm |.../var/log/pacman.log | tail -1 ?
Même si sous Pamac on a pas activé les dépôts AUR (pour ne pas installer des paquets susceptibles d'instabilité système), certains paquets sont visibles et issus de dépôt "Aucun(e)", ces paquets sont des paquets AUR disons plus "fiables" ?
grep pyglet /var/log/pacman.log | fzf --bind 'ctrl-s:toggle-sort' --border=bold
La commande pacman -Qm affiche les paquets qui ne font pas partie des dépôts officiels, donc des paquets AUR, mais il est aussi possible qu'il y ait des paquets obsolètes qui ont été supprimés des dépôts officiels et que tu as gardé.Marie-Chantal a écrit : ↑il y a 9 mois La commande pacman -Qm |... et son orchestre, est pour afficher les paquets AUR avec leurs dates d'installations, et le 14 (voir post + haut) je n'ai en définitive installé que pyglet, et les autres paquets AUR sont bien plus anciens.
Comment se fait il alors que j'ai autant de paquets AUR d'installés ; python-pyglet est le premier que j'installe ?
pacman -Qdt
sudo pacman -Rs $(pacman -Qdtq)
Marie-Chantal a écrit : ↑il y a 9 mois Si les paquets ne sont plus maintenus par les dépôts Manjaro, ils passent en AUR, donc sans "Aucun(e)" dépôt (officiel).
pamac list -o
Merci pour cette précisionpapajoke a écrit : ↑il y a 9 mois
Si un paquet n'est pas présent dans nos dépôts manjaro à l'instant T, il est alors un paquet étranger.
Un paquet étranger :
- juste il n'est pas dans les dépôts
- installation n'a pas d'importance (était dans nos dépôts, vient de aur, téléchargé, depuis un PKGBUILD local)
pamac list -o
, j'exécute :
pamac remove -do -u
#!/bin/bash
# Liste des paquets orphelins
orphan_packages=$(pamac list -o)
if [[ -z "$orphan_packages" ]]; then
echo "Aucun paquet orphelin trouvé."
exit 0
fi
# Initialisation des listes
no_dependencies=()
has_dependencies=()
# Boucle sur chaque paquet orphelin
while IFS= read -r package; do
package_name=$(echo "$package" | awk '{print $1}')
# Vérification des dépendances inverses avec pactree -r
reverse_deps=$(pactree -r "$package_name")
if [[ -z "$reverse_deps" || "$reverse_deps" == "$package_name" ]]; then
# Si pactree -r ne retourne que le paquet lui-même, il n'a pas de dépendances
no_dependencies+=("$package_name")
else
# Sinon, il a des dépendances
has_dependencies+=("$package_name")
fi
done <<< "$orphan_packages"
# Affichage des résultats
echo "Paquets orphelins sans dépendances:"
for pkg in "${no_dependencies[@]}"; do
echo " - $pkg"
done
echo ""
echo "Paquets orphelins avec dépendances:"
for pkg in "${has_dependencies[@]}"; do
echo " - $pkg"
done
non mais, oui !
Encore heureux ! La définition d'un orphelin est : ce paquet n'est pas une dépendance d'un autre paquet et a été installé comme une dépendance !
pacman -Qi systemd libx11
Nom : systemd
Motif d’installation : Explicitement installé
...
Nom : libx11
Motif d’installation : Installé comme dépendance d’un autre paquet
pacman -Qi pacman
Nom : pacman
Motif d’installation : Installé comme dépendance d’un autre paquet
~/.bashrc
comme ceci :
# Orphelins
orphans() {
if [[ ! -n $(pacman -Qdt) ]]; then
echo "No orphans to remove."
else
sudo pacman -Rs $(pacman -Qdtq)
fi
}
Ok, tu veux dire si un jour pacman était remplacé et obsolète ?
pactree -r
et ses biens faits #!/bin/bash
echo ""
# Liste tous les paquets orphelins
orphans=$(pacman -Qdt)
if [ -z "$orphans" ]; then
echo "Aucun paquet orphelin trouvé."
exit 0
fi
# Affiche la liste des paquets orphelins
echo -e "Liste des paquets orphelins trouvés :\n"
echo "$orphans"
echo -e "\nNombre total de paquets orphelins : $(echo "$orphans" | wc -l)"
echo "-----------------------------------------------------------------------"
echo -e "\nAnalyse des paquets orphelins trouvés :"
# Variables pour compter les différents cas
dependance_count=0
explicite_count=0
cas_particulier_count=0
# Pour chaque paquet orphelin
while IFS= read -r pkg; do
# Extrait le nom du paquet (avant l'espace)
pkg_name=$(echo $pkg | cut -d' ' -f1)
echo -e "\nAnalyse de : $pkg"
# Récupère les informations détaillées
required_by=$(pacman -Qi "$pkg_name" | grep "Requis par" | cut -d':' -f2)
install_reason=$(pacman -Qi "$pkg_name" | grep "Motif d’installation" | cut -d':' -f2)
# Analyse du cas
if [[ $required_by == *"--"* ]]; then
if [[ $install_reason == *"Installé comme dépendance d’un autre paquet"* ]]; then
echo "::OK:: Paquet orphelin installé comme dépendance - Peut être supprimé"
((dependance_count++))
elif [[ $install_reason == *"Explicitement installé"* ]]; then
echo "::/!\:: Paquet orphelin installé explicitement - À vérifier"
((explicite_count++))
fi
else
echo "::?:: Cas particulier - Vérification manuelle recommandée"
((cas_particulier_count++))
fi
done <<< "$orphans"
# Résumé des résultats
echo "-----------------------------------------------------------------------"
echo -e "\nRésumé de l'analyse :\n"
echo "Paquets orphelins installés comme dépendance (peuvent être supprimés) : $dependance_count"
echo "Paquets orphelins installés explicitement (à vérifier) : $explicite_count"
echo "Cas particuliers (vérification manuelle recommandée) : $cas_particulier_count"
echo "-----------------------------------------------------------------------"
echo -e "\nPour supprimer les paquets orphelins en toute sécurité :\n"
echo -e "sudo pacman -Rns \$(pacman -Qdtq)\n"