ทำไมการลบ gnome-core ไม่ได้เป็นการกำจัดการพึ่งพาทั้งหมด?


9

ฉันติดตั้งgnome-coreแพ็คเกจบน Ubuntu (เวอร์ชันขั้นต่ำสำหรับกระดูกบีเกิ้ล) และมันก็เกือบ 600mb อย่างไรก็ตามเมื่อฉันพยายามยกเลิกการติดตั้งโดยใช้

sudo apt-get autoremove gnome-core 

มันลบเพียง 49 MB แนวคิดใดวิธีการลบทั้ง 600 MB?

คำตอบ:


15

gnome-core เป็นแพคเกจเมตาและกรณีที่มีแพคเกจเมตาคือ -

พวกเขาดึงแพ็คเกจเพื่อติดตั้ง แต่การลบมันจะไม่ลบแพ็คเกจที่ดึงออกมาทั้งหมด

ดังนั้นถ้าคุณไม่ได้คัดลอกชื่อของแพ็คเกจที่ติดตั้งโดย gnome-core มันแทบจะเป็นไปไม่ได้เลยที่จะลบทั้งหมด 600 MB

แต่คุณสามารถรับชื่อของแพ็คเกจที่ถูกดึงโดยคำสั่ง

apt-cache depends gnome-core 

และพยายามที่จะลบแพคเกจทีละคน คุณควรตรวจสอบทุกครั้งว่ามีการลบแพ็คเกจที่จำเป็นหรือไม่

หรือคุณสามารถรับรายการแพ็คเกจในวิธีที่มีประโยชน์มากกว่านี้:

apt-cache depends gnome-core | cut -f 2 -d ':'  | tr '\n' ' '

นี่จะแสดงรายการการขึ้นต่อกันทั้งหมดของแพคเกจ gnome-core ละเว้นชื่อแพ็กเกจ<>เป็นเครื่องหมายเท่านั้น

ฉันจะรู้ได้อย่างไรว่าแพ็กเกจระบบใดกำลังถูกลบออก?

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

After this operation, 384 kB disk space will be freed.

และเมื่อคุณพยายามที่จะลบแพ็คเกจระบบที่จำเป็นapt-getจะแสดงข้อความเตือน

คำแนะนำ:ฉันขอแนะนำให้คุณรับรายการแพ็กเกจจากคำสั่งแรกและลองลบมันทีละรายการ มันปลอดภัยกว่า หากคุณเห็นคำเตือนให้ข้ามการลบแพ็คเกจนั้น ผมเห็นส่วนใหญ่ของแพคเกจใน gnome-หลักที่เกี่ยวข้องกับ GUI ฉันเดาเอาแพคเกจเหล่านั้นจะไม่เป็นอันตรายต่อระบบของคุณ(ถ้าคุณไม่ต้องการให้ GUI)

หวังว่านี่จะช่วยได้!


หมายเหตุบางอย่างเกี่ยวกับการลบแพคเกจ

แพคเกจที่ดึงได้จะถูกถอนการติดตั้งอย่างไรเมื่อคุณลบแพ็คเกจหลัก?

เมื่อคุณติดตั้งแพคเกจและแพคเกจที่ขึ้นอยู่กับแพคเกจอื่น ๆ บางแพคเกจการพึ่งพายังได้รับการติดตั้งและทำเครื่องหมายว่าเป็นอัตโนมัติ นั่นหมายถึงเครื่องหมายระบบ Apt พวกเขาเป็นที่ติดตั้งโดยอัตโนมัติในขณะที่การพึ่งพาของแพคเกจอื่น ช่วยให้ระบบ Apt จดจำแพ็คเกจที่ไม่จำเป็น

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

ข้อยกเว้นสำหรับกฎนี้คือถ้าคุณติดตั้งแพ็คเกจอื่นซึ่งขึ้นอยู่กับแพคเกจที่ดึงในภายหลังแพ็คเกจที่ดึงออกมาจะไม่ถูกทำเครื่องหมายว่าล้าสมัยเมื่อคุณลบแพ็กเกจหลักแรก

