ทำไมการลบ Iceweasel nuke GNOME


19

ฉันมีรุ่นเก่าของ Debian 7 VM สำหรับการทดสอบ ฉันกำลังพยายามลดขนาดรอยเท้า VM เพราะฉันไม่มีพื้นที่เหลือ ผมอยากจะลบ Iceweasel wgetตั้งแต่ฉันไม่ได้จริงๆใช้มันและฉันมักจะได้รับโดยมี เมื่อฉันวิ่งAptมันก็บอกฉันว่ากำลังลบ 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.
...

ทำไมการลบ Iceweasel nuke GNOME


หลังจากนำ Iceweasel ออกไปแล้วจึงทำautocleanและ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.

ดูaskubuntu.com/questions/5636/…สำหรับคำสั่งเพื่อช่วยคุณในเรื่องนั้น
phk

ขอบคุณ PHK Aptบอกการพึ่งพา ฉันสนใจที่จะรู้ว่าทำไมถึงมีการอ้างอิง ฉันสงสัยaptitudeจะบอกฉันว่าทำไมการอ้างอิงอยู่

1
โอ้ตกลง แต่ถ้าเช่นมันเป็นการพึ่งพาโดยตรงของสมมติว่าdebian-desktop(ฉันรู้ว่านี่คือ Debian และไม่ใช่ Ubuntu แต่เพียงเพื่อการโต้แย้ง) ในเบราว์เซอร์อื่น ๆ จากนั้นก็จะบอกคุณว่ามีคนคิดว่าเว็บเบราว์เซอร์เป็นสิ่งจำเป็นสำหรับ เดสก์ท็อปกราฟิก
phk

(และเคล็ดลับในกรณีนี้คือคุณต้องลงไปหนึ่งเลเยอร์เลือกการพึ่งพาของ task-gnome-desktop ที่คุณต้องการและapt-markที่ติดตั้งด้วยตนเองก่อนที่คุณจะลบ task-gnome-desktop) หากคุณใช้เดเบียนมาระยะหนึ่งอาจเป็นไปได้ว่ามันน่าประหลาดใจเพราะเดเบียนไม่ได้ใช้เมตาแพคเกจเดียวเหล่านี้เพื่อใช้งาน "งาน" ของพวกเขา
sourcejedi

1
อาจเป็นเพราะ*? ฉันทำลายคำพังเพยของฉันapt-get remove wine*มาก่อน
Rio6

คำตอบ:


23

ดังที่คนอื่น ๆ ได้อธิบายไว้เมตาดาต้าแพ็คเกจเดสก์ท็อปเช่นtask-desktopหรือgnome-coreติดตั้งเว็บเบราว์เซอร์ทุกวันนี้ (ดีจริง ๆ แล้วค่อนข้างนาน) คุณอาจคาดหวังgnome-coreในการติดตั้งศักดิ์สิทธิ์หรืออย่างน้อยให้มันเป็นทางเลือกที่ Iceweasel แต่มันไม่ได้สำหรับเหตุผลด้านความปลอดภัย gnome-coreคำอธิบายกล่าวถึงการพึ่งพาเบราว์เซอร์:

นี่เป็นองค์ประกอบหลักของสภาพแวดล้อมเดสก์ท็อป GNOME ซึ่งเป็นเดสก์ท็อปที่ใช้งานง่ายและน่าสนใจ

เมตาแพคเกจนี้ขึ้นอยู่กับชุดโปรแกรมพื้นฐานรวมถึงตัวจัดการไฟล์โปรแกรมดูรูปภาพเว็บเบราว์เซอร์เครื่องเล่นวิดีโอและเครื่องมืออื่น ๆ

ประกอบด้วยโมดูล "แกนหลัก" อย่างเป็นทางการของเดสก์ท็อป GNOME

ดังนั้นเหตุผลที่ขึ้นอยู่กับ Iceweasel คือสองเท่า:

  • มันถูกกำหนดว่าขึ้นอยู่กับเว็บเบราว์เซอร์
  • เบราว์เซอร์ที่มีเหตุผลเพียงอย่างเดียวที่ต้องพึ่งพาเดสก์ท็อป GNOME คือ Iceweasel เนื่องจาก Epiphany ไม่มีการสนับสนุนด้านความปลอดภัยเพียงพอและ Chromium ไม่ได้รวมเข้ากับเดสก์ท็อปอย่างถูกต้อง

เคยมีการพึ่งพาทางเลือกในgnome-www-browserแต่ที่ถูกลบออกในปี 2011 (ไม่มีคำอธิบายเท่าที่ฉันสามารถบอกได้) อาจเป็นการดีที่ขอให้ผู้ดูแลรักษาแนะนำใหม่ แต่จะไม่ช่วยให้คุณติดตั้งได้gnome-coreหากไม่มีเบราว์เซอร์

กลไกที่นำไปสู่ ​​GNOME จะถูกลบออกหากคุณลบ Iceweasel นั้นค่อนข้างตรงไปตรงมา เมื่อคุณขอapt-getให้ทำอะไรบางอย่างมันยากที่จะทำจริงๆ - ดังนั้นการลบแพ็คเกจออกจะเป็นการลบสิ่งที่ขึ้นอยู่กับมัน (หลังจากถามคุณ) gnome-coreขึ้นอยู่กับiceweaselและgnomeขึ้นอยู่กับgnome-coreดังนั้น

apt-get remove iceweasel

ยังเอาและgnome-coregnome

การลบเมตาแพ็คเกจเหล่านี้ทำให้แพ็คเกจทั้งหมดขึ้นอยู่กับการเป็นผู้สมัครเพื่อลบโดยใช้autoremoveเนื่องจากระบบบรรจุภัณฑ์มองว่าไม่จำเป็น (ตอนนี้ไม่มีแพ็คเกจที่ไม่ติดตั้งโดยอัตโนมัติขึ้นอยู่กับพวกเขา) ระบบบรรจุภัณฑ์พิจารณาแล้วว่าผู้ใช้ต้องการแพ็กเกจเหล่านั้นซึ่งถูกทำเครื่องหมายว่าติดตั้งไว้อย่างชัดเจนและมีการติดตั้งสิ่งอื่นเพื่อรองรับแพ็คเกจเหล่านั้นเท่านั้น ดังนั้นหากมีสิ่งใดที่ลบออกgnomeหรือgnome-coreครั้งต่อไปที่คุณเรียกใช้apt-get autoremoveงานจะพิจารณาว่าแพ็คเกจที่ติดตั้งจำนวนมากนั้นไม่จำเป็น ...

มีวิธีแก้ไขปัญหาสองสามประการ:

  • หากคุณต้องการที่จะgnome-coreติดตั้งโดยไม่ต้อง Iceweasel ใช้equivsหรือapt-holepunch(หลังเป็นเรื่องง่ายมากที่จะใช้ในกรณีนี้ขอบคุณJoshua !) เพื่อสร้างiceweaselแพคเกจปลอมและติดตั้งพร้อมกับgnome-core;
  • ไปผ่านทุกแพคเกจที่gnomeและgnome-coreขึ้นอยู่กับการตัดสินใจของพวกเขาซึ่งคุณต้องการใช้และ / หรือจำเป็น ( เช่น gdm3 , gnome-session, nautilus... ), และทำเครื่องหมายพวกเขาโดยใช้

    apt-mark manual ...
    

    หรือใช้aptitudeGUI (ซึ่งจะง่ายกว่ามาก)

ไม่ว่าในกรณีใดคุณไม่สามารถทำลาย VM ของคุณได้โดยการลบแพ็คเกจยกเว้นว่าคุณเริ่มลบแพ็คเกจที่จำเป็น (และapt-getจะส่งเสียงดังก่อนที่จะให้คุณทำเช่นนั้น) หรือเคอร์เนล คุณอาจต้องล็อกอินเข้าสู่คอนโซลข้อความ แต่คุณสามารถแก้ไขสิ่งต่าง ๆ ได้จากที่นั่นเช่นเดียวกับจากเทอร์มินัลอีมูเลเตอร์ X


คำตอบที่ดี! แค่สงสัยว่าgnome-www-browserแพ็คเกจ "virtual" นั้นเกี่ยวกับอะไร?
phk

2
@phk เป็นคำถามที่ยอดเยี่ยมการพึ่งพาตัวเลือกอื่นgnome-www-browserถูกลบออกในปี 2011แต่ยังคงให้บริการโดย Chromium, Epiphany, Iceweasel และ Firefox ... (และ Cinnamon ยังคงใช้อยู่)
Stephen Kitt

1
อนึ่งนี่คือสิ่งที่จะทำงานไม่รวมแพคเกจจากการพึ่งพา w / o การสร้าง env ขึ้นของ equivs: mail-archive.com/debian-bugs-dist@lists.debian.org/msg900702/...
โจชัว

ขอบคุณสตีเฟ่น ฉันไม่ได้ตั้งใจจะแยกผม แต่ทำไมถึงต้องพึ่งพา? เกี่ยวกับ"มันถูกกำหนดว่าขึ้นอยู่กับเว็บเบราว์เซอร์"ฉันไม่เข้าใจเลยว่าทำไมการพึ่งพานั้นถึงมีอยู่ นั่นเป็นคำถามของฉัน ขอโทษสำหรับความสับสน.

นอกจากนี้คุณยังมีสิทธิที่เกี่ยวกับ"... คุณไม่สามารถทำลาย VM ของคุณโดยการลบ [เหล่านี้โดยเฉพาะ] แพคเกจ" หลังจากรีบูตฉันได้รับหน้าจอเข้าสู่ระบบที่ไม่ใช่ GUI และฉันสามารถ SSH ลงในกล่อง ฉันมีความสุขกับ Terminal / Command Line ดังนั้นมันจึงไม่แตกหรือไร้ประโยชน์สำหรับฉัน คนอื่นอาจจำเป็นต้องมีเดสก์ท็อป ฉันไม่ต้องการให้พ่อแม่ของฉันพยายามใช้เครื่อง

2

มีการเลือกงานในเวลาติดตั้ง ( tasksel) และไม่มีงานแยกต่างหากสำหรับ "เว็บเบราว์เซอร์" ... ในทางทฤษฎีมันอาจเป็นงานเฉพาะเดสก์ทอปเช่นเดียวกับใน KDE3 วัน ผู้คนคาดหวังว่าเดสก์ท็อปเริ่มต้นจะรวมเว็บเบราว์เซอร์หากไม่มีสิ่งใดที่จะได้รับความช่วยเหลือเกี่ยวกับระบบใหม่ของพวกเขา :) ดังนั้นงานเดสก์ท็อปจึงมีเว็บเบราว์เซอร์เริ่มต้นคือ QED

ยกเว้นความคิดเห็นคำถามของเราผิด task-gnome-desktop ไม่จำเป็นต้องใช้ iceweasel ขอแนะนำเท่านั้น

(คำตอบ upvoted ส่วนใหญ่บ่งชี้ว่ามีความสัมพันธ์ทางอ้อมซึ่งไม่จำเป็นต้องใช้. บนใบหน้าของมันมีดีอาจจะเป็นห้องสำหรับการปรับปรุงโครงสร้างการพึ่งพานี้. ฉันคิดว่าต่อไปนี้จะยังคงถูกต้อง แต่.)

คุณพลาดบางสิ่งที่สำคัญมาก

แพ็กเกจต่อไปนี้ถูกติดตั้งโดยอัตโนมัติและไม่ต้องการอีกต่อไป: hyphen-en-us libfs6 task-desktop

มันจะเปิดออก (หลังจากลบ iceweasel?) task-desktopคุณได้แพคเกจที่ไม่มีการติดตั้งซึ่งอาจขึ้นอยู่กับหรือแนะนำ ไม่ได้ทำเครื่องหมายว่าติดตั้งด้วยตนเอง ดังนั้นแน่นอนapt-get autoremoveลบมัน

เครื่องหมายคำถามเนื่องจากการดูที่ฐานข้อมูลแพ็คเกจเดเบียนฉันไม่เห็นว่า iceweasel ขึ้นอยู่กับหรือแนะนำtask-desktopอย่างไร มันอาจถูกลบอัตโนมัติแล้ว

ระวังเมื่อใช้การลบอัตโนมัติ หากการลบอัตโนมัติแจ้งว่าเดสก์ท็อปทั้งหมดของคุณไม่จำเป็นให้ยกเลิกและทำเครื่องหมายเดสก์ท็อปของคุณว่าติดตั้งด้วยตนเอง ( apt-mark)

VM ไม่ไร้ประโยชน์ apt-get install task-gnome-desktopคุณสามารถเข้าสู่ระบบคอนโซลและเรียกใช้ หากคุณไม่ต้องการแพ็คเกจที่แนะนำเช่นเดียวกับ iceweaselapt-get install task-gnome-desktop iceweasel-คุณสามารถพยายามที่จะใช้

