Mengapa menghapus Iceweasel nuke GNOME?

19

Saya memiliki VM Debian 7 yang lebih lama untuk pengujian. Saya mencoba mengurangi ukuran jejak VM karena saya kehabisan ruang. Saya ingin menghapus Iceweasel karena saya tidak benar-benar menggunakannya, dan saya biasanya bisa bertahan wget. Ketika saya menjalankannya Aptmemberitahu saya itu juga menghapus 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.
...

Mengapa menghapus Iceweasel nuke GNOME?


Setelah menghapus Iceweasel dan kemudian membuat autocleandan autoremovelulus, ini disajikan. Saya cukup yakin VM ini telah dianggap tidak berguna.

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.

sumber
Lihat askubuntu.com/questions/5636/… untuk perintah yang membantu Anda dalam hal itu.
phk
Terima kasih PHK. Aptmemberitahu saya dependensi. Saya menarik mengetahui mengapa ketergantungan itu ada. Saya ragu aptitudeakan memberi tahu saya mengapa ada ketergantungan.
1
Oh OK, tetapi jika misalnya itu adalah ketergantungan langsung dari katakanlah debian-desktop(saya tahu ini adalah Debian dan bukan Ubuntu tetapi hanya demi argumen) di antara browser lain maka itu akan memberitahu Anda bahwa seseorang berpikir bahwa browser web sangat penting untuk desktop grafis.
phk
(dan trik dalam hal ini, adalah Anda harus turun satu layer, pilih dependensi task-gnome-desktop yang sebenarnya Anda inginkan, dan apt-markyang terinstal secara manual sebelum Anda menghapus task-gnome-desktop). Jika Anda telah menggunakan debian untuk sementara waktu, mungkin ini mengejutkan karena debian awalnya tidak menggunakan metapackage tunggal ini untuk mengimplementasikan "tugas" mereka.
sourcejedi
1
Mungkin karena itu *? Saya menghancurkan gnome saya apt-get remove wine*sebelumnya.
Rio6

Jawaban:

23

Seperti yang telah dijelaskan orang lain, paket meta desktop - seperti task-desktopatau gnome-core- instal browser web saat ini (yah, sebenarnya cukup lama). Anda mungkin berharap gnome-coreuntuk menginstal Epiphany, atau setidaknya mengizinkannya sebagai alternatif untuk Iceweasel, tetapi tidak untuk alasan keamanan . The gnome-coreketerangan menyebutkan ketergantungan peramban:

Ini adalah komponen inti dari lingkungan Desktop GNOME, desktop yang intuitif dan menarik.

Paket meta ini tergantung pada serangkaian program dasar, termasuk manajer file, penampil gambar, browser web, pemutar video dan alat lainnya.

Ini berisi modul "inti" resmi dari desktop GNOME.

Jadi alasannya tergantung pada Iceweasel ada dua:

  • itu didefinisikan sebagai tergantung pada browser web;
  • satu-satunya browser yang masuk akal untuk bergantung pada desktop GNOME adalah Iceweasel, karena Epiphany tidak memiliki dukungan keamanan yang cukup, dan Chromium tidak terintegrasi ke dalam desktop dengan benar.

Dulu ada ketergantungan alternatif gnome-www-browser, tapi itu dihapus pada 2011 (tanpa penjelasan sejauh yang saya tahu). Mungkin ada baiknya meminta pengelola untuk mengenalkannya kembali, tetapi itu tidak akan membantu Anda menginstal gnome-coretanpa browser.

Mekanisme yang menyebabkan GNOME dihapus jika Anda menghapus Iceweasel relatif mudah. Ketika Anda meminta apt-getuntuk melakukan sesuatu, itu berusaha sangat keras untuk melakukannya - jadi menghapus paket akan menghapus apa pun yang bergantung padanya (setelah meminta Anda). gnome-coretergantung pada iceweasel, dan gnometergantung pada gnome-core, jadi

apt-get remove iceweasel

juga menghapus gnome-coredan gnome.

