Tại sao loại bỏ Iceweasel nuke Gnome?


19

Tôi có một máy ảo Debian 7 cũ hơn để thử nghiệm. Tôi đang cố gắng giảm kích thước dấu chân VM vì tôi sắp hết dung lượng. Tôi muốn xóa Iceweasel vì tôi không thực sự sử dụng nó và tôi thường có thể sử dụng được wget. Khi tôi chạy, Aptnó cũng nói với tôi rằng nó cũng đang xóa 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.
...

Tại sao loại bỏ Iceweasel nuke Gnome?


Sau khi loại bỏ Iceweasel và sau đó thực hiện autocleanautoremovevượt qua, điều này đã được trình bày. Tôi khá chắc chắn VM này đã bị vô dụng.

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.

Xem Askubfox.com/questions/5636/ đá để biết các lệnh giúp bạn thực hiện điều đó.
phk

Cảm ơn PHK. Aptcho tôi biết sự phụ thuộc Tôi thú vị khi biết tại sao sự phụ thuộc tồn tại. Tôi nghi ngờ aptitudesẽ cho tôi biết tại sao một sự phụ thuộc tồn tại.

1
Ồ OK, nhưng nếu ví dụ đó là sự phụ thuộc trực tiếp của giả sử debian-desktop(tôi biết đây là Debian chứ không phải Ubuntu mà chỉ để tranh luận) giữa các trình duyệt khác thì nó sẽ cho bạn biết rằng ai đó nghĩ rằng trình duyệt web là điều cần thiết cho máy tính để bàn đồ họa.
phk

(và các trick trong trường hợp đó, là bạn phải đi xuống một lớp, chọn phụ thuộc nhiệm vụ-gnome-desktop mà bạn thực sự muốn, và apt-marknhững người như cài đặt bằng tay trước khi bạn loại bỏ nhiệm vụ-gnome-desktop). Nếu bạn đã sử dụng debian một thời gian, có thể điều này thật đáng ngạc nhiên vì ban đầu debian không sử dụng các siêu dữ liệu đơn lẻ này để thực hiện "các nhiệm vụ" của chúng.
sourcejedi

1
Có lẽ đó là vì *? Tôi đã phá hủy gnome của tôi với apt-get remove wine*trước đây.
Rio6

Câu trả lời:


23

Như những người khác đã giải thích, các gói meta máy tính để bàn - chẳng hạn như task-desktophoặc gnome-core- cài đặt trình duyệt web hiện nay (tốt, thực sự khá lâu). Bạn có thể mong đợi gnome-corecài đặt Epiphany hoặc ít nhất là cho phép nó thay thế cho Iceweasel, nhưng không vì lý do bảo mật . Các gnome-coremô tả đề cập đến sự phụ thuộc trình duyệt:

Đây là các thành phần cốt lõi của môi trường Bàn làm việc Gnome, một máy tính để bàn trực quan và hấp dẫn.

Gói meta này phụ thuộc vào một bộ chương trình cơ bản, bao gồm trình quản lý tệp, trình xem ảnh, trình duyệt web, trình phát video và các công cụ khác.

Nó chứa các mô-đun lõi Lõi chính thức của máy tính để bàn Gnome.

Vì vậy, lý do nó phụ thuộc vào Iceweasel là hai lần:

  • nó được định nghĩa là tùy thuộc vào trình duyệt web;
  • trình duyệt hợp lý duy nhất phụ thuộc vào máy tính để bàn Gnome là Iceweasel, vì Epiphany không có đủ hỗ trợ bảo mật và Chromium không tích hợp vào máy tính để bàn đúng cách.

Đã từng có một sự phụ thuộc thay thế vào gnome-www-browser, nhưng điều đó đã bị xóa vào năm 2011 (mà không cần giải thích theo như tôi có thể nói). Có thể đáng để yêu cầu các nhà bảo trì giới thiệu lại, nhưng nó sẽ không giúp bạn cài đặt gnome-coremà không có trình duyệt.

Các cơ chế dẫn đến Gnome bị xóa nếu bạn loại bỏ Iceweasel tương đối đơn giản. Khi bạn yêu cầu apt-getlàm một cái gì đó, nó thực sự rất khó để làm điều đó - vì vậy việc gỡ bỏ một gói sẽ loại bỏ bất cứ thứ gì phụ thuộc vào nó (sau khi hỏi bạn). gnome-corephụ thuộc iceweaselgnomephụ thuộc vào gnome-core, vì vậy

apt-get remove iceweasel

cũng loại bỏ gnome-coregnome.

