Questions générales sur Manjaro Linux.
S'il vous plaît, avant de poster, essayez la fonction de recherche du forum.
Répondre

Install python-pyglet via AUR et grosse install en +

#1Messageil y a 9 mois

Salut les Manjaros,

Je crois que j'ai fait une connerie : j'ai installé mon premier paquet AUR par

yay -Syu python-pyglet
et j'ai eu le droit à une grosse install avec des clés alors que -Si python-pyglet n'a rien de mirobolant.

Comment je peux faire pour répertorier tout ce qui a été installé via yay et tout désinstaller proprement sans toucher à Pyglet ?

Install python-pyglet via AUR et grosse install en +

#2Messageil y a 9 mois

bonjour

Ce paquet n'a que peu de dépendances ;)
Je suppose donc que ce qui est entré est une mise à jour de paquets manjaro et aur... (le y passé en paramètre)

Pour voir, tu as les logs pacman

logs du mois: grep '2024-10' /var/log/pacman.log
logs de ce jour (le 14/10): grep '2024-10-14' /var/log/pacman.log

Install python-pyglet via AUR et grosse install en +

#3Messageil y a 9 mois

Bon j'ai du mal à comprendre.
Si je fais pour afficher les paquet AUR installés sur ma bécane :

pacman -Qm
ça donne :

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
Dont python-pyglet que j'ai installé le 14/10 en pensant, vu la lourdeur de l'installation, que j'avais fait une connerie et que j'avais donc installé toute une ribambelle de paquets AUR.
Et en passant cette commande pour voir les paquets AUR installés avec yay et leurs dates d'installation :

pacman -Qm | awk '{print $1}' | xargs -I{} bash -c "echo -n '{}: '; grep 'installed {}' /var/log/pacman.log | tail -1"
ça donne :

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)
où je remarque que seul python-pyglet a été installé le 14/10 ??
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" ?

Install python-pyglet via AUR et grosse install en +

#4Messageil y a 9 mois

Salut,

Ta commande fait un grep sur le mot installed et non sur python-pyglet ou la date.
Marie-Chantal a écrit : il y a 9 mois où je remarque que seul python-pyglet a été installé le 14/10 ??
Au milieu du fouillis :gsourire: : python-pyglet: [2024-10-14T12:42:27+0200] [ALPM] installed python-pyglet (2.0.17-1)
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" ?
Installe le paquet fzf et essaye cette commande :

grep pyglet /var/log/pacman.log | fzf --bind 'ctrl-s:toggle-sort' --border=bold
Tu peux entrer d'autres termes ensuite pour préciser ta recherche, si besoin.
(Esc ou Ctrl+q pour quitter)

Install python-pyglet via AUR et grosse install en +

#5Messageil 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 ?

Si je tape xsane par exemple dans la recherche de pamac, le nom du dépôt est Aucun(e)...
Je n'ai pas activé AUR dans pamac et pourtant je peux quand même avoir des paquets AUR d’installés sur ma bécane, et jamais utilisé yay (first time le 14) ?
Les dépôts Aucun(e) et AUR c'est idem ?
yay -Qm ou pacman -Qm affichent la même chose, mais ils affichent quoi, les paquets AUR et Aucun(e) ?
Et c'est quoi le dépôt Aucun(e) ?

Install python-pyglet via AUR et grosse install en +

#6Messageil y a 9 mois

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 ?
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é.

Install python-pyglet via AUR et grosse install en +

#7Messageil y a 9 mois

Bonjour.
Il serait judicieux de voir et virer les paquets orphelins :

pacman -Qdt
S'il y en a et que tu es certaine que tu n'en as pas besoin :

sudo pacman -Rs $(pacman -Qdtq)

Install python-pyglet via AUR et grosse install en +

#8Messageil y a 9 mois

@Smurf
Ok j'avais pas capté, les paquets AUR si ils ne sont pas installés, ils ne sont pas visibles sous Pamac.
Une fois installés, ils y apparaissent puisque qu'on peut les gérer sous Pacman, Pamac.
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).
De même il devrait être possible alors d'installer un paquets AUR via Pacman ou Pamac, non ?

@lemust83
Yes, il en est fortement question :wink:

Merci en tout cas pour vos réponses.

Install python-pyglet via AUR et grosse install en +

#9Messageil y a 9 mois

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).
:oops:
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)

pacman n'installe pas de paquets aur mais, il affiche tous les paquets installés (même les étrangers)

A chaque mise à jour, une dizaine de paquets disparaissent de nos dépôts manjaro, c'est normal. parfois, ils deviennent des orphelins (orphelin n'a rien à voir avec aur).
Nous devons gérer nos orphelins ! pour avoir la liste: pamac list -o

On peut voir dans ta liste (de paquets étrangers) que tu as entre autres des orphelins (depuis le passage de plasma5 à 6)

