Du bist nicht angemeldet.

#1 18.11.2020 10:58:26

hellmi666
Mitglied

Nicht genutzte Abhängigkeiten löschen

Hallo Linuxer,
ich hätte da mal eine Frage an euer Schwarmwissen.
Mit

pacman -Qdt

kann man sich doch die ungenutzten Abhängigkeiten anzeigen lassen, oder?
Bei  mir erscheint dann:

# pacman -Qdt
aften 0.0.8-3
cmake 3.18.4-1
cracklib 2.9.7-2
cython 0.29.21-1
dcaenc 2-2
gobject-introspection 1.66.1-1
gulp 4.0.2-3
help2man 1.47.16-1
inetutils 1.9.4-8
jasper 2.0.19-1
js60 60.9.0-2
js68 68.12.0-1
lhasa 0.3.1-3
libmp4v2 4.1.3-1
liborcus 0.16.1-1
lv2 1.18.0-1
mate-common 1.24.1-1
mozilla-common 1.4-6
nasm 2.15.05-1
python-atomicwrites 1.4.0-1
python-distutils-extra 2.39-5
python-mox3 1.1.0-1
python-pytest 6.1.2-1
python-wcwidth 0.2.5-1
python2-cairo 1.18.2-4
python2-dbus 1.2.16-1
python2-mutagen 1.43.0-3
python2-pytest 4.6.11-1
qt5-script 5.15.1-1
qt5-tools 5.15.1-2
vapoursynth R52-1
xorg-mkfontscale 1.2.1-2
xorg-server 1.20.9-3
yasm 1.3.0-4
yelp-tools 3.38.0-1

Jetzt mach mich aber stutzig, dass da xorg-server 1.20.9-3 mit dabei ist. Brauche ich ihn wirklich nicht mehr?

Offline

#2 18.11.2020 11:09:37

303acid
Mitglied

Re: Nicht genutzte Abhängigkeiten löschen

Guck mal in die die Hilfe....

  -d, --deps           Zeigt Pakete an, die als Abhängigkeiten installiert wurden [Filter]
  -t, --unrequired     Listet von keinem Paket (optional) benötigte Pakete auf (-tt um optionale Abhängigkeiten zu ignorieren) [Filter]

scheint mit, als würden sich die beiden Parameter -d -t gegenseitig im Weg stehen

Offline

#3 18.11.2020 11:20:56

hellmi666
Mitglied

Re: Nicht genutzte Abhängigkeiten löschen

Ich habe den Befehl hier im Forum entdeckt, darum vermute ich, dass er korrekt ist.
Mit

pacman -Qdtq 

werden die selben Pakete, allerding ohne Versionsnummern, angezeigt.
Und mit

 pacman -Rns $(pacman -Qdtq)

kann man diese in einem Rutsch löschen.
Aber genau das traue ich mich nicht, weil ich denke, dass xorg-server noch gebraucht werden könnte. Oder täusche ich mich da?

Offline

#4 18.11.2020 17:50:52

GerBra
Mitglied

Re: Nicht genutzte Abhängigkeiten löschen

hellmi666 schrieb:

Aber genau das traue ich mich nicht, weil ich denke, dass xorg-server noch gebraucht werden könnte. Oder täusche ich mich da?

Wenn du für deinen Desktop XOrg nutzt, dann wäre deinstallieren in der Tat eher suboptimal ;-)

Du hast bei deiner Installations-Historie wahrscheinlich XOrg (also xorg-server) nicht explizit installiert, sondern eben als Abhängigkeit für den Desktop/Display-Manager/sonstwas.

Soweit ich sehe/vermute bedingen nun kaum noch andere Pakete/Programme XOrg ausdrücklich, viele Windowmanager dürften z.B. auch mit Wayland laufen. Bei mir sind es noch 3 Pakete, die xorg-server (ich nutze XOrg, nicht Wayland) als Abhängigkeit haben (pacman -Qi xorg-server). Bei dir eben keines, sonst würde es ja nicht in deiner Liste auftauchen.

Du könntest das korrigieren, indem du xorg-server eben nicht als abhängiges Paket in der lokalen Datenbank hast, sondern es als explizit installiert definierst. Das kannst du am einfachsten mit:

# pacman -D --asexplicit xorg-server

machen. Danach würde es nicht mehr durch -Qdt gefunden, du könntest also mit dieser Liste zumindest in diesem Fall sauber weiterarbeiten.