ตัวอย่าง:คุณติดตั้งแพคเกจที่ขึ้นอยู่กับแพคเกจX Yเมื่อคุณติดตั้งX, Yยังได้รับการติดตั้งและทำเครื่องหมายเป็นอัตโนมัติ หากคุณไม่ได้ติดตั้งแพ็คเกจอื่นZซึ่งขึ้นอยู่กับYการลบXจะทำให้เกิดYประโยชน์และระบบ Apt จะทำเครื่องหมายว่าล้าสมัยและคุณสามารถลบออกได้ด้วยautoremoveตัวเลือก

แต่ถ้าคุณติดตั้งแพคเกจZหลังจากนั้นXก็ขึ้นอยู่กับYการลบเท่านั้นXไม่ได้ทำเครื่องหมายYว่าเป็นแพคเกจล้าสมัยและคุณไม่สามารถลบมันด้วยautoremoveตัวเลือก

แต่โปรดทราบว่าถ้าคุณลบแพ็กเกจYหลังจากติดตั้งXมันจะลบแพ็คเกจYซึ่งรวมถึงXเนื่องจากXไม่สามารถอยู่ได้โดยที่Yคุณไม่ต้องการและคุณต้องการให้ลบYนั่นหมายความว่าคุณต้องการลบออกXด้วย Apt จะลบXโดยอัตโนมัติเมื่อทำการลบYซึ่งแตกต่างจากการทำเครื่องหมายว่าล้าสมัยไปจนถึงการลบในภายหลังโดยautoremoveตัวเลือก

ลองใช้ตัวอย่าง: ubuntu-desktopแพ็คเกจเป็นแพ็คเกจเมตา มันถูกใช้เพื่อติดตั้งเดสก์ท็อป Ubuntu มาตรฐาน ลองลบออกเฉพาะแพ็คเกจนั้นเท่านั้นที่จะถูกลบ

นอกจากนี้ยังพยายามติดตั้งlubuntu-desktopแพคเกจ(คุณอาจไม่ต้องการติดตั้งนี้เพราะมันเป็นดาวน์โหลดขนาดใหญ่) แต่เมื่อคุณพยายามลบออกจะมีเพียงแพ็คเกจเล็ก ๆ เท่านั้นที่lubuntu-desktopจะถูกลบ

Apt จัดการกับแพคเกจ meta ต่างกัน

แพ็คเกจเมตาเช่น gnome-core, ubuntu-limited-extras เรียกอีกอย่างว่าแพ็คเกจเสมือน พวกเขาถูกเรียกเช่นนั้นเพราะเป็นแพ็คเกจที่ว่างเปล่าโดยทั่วไปแล้วพวกเขาจะดึงแพ็คเกจอื่นขึ้นอยู่กับพวกเขา ตัวอย่างเช่น ubuntu-restrict-extras ขึ้นอยู่กับ (ใน 12.04) แพ็กเกจต่อไปนี้:

ubuntu-restricted-addons
ttf-mscorefonts-installer
unrar
gstreamer0.10-plugins-bad-multiverse
libavcodec-extra-53

โดยที่ ubuntu-limited-addons เองเป็นอีกหนึ่งแพ็คเกจเมตา เนื่องจากแพ็คเกจเมตาจะใช้สำหรับการดึงเท่านั้นการติดตั้งจะไม่ทำเครื่องหมายแพ็คเกจที่ดึงเป็นอัตโนมัติจึงถูกทำเครื่องหมายว่าติดตั้งด้วยตนเอง ผลลัพธ์? การลบเฉพาะแพ็คเกจเมตาหลักจะไม่ทำเครื่องหมายแพ็คเกจที่ดึงออกมาล้าสมัยและคุณไม่สามารถลบออกได้ด้วยautoremoveตัวเลือก นั่นคือเหตุผลที่คุณต้องลบแพคเกจดึงของแพ็คเกจเมตาด้วยตนเอง

ตัวอย่าง:คุณติดตั้งแพคเกจเมตาXที่ขึ้นอยู่กับแพคเกจและY Zเมื่อคุณติดตั้งแพคเกจYและZไม่ได้ทำเครื่องหมายเป็นอัตโนมัติ(ติดตั้งโดยอัตโนมัติเป็นการอ้างอิงของแพคเกจอื่น)แทนพวกเขาทำเครื่องหมายว่าติดตั้งด้วยตนเอง ในภายหลังเมื่อคุณต้องการลบXเฉพาะXแพ็คเกจเสมือนเท่านั้นที่จะถูกลบ ทั้งสองYและZยังคงอยู่ในระบบและคุณไม่สามารถถอนการติดตั้งด้วยautoremoveตัวเลือก


