Page 1 sur 1

[MAJ / paquets orphelins] comportement curieux de pacman

Publié : dim. 01 juil. 2012, 17:07
par falke
bonjour,

avant hier après une mise à jour pacman a eu un comportement très étrange :

pacman -Syu me met à jour pyqt et ses dépendances

j'accepte les mises à jour puis à la fin pacman me dit :

"pyqt" n'est requis par aucun paquet (paquet orphelin)

d'où je me pose les questions suivantes

1) pourquoi je n'ai pas été informé plus tôt que pyqt ne dépendait d'aucun paquet pour pouvoir éventuellement le supprimer. Ne serait-ce pas plus logique que pacman teste d'abord si les paquets sont orphelins avant de les mettre à jour et signale lesquels bien sûr Ça éviterait un boulot inutile et on serait pas obligé de penser à lancer régulièrement pacman -Qdt (pour vérifier ces paquets orphelins et les gérer)

2) prudent j'ai reparcouru la doc de pacman -R + options et j'ai vu que certaines dépendances de pyqt étaient malgré tout requises par d'autres paquets

j'ai donc lancé après une simul (pacman -Rs -p pyqt) pacman pacman -Rs pour de vrai et les dépendances de pyqt requises par d'autres paquets que pyqt n'ont pas été supprimées donc c'était bien le comportement attendu.
Par contre, ne devrait-on plutôt pas utiliser par défaut la commande pacman -Rss qui enlève également les dépendances explicitement installées qui ne dépendent d'aucun autre paquet ? ça me semble plus logique, mais la doc n'en parle pas. J'ai trouvé cette option par pacman -R --help.

3) question subsidiaire comportement de pacman -Rc , désinstalle un paquet et tous ceux qui en ont besoin ?

3 bis) :? quid de l'option pacman -Ru (indiqué par pacman -R --help)

supprime les paquet inutiles. Très pratique ce truc mais je vois pas la différence avec l'option -Rs paquet


merci pour vos explications


falke

Re: [MAJ / paquets orphelins] comportement curieux de pacman

Publié : dim. 01 juil. 2012, 20:12
par benjarobin
Je ne vois pas en quoi le comportement est curieux. Tu es obligé de mettre à jour d'abord ! Cela parait logique ? non ?
De plus je ne crois pas que ce comportement vienne de pacman mais plutôt de yaourt.

Re: [MAJ / paquets orphelins] comportement curieux de pacman

Publié : dim. 01 juil. 2012, 20:17
par FoolEcho
falke a écrit :1) pourquoi je n'ai pas été informé plus tôt que pyqt ne dépendait d'aucun paquet pour pouvoir éventuellement le supprimer. Ne serait-ce pas plus logique que pacman teste d'abord si les paquets sont orphelins avant de les mettre à jour et signale lesquels bien sûr Ça éviterait un boulot inutile et on serait pas obligé de penser à lancer régulièrement pacman -Qdt (pour vérifier ces paquets orphelins et les gérer)
Heu... non. C'est plus logique d'en être informé après la mise à jour effective (ou alors faut être averti à la mise à jour suivante, et là bonjour la confusion). Certaines dépendances peuvent évoluées au gré des mises à jour (un nouveau paquet, ou une dépendance qui disparaît ou devient optionnelle...)
... grillé. :)
falke a écrit :Par contre, ne devrait-on plutôt pas utiliser par défaut la commande pacman -Rss qui enlève également les dépendances explicitement installées qui ne dépendent d'aucun autre paquet ? ça me semble plus logique, mais la doc n'en parle pas. J'ai trouvé cette option par pacman -R --help.
Voir le man:

Code : Tout sélectionner

-s, --recursive
           Remove each target specified including all of their dependencies, provided that (A) they are not
           required by other packages; and (B) they were not explicitly installed by the user. This
           operation is recursive and analogous to a backwards --sync operation, and helps keep a clean
           system without orphans. If you want to omit condition (B), pass this option twice.
Donc non... Si c'est installé explicitement c'est justement que tu voulais les garder. Le -Rs est donc suffisant pour ne pas à faire la chasse aux dépendances inutiles.
falke a écrit :3) question subsidiaire comportement de pacman -Rc , désinstalle un paquet et tous ceux qui en ont besoin ?
Oui. Tout saute, les dépendances des dépendances jusqu'à ne plus rien trouver.
falke a écrit :3 bis) :? quid de l'option pacman -Ru (indiqué par pacman -R --help)

supprime les paquet inutiles. Très pratique ce truc mais je vois pas la différence avec l'option -Rs paquet
C'est un peu plus complexe:

Code : Tout sélectionner

       -u, --unneeded
           Removes targets that are not required by any other packages. This is mostly useful when removing
           a group without using the -c option, to avoid breaking any dependencies.
