Почему у меня так много ненужных пакетов?

Я устанавливал Prey через файл .deb загруженный с официального сайта, когда вдруг понял, что у меня так много «лишних» установленных пакетов на моем ноутбуке Ubunu.

Это была моя последовательность действий:

  1. Пробовал sudo dpkg -i prey.deb . Не работает из-за отсутствия пакетов / конфликтов:

     prey:i386 depèn de sudo. prey:i386 depèn de python. prey:i386 depèn de python-gtk2. prey:i386 depèn de scrot. prey:i386 depèn de streamer. prey:i386 depèn de mpg123. prey:i386 depèn de dmidecode. prey:i386 depèn de gksu. 
  2. Затем я сделал sudo apt-get update (все хорошо) и sudo apt-get upgrade (неудачно, потому что предыдущая установка пакета была неудачной, я думаю). APT предложила сделать apt-get -f install поэтому я и сделал. Внезапно я понял, что у меня невероятно длинный список ненужных пакетов, которые у меня НЕ были (вчера, по крайней мере):

      aglfn asymptote asymptote-doc checkbox-ng checkbox-ng-service cm-super cm-super-minimal context context-modules fonts-cabin fonts-comfortaa fonts-dejavu-extra fonts-ebgaramond fonts-ebgaramond-extra fonts-font-awesome fonts-freefont-otf fonts-gfs-artemisia fonts-gfs-baskerville fonts-gfs-bodoni-classic fonts-gfs-complutum fonts-gfs-didot fonts-gfs-didot-classic fonts-gfs-gazis fonts-gfs-neohellenic fonts-gfs-olga fonts-gfs-porson fonts-gfs-solomos fonts-gfs-theokritos fonts-hosny-amiri fonts-inconsolata fonts-junicode fonts-lato fonts-linuxlibertine fonts-lobster fonts-lobstertwo fonts-oflb-asana-math fonts-roboto fonts-sil-gentium fonts-sil-gentium-basic fonts-sil-gentiumplus fonts-stix freeglut3 giblib1:i386 gstreamer0.10-alsa gstreamer0.10-plugins-good gstreamer0.10-x lcdf-typetools libasound2:i386 libatk1.0-0:i386 libaudit1:i386 libavahi-client3:i386 libavahi-common-data:i386 libavahi-common3:i386 libbz2-1.0:i386 libcairo2:i386 libcomerr2:i386 libcups2:i386 libdatrie1:i386 libdb5.3:i386 libdbus-1-3:i386 libdbus-glib-1-2:i386 libdv4:i386 libffi6:i386 libfontconfig1:i386 libfreetype6:i386 libftgl2 libgconf-2-4:i386 libgcrypt20:i386 libgdk-pixbuf2.0-0:i386 libgif4:i386 libglib2.0-0:i386 libgmp10:i386 libgnome-keyring0:i386 libgnutls-deb0-28:i386 libgpg-error0:i386 libgpm2:i386 libgraphite2-3:i386 libgsl0ldbl libgssapi-krb5-2:i386 libgtk2.0-0:i386 libharfbuzz0b:i386 libhogweed4:i386 libid3tag0:i386 libimlib2:i386 libintl-perl libjbig0:i386 libjpeg-turbo8:i386 libjpeg8:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libltdl7:i386 liblzma5:i386 libmpg123-0:i386 libncursesw5:i386 libnettle6:i386 libosmesa6 libp11-kit0:i386 libpam-modules:i386 libpam0g:i386 libpango-1.0-0:i386 libpangocairo-1.0-0:i386 libpangoft2-1.0-0:i386 libpcre3:i386 libpixman-1-0:i386 libpng12-0:i386 libpoppler-qt5-1 libprojectm2v5 libpython-stdlib:i386 libpython2.7-minimal:i386 libpython2.7-stdlib:i386 libpython3.5-minimal libpython3.5-stdlib libqca2-plugins libqca2v5 libqt5script5 libqxt-core0 libqxt-gui0 libreadline6:i386 libselinux1:i386 libsigsegv2 libsqlite3-0:i386 libssl1.0.0:i386 libstartup-notification0:i386 libsystemd0:i386 libtasn1-6:i386 libtext-unidecode-perl libthai0:i386 libtiff5:i386 libtinfo5:i386 libv4l-0:i386 libv4lconvert0:i386 libx11-xcb1:i386 libxcb-render0:i386 libxcb-shm0:i386 libxcb-util1:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxfixes3:i386 libxi6:i386 libxinerama1:i386 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl libxrandr2:i386 libxrender1:i386 linux-image-4.2.0-16-generic linux-image-4.2.0-18-generic linux-image-4.2.0-19-generic linux-image-4.2.0-22-generic linux-image-extra-4.2.0-16-generic linux-image-extra-4.2.0-18-generic linux-image-extra-4.2.0-19-generic linux-image-extra-4.2.0-22-generic linux-signed-image-4.2.0-18-generic linux-signed-image-4.2.0-19-generic linux-signed-image-4.2.0-22-generic m-tx mpg123:i386 musixtex pfb2t1c2pfb plainbox-secure-policy pmx python3-checkbox-ng python3-checkbox-support python3-jinja2 python3-plainbox python3-pyparsing python3-xlsxwriter python3.5 python3.5-minimal qml-module-qtquick-localstorage qtdeclarative5-localstorage-plugin scrot:i386 streamer:i386 sudo:i386 tex4ht tex4ht-common texinfo texlive-fonts-extra texlive-fonts-extra-doc texlive-formats-extra texlive-games texlive-generic-extra texlive-humanities texlive-humanities-doc texlive-lang-african texlive-lang-arabic texlive-lang-cyrillic texlive-lang-czechslovak texlive-lang-english texlive-lang-european texlive-lang-french texlive-lang-german texlive-lang-greek texlive-lang-indic texlive-lang-italian texlive-lang-polish texlive-lang-portuguese texlive-lang-spanish texlive-luatex texlive-math-extra texlive-music texlive-omega texlive-plain-extra texlive-publishers texlive-publishers-doc texlive-science-doc texlive-xetex ttf-adf-accanthis ttf-adf-gillius ttf-adf-universalis ttf-dejavu-core xawtv-plugins:i386 zlib1g:i386 

    Обратите внимание, что помимо этого длинного списка apt также сказал, что следующие пакеты будут удалены ( sudo ??):

      Es SUPRIMIRAN els paquets següents: plainbox-provider-resource-generic prey:i386 sudo 

    Поэтому из-за всего этого я прервал apt-get -f install , на всякий случай …

  3. Поскольку я не был уверен в процессе dpkg , я отключил первую команду, выполнив dpkg --purge prey .

  4. На этом этапе я снова проверил список ненужных пакетов ( apt-get -f install ), и он был уменьшен, но все еще достаточно длинный, чтобы заставить меня отменить эту команду. Это список пакетов, которые apt «хочет» удалить, поскольку они не нужны:

     aglfn asymptote asymptote-doc checkbox-ng checkbox-ng-service cm-super cm-super-minimal context context-modules fonts-cabin fonts-comfortaa fonts-dejavu-extra fonts-ebgaramond fonts-ebgaramond-extra fonts-font-awesome fonts-freefont-otf fonts-gfs-artemisia fonts-gfs-baskerville fonts-gfs-bodoni-classic fonts-gfs-complutum fonts-gfs-didot fonts-gfs-didot-classic fonts-gfs-gazis fonts-gfs-neohellenic fonts-gfs-olga fonts-gfs-porson fonts-gfs-solomos fonts-gfs-theokritos fonts-hosny-amiri fonts-inconsolata fonts-junicode fonts-lato fonts-linuxlibertine fonts-lobster fonts-lobstertwo fonts-oflb-asana-math fonts-roboto fonts-sil-gentium fonts-sil-gentium-basic fonts-sil-gentiumplus fonts-stix freeglut3 gstreamer0.10-alsa gstreamer0.10-plugins-good gstreamer0.10-x lcdf-typetools libftgl2 libgsl0ldbl libintl-perl libosmesa6 libpoppler-qt5-1 libprojectm2v5 libpython3.5-minimal libpython3.5-stdlib libqca2-plugins libqca2v5 libqt5script5 libqxt-core0 libqxt-gui0 libsigsegv2 libtext-unidecode-perl libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl linux-image-4.2.0-16-generic linux-image-4.2.0-18-generic linux-image-4.2.0-19-generic linux-image-4.2.0-22-generic linux-image-extra-4.2.0-16-generic linux-image-extra-4.2.0-18-generic linux-image-extra-4.2.0-19-generic linux-image-extra-4.2.0-22-generic linux-signed-image-4.2.0-18-generic linux-signed-image-4.2.0-19-generic linux-signed-image-4.2.0-22-generic m-tx musixtex pfb2t1c2pfb plainbox-provider-resource-generic plainbox-secure-policy pmx python3-checkbox-ng python3-checkbox-support python3-jinja2 python3-plainbox python3-pyparsing python3-xlsxwriter python3.5 python3.5-minimal qml-module-qtquick-localstorage qtdeclarative5-localstorage-plugin tex4ht tex4ht-common texinfo texlive-fonts-extra texlive-fonts-extra-doc texlive-formats-extra texlive-games texlive-generic-extra texlive-humanities texlive-humanities-doc texlive-lang-african texlive-lang-arabic texlive-lang-cyrillic texlive-lang-czechslovak texlive-lang-english texlive-lang-european texlive-lang-french texlive-lang-german texlive-lang-greek texlive-lang-indic texlive-lang-italian texlive-lang-polish texlive-lang-portuguese texlive-lang-spanish texlive-luatex texlive-math-extra texlive-music texlive-omega texlive-plain-extra texlive-publishers texlive-publishers-doc texlive-science-doc texlive-xetex ttf-adf-accanthis ttf-adf-gillius ttf-adf-universalis ttf-dejavu-core 