@303acid:
Widersprechen tun sich die Parameter nicht, -d/--deps agiert nur als Filter. Aus deiner geposteten Hilfe liest sich das dann:
" Listet von keinem als Abhängigkeit installierten Paket (optional) benötigte Pakete auf "

Offline

#5 18.11.2020 20:46:29

Dirk
Moderator

Re: Nicht genutzte Abhängigkeiten löschen

hellmi666 schrieb:

Und mit

 pacman -Rns $(pacman -Qdtq)

kann man diese in einem Rutsch löschen.
Aber genau das traue ich mich nicht, weil ich denke, dass xorg-server noch gebraucht werden könnte. Oder täusche ich mich da?

Ich werde nie verstehen, wer mit diesem Schwachsinn irgendwann mal angefangen hat. pacman -Rns $(pacman -Qdtq) zu empfehlen ist grob fahrlässig, und es auszuführen auch noch potentiell gefährlich.

Offline

#6 18.11.2020 22:58:07

schard
Moderator

Re: Nicht genutzte Abhängigkeiten löschen

Dirk schrieb:

Ich werde nie verstehen, wer mit diesem Schwachsinn irgendwann mal angefangen hat. pacman -Rns $(pacman -Qdtq) zu empfehlen ist grob fahrlässig, und es auszuführen auch noch potentiell gefährlich.

Kannst du das ausführen?
Ich mache das* nämlich seit 6 Jahren auf ~3 Maschinen täglich und auf ~1200 Maschinen monatlich.
Alle laufen noch.

* genau genommen

# pacman -Rncs $(pacman -Qmq; pacman -Qdtq)

Disclaimer: Das pacman -Qmq ist nicht zu empfehlen, wenn man benötigte Pakete installiert hat, welche nicht in einem aktiven Repository sind (z.B. Pakete aus dem AUR).
Erklärung: Der Befehl löscht alle Pakete, inklusive potentieller Backup-Dateien, welche entweder nicht in den aktiven Repositorys gelistet sind, oder als Anhängigkeiten installiert sind, aber nicht mehr benötigt werden.

Offline

#7 18.11.2020 23:13:36

Dirk
Moderator

Re: Nicht genutzte Abhängigkeiten löschen

schard schrieb:

Kannst du das ausführen?

Ausschnitt aus der Liste (42 Einträge bei mir). Alles Software und Libs, etc., die ich aktiv benutze, bzw. wo ich weiß, dass ich sie definitiv brauche oder indirekt verwende.

aria2
clang
cmake
gtkspell
hunspell-en_AU
hunspell-en_CA
hunspell-en_GB
hunspell-en_US
icon-naming-utils
intltool
lcms
libtiger
naturaldocs
netcdf
premake
python-attrs
qt5-script
qt5-xmlpatterns
sbsms
scons
sndio
yasm

Da diese Liste mehr als die Hälfte aller gefundener Pakete beträgt, nehme ich an, dass ich die restlichen Sachen auch direkt oder indirekt brauche, und werde daher nicht einfach blind pacman -Rns $(pacman -Qdtq) ausführen, wie es so oft wahllos empfohlen wird.

Offline

#8 19.11.2020 11:14:14

Kaht1eel
Gast

Re: Nicht genutzte Abhängigkeiten löschen

Dirk schrieb:

Ausschnitt aus der Liste (42 Einträge bei mir). Alles Software und Libs, etc., die ich aktiv benutze, bzw. wo ich weiß, dass ich sie definitiv brauche oder indirekt verwende.

Da frage ich mich schon, warum Pakete in der Menge als Abhängigkeit für ein Paket gekennzeichnet sind, das offenbar nicht mehr installiert ist. Das kann eigentlich nur dann passieren, wenn man Pakete eben nicht mit den zusätzlichen Optionen "ns" entfernt, was dann zur Folge hat, dass nur das Paket aber nicht seine Abhängigkeiten de-installiert werden.

Gab es denn vielleicht mal ein Meta- oder Transition-Paket mit Abhängigkeiten zu den verwaisten Paketen, von denen ja immer gerne behauptet wird, dass sie gefahrlos de-installiert werden können? Vielleicht gibt das pacman-Log darüber Auskunft, wann und warum eins der Pakete erstmalig installiert wurde, und was danach mit dem verursachenden Paket passierte.

