Dlaczego usunięcie Iceweasel nuke GNOME?

19

Mam do testowania starszą maszynę wirtualną Debiana 7. Próbuję zmniejszyć rozmiar śladu maszyny wirtualnej, ponieważ brakuje mi miejsca. Chciałem usunąć Iceweasel, ponieważ tak naprawdę go nie używam i zwykle mogę sobie z tym poradzić wget. Kiedy uruchomiłem Apt, powiedział mi, że również usuwa GNOME:

$ sudo apt-get remove iceweasel*
...

The following packages were automatically installed and are no longer required:
  hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils
  xinit xorg
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  icedove iceowl-extension
Suggested packages:
  apparmor calendar-google-provider
The following packages will be REMOVED:
  gnome gnome-core iceweasel task-gnome-desktop
The following NEW packages will be installed:
  icedove iceowl-extension
0 upgraded, 2 newly installed, 4 to remove and 0 not upgraded.
Need to get 44.7 MB of archives.
After this operation, 100 MB of additional disk space will be used.
...

Dlaczego usunięcie Iceweasel nuke GNOME?


Po usunięciu Iceweasel, a następnie wykonaniu autocleani autoremovepass, zostało to przedstawione. Jestem całkiem pewien, że ta maszyna wirtualna stała się bezużyteczna.

The following packages will be REMOVED:
  aisleriot ant ant-optional argyll at-spi2-core baobab browser-plugin-gnash
  ca-certificates-java caribou caribou-antler cheese dconf-tools default-jre
  default-jre-headless empathy empathy-common espeak-data file-roller finger
  fonts-cantarell fonts-opensymbol fonts-sil-gentium fonts-sil-gentium-basic
  gcalctool gdebi gdm3 gedit gedit-common gedit-plugins gir1.2-atspi-2.0
  gir1.2-gdata-0.0 gir1.2-gnomekeyring-1.0 gir1.2-goa-1.0 gir1.2-gtop-2.0
  gir1.2-gucharmap-2.90 gir1.2-javascriptcoregtk-3.0 gir1.2-rb-3.0
  gir1.2-tracker-0.14 gir1.2-webkit-3.0 gir1.2-wnck-3.0 glchess glines gnash
  gnash-common gnect gnibbles gnobots2 gnome-backgrounds gnome-color-manager
  gnome-dictionary gnome-disk-utility gnome-documents gnome-font-viewer
  gnome-games gnome-games-data gnome-games-extra-data gnome-icon-theme-extras
  gnome-mag gnome-nettool gnome-orca gnome-packagekit gnome-packagekit-data
  gnome-screenshot gnome-shell-extensions gnome-sudoku gnome-system-log
  gnome-tweak-tool gnome-video-effects gnomine gnotravex gnotski gnuchess
  gnuchess-book grilo-plugins-0.1 gtali gucharmap guile-2.0-libs
  hamster-applet hyphen-en-us iagno icedtea-6-jre-cacao icedtea-6-jre-jamvm
  icedtea-netx icedtea-netx-common inkscape iputils-tracepath java-common
  libapache-pom-java libatk-adaptor libatk-adaptor-data libatk-bridge2.0-0
  libatk-wrapper-java libatk-wrapper-java-jni libatspi1.0-0 libatspi2.0-0
  libavahi-gobject0 libavahi-ui-gtk3-0 libblas3gf
  libboost-program-options1.49.0 libboost-thread1.49.0 libcaribou-gtk-module
  libcaribou-gtk3-module libcmis-0.2-0 libcolamd2.7.1 libcolorblind0
  libcommons-beanutils-java libcommons-collections3-java
  libcommons-compress-java libcommons-digester-java libcommons-logging-java
  libcommons-parent-java libdb-java libdb-je-java libdb5.1-java
  libdb5.1-java-jni libdee-1.0-4 libdiscid0 libdmapsharing-3.0-2 libdotconf1.0
  libespeak1 libexttextcat-data libexttextcat0 libfs6 libgail-common
  libgdict-1.0-6 libgdict-common libgdu-gtk0 libgeocode-glib0 libgexiv2-1
  libgnome-mag2 libgpod-common libgpod4 libgraphite2-2.0.0 libgrilo-0.1-0
  libgtk-vnc-2.0-0 libgupnp-av-1.0-2 libgupnp-dlna-1.0-2 libgvnc-1.0-0
  libhsqldb-java libhyphen0 libicc2 libicu4j-java libimdi0 libjaxp1.3-java
  libjline-java libjtidy-java liblinear-tools liblinear1 liblouis-data
  liblouis2 liblucene2-java libmagick++5 libminiupnpc5 libmtp-common
  libmtp-runtime libmtp9 libmythes-1.2-0 libnatpmp1 libplot2c2 libpstoedit0c2a
  libraw5 libregexp-java libreoffice libreoffice-base libreoffice-base-core
  libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw
  libreoffice-emailmerge libreoffice-evolution libreoffice-filter-binfilter
  libreoffice-filter-mobiledev libreoffice-gnome libreoffice-gtk
  libreoffice-help-en-us libreoffice-impress libreoffice-java-common
  libreoffice-math libreoffice-report-builder-bin libreoffice-style-galaxy
  libreoffice-style-tango libreoffice-writer librhythmbox-core6 libsctp1
  libservlet2.5-java libsofia-sip-ua-glib3 libsofia-sip-ua0 libsonic0
  libspeechd2 libstlport4.6ldbl libsvm-tools libtelepathy-farstream2
  libunique-3.0-0 libvisio-0.0-0 libwnck-common libwnck22 libwpd-0.9-9
  libwpg-0.2-2 libwps-0.2-2 libxalan2-java libxerces2-java
  libxml-commons-external-java libxml-commons-resolver1.1-java libxss1
  libxz-java lightsoff lksctp-tools lp-solve mahjongg media-player-info
  minissdpd mobile-broadband-provider-info mythes-en-us network-manager-gnome
  nmap openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib openjdk-7-jre
  openjdk-7-jre-headless p7zip-full perlmagick pstoedit python-brlapi
  python-louis python-mako python-markupsafe python-pyatspi python-pyatspi2
  python-speechd python-uno python-wnck python-zeitgeist quadrapassel rdesktop
  rhythmbox rhythmbox-data rhythmbox-plugin-cdrecorder rhythmbox-plugins rygel
  rygel-playbin rygel-preferences rygel-tracker seahorse shotwell
  shotwell-common simple-scan sound-juicer sound-theme-freedesktop
  speech-dispatcher swell-foop task-desktop telepathy-gabble telepathy-idle
  telepathy-logger telepathy-rakia telepathy-salut transmission-common
  transmission-gtk ttf-liberation ttf-sil-gentium-basic tzdata-java uno-libs3
  unoconv ure vinagre vino x11-apps x11-session-utils x11-xfs-utils xbrlapi
  xdg-user-dirs-gtk xfonts-mathml xinit xorg xul-ext-adblock-plus
  zeitgeist-core
0 upgraded, 0 newly installed, 278 to remove and 0 not upgraded.

źródło
Zobacz askubuntu.com/questions/5636/... na polecenia, które pomogą Ci w tym.
phk
Dzięki PHK. Aptmówi mi o zależnościach. Interesuje mnie to, dlaczego istnieją zależności. Wątpię, aptitudeczy powie mi, dlaczego istnieje zależność.
1
No dobrze, ale jeśli np. debian-desktopByłaby to bezpośrednia zależność powiedzmy (wiem, że to Debian, a nie Ubuntu, ale tylko ze względu na argumenty) między innymi przeglądarkami, to powiedziałoby ci, że ktoś myślał, że przeglądarka internetowa jest niezbędna dla pulpit graficzny.
phk
(i sztuczka w tym przypadku: musisz zejść o jedną warstwę, wybrać zależności zadania-gnome-desktop, które naprawdę chcesz, i apt-markte , które są instalowane ręcznie przed usunięciem zadania-gnome-pulpit). Jeśli używasz Debiana od jakiegoś czasu, jest to zaskakujące, ponieważ debian pierwotnie nie używał tych pojedynczych metapakietów do realizacji swoich „zadań”.
sourcejedi 30.10.16
1
Może to dlatego, że *? Zniszczyłem już mojego gnoma apt-get remove wine*.
Rio6

Odpowiedzi:

23

Jak wyjaśnili inni, meta-pakiety na komputery stacjonarne - takie jak task-desktoplub gnome-core- obecnie instalują przeglądarkę internetową (właściwie od dłuższego czasu). Możesz spodziewać gnome-coresię zainstalowania oprogramowania Epiphany lub przynajmniej zezwolić na to jako alternatywę dla Iceweasel, ale nie robi to ze względów bezpieczeństwa . gnome-coreOpis wspomina zależność przeglądarki:

Są to podstawowe elementy środowiska GNOME Desktop, intuicyjny i atrakcyjny pulpit.

Ten metapakiet zależy od podstawowego zestawu programów, w tym menedżera plików, przeglądarki zdjęć, przeglądarki internetowej, odtwarzacza wideo i innych narzędzi.

Zawiera oficjalne „podstawowe” moduły pulpitu GNOME.

