Почему удаление gnome-core не удаляет все его зависимости?

Я установил gnome-core пакет на Ubuntu (минимальная версия для гончей кости), и это было почти 600 МБ. Тем не менее, когда я пытаюсь удалить его с помощью

sudo apt-get autoremove gnome-core 

Удаляет только 49 МБ. Есть идеи, как удалить все 600 МБ?

3 ответа

Решение

gnome-core это метапакет, а случай с метапакетами -

Они тянут пакеты для установки, но их удаление не удалит все извлеченные пакеты.

Таким образом, если вы не скопировали имена пакетов, установленных gnome-core, практически невозможно удалить все 600 МБ.

Но вы можете получить имена вытащенных пакетов командой

apt-cache depends gnome-core 

и попробуйте удалить пакеты по одному. Вы должны всегда проверять, удаляет ли он все необходимые пакеты.

Или вы можете получить список пакетов более полезным способом:

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

Это перечислит все зависимости пакета gnome-core, игнорируя имя пакета в <> только оценки

Как узнать, удаляется ли какой-либо системный пакет?

Когда вы видите, что из команды освобождается много места (более 600 МБ), вы должны знать, что вы удаляете больше, чем установили. apt-get даст вам знать, сколько места будет освобождено, прежде чем удалять как с сообщением, как это

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

И когда вы пытаетесь удалить необходимый системный пакет, apt-get покажет вам предупреждение.

Рекомендация: я предлагаю вам получить список пакетов из первой команды и попытаться удалить их один за другим. Это безопаснее. Если вы видите предупреждение, пропустите удаление этого пакета. Я вижу, что большинство пакетов в gnome-core связаны с GUI, я думаю, что удаление этих пакетов не повредит вашей системе (если вы не хотите GUI).

Надеюсь это поможет!


Некоторые замечания по удалению пакетов

Как вытащенные пакеты удаляются при удалении мастер-пакета?

Когда вы устанавливаете пакет, и этот пакет зависит от некоторых других пакетов, пакеты зависимостей также устанавливаются и помечаются как auto. Это означает, что система Apt помечает их как Автоматически установленные как зависимости от другого пакета. Это помогает системе Apt распознавать ненужные пакеты.

Когда вы удаляете главный пакет, извлеченные пакеты также помечаются как устаревшие или ненужные пакеты в системе. Вы можете удалить их, предоставив autoremove возможность apt-get, (aptitude автоматически удаляет их вместе с мастер-пакетом).

Исключением из этого правила является то, что если позднее вы установите другой пакет, который также зависит от извлеченных пакетов, извлеченные пакеты не будут помечены как устаревшие при удалении первого основного пакета.

Пример: вы установили пакет X это зависит от пакета Y, Когда вы установили X, Y также устанавливается и помечается как авто. Если вы не устанавливаете другой пакет Z который также зависит от Y, удаляя X будет оказывать Y и система Apt пометит ее как устаревшую, и вы можете удалить ее с помощью autoremove вариант.

Но если вы установите пакет Z после X который также зависит от Y затем удаляем только X не помечает Y как устаревший пакет, и вы не можете удалить его с autoremove вариант

Но обратите внимание, что если вы удалите пакет Y после установки X, это удалит пакет Y в том числе X, так как X не могу остаться без Y и вы хотели, чтобы вы удалили Y это означает, что вы также хотели удалить X, Кв удалит X автоматически при удалении Y в отличие от маркировки устаревшего для последующего удаления autoremove вариант.

Попробуйте примеры: ubuntu-desktop Пакет - это метапакет. Он был использован для установки стандартного рабочего стола Ubuntu. Попробуйте удалить его, только этот пакет будет удален.

Также попробуйте установить lubuntu-desktop пакет (возможно, вы не захотите его устанавливать, потому что это большая загрузка). Но, когда вы пытаетесь удалить его, только крошечный пакет lubuntu-desktop будет удален.

Apt по-разному обрабатывает метапакеты

Мета-пакеты, такие как gnome-core, ubuntu-limited-extras, также называются виртуальными пакетами. Они называются так, потому что они в основном пустые пакеты, они тянут другие пакеты в зависимости от них. Например, ubuntu-limited-extras зависит от (в 12.04) следующих пакетов:

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

Где, Ubuntu-Restricted-Addons сама по себе является еще одним метапакетом. Так как метапакеты используются только для извлечения пакетов, их установка не помечает извлеченные пакеты как автоматические, они помечаются как установленные вручную. Результат? Удаление только основного метапакета не помечает вытащенные пакеты как устаревшие, и вы не можете удалить их autoremove вариант. Вот почему вы должны удалить каждый вытащенный пакет метапакетов вручную.

Пример: вы установили метапакет X это зависит от пакетов Y а также Z, Когда вы установили его, Y а также Z пакеты не помечаются как автоматические (автоматически устанавливаются как зависимости от другого пакета), вместо этого они помечаются как установленные вручную. В более позднее время, когда вы хотите удалить X только виртуальный X пакет удаляется. И то и другое, Y а также Z, оставайтесь в системе, и вы не можете удалить их с помощью autoremove вариант.

Вступление:

Чтобы полностью удалить программы с помощью командной строки, у вас есть следующие опции;

Удалите и настройте файлы, но не зависимости, используя 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 на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду ниже. (это очень длинная и одна строка)

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) Откройте файл журнала aptitude (/var/log/apt/history.log).

2) Найдите файлы, которые были установлены.

3) Удалите файлы, используя 1

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

1 Источник: Как полностью удалить / удалить GNOME

Установка gnome-core, приносит много пакетов и зависимостей, так как это мета-пакет.

Один из способов - удалить его вручную, но вы должны знать, какие пакеты необходимо удалить, не вызывая ошибок, связанных с последствиями.

Список включенных пакетов приведен здесь. Пакет: gnome-core (1:3.0+6ubuntu3) [вселенная]

Перейдите в менеджер Synaptic (установите его, если его нет), нажмите " Происхождение слева-внизу", см. Изображение

введите описание здесь

Выберите пакет для удаления, перейдя по ссылке выше.

Внимание, если вы не знаете, какие пакеты удалить, не следуйте этому методу. Это может привести к ошибкам зависимости.

Другие вопросы по тегам