Ich habe es mir seit jeher zur Gewohnheit gemacht, Pakete (außer Metapakete) mit den zusätzlichen Optionen "uns" zu de-installieren, dann kann es nicht passieren, dass verwaiste Pakete zurück bleiben. Entsprechend werden mir Stand heute auch nur vier Pakete gemeldet. Das entsteht immer dadurch, dass die Paketbetreuer mal an den Abhängigkeiten drehen und bei neueren Fassungen des Pakets einige Abhängigkeiten nicht mehr notwendig sind. Das kontrolliere ich regelmässig und entferne sie dann; wieder mit ihren Abhängigkeiten.

Bei Metapaketen ist etwas Handarbeit angesagt. Da schaue ich mir vorher die Abhängigkeiten an, setze diese Pakete dann manuell auf ausdrücklich installiert und entferne erst dann das Metapaket. Damit werden die Pakete nicht mehr als verwaist erkannt und sind vor Aufräumaktionen geschützt.

#9 19.11.2020 17:52:27

hellmi666
Mitglied

Re: Nicht genutzte Abhängigkeiten löschen

GerBra schrieb:

Du hast bei deiner Installations-Historie wahrscheinlich XOrg (also xorg-server) nicht explizit installiert, sondern eben als Abhängigkeit für den Desktop/Display-Manager/sonstwas.

Ich habe Arch nach der Anleitung für Einsteiger installiert und da kommt nach der Grundinstallation:

pacman -S xorg-server xorg-xinit

Also habe ich es doch explizit installiert. Aber nach einem

pacman -Qi xorg-server

erscheint
-- Benötigt von             : Nichts

Allerdings befindet sich auch Wayland an Bord
-- Benötigt von             : gst-plugins-bad  gtk3  intel-media-sdk  libva  mesa

Da meine DE Mate ist und gtk3 benötig, wurde dort Wayland installiert (das ist zumindest meine Annahme). Aber kann es sein, dass dann  Wayland dem xorg-server die Abhängigkeiten entzogen hat?

Dirk schrieb:

Ich werde nie verstehen, wer mit diesem Schwachsinn irgendwann mal angefangen hat. pacman -Rns $(pacman -Qdtq) zu empfehlen ist grob fahrlässig, und es auszuführen auch noch potentiell gefährlich.

Also gibt es denn einen äquivalenten Befehl zu Ubuntus

apt-get autoremove

?

Beitrag geändert von hellmi666 (19.11.2020 17:53:24)

Offline

#10 19.11.2020 18:23:41

Kaht1eel
Gast

Re: Nicht genutzte Abhängigkeiten löschen

hellmi666 schrieb:

Also habe ich es doch explizit installiert. Aber nach einem

pacman -Qi xorg-server

erscheint
-- Benötigt von             : Nichts

Das ist auch bei explizit installierten Paketen in Ordnung, weil sie ja eben nicht aufgrund einer Abhängigkeit sondern ausdrücklich installiert wurden.

Aber kann es sein, dass dann  Wayland dem xorg-server die Abhängigkeiten entzogen hat?

Nein... ein Paket kann nur Abhängigkeiten auf ein anderes Paket setzen. Wenn du also vorher ein Paket installiert hattest, dass eine Abhängigkeit auf xorg-server setzt, dann würde dir diese Abhängigkeit bei der Anzeige des Status von xorg-server angezeigt. Wenn das Paket durch den Wechsel zu Wayland entfernt wurde (möglicherweise auch, um einen Konflikt zu lösen) dann wird die ehemalige Abhängigkeit bei der Anzeige des Status von xorg-server auch nicht mehr angezeigt. Es ist aber nicht Wayland, dass diese Abhängigkeit entzogen hat, sondern das andere Paket, das jetzt nicht mehr installiert ist.

Die Frage ist aber vielmehr, warum das Paket überhaupt durch den Filter "d" ausgegeben wird, wenn du es zuvor manuell und ausdrücklich installiert hast. Du kannst auch die pacman-Logs durchsuchen um zu klären, wann und warum das Paket xorg-server installiert wurde, und warum der Status wechselte.

Also gibt es denn einen äquivalenten Befehl zu Ubuntus

apt-get autoremove

?

Den hast du ja im Grunde schon und auch richtig angewandt, nur wenn der Status der Pakete in der Pacman-Datenbank falsch ist, hilft dir das auch nicht.

Du kannst das Paket natürlich löschen, es ist ja relativ schnell auch ohne X-Server auf der Konsole aus dem Cache wieder installiert. Nur wenn du es wirklich brauchst, dann würde ich mit der Operation "D" auch den Status nach "ausdrücklich installiert" ändern, damit es bei der Filterung nicht mehr hochkommt.

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums