Mengapa menghapus gnome-core tidak menghapus semua ketergantungannya?

9

Saya menginstal gnome-corepaket pada Ubuntu (versi minimal untuk tulang beagle) dan itu hampir 600mb. Namun, ketika saya mencoba untuk menginstalnya menggunakan

sudo apt-get autoremove gnome-core 

Hanya menghapus 49 MB. Ada Gagasan, bagaimana cara menghapus seluruh 600 MB?

Pengembang Android
sumber

Jawaban:

15

gnome-core adalah paket meta dan kasus dengan paket meta adalah -

Mereka menarik paket untuk diinstal tetapi menghapusnya tidak akan menghapus semua paket yang ditarik .

Jadi, kecuali, Anda telah menyalin nama-nama paket yang diinstal oleh gnome-core, hampir tidak mungkin untuk menghapus semua 600 MB.

Tapi, Anda bisa mendapatkan nama paket yang ditarik dengan perintah

apt-cache depends gnome-core 

dan coba hapus paket satu per satu. Anda harus selalu memeriksa apakah itu menghapus paket yang diperlukan.

Atau Anda bisa mendapatkan daftar paket dengan cara yang lebih bermanfaat dengan ini:

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

Ini akan mencantumkan semua dependensi paket gnome-core, mengabaikan nama paket <>hanya dalam tanda.

Bagaimana saya tahu, apakah ada paket sistem yang dihapus?

Ketika Anda melihat banyak ruang dibebaskan dari perintah, (lebih dari 600MB) , Anda harus tahu bahwa Anda menghapus lebih dari yang Anda instal. apt-getakan memberi tahu Anda berapa banyak ruang yang akan dibebaskan, sebelum menghapus seperti dengan pesan seperti ini

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

Dan Ketika Anda mencoba untuk menghapus paket sistem penting, apt-getakan menampilkan pesan peringatan kepada Anda.

Rekomendasi: Saya sarankan Anda untuk mendapatkan daftar paket dari perintah pertama, dan mencoba untuk menghapusnya satu per satu. Itu lebih aman. Jika Anda melihat peringatan, lewati menghapus paket itu. Saya melihat, sebagian besar paket di gnome-core berhubungan dengan GUI, saya kira menghapus paket-paket itu tidak akan merusak sistem Anda (jika Anda tidak menginginkan GUI) .

Semoga ini membantu!


Beberapa catatan tentang menghapus paket

Bagaimana paket yang ditarik dihapus instalasinya saat Anda menghapus paket master?

Ketika Anda menginstal paket dan paket itu tergantung pada beberapa paket lain, paket dependensi juga diinstal dan Ditandai sebagai otomatis . Itu berarti, sistem Apt menandai mereka sebagai terinstal secara otomatis sebagai ketergantungan dari paket lain . Ini membantu sistem Apt untuk mengenali paket yang tidak perlu.

Ketika, Anda menghapus paket master, paket yang ditarik juga ditandai sebagai paket usang atau tidak perlu dalam sistem. Anda dapat menghapusnya dengan memberikan autoremoveopsi kepada apt-get. (aptitude otomatis menghapusnya dengan paket master) .

Pengecualian untuk aturan ini adalah, jika nanti Anda menginstal paket lain yang juga tergantung pada paket yang ditarik, paket yang ditarik tidak akan ditandai sebagai usang ketika Anda menghapus paket master pertama.

Contoh: Anda menginstal paket Xyang tergantung pada paket Y. Ketika Anda menginstal X, Yjuga akan diinstal dan ditandai sebagai otomatis. Jika Anda tidak menginstal paket lain Zyang juga tergantung Y, menghapus Xakan membuat Ykegunaan dan sistem Apt akan menandainya sudah usang dan Anda dapat menghapusnya dengan autoremoveopsi.

Tetapi jika Anda menginstal paket Zsetelah Xitu juga tergantung pada Y, maka menghapus hanya Xtidak menandai Ysebagai paket usang dan Anda tidak dapat menghapusnya dengan autoremoveopsi

Tetapi perhatikan bahwa jika Anda menghapus paket Ysetelah menginstal X, itu akan menghapus paket Ytermasuk X, karena Xtidak bisa tinggal tanpa Ydan Anda ingin Anda hapus Y, itu berarti Anda juga ingin menghapus X. Apt akan menghapus Xsecara otomatis ketika menghapus Ytidak seperti menandainya sudah usang untuk dihapus oleh autoremoveopsi nanti.

Coba contoh: ubuntu-desktop paket adalah paket meta. Itu digunakan untuk menginstal desktop standar Ubuntu. Coba hapus, hanya paket itu yang akan dihapus.

Coba juga lubuntu-desktoppaket instalasi (Anda mungkin tidak ingin menginstal ini, karena ini unduhan besar) . Tetapi, ketika Anda mencoba untuk menghapusnya, hanya paket kecil yang lubuntu-desktopakan dihapus.

Apt menangani paket meta secara berbeda

Paket meta seperti gnome-core, ubuntu-dibatasi-ekstra juga disebut paket virtual. Mereka disebut begitu, karena pada dasarnya mereka adalah paket kosong, Mereka menarik paket lain dengan bergantung pada mereka. Sebagai contoh, tambahan-pembatasan-ubuntu tergantung pada (dalam 12.04) paket-paket berikut:

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

Di mana, ubuntu-dibatasi-addons itu sendiri adalah paket meta lain. Karena, paket meta hanya digunakan untuk menarik paket, menginstalnya tidak menandai paket yang ditarik sebagai otomatis , mereka ditandai sebagai diinstal secara manual. Hasil? Menghapus hanya paket meta master tidak akan menandai paket yang ditarik sudah usang dan Anda tidak dapat menghapusnya berdasarkan autoremoveopsi. Itu sebabnya Anda harus menghapus setiap paket yang ditarik dari paket meta secara manual.

Contoh: Anda menginstal paket meta Xyang tergantung pada paket Ydan Z. Ketika Anda menginstalnya, paket Ydan Ztidak ditandai sebagai otomatis (diinstal secara otomatis sebagai ketergantungan paket lain) , melainkan ditandai sebagai diinstal secara manual. Di lain waktu ketika Anda ingin menghapus X, hanya Xpaket virtual yang dihapus. Keduanya, Ydan Z, tetap berada dalam sistem dan Anda tidak dapat mencopotnya dengan autoremoveopsi.

Anwar
sumber
Itu agak rumit. Tapi saya kira ini satu-satunya jalan keluar, kan?
Pengembang Android
Apakah Anda yakin itu apt-cache dependsakan berguna di sini? Saya merasa cara yang disarankan oleh tijybba lebih cocok untuk tujuan itu.
@ Sab, Sejauh yang saya tahu, Ya.
Anwar
@ vasa1 Masalahnya adalah saya menjalankan tulang beagle dan hampir tidak memiliki gui, bahkan saat menggunakan vnc viewer
Pengembang Android
@ Sab Saya telah menambahkan perintah lain untuk mendapatkan daftar dalam satu baris.
Anwar
2

Menginstal gnome-core , membawa banyak paket dan dependensi, karena ini adalah paket meta.

Salah satu caranya adalah menghapusnya secara manual, tetapi Anda harus Tahu Paket mana yang perlu dihapus tanpa menyebabkan kesalahan setelah efek.

Daftar Paket termasuk tercantum di sini Paket: gnome-core (1: 3.0 + 6ubuntu3) [semesta]

Pergi ke Manajer Synaptic (Instal jika tidak ada) , klik Asal dari Pilihan Kiri-bawah, lihat gambar

masukkan deskripsi gambar di sini

Pilih paket untuk dihapus, dengan merujuk pada tautan di atas.

Perhatian jika Anda tidak tahu paket mana yang harus dihapus, maka jangan ikuti metode ini. Ini dapat menyebabkan kesalahan ketergantungan .

atenz
sumber
2

Pengantar:

Untuk sepenuhnya menghapus program menggunakan baris perintah, Anda memiliki opsi berikut;

Hapus dan konfigurasi file, tetapi tidak ketergantungan menggunakan apt-get

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

Hapus dependensi yang tidak digunakan dan konfigurasi file menggunakan apt-get

sudo apt-get --purge autoremove

Ketika GNOME diinstal di Ubuntu 12.04, ia menginstal beberapa paket dan pustaka yang diperlukannya serta beberapa paket opsional. Tidak semua paket dan pustaka ini dihapus saat Anda menghapus GNOME. Beberapa paket (seperti epiphany-browser dan gnuchess) tidak bisa dihapus. Copot Cepat

Ini tidak disarankan karena akan menghapus semua paket yang biasanya diinstal dengan GNOME. Ini mungkin termasuk paket yang Anda instal sebelumnya (seperti epiphany-browser atau gnuchess) atau paket yang sebelumnya diinstal oleh aplikasi lain.

Catatan: perintah penghapusan instalasi ini menganggap GNOME diinstal pada Ubuntu 12.04 baru. 1

Cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Saat terbuka, jalankan perintah di bawah ini. (sangat panjang dan satu baris)

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

Cara yang lebih baik tentang cara Menghapus Paket secara Lengkap

1) Buka file log aptitude (/var/log/apt/history.log).

2) Temukan file yang diinstal.

3) Hapus file menggunakan 1

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

1 Sumber: Cara Menghapus / Menghapus GNOME Secara Lengkap

Mitch
sumber