ค่อนข้างยุ่งยาก แต่ฉันเดาว่ามันเป็นทางออกเดียวใช่มั้ย
นักพัฒนา Android

คุณแน่ใจหรือว่าapt-cache dependsจะมีประโยชน์ที่นี่ ฉันรู้สึกว่าวิธีที่แนะนำโดย tijybba นั้นเหมาะสมกับวัตถุประสงค์มากกว่า

@ Sab เท่าที่ฉันรู้ใช่
อันวาร์

@ vasa1 ปัญหาคือฉันกำลังใช้งานกระดูกบีเกิ้ลและแทบจะไม่มีกุยแม้กระทั่งเมื่อใช้ vnc viewer
พัฒนา Android

@Sab ฉันได้เพิ่มคำสั่งอื่นเพื่อรับรายการในหนึ่งบรรทัด
อันวาร์

2

การติดตั้งgnome-coreนำแพคเกจและการอ้างอิงจำนวนมากเนื่องจากเป็น meta-package

วิธีหนึ่งคือการลบด้วยตนเอง แต่คุณควรทราบว่าแพ็กเกจใดที่ต้องลบออกโดยไม่ทำให้เกิดข้อผิดพลาดหลังจากเกิดผลกระทบ

รายการแพคเกจรวมอยู่ที่นี่แพคเกจ: gnome-core (1: 3.0 + 6ubuntu3) [จักรวาล]

ไปที่ผู้จัดการ Synaptic (ติดตั้งหากไม่มี)คลิกที่Originจากตัวเลือกซ้ายล่างอ้างถึงรูปภาพ

ป้อนคำอธิบายรูปภาพที่นี่

เลือกแพ็คเกจที่ต้องการลบโดยอ้างอิงจากลิงค์ด้านบน

ระวัง หากคุณไม่ทราบว่าจะลบแพ็คเกจใดออกโปรดอย่าทำตามวิธีนี้ เหล่านี้อาจก่อให้เกิดข้อผิดพลาดในการพึ่งพา


2

บทนำ:

หากต้องการลบโปรแกรมอย่างสมบูรณ์โดยใช้บรรทัดคำสั่งคุณมีตัวเลือกดังต่อไปนี้

ลบและกำหนดค่าไฟล์ แต่ไม่ต้องพึ่งพาการใช้ apt-get

sudo apt-get --purge remove <Package Name>

ลบการอ้างอิงที่ไม่ได้ใช้และไฟล์กำหนดค่าโดยใช้ apt-get

sudo apt-get --purge autoremove

เมื่อติดตั้ง GNOME ใน Ubuntu 12.04 แล้วจะติดตั้งหลายแพคเกจและไลบรารี่ที่ต้องการเช่นเดียวกับแพ็คเกจเสริม ไม่ได้ถอนการติดตั้งแพ็คเกจและไลบรารีเหล่านี้ทั้งหมดเมื่อคุณถอนการติดตั้ง GNOME แพ็คเกจจำนวนมาก (เช่น epiphany-browser และ gnuchess) ไม่ได้รับการถอนการติดตั้ง ถอนการติดตั้งอย่างรวดเร็ว

ไม่แนะนำเพราะจะลบแพ็คเกจทั้งหมดตามปกติที่ติดตั้งกับ GNOME ซึ่งอาจรวมถึงแพ็คเกจที่คุณติดตั้งไว้ก่อนหน้านี้ (เช่น epiphany-browser หรือ gnuchess) หรือแพ็คเกจที่ติดตั้งไว้ก่อนหน้านี้โดยแอปพลิเคชันอื่น

หมายเหตุ: คำสั่งถอนการติดตั้งนี้ถือว่า GNOME ได้รับการติดตั้งบน Ubuntu 12.04 ใหม่ 1

เพียงกดCtrl+ Alt+ Tบนแป้นพิมพ์เพื่อเปิด Terminal เมื่อเปิดขึ้นให้เรียกใช้คำสั่งด้านล่าง (มันยาวมากและมีบรรทัดเดียว)