Việc xóa các gói meta này khiến tất cả các gói mà chúng phụ thuộc trở thành ứng cử viên để loại bỏ bằng cách sử dụng autoremove, vì hệ thống đóng gói hiện coi chúng là không cần thiết (không có gói nào được đánh dấu là không được cài đặt tự động phụ thuộc vào chúng). Hệ thống đóng gói cho rằng người dùng thực sự muốn các gói đó được đánh dấu là đã cài đặt rõ ràng và mọi thứ khác chỉ được cài đặt để hỗ trợ các gói đó. Vì vậy, nếu bất cứ điều gì loại bỏ gnomehoặc gnome-core, trong lần chạy tiếp theo apt-get autoremove, bạn sẽ thấy rằng nhiều gói được cài đặt là không cần thiết ...

Có một vài cách giải quyết:

  • nếu bạn muốn tiếp tục gnome-corecài đặt mà không có Iceweasel, hãy sử dụng equivshoặc apt-holepunch(cách sau dễ sử dụng hơn nhiều trong trường hợp này, cảm ơn Joshua !) để xây dựng iceweaselgói giả và cài đặt cùng với gnome-core;
  • đi qua tất cả các gói gnomegnome-corephụ thuộc vào, quyết định của họ, bạn muốn sử dụng và / hoặc nhu cầu ( ví dụ như gdm3 , gnome-session, nautilus...), và đánh dấu chúng bằng cách sử

    apt-mark manual ...
    

    hoặc sử dụng aptitudeGUI của (sẽ dễ dàng hơn rất nhiều).

Trong mọi trường hợp, bạn không thể phá vỡ VM của mình bằng cách xóa các gói trừ khi bạn bắt đầu xóa các gói thiết yếu (và apt-getsẽ phàn nàn lớn trước khi cho phép bạn làm như vậy) hoặc kernel. Cuối cùng, bạn có thể phải đăng nhập vào bảng điều khiển văn bản, nhưng bạn có thể sửa mọi thứ từ đó cũng như từ trình giả lập thiết bị đầu cuối X.


Câu trả lời chính xác! Chỉ cần tự hỏi, gnome-www-browsergói "ảo" là gì?
phk

2
@phk Đó là một câu hỏi tuyệt vời, sự phụ thuộc thay thế gnome-www-browserđã bị xóa vào năm 2011 nhưng nó vẫn được cung cấp bởi Chromium, Epiphany, Iceweasel và Firefox ... (Và Cinnamon vẫn sử dụng nó.)
Stephen Kitt

1
Ngẫu nhiên, đây là một cái gì đó thực hiện công việc loại trừ một gói khỏi sự phụ thuộc với công cụ xây dựng phụ thuộc vào đẳng thức: mail-archive.com/debian-bugs-dist@lists.debian.org/msg900702/ tựa
Joshua

Cảm ơn Stephen. Tôi không có ý chia tóc, bit tại sao nó là một phụ thuộc? Về "nó được định nghĩa là tùy thuộc vào trình duyệt web" , tôi không thể hiểu được lý do tại sao sự phụ thuộc tồn tại. Đó thực sự là câu hỏi của tôi. Xin lỗi vì sự nhầm lẫn.

Ngoài ra, bạn đã đúng về "... bạn không thể phá vỡ VM của mình bằng cách xóa [các gói cụ thể] này" . Sau khi khởi động lại, tôi nhận được màn hình đăng nhập không phải GUI và tôi đã có thể SSH vào hộp. Tôi hài lòng với Terminal / Command Line, vì vậy rõ ràng nó không bị hỏng hoặc vô dụng đối với tôi. Những người khác có thể cần một máy tính để bàn, tuy nhiên. Tôi sẽ không muốn mẹ hoặc cha tôi cố gắng sử dụng máy.

2

Các tác vụ được chọn tại thời điểm cài đặt ( tasksel) và không có tác vụ riêng cho "trình duyệt web" ... Về lý thuyết, nó có thể dành riêng cho máy tính để bàn, như trong KDE3 ngày. Mọi người mong đợi máy tính để bàn mặc định sẽ bao gồm một trình duyệt web, nếu không có gì khác để nhận trợ giúp trên hệ thống mới của họ :). Do đó, tác vụ máy tính để bàn bao gồm một trình duyệt web mặc định, QED.

Ngoại trừ ý kiến ​​câu hỏi của chúng tôi là sai. task-gnome-desktop không yêu cầu iceweasel. Nó chỉ đề nghị nó.

(Câu trả lời upvoted nhất cho thấy có một mối quan hệ gián tiếp mà không cần nó. Trên khuôn mặt của nó, có cũng có thể có chỗ cho sự cải tiến trong cấu trúc phụ thuộc này. Tôi nghĩ rằng những điều sau đây vẫn còn hiệu lực tuy nhiên.)

