Und hättest du, wie in diesem Thread schon öfters gesagt, die betreffenden Pakete als manuell installiert markiert, würde genau das eben nicht mehr passieren.Luise hat geschrieben: Hätte ich bei der Abfrage, ob ich die aufgeführten Pakete entfernen wollte, "ja" gesagt, so wäre alles weg gewesen, was debian bei der Erstinstallation unter dem meta-Paket(?) standard desktop installiert hatte - und ich hätte wohl dumm aus der Wäsche geschautals ich plötzlich keinen desktop mehr hatte
![]()
apt-get autoremove
Re: apt-get autoremove
Re: apt-get autoremove
Dazu hätte ich aber erst mal wissen müssen, dass es da Probleme geben kann - und genau das kann man bei der manpage von apt-get nicht herauslesen:Fjunchclick hat geschrieben:Und hättest du, wie in diesem Thread schon öfters gesagt, die betreffenden Pakete als manuell installiert markiert, würde genau das eben nicht mehr passieren.Luise hat geschrieben: Hätte ich bei der Abfrage, ob ich die aufgeführten Pakete entfernen wollte, "ja" gesagt, so wäre alles weg gewesen, was debian bei der Erstinstallation unter dem meta-Paket(?) standard desktop installiert hatte - und ich hätte wohl dumm aus der Wäsche geschautals ich plötzlich keinen desktop mehr hatte
![]()
Das liest sich ganz anders als all das, was hier im thread erklärt worden ist. Wieso werden die Anwendungen, die entfernt worden wären, nicht mehr gebraucht?autoremove
autoremove is used to remove packages that were automatically
installed to satisfy dependencies for some package and that are no
more needed.
![Surprised :o](./images/smilies/icon_surprised.gif)
- bmario
- Beiträge: 1257
- Registriert: 05.09.2007 12:15:47
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dresden
Re: apt-get autoremove
Nunja, es steht nicht so deutlich drin in der manpage, aber es passiert genau das, was passieren soll. Warum das so ist, habe ich bereits ausführlich auf Seite 1 erklärt und ich habe da auch gar keine Lust mehr mich zu wiederholen...Luise hat geschrieben:Das liest sich ganz anders als all das, was hier im thread erklärt worden ist. Wieso werden die Anwendungen, die entfernt worden wären, nicht mehr gebraucht?autoremove
autoremove is used to remove packages that were automatically
installed to satisfy dependencies for some package and that are no
more needed.
Fakt ist, nicht dpkg oder apt ist Broken, sondern die Art der Nutzung. Entweder man entscheidet sich eine einfache Installation zu haben, dann nimmt man alle Metapakete mit, oder man entscheidet sich, dies nicht zu tun, dann installiert man nur das was man braucht und ignoriert die Metapakete. Aber wenn man ersteres tut, hat man gefälligst damit zu Leben, wie die Metapakete sind und was sie einem Installieren. Das ist wie, als wenn man nicht die Strecke fährt die einem der Navi vorgibt und sich dann beschwert, das man sich verfahren hat und das das ja nicht sein kann.
Nichts zu tun ist viel besser,
als mit viel Mühe nichts zu schaffen. - Laotse
als mit viel Mühe nichts zu schaffen. - Laotse
Re: apt-get autoremove
Ich bezweifle das doch gar nicht.bmario hat geschrieben:Nunja, es steht nicht so deutlich drin in der manpage, aber es passiert genau das, was passieren soll. Warum das so ist, habe ich bereits ausführlich auf Seite 1 erklärt und ich habe da auch gar keine Lust mehr mich zu wiederholen...Luise hat geschrieben:Das liest sich ganz anders als all das, was hier im thread erklärt worden ist. Wieso werden die Anwendungen, die entfernt worden wären, nicht mehr gebraucht?autoremove
autoremove is used to remove packages that were automatically
installed to satisfy dependencies for some package and that are no
more needed.
.
Ich beanstande aber den Eintrag in den manpages.
Wenn dort einfach stände :
dann wäre es zutreffend und völlig ok.autoremove
autoremove is used to remove packages that were automatically
installed
Re: apt-get autoremove
'man apt-get' hat geschrieben:autoremove
autoremove is used to remove packages that were automatically installed to satisfy dependencies for some package and that are no more needed.
wie wär's mit einem Kompromiss:Luise hat geschrieben:Ich beanstande aber den Eintrag in den manpages.
Wenn dort einfach stände :dann wäre es zutreffend und völlig ok.autoremove
autoremove is used to remove packages that were automatically installed
man beachte: 100% Buchstaben-Recyclingautoremove
autoremove is used to remove packages that were automatically installed and that are no more needed to satisfy dependencies for some package.
![Smile :)](./images/smilies/icon_smile.gif)
Beware of programmers who carry screwdrivers.
Re: apt-get autoremove
Bein - weil es nicht stimmt!cosmac hat geschrieben:wie wär's mit einem Kompromiss:man beachte: 100% Buchstaben-Recyclingautoremove
autoremove is used to remove packages that were automatically installed and that are no more needed to satisfy dependencies for some package.
Ich führe unten noch einmal die Pakete auf, die dabei entfernt werden sollten - die passen doch zum allergrößten Teil nicht unter die Definition:
Die folgenden Pakete wurden automatisch installiert und werden nicht länger benötigt:
bluez-gnome gcj-4.3-base xmms2-plugin-lastfm evolution-common libgnomekbd2
libepc-ui-1.0-1 libwildmidi0 evolution-webcal python-gst0.10 libmtp7
gcalctool lp-solve gstreamer0.10-x libarchive1 libpth20 gnome-nettool
metacity libepc-1.0-1 gnome-desktop-data libgtk-vnc-1.0-0 nautilus
libdc1394-13 libdc1394-22 libgksu1.2-0 python-notify openoffice.org-impress
aspell gstreamer0.10-plugins-ugly libcaca0 gnome-settings-daemon
obex-data-server openoffice.org-draw libsoundtouch1c2 libgda3-common
python-gnome2-extras gucharmap libgksuui1.0-1 libdiscid0 gnome-games
liburi-perl evolution-exchange evolution dnsutils libspectre1
gnome-network-admin libxmmsclient4 libsvga1 libgfortran3 app-install-data
gnome-power-manager libresid-builder0c2a libexchange-storage1.2-3 unzip
gnome-cards-data gnome-screensaver python-gdata alacarte liblircclient0
libxcb-xv0 gtk2-engines-pixbuf xmms2-plugin-musepack system-config-printer
dvd+rw-tools gnome-control-center libhtml-parser-perl libopenspc0 libpisock9
java-common xmms2-plugin-avcodec xmms2-plugin-pulse gnome-themes
libtrackerclient0 seahorse libggzmod4 libxml-twig-perl xmms2-plugin-karaoke
libfftw3-3 whois totem-common vinagre libedata-cal1.2-6 libgvfscommon0
libxine1-bin libsuitesparse-3.1.0 nautilus-data libgpod3 libsoup2.4-1
libwavpack1 libxml-parser-perl system-tools-backends libgweather1 libcdio7
xmms2-plugin-vocoder libxosd2 gtkhtml3.14 guile-1.8-libs python-gtkmozembed
python-gtkhtml2 libgnomekbd-common p7zip gnome-utils gnome-themes-extras
xmms2-plugin-cdda ttf-liberation libdmx1 libgnome-pilot2 xmms2-plugin-daap
finger gdm-themes libmusicbrainz4c2a libnet-dbus-perl
fast-user-switch-applet arj xmms2-plugin-id3v2 gnome-about
gnome-volume-manager nautilus-cd-burner libexempi3 libcdio-cdda0
gtk2-engines libxine1-ffmpeg xmms2-plugin-ao libkpathsea4
openoffice.org-math libgnomekbdui2 eog gdm libfltk1.1 capplets-data
libgcj-common xmms2-plugin-airplay libmikmod2 gnome-backgrounds
python-eggtrayicon libegroupwise1.2-13 python-sexy gnome-spell libggz2
libxcb-shape0 libgweather-common xmms2-plugin-faad xmms2-plugin-m3u
xmms2-plugin-asf freepats xmms2-plugin-asx libgdata1.2-1 vino
gnome-system-monitor xmms2-plugin-cue evince libbluetooth2 gnome-games-data
libgdata-google1.2-1 gnome-app-install xmms2-plugin-gme gnome-user-guide
evolution-plugins libshout3 libdv4 libedataserverui1.2-8 xmms2-plugin-curl
xmms2-plugin-mad libgnome-window-settings1 libdvdread3 libedata-book1.2-2
evolution-data-server cdrdao xmms2-plugin-mp4 libblas3gf xmms2-plugin-flac
libcdaudio1 xmms2-plugin-ofa xmms2-plugin-mms xmms2-core liblapack3gf
libcdio-paranoia0 xmms2-plugin-normalize libsidplay1 libsidplay2
xmms2-plugin-pls libxvmc1 fastjar zip xmms2-plugin-oss
gnome-netstatus-applet dmz-cursor-theme python-4suite-xml xmms2-plugin-sid
xmms2-plugin-speex libtag1c2a libxklavier12 xmms2-plugin-smb liboobs-1-4
libmad0 xmms2-plugin-rss libgda3-3 xmms2-plugin-ices xmms2-plugin-modplug
xmms2-client-cli svgalibg1 libpt-1.10.10-plugins-v4l libgpgme11 libid3tag0
libggzcore9 libgmyth0 libmodplug0c2 gconf-editor xmms2-plugin-vorbis
gnome-system-tools xmms2-plugin-wma libhtml-tree-perl gvfs xmms2-plugin-xml
gnome-panel libwww-perl gvfs-backends gnuchess gstreamer0.10-gnomevfs
openoffice.org-calc deskbar-applet evolution-data-server-common libxcb-shm0
xmms2-plugin-xspf gnome-applets-data xmms2-plugin-gvfs libhtml-tagset-perl
desktop-file-utils transmission-common gnome-session libmpcdec3
gstreamer0.10-tools libxmmsclient-glib1 libcucul0 libgdl-1-0
libgtkhtml3.14-19 libofa0 libmpeg2-4 file-roller libopenobex1 libmms0
libspeexdsp1 libneon27-gnutls transmission-gtk gnome-panel-data libpisync1
libxine1-console libgdl-1-common xmms2-plugin-icymetaint gnome-vfs-obexftp
liba52-0.7.4
Zuletzt geändert von Danielx am 23.01.2011 16:29:13, insgesamt 1-mal geändert.
Grund: quote-Tag repariert
Grund: quote-Tag repariert
- bmario
- Beiträge: 1257
- Registriert: 05.09.2007 12:15:47
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dresden
Re: apt-get autoremove
Doch sie passen perfekt! Es gab ein Metapaket, diese wurde entfernt, da es broken war. Und nun haben all diese Pakete keinen Installationsgrund mehr. Das heißt sie sind nichtmehr benötigt.
Zumindest das ist der logische Standpunkt des Paketsystems! Wenn du ein Paket installierst, das Abhängigkeiten nach sich zieht, so willst du ja auch, das diese Abhängigkeiten wieder entfernt werden, wenn du das ursprüngliche Paket deinstallierst. Das willst du deshalb, weil diese Pakete ja nur deshalb auf dem System sind, weil das eine Paket davon abhängig ist. Wenn man dieses Paket dann entfernt sind die Abhängigkeiten also unnütz und deshalb unnötigt.
Und Metapakete sagen halt "ich habe Abhängigkeiten zu dieser ganzen Liste von Paketen da" und deshalb werden alle diese Pakete aus dieser Liste installiert.
Entfernt man eines aus der Liste, so ist das Metapaket für das Paketsystem kaputt, denn es fehlt eine Abhängigkeit. Dies kann das Paketsystem auf 2 Arten lösen:
a) Die fehlende Abhängigkeit installieren, aber gerade das wollten wir ja nicht, die haben wir ja gerade deinstalliert!
also Variante b) Das Metapaket deinstallieren
Und das bringt das Paketsystem gleich darauf zu sagen: "Der ganze Mist, den dieses komische Paket, das grade broken war und ich deshalb deinstalliert habe, als Abhängigkeit hat, ist jetzt nurnoch unnütz, also weg damit bei nächster Gelegeheit."
Und dann kommst du an und sagst dem Paketsystem es soll alles unnütze deinstallieren. Natürlich wird dann ALLES deinstalliert! Du wolltest es ja nicht anders, und weder die manpage lügt, noch das Paketsystem ist broken. Du gibst ihm einfach die falschen und/oder zuwenige Befehle und Informationen. Wie das Problem gelöst werden kann, ist in diesem und anderen Threads sooft durchgekaut worden, das wiederhole ich jetzt nichtmehr.
Mario, der des Themas langsam überdrüssig ist.
Zumindest das ist der logische Standpunkt des Paketsystems! Wenn du ein Paket installierst, das Abhängigkeiten nach sich zieht, so willst du ja auch, das diese Abhängigkeiten wieder entfernt werden, wenn du das ursprüngliche Paket deinstallierst. Das willst du deshalb, weil diese Pakete ja nur deshalb auf dem System sind, weil das eine Paket davon abhängig ist. Wenn man dieses Paket dann entfernt sind die Abhängigkeiten also unnütz und deshalb unnötigt.
Und Metapakete sagen halt "ich habe Abhängigkeiten zu dieser ganzen Liste von Paketen da" und deshalb werden alle diese Pakete aus dieser Liste installiert.
Entfernt man eines aus der Liste, so ist das Metapaket für das Paketsystem kaputt, denn es fehlt eine Abhängigkeit. Dies kann das Paketsystem auf 2 Arten lösen:
a) Die fehlende Abhängigkeit installieren, aber gerade das wollten wir ja nicht, die haben wir ja gerade deinstalliert!
also Variante b) Das Metapaket deinstallieren
Und das bringt das Paketsystem gleich darauf zu sagen: "Der ganze Mist, den dieses komische Paket, das grade broken war und ich deshalb deinstalliert habe, als Abhängigkeit hat, ist jetzt nurnoch unnütz, also weg damit bei nächster Gelegeheit."
Und dann kommst du an und sagst dem Paketsystem es soll alles unnütze deinstallieren. Natürlich wird dann ALLES deinstalliert! Du wolltest es ja nicht anders, und weder die manpage lügt, noch das Paketsystem ist broken. Du gibst ihm einfach die falschen und/oder zuwenige Befehle und Informationen. Wie das Problem gelöst werden kann, ist in diesem und anderen Threads sooft durchgekaut worden, das wiederhole ich jetzt nichtmehr.
Mario, der des Themas langsam überdrüssig ist.
Nichts zu tun ist viel besser,
als mit viel Mühe nichts zu schaffen. - Laotse
als mit viel Mühe nichts zu schaffen. - Laotse
Re: apt-get autoremove
Ja, das glaub' ich Dir.........trotzdem hast Du das sehr schön erklärt.....bmario hat geschrieben:Mario, der des Themas langsam überdrüssig ist.
![Smile :)](./images/smilies/icon_smile.gif)
Re: apt-get autoremove
Wenn man ein Metapaket entfernen möchte, weil man z.B. ein Paket entfernen möchte, welches das Metapaket als Abhängigkeit hat, dann könnte man zuerst alle (installierten) direkten Abhängigkeiten des Metapakets als "manuell installiert" markieren und dann das Metapaket entfernen.
Dann sollte ein Autoremove die von diesem Metapaket abhängigen Pakete nicht entfernen.
Habe mal eben etwas zusammen geflickt:
Das sollte (installierte) direkten Abhängigkeiten eines Paketes als "manuell installiert" markieren.
Je nach Einstellung könnte man das auch noch mit den "Recommends" machen.
Gruß,
Daniel
Dann sollte ein Autoremove die von diesem Metapaket abhängigen Pakete nicht entfernen.
Habe mal eben etwas zusammen geflickt:
Code: Alles auswählen
PAKET=Paketname; dpkg --status $PAKET 2>&1 | grep "^Depends" | sed 's/([^)]*)//g' | sed "s/^Depends: //;s/| / /;;s/, / /g" | xargs -r dpkg -l 2>/dev/null | grep "^ii" | awk '{print $2}' | xargs -r aptitude unmarkauto
Je nach Einstellung könnte man das auch noch mit den "Recommends" machen.
Gruß,
Daniel
-
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Re: apt-get autoremove
Ein sehr anregender Thread!
Optimiert könnte es so aussehen:
oder gleich eine Shell-Funktion (.bash_aliases):
e g ap sind hardlinks
~R ist rdepends AND ~i installed
Meta-Packages lassen sich z.B. so finden:
-der_linux_cowboy
Optimiert könnte es so aussehen:
Code: Alles auswählen
dpkg -l `dpkg -s PAKET | { g ^Depends || e no_deps; } | tr ' ,' '\n' | g ^[[:lower:]]` | awk '/^ii/{print $2}' | xargs ap unmarkauto
Code: Alles auswählen
# set Package Depends
Fsetdeps ()
{
[ -z "$2" ] && e "usage: Fsetdeps st[atus]|ma[nual]|au[tomatic] Package" && return
local PAKETS=`dpkg -s $2 | { g ^Depends || e no_deps; } | tr ' ,' '\n' | g ^[[:lower:]] | tr '\n' ' '`
[ "$PAKETS" = "no_deps " ] && e No Depends! && return
case $1 in
st*) ap search "~R$2 ~i" | tee >(wc -l) ;;
ma*) ap unmarkauto $PAKETS ;;
au*) ap markauto $PAKETS ;;
esac
}
~R ist rdepends AND ~i installed
Meta-Packages lassen sich z.B. so finden:
Code: Alles auswählen
debtags search role::metapackage | cut -d\ -f1 | xargs dpkg -l | tail -n +6 | sort
-der_linux_cowboy --- Besser werden! ... f*** w$$