Menghapus paket-paket meta ini menyebabkan semua paket yang mereka andalkan menjadi kandidat untuk dihapus menggunakan autoremove, karena sistem pengemasan sekarang menganggapnya tidak perlu (tidak ada paket yang ditandai sebagai tidak diinstal secara otomatis tergantung pada mereka). Sistem pengemasan menganggap bahwa pengguna benar-benar menginginkan paket-paket yang ditandai sebagai diinstal secara eksplisit, dan yang lainnya hanya diinstal untuk mendukung paket-paket itu. Jadi, jika ada yang menghapus gnomeatau gnome-core, saat Anda menjalankan berikutnya apt-get autoremove, itu akan mempertimbangkan bahwa banyak paket yang diinstal tidak diperlukan ...

Ada beberapa solusi:

  • jika Anda ingin tetap gnome-coremenginstal tanpa Iceweasel, gunakan equivsatau apt-holepunch(yang terakhir lebih mudah digunakan dalam kasus ini, terima kasih Joshua !) untuk membangun iceweaselpaket palsu dan menginstalnya bersama gnome-core;
  • pergi melalui semua paket yang gnomedan gnome-coretergantung pada, memutuskan mana dari mereka Anda ingin menggunakan dan / atau kebutuhan ( misalnya gdm3 , gnome-session, nautilus...), dan menandai mereka menggunakan

    apt-mark manual ...
    

    atau menggunakan aptitudeGUI (yang akan jauh lebih mudah).

Bagaimanapun Anda tidak dapat merusak VM Anda dengan menghapus paket kecuali Anda mulai menghapus paket-paket penting (dan apt-getakan dengan keras mengeluh sebelum membiarkan Anda melakukannya), atau kernel. Anda mungkin akhirnya harus masuk ke konsol teks, tetapi Anda dapat memperbaiki hal-hal dari sana juga dari emulator terminal X.

Stephen Kitt
sumber
Jawaban bagus! Hanya ingin tahu, lalu apa gnome-www-browserpaket "virtual" itu?
phk
2
@phk Itu pertanyaan yang sangat bagus, ketergantungan alternatif gnome-www-browsertelah dihapus pada 2011 tetapi masih disediakan oleh Chromium, Epiphany, Iceweasel dan Firefox ... (Dan Cinnamon masih menggunakannya.)
Stephen Kitt
1
Kebetulan, ini adalah sesuatu yang melakukan pekerjaan mengecualikan paket dari dependensi tanpa build-env tergantung dari equivs: mail-archive.com/[email protected]/msg900702/…
Joshua
Stephen terima kasih. Saya tidak bermaksud membelah rambut, tapi mengapa ini ketergantungan? Mengenai "itu didefinisikan sebagai tergantung pada browser web" , saya tidak bisa mengerti mengapa ketergantungan itu ada. Itu benar-benar pertanyaan saya. Maaf bila membingungkan.
Juga, Anda benar tentang "... Anda tidak dapat merusak VM Anda dengan menghapus paket [ini] . " Setelah reboot, saya mendapat layar masuk non-GUI, dan saya bisa memasukkan SSH ke dalam kotak. Saya senang dengan Terminal / Command Line, jadi jelas tidak rusak atau tidak berguna bagi saya. Yang lain mungkin membutuhkan Desktop. Saya tidak ingin ibu atau ayah saya mencoba menggunakan mesin.
2

Tugas dipilih pada waktu instalasi ( tasksel), dan tidak ada tugas yang terpisah untuk "browser web" ... Secara teori, ini bisa khusus untuk desktop, seperti pada hari-hari KDE3. Orang-orang mengharapkan desktop default untuk menyertakan browser web, jika tidak ada yang lain untuk mendapatkan bantuan pada sistem baru mereka :). Oleh karena itu tugas desktop mencakup browser web default, QED.

Kecuali komentar pertanyaan kita salah. task-gnome-desktop tidak memerlukan iceweasel. Itu hanya merekomendasikannya.

(Jawaban yang paling banyak dipilih menunjukkan ada hubungan tidak langsung yang memang membutuhkannya. Di depannya, mungkin ada ruang untuk perbaikan dalam struktur ketergantungan ini. Namun saya pikir yang berikut masih valid.)

Anda melewatkan sesuatu yang sangat penting.

Paket-paket berikut ini secara otomatis diinstal dan tidak lagi diperlukan: hyphen-en-us libfs6 task-desktop

