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

9

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

sudo apt-get autoremove gnome-core 

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

Разработчик Android
источник

Ответы:

15

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. Apt будет удаляться 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опцией.

Анвар
источник
Это довольно громоздко. Но я думаю, это единственный выход, верно?
Разработчик Android
Вы уверены, что apt-cache dependsэто будет полезно здесь? Я чувствую, что путь, предложенный тиджиббой, лучше подходит для этой цели.
@ Саб Насколько я знаю, да.
Анвар
@ vasa1 Проблема в том, что у меня запущена гончая кость, и у меня практически нет графического интерфейса, даже при использовании vnc viewer
Разработчик Android
@Sab Я добавил еще одну команду, чтобы получить список в одну строку.
Анвар
2

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

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

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

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

введите описание изображения здесь

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

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

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

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

Митч
источник