Parce qu'un exemple vaut mieux qu'un long discours:
1) Tentative de suppression du groupe kde, impossible comme ça forcément

Code : Tout sélectionner

# pacman-color -Rs -p kde
pacman-color -Rs -p kde
Erreur : la préparation de la transaction a échoué (la satisfaction des dépendances a échoué)
:: k3b : requiert kdemultimedia-kioslave
:: kde-meta-kdebase : requiert kdebase-dolphin
:: kde-meta-kdebase : requiert kdebase-kdepasswd
:: kde-meta-kdebase : requiert kdebase-kdialog
:: kde-meta-kdebase : requiert kdebase-kfind
:: kde-meta-kdebase : requiert kdebase-keditbookmarks
:: kde-meta-kdebase : requiert kdebase-konqueror
:: kde-meta-kdebase : requiert kdebase-konq-plugins
:: kde-meta-kdebase : requiert kdebase-konsole
:: kde-meta-kdebase : requiert kdebase-kwrite
:: kde-meta-kdebase : requiert kdebase-plasma
:: kde-meta-kdegames : requiert kdegames-bomber
:: kde-meta-kdegames : requiert kdegames-bovo
:: kde-meta-kdegames : requiert kdegames-granatier
:: kde-meta-kdegames : requiert kdegames-kajongg
:: kde-meta-kdegames : requiert kdegames-kapman
:: kde-meta-kdegames : requiert kdegames-katomic
:: kde-meta-kdegames : requiert kdegames-kbattleship
:: kde-meta-kdegames : requiert kdegames-kblackbox
:: kde-meta-kdegames : requiert kdegames-kblocks
:: kde-meta-kdegames : requiert kdegames-kbounce
:: kde-meta-kdegames : requiert kdegames-kbreakout
:: kde-meta-kdegames : requiert kdegames-kdiamond
:: kde-meta-kdegames : requiert kdegames-kfourinline
:: kde-meta-kdegames : requiert kdegames-kgoldrunner
:: kde-meta-kdegames : requiert kdegames-kigo
:: kde-meta-kdegames : requiert kdegames-killbots
:: kde-meta-kdegames : requiert kdegames-kiriki
:: kde-meta-kdegames : requiert kdegames-kjumpingcube
:: kde-meta-kdegames : requiert kdegames-klines
:: kde-meta-kdegames : requiert kdegames-klickety
:: kde-meta-kdegames : requiert kdegames-kmahjongg
:: kde-meta-kdegames : requiert kdegames-kmines
:: kde-meta-kdegames : requiert kdegames-knetwalk
:: kde-meta-kdegames : requiert kdegames-kolf
:: kde-meta-kdegames : requiert kdegames-kollision
:: kde-meta-kdegames : requiert kdegames-konquest
:: kde-meta-kdegames : requiert kdegames-kpatience
:: kde-meta-kdegames : requiert kdegames-kreversi
:: kde-meta-kdegames : requiert kdegames-kshisen
:: kde-meta-kdegames : requiert kdegames-ksirk
:: kde-meta-kdegames : requiert kdegames-kspaceduel
:: kde-meta-kdegames : requiert kdegames-ksquares
:: kde-meta-kdegames : requiert kdegames-ksudoku
:: kde-meta-kdegames : requiert kdegames-ktron
:: kde-meta-kdegames : requiert kdegames-ktuberling
:: kde-meta-kdegames : requiert kdegames-kubrick
:: kde-meta-kdegames : requiert kdegames-lskat
:: kde-meta-kdegames : requiert kdegames-palapeli
:: kfaenza-icon-theme : requiert kdebase-workspace
:: ktorrent : requiert kdebase-workspace
:: libkgeomap : requiert kdeedu-marble
:: qtcurve-kde4 : requiert kdebase-workspace
:: soundkonverter : requiert kdemultimedia-kioslave
2) Désinstallation de tout ce qu'il est possible dans le groupe kde (du coup il va rester kdebase et d'autres trucs ici):

Code : Tout sélectionner