นอกจากนี้ยังสามารถยกเลิกการทำเครื่องหมายการอ้างอิงที่แนะนำโดยใช้synaptic(GUI) หรือaptitude(TUI) (โปรดทราบว่าความถนัดทำลบอัตโนมัติโดยค่าเริ่มต้นในขณะที่ synaptic มีรายการแพคเกจที่ไม่ต้องการอีกต่อไปที่คุณสามารถหาที่ไหนสักแห่ง) น่าเศร้าที่ทุกวันนี้ IME synaptic ค่อนข้างจะล้าหลังและล้าหลังถ้าคุณพยายามทำสิ่งนี้ ดู/ubuntu/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get


2

คุณจริงๆไม่ควรใช้ regexes * เพื่อลบ things-- และฉันรู้ว่าจากประสบการณ์ การใช้ * จะลบทุกแพ็คเกจด้วยชื่อที่มี "iceweasel" ถ้าคุณต้องการลบ iceweasel ลบแพ็คเกจ iceweasel (ไม่มีเครื่องหมายดอกจัน) และลบเนื้อหาของโฟลเดอร์ iceweasel ผมมีความคิดว่าการกระทำผิดกฎหมาย "iceweasel" hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorgแพคเกจคือไม่มีก็สามารถที่พึ่งพาย้อนกลับของ อะไรก็ได้ การดูอย่างรวดเร็วและการลบอัตโนมัติxorg/ x11เพียงอย่างเดียวจะทำลาย 99% ของ * Nix GUIs หากต้องการทราบว่าแพคเกจ iceweasel ใดที่คุณลบไปแล้วgrep iceweasel /var/log/apt/history.logค้นหาบรรทัดที่ขึ้นต้นด้วย"Remove:"ใต้Commandline: apt-get remove iceweasel* หากคุณยังสงสัยว่าโพสต์ผลลัพธ์และฉัน (หรือคนอื่น) สามารถหาปัญหาการพึ่งพาที่แน่นอนได้ :)

ปัญหาการพึ่งพาเช่นนี้เป็นสิ่งที่ไร้เหตุผลและการมีอยู่ของมันเป็นความผิดพลาดในส่วนของคนที่ทำเมทาดาทาให้กับ. deb ของคุณ ฉันจะหาปัญหาที่แน่นอนก่อนที่จะยื่นรายงานข้อผิดพลาด ดังนั้นคำตอบของฉันข้างต้น : D


ขอบคุณ trudgemank ฉันสนใจมากขึ้นในสาเหตุที่การอ้างอิงอยู่; ไม่ใช่สิ่งที่พึ่งพา

มันไม่ควรมีอยู่ การมีอยู่ของมันเป็นความผิดพลาดในส่วนของผู้ที่ทำข้อมูลเมตาสำหรับ. deb ของคุณซึ่งไม่สมบูรณ์แบบ มีผลกระทบที่พวกเขาไม่คาดคิด
trudgemank

คุณต้องลบแพ็คเกจ "iceweasel" ที่ไม่ได้เป็นส่วนหนึ่งของ metapackage iceweasel อาจจะมีการติดตั้งโดยค่าเริ่มต้น
trudgemank

Trudgemank - หากคุณตอบคำถามที่ฉันถามในคำตอบของคุณมากกว่าความคิดเห็นฉันก็ยินดีที่จะยอมรับคำตอบ เพื่อความสมบูรณ์นี่คือคำตอบที่ผมเชื่อว่าจะถูกต้อง: "... [มัน] เป็นความผิดพลาดในส่วนของคนที่ทำให้เมตาสำหรับ .deb ของคุณเป็น" ขออภัยที่จะแยกผม นั่นเป็นรายการที่น่าสนใจสำหรับฉัน ด้วยข้อมูลที่อยู่ในมือฉันสามารถไปรายงานข้อผิดพลาด

ไม่เป็นไรตราบใดที่ฉันช่วยฉันไม่ต้องการการยืนยันอย่างเป็นทางการ แต่คุณไม่ได้เป็นปัญหาการพึ่งพาคุณควรถ้าคุณต้องการรายงานข้อผิดพลาด
trudgemank
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.