Powody, dla których to zależy od Iceweasel, są dwojakie:

  • jest definiowany jako zależny od przeglądarki internetowej;
  • jedyną rozsądną przeglądarką, na której można polegać na pulpicie GNOME, jest Iceweasel, ponieważ Epiphany nie ma wystarczającego wsparcia bezpieczeństwa, a Chromium nie integruje się poprawnie z pulpitem.

Kiedyś istniała alternatywna zależność gnome-www-browser, ale została ona usunięta w 2011 roku (bez wyjaśnień, o ile mi wiadomo). Być może warto poprosić opiekunów o ponowne wprowadzenie, ale nie pomogłoby to zainstalować gnome-corebez przeglądarki.

Mechanizmy, które prowadzą do usunięcia GNOME, jeśli usuniesz Iceweasel, są stosunkowo proste. Kiedy poprosisz apt-geto coś, bardzo się stara - dlatego usunięcie pakietu usuwa wszystko, co od niego zależy (po zapytaniu). gnome-corezależy iceweaseli gnomezależy od gnome-core, więc

apt-get remove iceweasel

usuwa również gnome-corei gnome.

Usunięcie tych meta-pakietów powoduje, że wszystkie pakiety, na których polegają, stają się kandydatami do usunięcia autoremove, ponieważ system pakowania uważa je teraz za niepotrzebne (nie zależy od nich żaden pakiet oznaczony jako niezainstalowany automatycznie). System pakowania uważa, że ​​użytkownik naprawdę chce tych pakietów, które są wyraźnie oznaczone jako zainstalowane, a wszystko inne jest instalowane tylko w celu obsługi tych pakietów. Więc jeśli coś usunie gnomelub gnome-coreprzy następnym uruchomieniu apt-get autoremoveuzna, że ​​wiele zainstalowanych pakietów jest niepotrzebnych ...

Istnieje kilka obejść:

  • jeśli chcesz pozostać gnome-corezainstalowany bez Iceweasel, użyj equivslub apt-holepunch(ten drugi jest znacznie łatwiejszy w użyciu w tym przypadku, dzięki Joshua !), aby zbudować fałszywy iceweaselpakiet i zainstalować go wraz z gnome-core;
  • przejść przez wszystkie pakiety, które gnomei gnome-corezależą, zdecydować, które z nich chcesz używać i / lub konieczność ( np gdm3 , gnome-session, nautilus...), oraz oznaczyć je za pomocą

    apt-mark manual ...
    

    lub używając aptitudeGUI (co będzie znacznie łatwiejsze).

W każdym razie nie możesz złamać maszyny wirtualnej, usuwając pakiety, chyba że zaczniesz usuwać niezbędne pakiety (i apt-getgłośno narzekasz, zanim to zrobisz) lub jądro. Może się zdarzyć, że będziesz musiał zalogować się do konsoli tekstowej, ale możesz to naprawić zarówno z poziomu emulatora terminala X.

Stephen Kitt
źródło
Świetna odpowiedź! Zastanawiam się, o co w takim razie chodzi o gnome-www-browserpakiet „wirtualny”?
phk
2
@phk To doskonałe pytanie, alternatywna zależność od gnome-www-browserzostała usunięta w 2011 roku, ale nadal zapewnia ją Chromium, Objawienie Pańskie, Iceweasel i Firefox ... (I nadal używa tego Cynamon.)
Stephen Kitt
1
Nawiasem mówiąc, tutaj jest coś, co wykonuje zadanie wykluczenia pakietu z zależności bez build-env zależnego od equivs: mail-archive.com/[email protected]/msg900702/…
Joshua
Dzięki Stephen. Nie chcę dzielić włosów, ale dlaczego to zależność? Jeśli chodzi o „jest to zdefiniowane jako zależne od przeglądarki internetowej” , nie mogę się zastanowić, dlaczego ta zależność istnieje. To naprawdę moje pytanie. Przepraszam za zamieszanie.
Ponadto masz rację co do „... nie możesz złamać swojej maszyny wirtualnej poprzez usunięcie [tych konkretnych] pakietów” . Po ponownym uruchomieniu dostałem ekran logowania bez GUI i byłem w stanie SSH do skrzynki. Jestem zadowolony z terminalu / wiersza poleceń, więc nie jest dla mnie zepsuty ani bezużyteczny. Inni mogą jednak potrzebować pulpitu. Nie chciałbym, żeby moja matka lub ojciec próbowali korzystać z maszyny.
2

Zadania są wybierane w czasie instalacji ( tasksel) i nie ma osobnego zadania dla „przeglądarki internetowej” ... Teoretycznie może być specyficzne dla komputera, jak w dniach KDE3. Ludzie oczekują, że domyślny pulpit zawiera przeglądarkę internetową, jeśli nic więcej nie uzyska pomocy w nowym systemie :). Dlatego zadanie pulpitu obejmuje domyślną przeglądarkę internetową QED.