Ternyata (setelah menghapus iceweasel?) Anda tidak memiliki paket yang diinstal yang bergantung pada atau direkomendasikan task-desktop. Juga tidak ditandai sebagai diinstal secara manual. Jadi tentu saja apt-get autoremovemenghapusnya.

Tanda tanya karena melihat pada basis data paket Debian, saya tidak melihat bagaimana iceweasel bergantung atau merekomendasikan task-desktop. Mungkin sudah dilepas secara otomatis.

Berhati-hatilah saat menggunakan penghapusan otomatis. Jika penghapusan otomatis mengatakan seluruh desktop Anda dianggap tidak perlu, maka batalkan dan tandai desktop Anda telah diinstal secara manual ( apt-mark).

VM tidak sia-sia; Anda dapat masuk ke konsol dan menjalankan apt-get install task-gnome-desktop. Jika Anda tidak ingin paket yang disarankanseperti iceweasel, Anda dapat mencoba menggunakannya apt-get install task-gnome-desktop iceweasel-.

Mungkin juga untuk menghapus tanda dependensi yang disarankan dengan menggunakan synaptic(GUI) atau aptitude(TUI). (Perhatikan bahwa aptitude memang menghapus otomatis secara default, sedangkan synaptic memiliki daftar paket yang tidak diperlukan lagi yang dapat Anda temukan di suatu tempat). Sayangnya, IME sinaptik dapat menjadi sangat kikuk dan lamban saat ini jika Anda mencoba melakukan hal-hal semacam ini. Lihat /ubuntu/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get

sourcejedi
sumber
2

Anda benar - benar tidak boleh menggunakan * regex untuk menghapus sesuatu - dan saya tahu itu dari pengalaman. Menggunakan * menghapus setiap paket dengan nama yang mengandung "iceweasel". Jika Anda ingin menghapus iceweasel hapus paket iceweasel (tanpa tanda bintang) dan hapus isi folder iceweasel. Saya tidak tahu apa paket "iceweasel" yang menyinggung itu, bisa jadi itu adalah dependensi sebaliknya hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg. Semua itu. Tampilan cepat dan autoremoving xorg/ x11sendirian akan memecahkan 99% dari * Nix GUI. Untuk mengetahui paket iceweasel apa yang Anda hapus lakukan grep iceweasel /var/log/apt/history.logdan cari baris yang dimulai dengan di "Remove:"bawah Commandline: apt-get remove iceweasel* Jika Anda masih penasaran memposting hasilnya dan saya (atau orang lain) dapat mengetahui masalah dependensi yang tepat. :)

Masalah ketergantungan seperti ini tentu saja tidak masuk akal dan keberadaannya merupakan kesalahan pada orang-orang yang membuat metadata untuk .deb Anda. Saya akan mencari tahu masalah yang sebenarnya sebelum mengajukan laporan bug. Maka jawaban saya di atas. : D

trudgemank
sumber
Terima kasih trudgemank. Saya lebih tertarik pada mengapa ketergantungan itu ada; bukan apa ketergantungannya.
Seharusnya tidak ada. Keberadaannya merupakan kesalahan dari orang-orang yang membuat metadata untuk .deb Anda, yang tidak sempurna. Ada konsekuensi yang tidak mereka perkirakan.
trudgemank
Anda harus menghapus paket "iceweasel" yang bukan bagian dari paket meteweasel. Mungkin satu diinstal secara default.
trudgemankank
Trudgemank - Jika Anda menjawab pertanyaan yang saya tanyakan dalam jawaban Anda alih-alih dari komentar, maka saya akan dengan senang hati menerima jawabannya. Untuk kelengkapan, inilah jawaban yang saya yakini benar: "... [itu] adalah kesalahan orang-orang yang membuat metadata untuk .deb Anda" . Maaf membelah rambut; itu benar-benar barang yang menarik bagi saya. Dengan info yang ada di tangan, saya dapat mengajukan laporan bug.
Tidak apa-apa, selama saya membantu saya tidak perlu penegasan resmi. Tetapi Anda tidak melakukan masalah ketergantungan tertentu, Anda harus melakukannya jika ingin mengajukan laporan bug.
trudgemankank