sudo apt-get purge --auto-remove alacarte bogofilter bogofilter-bdb bogofilter-common browser-plugin-gnash cheese  cheese-common cups-pk-helper dconf-tools desktop-base ekiga epiphany-browser  epiphany-browser-data epiphany-extensions evolution evolution-common  evolution-plugins evolution-webcal fonts-cantarell gdebi gdebi-core gdm  gedit-plugins gimp gimp-data gir1.2-accountsservice-1.0 gir1.2-caribou-1.0  gir1.2-clutter-1.0 gir1.2-cogl-1.0 gir1.2-coglpango-1.0 gir1.2-folks-0.6  gir1.2-gdesktopenums-3.0 gir1.2-gee-1.0 gir1.2-gjsdbus-1.0 gir1.2-gkbd-3.0  gir1.2-gucharmap-2.90 gir1.2-json-1.0 gir1.2-mutter-3.0  gir1.2-networkmanager-1.0 gir1.2-panelapplet-4.0 gir1.2-polkit-1.0  gir1.2-telepathyglib-0.12 gir1.2-telepathylogger-0.2 gir1.2-upowerglib-1.0  gir1.2-xkl-1.0 gjs glchess glines gnash gnash-common gnect gnibbles gnobots2  gnome gnome-applets gnome-applets-data gnome-backgrounds gnome-contacts  gnome-core gnome-dictionary gnome-games gnome-games-extra-data  gnome-icon-theme-extras gnome-icon-theme-full gnome-js-common gnome-panel  gnome-panel-data gnome-session-fallback gnome-shell gnome-shell-common  gnome-themes-standard gnome-video-effects gnotravex gnotski gnuchess  gnuchess-book gtali hamster-applet iagno imagemagick imagemagick-common  indicator-applet-complete inkscape libbabl-0.0-0 libblas3gf libbonobo2-0  libbonobo2-common libbonoboui2-0 libbonoboui2-common libboost-iostreams1.46.1  libboost-program-options1.46.1 libboost-signals1.46.1 libboost-thread1.46.1  libcapi20-3 libcaribou-common libcaribou0 libcdt4 libcheese-gtk21 libcheese3  libclutter-1.0-0 libclutter-1.0-common libclutter-gst-1.0-0 libclutter-gtk-1.0-0  libclutter-imcontext-0.1-0 libcluttergesture-0.0.2-0 libcogl-common  libcogl-pango0 libcogl9 libept1.4.12 libevolution libgc1c2 libgdict-1.0-6  libgdict-common libgegl-0.0-0 libgfortran3 libgimp2.0 libgjs0c libglade2-0  libgnome2-0 libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0  libgnomeui-common libgnomevfs2-extra libgraph4 libgsl0ldbl libgtkhtml-4.0-0  libgtkhtml-4.0-common libgtkhtml-editor-4.0-0 libgtkmm-2.4-1c2a libgvc5  libilmbase6 liblapack3gf liblqr-1-0 libmagick++4 libmagickcore4  libmagickcore4-extra libmagickwand4 libmozjs185-1.0 libmusicbrainz4-3 libmutter0  libmx-1.0-2 libnetpbm10 libodbc1 libopal3.10.2 libopenexr6 libpanel-applet--0  libpathplan4 libpst4 libpt2.10.2 libseed-gtk3-0 libwmf-bin liferea liferea-data  lightsoff menu menu-xdg mutter-common netpbm notification-daemon odbcinst  odbcinst1debian2 perlmagick python-gmenu python-gnome2 python-lxml python-numpy  python-pyorbit python-uniconvertor quadrapassel sound-juicer swell-foop synaptic  unixodbc

วิธีที่ดีกว่าในการลบแพ็กเกจโดยสิ้นเชิง

1) เปิดไฟล์บันทึกความถนัด (/var/log/apt/history.log)

2) ค้นหาไฟล์ที่ติดตั้ง

3) ลบไฟล์โดยใช้1

sudo apt-get remove --auto-remove <file names>

1ที่มา:วิธีถอนการติดตั้ง / ลบ GNOME โดยสิ้นเชิง

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