Z wyjątkiem tego, że nasze pytania są błędne. task-gnome-desktop nie wymaga iceweasel. To tylko poleca.

(Najbardziej pozytywna odpowiedź wskazuje, że istnieje pośredni związek, który tego wymaga. Na pierwszy rzut oka może być miejsce na poprawę w tej strukturze zależności. Myślę jednak, że poniższe informacje są nadal aktualne).

Przegapiłeś coś bardzo ważnego.

Następujące pakiety zostały automatycznie zainstalowane i nie są już wymagane: hyphen-en-us libfs6 task-desktop

Okazuje się (po usunięciu iceweasel?) Nie zainstalowałeś żadnych pakietów, które albo zależały, albo były zalecane task-desktop. Nie został też oznaczony jako zainstalowany ręcznie. Więc oczywiście apt-get autoremoveto usuwa.

Znak zapytania, ponieważ patrząc na bazę danych pakietów Debiana, nie widzę, jak iceweasel zależy od zaleceń task-desktop. Mogło już być automatycznie usuwane.

Zachowaj ostrożność podczas korzystania z automatycznego usuwania. Jeśli funkcja automatycznego usuwania mówi, że cały pulpit jest uważany za niepotrzebny, anuluj go i oznacz pulpit jako zainstalowany ręcznie ( apt-mark).

VM nie jest bezużyteczne; możesz zalogować się do konsoli i uruchomić apt-get install task-gnome-desktop. Jeśli nie chcesz zalecanego pakietujak iceweasel, możesz spróbować użyć apt-get install task-gnome-desktop iceweasel-.

Możliwe jest również odznaczenie zalecanych zależności za pomocą synaptic(GUI) lub aptitude(TUI). (Zauważ, że aptitude domyślnie automatycznie usuwa, podczas gdy synaptic ma listę niepotrzebnych już pakietów, które możesz gdzieś znaleźć). Niestety, IME synaptic może być obecnie dość niezgrabne i opóźnione, jeśli spróbujesz zrobić coś takiego. Zobacz /ubuntu/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get

sourcejedi
źródło
2

Ty naprawdę nie powinno się używać * regexes usunąć things-- i wiem, że z doświadczenia. Użycie * usuwa każdy pakiet o nazwie zawierającej „iceweasel”. Jeśli chcesz usunąć iceweasel, usuń pakiet iceweasel (bez gwiazdki) i usuń zawartość folderu iceweasel. Nie mam pojęcia, czym jest obrażający pakiet „iceweasel”, może to być dowolna zależność odwrotna hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg. Którykolwiek z nich. Szybki przegląd i autoroving xorg/ x11alone złamałby 99% * GUI Nix. Aby dowiedzieć się, co robią pakiety iceweasel, które usunąłeś, grep iceweasel /var/log/apt/history.logi poszukaj wierszy zaczynających się "Remove:"od „ Commandline: apt-get remove iceweasel* Jeśli nadal jesteś ciekawy, opublikuj wyniki, a ja (lub ktoś inny) mogę dowiedzieć się, jakie dokładnie są problemy z zależnością. :)

Taki problem zależności jest oczywiście nielogiczny, a jego istnienie jest pomyłką osób, które utworzyły metadane pliku .deb. Dokładnie rozwiążę problem przed złożeniem zgłoszenia błędu. Stąd moja odpowiedź powyżej. :RE

trudgemank
źródło
Dzięki trudgemank. Bardziej interesuje mnie, dlaczego istnieje zależność; nie taka jest zależność.
To nie powinno istnieć. Jego istnienie jest pomyłką osób, które utworzyły metadane dla plików .deb, które nie są idealne. Są konsekwencje, których nie przewidują.
trudgemank
Musisz usunąć pakiet „iceweasel”, który nie jest częścią metapakietu iceweasel. Prawdopodobnie jeden zainstalowany domyślnie.
trudgemank 30.10.16
Trudgemank - Jeśli odpowiesz na pytanie, które zadałem w odpowiedzi, a nie w komentarzach, chętnie przyjmę odpowiedź. Dla kompletności, oto odpowiedź, która moim zdaniem jest poprawna: „... [to] jest błąd ze strony ludzi, którzy stworzyli metadane dla twojego .deba” . Przepraszam, że dzielę włosy; to naprawdę mnie zainteresowało. Z dostępnymi informacjami mogę złożyć raport o błędzie.
Wszystko w porządku, dopóki pomagałem, nie potrzebuję oficjalnego potwierdzenia. Ale nie masz szczególnego problemu z zależnościami, naprawdę powinieneś, jeśli chcesz zgłosić błąd.
trudgemank