# pacman-color -Ru -p kde
kdeutils-sweeper-4.8.4-1
kdeutils-printer-applet-4.8.4-1
kdeutils-kwallet-4.8.4-1
kdeutils-ktimer-4.8.4-1
kdeutils-kgpg-4.8.4-1
kdeutils-kdf-4.8.4-1
kdeutils-kcharselect-4.8.4-1
kdeutils-kcalc-4.8.4-1
kdeutils-filelight-4.8.4-1
kdeutils-ark-4.8.4-1
kdetoys-ktux-4.8.4-1
kdetoys-amor-4.8.4-1
kdesdk-kompare-4.8.4-1
kdesdk-kdepalettes-4.8.4-1
kdesdk-kate-4.8.4-1
kdesdk-dolphin-plugins-4.8.4-1
kdeplasma-addons-runners-spellchecker-4.8.4-2
kdeplasma-addons-runners-kopete-4.8.4-2
kdeplasma-addons-runners-konsolesessions-4.8.4-2
kdeplasma-addons-runners-konquerorsessions-4.8.4-2
kdeplasma-addons-runners-katesessions-4.8.4-2
kdeplasma-addons-runners-events-4.8.4-2
kdeplasma-addons-runners-datetime-4.8.4-2
kdeplasma-addons-runners-converter-4.8.4-2
kdeplasma-addons-runners-contacts-4.8.4-2
kdeplasma-addons-runners-characters-4.8.4-2
kdeplasma-addons-runners-audioplayercontrol-4.8.4-2
kdeplasma-addons-containments-4.8.4-2
kdeplasma-addons-applets-unitconverter-4.8.4-2
kdeplasma-addons-applets-systemloadviewer-4.8.4-2
kdeplasma-addons-applets-spellcheck-4.8.4-2
kdeplasma-addons-applets-showdesktop-4.8.4-2
kdeplasma-addons-applets-showdashboard-4.8.4-2
kdeplasma-addons-applets-rememberthemilk-4.8.4-2
kdeplasma-addons-applets-qalculate-4.8.4-2
kdeplasma-addons-applets-previewer-4.8.4-2
kdeplasma-addons-applets-plasmaboard-4.8.4-2
kdeplasma-addons-applets-pastebin-4.8.4-2
kdeplasma-addons-applets-paste-4.8.4-2
kdeplasma-addons-applets-nowplaying-4.8.4-2
kdeplasma-addons-applets-notes-4.8.4-2
kdeplasma-addons-applets-mediaplayer-4.8.4-2
kdeplasma-addons-applets-luna-4.8.4-2
kdeplasma-addons-applets-leavenote-4.8.4-2
kdeplasma-addons-applets-lancelot-4.8.4-2
kdeplasma-addons-applets-konsoleprofiles-4.8.4-2
kdeplasma-addons-applets-konqprofiles-4.8.4-2
kdeplasma-addons-applets-kolourpicker-4.8.4-2
kdeplasma-addons-applets-icontasks-4.8.4-2
kdeplasma-addons-applets-frame-4.8.4-2
kdeplasma-addons-applets-filewatcher-4.8.4-2
kdeplasma-addons-applets-eyes-4.8.4-2
kdeplasma-addons-applets-dict-4.8.4-2
kdeplasma-addons-applets-charselect-4.8.4-2
kdeplasma-addons-applets-calculator-4.8.4-2
kdeplasma-addons-applets-bubblemon-4.8.4-2
kdeplasma-addons-applets-bball-4.8.4-2
kdepim-ktimetracker-4.8.4-1
kdepim-kresources-4.8.4-1
kdepim-korganizer-4.8.4-1
kdepim-kontact-4.8.4-1
kdepim-knotes-4.8.4-1
kdepim-knode-4.8.4-1
kdepim-kmail-4.8.4-1
kdepim-kleopatra-4.8.4-1
kdepim-kjots-4.8.4-1
kdepim-kalarm-4.8.4-1
kdepim-kaddressbook-4.8.4-1
kdepim-console-4.8.4-1
kdepim-akregator-4.8.4-1
kdepim-akonadiconsole-4.8.4-1
kdenetwork-kopete-4.8.4-1
kdemultimedia-mplayerthumbs-4.8.4-1
kdemultimedia-kmix-4.8.4-1
kdemultimedia-ffmpegthumbs-4.8.4-1
kdegraphics-okular-4.8.4-1
kdegraphics-ksnapshot-4.8.4-1
kdegraphics-kolourpaint-4.8.4-1
kdegraphics-kgamma-4.8.4-1
kdegraphics-kcolorchooser-4.8.4-1
kdegraphics-kamera-4.8.4-1
kdegraphics-gwenview-4.8.4-1
kdeedu-ktouch-4.8.4-1
kdeartwork-styles-4.8.4-1
kdeartwork-sounds-4.8.4-1
kdeartwork-kscreensaver-4.8.4-1
kdeartwork-iconthemes-4.8.4-1
kdeartwork-emoticons-4.8.4-1
kdeartwork-desktopthemes-4.8.4-1
kdeartwork-colorschemes-4.8.4-1
kdeartwork-aurorae-4.8.4-1
kdeadmin-system-config-printer-kde-4.8.4-1
kdeadmin-kuser-4.8.4-1
kdeadmin-ksystemlog-4.8.4-1
kdeadmin-kcron-4.8.4-1

Re: [MAJ / paquets orphelins] comportement curieux de pacman

Publié : dim. 01 juil. 2012, 21:28
par falke
@ foolecho

d'abord merci pour ta réponse.

Mais c'est là qu'il y a un truc que je comprends pas dans ce que tu me dis :

"Donc non... Si c'est installé explicitement c'est justement que tu voulais les garder." :

Si on installe explicitement, c'est bien qu'on veut le paquet je suis d'accord, pourtant dans ce cas... le paquet installé n'a plus d'utilité

J'imagine qu'il s'agit dans la pratique de dépendances optionnelles Y d'un paquet orphelin appelons le X qui ont été installées intentionnellement. Je vois pas d'autre cas possibles , y en a-t-il d'autres ?

Donc, d'après le man de pacman -R avec l'option -Rs la dépendance optionnelle dans ce cas ne sera pas supprimée.
En même temps le paquet orphelin X qui la requirait étant supprimé elle devient sans utilité d'où l'intérêt de l'option -Rss me semble t-il. Ou j'ai pas compris ?


"Le -Rs est donc suffisant pour ne pas à faire la chasse aux dépendances inutiles."

tu veux dire -Rs est suffisant pour faire la chasse aux dépendances inutiles plutôt ?


merci

Re: [MAJ / paquets orphelins] comportement curieux de pacman

Publié : lun. 02 juil. 2012, 09:39
par FoolEcho
falke a écrit :Si on installe explicitement, c'est bien qu'on veut le paquet je suis d'accord, pourtant dans ce cas... le paquet installé n'a plus d'utilité

J'imagine qu'il s'agit dans la pratique de dépendances optionnelles Y d'un paquet orphelin appelons le X qui ont été installées intentionnellement. Je vois pas d'autre cas possibles , y en a-t-il d'autres ?

Donc, d'après le man de pacman -R avec l'option -Rs la dépendance optionnelle dans ce cas ne sera pas supprimée.
En même temps le paquet orphelin X qui la requirait étant supprimé elle devient sans utilité d'où l'intérêt de l'option -Rss me semble t-il. Ou j'ai pas compris ?
Ce sont des notions différentes... et des niveaux différents.
Installer explicitement signifie à pacman que tel ou tel paquet est important pour toi, pour une raison ou une autre. Donc il ne sera supprimé avec ses dépendances que si c'est spécifié clairement à pacman (cas courant, mais tout dépend du niveau du paquet aussi dans la hiérarchie: -R(c)s le_paquet).
Un paquet n'est utile que pour toi ou pour le système, indépendamment de ce côté explicite. Donc, en supprimant quelque chose proprement avec ses dépendances (de façon non explicite donc, -Rs toujours), pacman vérifie que telle ou telle dépendance n'est pas utile à un autre paquet avant de l'enlever ou si la dépendance n'a pas été installé explicitement.
Pour les dépendances optionnelles... En fait, il y a deux cas de figure: soit tu l'as installé en tant que telle, donc explicitement (faut donc la supprimer de même)... soit elle a pu venir implicitement parce qu'un autre paquet l'a apporté (dans ce cas elle sautera à un moment ou un autre).
Tout ça pour dire que tout dépend de ce que tu cherches à enlever (c'est pourquoi j'essaie d'éviter de te dire telle ou telle option convient ou pas... ça dépend)... mais en gros la bonne combinaison avec -R est à base de -R(cn)s (par "bonne", il faut comprendre celle qui ne laisse pas des dépendances orphelines et donc conserve un système propre ; je sais qu'ici, un certain nombre d'utilisateurs estiment que propre implique de ne pas garder de paquets/applications dont ils n'ont pas l'utilité -- pour moi et pour d'autres, propre signifie simplement qu'il n'y a pas d'orphelins, pas de trucs installés à l'arrache sans passer par pacman, de bidouilles pour pallier des choses qu'ils ont juste mal configuré ou mal comprises, etc., c'est donc indépendant de l'usage de ces paquets) -- la pire étant -R(d)d où là tu casses plein de trucs (sauf cas très particuliers). :)
falke a écrit :"Le -Rs est donc suffisant pour ne pas à faire la chasse aux dépendances inutiles."

tu veux dire -Rs est suffisant pour faire la chasse aux dépendances inutiles plutôt ?
Prends-le dans le sens que tu veux. :) Une combinaison à base de -Rs permet de ne pas laisser d'orphelins au fur et à mesure c'est tout ce qui importe pour garder un système propre (et donc je voulais dire de ne pas faire la chasse aux dépendances après désinstallation).



PS: il y a un bouton pour citer tout ou partie des messages, ça rend les choses plus lisibles, stp (particulièrement quand ça s'entasse). ;-)

Re: [MAJ / paquets orphelins] comportement curieux de pacman

Publié : lun. 02 juil. 2012, 22:42
par falke
falke a écrit :PS: il y a un bouton pour citer tout ou partie des messages, ça rend les choses plus lisibles, stp (particulièrement quand ça s'entasse)
Ayé j'ai trouvé le bouton :copain:

merci