Install python-pyglet via AUR et grosse install en +

#10Messageil y a 9 mois

papajoke a écrit : il y a 9 mois:oops:
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)
Merci pour cette précision :pompom:

Petite précision en plus, si après pamac list -o, j'exécute :

pamac remove -do -u
Il n'y pas de risque de faire une connerie ou il faut que j'inspecte avant tous les orphelins un par un ?

Install python-pyglet via AUR et grosse install en +

#11Messageil y a 8 mois

J'ai implémenté un petit script Shell Bash pour nettoyer les orphelins.
Je l'ai testé et chez moi et ils sont tous sans dépendances.
Avant d'ajouter la suppression j'aimerais bien avoir votre avis sur le script, j'ma gourée ou pas ? :

#!/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

Install python-pyglet via AUR et grosse install en +

#12Messageil y a 8 mois

:salut:

Note: tu testes si les paquets ne sont pas une dépendance ("requis par") et non s'ils ont une dépendance ;)
Marie-Chantal a écrit : il y a 8 moisgourée ou pas ? :
non mais, oui ! :rigole:
Marie-Chantal a écrit : il y a 8 moiset ils sont tous sans dépendances.
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 !
Un orphelin est : une dépendance, mais aujourd'hui elle n'est requise par rien

Donc, si pacman te dit que c'est un orphelin, il ne sert à rien de faire ton test (pacman à justement le tien en interne pour trouver les orphelins), il est par définition requis par aucun paquet (bien qu'installé un jour comme une dépendance).

"installé un jour comme une dépendance" : paquet non installé implicitement, installé automatiquement par l'installation d'une application.
C'est pourquoi il n'est pas bon d'installer une dépendance de cette façon : "pacman -S libPluginMachin" : pacman ne verra pas une dépendance mais une application (car installée explicitement). :maisnon:

pacman -Qi systemd libx11
Nom                      : systemd
Motif d’installation     : Explicitement installé
...
Nom                      : libx11
Motif d’installation     : Installé comme dépendance d’un autre paquet
pour pacman, systemd est une application et libx11 est une dépendance. Donc "systemd" ne sera jamais orphelin chez moi puisque pas une dépendance.

pacman -Qi pacman
Nom                      : pacman
Motif d’installation     : Installé comme dépendance d’un autre paquet
oops, un jour, je peux avoir pacman dans les orphelins (puisque c'est une dépendance pour pacman)…


------------------

On regarde bien cette liste d'orphelins uniquement pour voir si il n'y a pas des applications utiles dans le lot.

Install python-pyglet via AUR et grosse install en +

#13Messageil y a 8 mois

Bonjour.
Je me suis fait un alias dans ~/.bashrc comme ceci :

# Orphelins
    orphans() {
      if [[ ! -n $(pacman -Qdt) ]]; then
        echo "No orphans to remove."
      else
        sudo pacman -Rs $(pacman -Qdtq)
      fi
    }
Ça marche depuis des années sans souci.

Install python-pyglet via AUR et grosse install en +

#14Messageil y a 8 mois

@papajoke
Pour pactree -r = -r, --reverse list packages that depend on the named package
Trad : liste des paquets qui dépendent du paquet nommé.
Ce que je comprends par ; liste des paquets qui sont requis par (qui dépendent) du package nommé.

So, un paquet requis par le paquet nommé est différent d'un ou plusieurs paquets qui dépendent du paquet nommé ? être requis par est différent de dépend de ?

pacman -Qi pour un paquet contenu dans pacman list -o, liste si il Dépend d'un autre paquet, n'est Requis par rien et si son Motif d’installation est Installé comme dépendance d’un autre paquet ou Explicitement installé.

J'en déduit que si pactree -r qui liste des paquets qui dépendent du paquet nommé retourne le nom du paquet nommé, et que si dans pacman -Qi, même si le paquet nommé dépend d'un autre paquet, il est en effet Requis par rien (pas de paquet(s) qui dépend(ent) de lui) et que son Motif d’installation est Installé comme dépendance d’un autre paquet, alors le paquet nommé est un orphelin que je peux supprimer sans risque.

C'est bon ou lopo compris encore bien ? :tetu!
papajoke a écrit : il y a 8 mois

pacman -Qi pacman
Nom                      : pacman
Motif d’installation     : Installé comme dépendance d’un autre paquet
oops, un jour, je peux avoir pacman dans les orphelins (puisque c'est une dépendance pour pacman)…
Ok, tu veux dire si un jour pacman était remplacé et obsolète ? :geek:


@lemust83
Merci pour ton partage :wink:

Install python-pyglet via AUR et grosse install en +

#15Messageil y a 8 mois

Après avoir longuement médité sur pactree -r et ses biens faits :fete: , j'ai revu mon script :

#!/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"
J'ai bon ou pas ?
Répondre