Iceweasel を削除すると GNOME が壊れるのはなぜですか?

Iceweasel を削除すると GNOME が壊れるのはなぜですか?

テスト用に古い Debian 7 VM を持っています。容量が不足しているので、VM のフットプリント サイズを減らそうとしています。Iceweasel はあまり使用しないので削除したいのですが、通常は で十分ですwget。実行すると、AptGNOME も削除されるというメッセージが表示されました。

$ 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.
...

Iceweasel を削除すると GNOME が壊れるのはなぜですか?


autocleanIceweasel を削除してandパスを実行した後autoremove、これが表示されました。この VM は使用できなくなったと確信しています。

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.

答え1

他の人が説明しているように、デスクトップメタパッケージ(task-desktopまたはgnome-core— 最近ではウェブブラウザをインストールすることは一般的です(実際、かなり前から)。Epiphanygnome-coreをインストールするか、少なくともIceweaselの代わりに使用することを想定しているかもしれませんが、セキュリティ上の理由からそうではない説明gnome-coreにはブラウザの依存関係について記載されています。

これらは、直感的で魅力的なデスクトップである GNOME デスクトップ環境のコア コンポーネントです。

このメタパッケージは、ファイル マネージャー、画像ビューアー、Web ブラウザー、ビデオ プレーヤー、その他のツールを含む基本的なプログラム セットに依存します。

GNOME デスクトップの公式「コア」モジュールが含まれています。

Iceweasel に依存する理由は 2 つあります。

  • Web ブラウザに依存するものとして定義されます。
  • GNOME デスクトップに頼る唯一の合理的なブラウザは Iceweasel です。これは、Epiphany には十分なセキュリティ サポートがなく、Chromium はデスクトップに適切に統合されないためです。

以前は への代替依存関係がありましたgnome-www-browserが、それは2011年に削除gnome-core(私が知る限り、説明はありません)。メンテナーに再導入を依頼する価値はあるかもしれませんが、ブラウザなしでインストールするのには役立ちません。

Iceweasel を削除すると GNOME も削除される仕組みは比較的単純です。apt-get何かを実行するように要求すると、GNOME はそれを実行しようと全力を尽くします。つまり、パッケージを削除すると、そのパッケージに依存するものもすべて削除されます (要求した後)。gnome-coreに依存しiceweaselgnomeに依存するgnome-coreので、

apt-get remove iceweasel

gnome-coreおよびも削除されますgnome

これらのメタパッケージを削除すると、それらが依存するすべてのパッケージが を使用した削除の候補になりますautoremove。これは、パッケージング システムがそれらを不要と見なすためです (自動的にインストールされないとマークされたパッケージは、それらに依存しません)。パッケージング システムは、明示的にインストールされるとマークされたパッケージをユーザーが本当に必要としていると見なし、それ以外のものはそれらのパッケージをサポートするためだけにインストールされます。そのため、何かが または を削除するgnomegnome-core、次に を実行するときにapt-get autoremove、インストールされているパッケージの多くが不要であると見なします...

回避策はいくつかあります。

  • gnome-coreIceweaselなしでインストールしたままにしたい場合は、equivsまたはapt-holepunch(後者の方がこの場合はずっと使いやすいです。ジョシュア!) を使用して偽のパッケージを作成し、それを;iceweaselとともにインストールします。gnome-core

  • すべてのパッケージをチェックしてgnomeそしてgnome-coreどれを使用するか、またはどれが必要かを決定します(例えば gdm3、、gnome-session... nautilus)を使用してマークします。

      apt-mark manual ...
    

    またはaptitudeの GUI を使用します (こちらの方がはるかに簡単です)。

いずれにせよ、壊す必須パッケージの削除を開始しない限り (apt-get削除を許可する前に大声で文句を言うでしょう)、パッケージを削除して VM をシャットダウンします。テキスト コンソールにログインしなければならない場合もありますが、X ターミナル エミュレーターからの場合と同様に、そこからも問題を修正できます。

答え2

タスクはインストール時に選択され ( tasksel)、「Web ブラウザ」用の個別のタスクはありません... 理論的には、KDE3 の時代と同様に、デスクトップ固有のものになる可能性があります。 ユーザーは、新しいシステムでヘルプを得るために、デフォルトのデスクトップに Web ブラウザが含まれていることを期待しています :)。 したがって、デスクトップ タスクには、デフォルトの Web ブラウザである QED が含まれています。

ただし、私たちの質問のコメントは間違っています。task-gnome-desktop は iceweasel を必要としません。推奨するだけです。

(最も賛成された回答は間接的な関係があることを示しているが、する一見すると、この依存関係の構造には改善の余地があるかもしれない。考えるただし、以下は依然として有効です。

あなたは非常に重要なことを見逃しました。

以下のパッケージは自動的にインストールされ、不要になりました: hyphen-en-us libfs6 task-desktop

結局、(iceweasel を削除した後?) に依存するパッケージも推奨されるパッケージもインストールされていなかったことがわかりましたtask-desktop。また、手動でインストールされたものとしてマークされていませんでした。したがって、当然、apt-get autoremove削除されます。

疑問符が付いているのは、Debian パッケージ データベースを見ると、iceweasel が に依存したり、 を推奨したりしているかどうかがわからないためですtask-desktop。すでに自動削除可能になっている可能性があります。

自動削除を使用する場合は注意してください。自動削除でデスクトップ全体が不要であると判断された場合は、それをキャンセルし、デスクトップを手動でインストールしたものとしてマークします ( apt-mark)。

VMは役に立たないわけではありません。コンソールにログインして実行することができますapt-get install task-gnome-desktop。推奨パッケージが不要な場合はアイスウィーゼルのように、 を使ってみることができますapt-get install task-gnome-desktop iceweasel-

synapticまた、 (GUI) または(TUI)を使用して、推奨される依存関係のマークを外すこともできますaptitude。(aptitude はデフォルトで自動的に削除しますが、synaptic には不要になったパッケージのリストがあり、どこかで見つけることができます)。残念ながら、IME synaptic は、最近、この種のことをしようとすると、かなり不格好で遅延することがあります。https://askubuntu.com/questions/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get

答え3

あなた本当に* 正規表現を使用して削除すべきではありません。これは経験からわかっています。* を使用すると、名前に「iceweasel」を含むすべてのパッケージが削除されます。iceweasel を削除したい場合は、iceweasel パッケージ (アスタリスクなし) を削除し、iceweasel フォルダーの内容を削除します。問題のある「iceweasel」パッケージが何であるかはわかりませんが、 の逆依存関係である可能性がありますhyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg。これらのいずれかです。ざっと見て、xorg/を自動削​​除するx11だけで、*Nix GUI の 99% が壊れます。削除した iceweasel パッケージを確認するには、の下grep iceweasel /var/log/apt/history.logで で始まる行を探します。 それでも興味がある場合は、結果を投稿してください。私 (または他の誰か) が依存関係の問題を正確に把握できます。:)"Remove:"Commandline: apt-get remove iceweasel*

このような依存関係の問題は、もちろん非論理的であり、その存在は、.deb のメタデータを作成した人々のミスです。ただし、バグ レポートを提出する前に、正確な問題を把握することをお勧めします。そのため、上記の回答をしています。:D

関連情報