Bạn đã bỏ lỡ một cái gì đó rất quan trọng.

Các gói sau đã được cài đặt tự động và không còn cần thiết: hyphen-en-us libfs6 task-desktop

Hóa ra (sau khi gỡ bỏ iceweasel?) Bạn không có gói nào được cài đặt phụ thuộc hoặc được khuyến nghị task-desktop. Nó cũng không được đánh dấu là cài đặt bằng tay. Vì vậy, tất nhiên apt-get autoremoveloại bỏ nó.

Dấu hỏi vì nhìn vào cơ sở dữ liệu gói Debian, tôi không thấy iceweasel phụ thuộc hay đề xuất như thế nào task-desktop. Nó có thể đã được tự động tháo rời.

Cẩn thận khi sử dụng tự động loại bỏ. Nếu tự động xóa cho biết toàn bộ máy tính để bàn của bạn được coi là không cần thiết, thì hãy hủy nó và đánh dấu màn hình của bạn là cài đặt thủ công ( apt-mark).

VM không vô dụng; bạn có thể đăng nhập vào giao diện điều khiển và chạy apt-get install task-gnome-desktop. Nếu bạn không muốn một gói được đề nghịnhư nước đá, bạn có thể thử sử dụng apt-get install task-gnome-desktop iceweasel-.

Cũng có thể bỏ đánh dấu các phụ thuộc được đề xuất bằng cách sử dụng synaptic(GUI) hoặc aptitude(TUI). (Lưu ý rằng aptitude tự động xóa theo mặc định, trong khi synaptic có một danh sách các gói không còn cần thiết bạn có thể tìm thấy ở đâu đó). Đáng buồn thay, IME synaptic có thể khá lộn xộn và lag hiện nay nếu bạn cố gắng làm những thứ này. Xem https://askubfox.com/questions/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get


2

Bạn thực sự không nên sử dụng * regexes để xóa mọi thứ-- và tôi biết điều đó từ kinh nghiệm. Sử dụng * xóa mọi gói có tên chứa "iceweasel". Nếu bạn muốn xóa iceweasel, hãy xóa gói iceweasel (không có dấu hoa thị) và xóa nội dung của thư mục iceweasel. Tôi không biết gói "iceweasel" vi phạm là gì, nó có thể là bất kỳ sự phụ thuộc ngược nào hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg. Bất kỳ trong số đó. Một cái nhìn nhanh và tự động chạy xorg/ x11một mình sẽ phá vỡ 99% GUI * Nix. Để tìm hiểu những gói iceweasel bạn đã xóa grep iceweasel /var/log/apt/history.logvà tìm dòng bắt đầu "Remove:"trong phần Commandline: apt-get remove iceweasel* Nếu bạn vẫn tò mò đăng kết quả và tôi (hoặc ai đó) có thể tìm ra các vấn đề phụ thuộc chính xác. :)

Tất nhiên, một vấn đề phụ thuộc như thế này là phi logic và sự tồn tại của nó là một lỗi của những người đã tạo ra siêu dữ liệu cho .deb của bạn. Tôi sẽ tìm ra vấn đề chính xác trước khi nộp báo cáo lỗi. Do đó câu trả lời của tôi ở trên. : D


Cảm ơn trudgemank. Tôi quan tâm nhiều hơn tại sao sự phụ thuộc tồn tại; không phải những gì phụ thuộc là.

Nó không nên tồn tại. Sự tồn tại của nó là một lỗi của những người đã tạo ra siêu dữ liệu cho .deb của bạn, điều này không hoàn hảo. Có những hậu quả mà họ không thấy trước.
trudgemank

Bạn phải xóa gói "iceweasel" không phải là một phần của siêu dữ liệu iceweasel. Có thể một cài đặt theo mặc định.
trudgemank

Trudgemank - Nếu bạn trả lời câu hỏi tôi đã hỏi trong câu trả lời của bạn chứ không phải là các bình luận, thì tôi sẽ rất vui khi chấp nhận câu trả lời. Để đầy đủ, đây là câu trả lời mà tôi tin là chính xác: "... [đó] là một lỗi của những người đã tạo siêu dữ liệu cho .deb của bạn" . Xin lỗi để chia tóc; đó thực sự là mục quan tâm đối với tôi. Với thông tin trong tay, tôi có thể gửi báo cáo lỗi.

Không sao, miễn là tôi giúp tôi không cần xác nhận chính thức. Nhưng bạn không phải là vấn đề phụ thuộc cụ thể, bạn thực sự nên làm nếu bạn muốn nộp báo cáo lỗi.
trudgemank
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.