Я помню, что этот список заполнялся каким linux-signed-image... то linux-signed-image... и другими вчера, но определенно их не было. На самом деле, некоторые, если эти пакеты я точно знаю, что они используются (например, texlive-* , fonts-* , ttf-* , python-* …) Что я могу сломать и как я могу это сделать?

Я подозреваю, что ошибка исходит из шага 3, но я не уверен в этом.

ОБНОВЛЕНИЕ: Прежде чем даже поработать с debfoster как предложено в комментариях, я проверил некоторые пакеты, и я заметил, что:

  • ubuntu-desktop не установлен (?!) – и я НЕ использую KDE или XCFE.

  • Fedora12, yum не могут найти репозитории
  • Как установить изумрудный пакет на монетный двор?
  • Не удалось удалить пакеты библиотеки CLI.
  • Автоматизация установки гостевых дополнений VirtualBox через командную строку
  • Имеет ли значение изменение пакетов через Apper или Software Center в Debian?
  • libnss3 Обновление проблемы понижения
  • Debian Unstable: Как установить этот пакет i386 под AMD64 с использованием многоархивного?
  • Как автоматически устанавливать пакеты?
  • One Solution collect form web for “Почему у меня так много ненужных пакетов?”

    Есть несколько подпрограмм, рассказы старых жен, для поиска, а затем очистки ненужных пакетов, в дополнение к уже предложенному debfoster.

    (сначала), но почему этот пакет установлен?

    Инструмент, который вы хотите использовать при очистке пакетов, – это aptitude why pkg-name На странице man aptitude:

     $ aptitude why kdepim i nautilus-data Recommends nautilus i A nautilus Recommends desktop-base (>= 0.2) i A desktop-base Suggests gnome | kde | xfce4 | wmaker p kde Depends kdepim (>= 4:3.4.3) 

    Это только печатает самую сильную цепочку зависимостей, но быстро ответит на многие вопросы. Существует также и то, why-not это не так уж и важно для удаления пакетов.

    пакет удален, остальные файлы конфигурации

    Вы можете найти пакеты, которые больше не используются сами, но у них все еще есть файлы конфигурации и тому подобное. Для этого откройте терминал и введите

     dpkg-query -l '*' | grep ^rc | awk '{print $2}' |xargs > my_ apt_rc_removeList.lst 

    Созданный список содержит все файлы в состоянии «rc» – удалены, но файлы конфигурации остаются. Эти оставшиеся файлы теперь будут удалены, но сначала просмотрите файлы, перечисленные в файле my_ apt_rc_removeList.lst, чтобы проверить, что вы хотите, чтобы все эти трещины были удалены. Теперь введите

     aptitude purge `cat apt_rc_removeList.lst` 

    и весь этот рывок будет удален.

    gtkorphan

    Другое приложение, которое вы можете использовать для поиска оставшихся пакетов, – gtkorphan. Из описания gtkorphan в apt-системе:

    GtkOrphan – это графический инструмент, который сканирует вашу систему Debian, ища сиротские библиотеки. Он реализует интерфейс GUI для deborphan, но добавляет возможность удаления пакета. Подробную документацию по программе можно найти по адресу: http://www.marzocca.net/linux/gtkorphan.html .

    Вы можете использовать это, чтобы очистить пакеты в других разделах (кроме «libs»).

    маркировать неинтересные пакеты как зависимости: удалить как можно скорее

    В aptitude в одной подкатегории ваших «Установленных пакетов» введите l (буква «el»), а затем в появившемся окне введите « ?not(?automatic) . Теперь будут показаны только пакеты, которые не являются зависимостями других пакетов. Теперь прокрутите каждый из них, и на самом пакете, который вас не интересует напрямую, нажмите клавишу M Это не приведет к удалению каких-либо пакетов, но отметьте каждый пакет как «только здесь, потому что, и пока что-то от него зависит»,

    Теперь переходите по разделам один за другим. Большинство пакетов «только как зависимые» будут в разделе libs.

    отметьте все пакеты, соответствующие «шаблону» как «авто»: удалите как можно скорее

    Все пакеты «-dev» могут быть отмечены для удаления, если это не требуется

      aptitude markauto ~i~n"\-dev$" 

    очистить всю категорию

    Целая категория («CATEGORY_NAME») может быть очищена с помощью

     aptitude purge '~sCATEGORY_NAME ! ~exceptThisApp 
    Linux и Unix - лучшая ОС в мире.