Я установил Carpadio на мою установку Xubuntu (Live USB), которая затем вытащила более 50 пакетов, как я полагаю, со стороны Ubuntu хранилища. Теперь я хотел бы отменить это. Однако, несмотря на всю мою охоту, я не могу найти ничего более полезного, чем Как я могу отменить команду sudo apt get install , которая просто предлагает apt-get purge
. Это бесполезно, поскольку все, что он делает - это удаляет 2 пакета (carpadio и carpadio-gnomepanel).
/var/log/apt/history.log
имеет список всех пакетов, которые были установлены вместе с этой командой. Так что мне было интересно, есть ли простой способ удалить их все ? Еще я могу просто переустановить, это была новая установка в любом случае, но мне любопытно.
Небольшой образец журнала истории (1 / 5-1 / 10 от всего списка)
Командная строка: apt-get устанавливает cardapio-gnomepanel
Установить: libdbusmenu-qt2: amd64 (0.9.2-0ubuntu1, автоматический), python-packagekit: amd64 (0.7.2-4ubuntu3, автоматический), cups-pk-helper: amd64 (0.2.1.2-1ubuntu0.1, автоматический) , geoclue: amd64 (0.12.0-1ubuntu12, автоматический), unity: amd64 (5.18.0-0ubuntu1, автоматический), индикаторные принтеры: amd64 (0.1.6-0ubuntu1, автоматический), libevolution: amd64 (3.2.3- 0ubuntu6, автоматический), libqt4-декларативный: amd64 (4.8.1-0ubuntu4.3, автоматический), libmtp9: amd64 (1.1.3-1ubuntu0.1, автоматический), tracker-miner-fs: amd64 (0.14.0-2ubuntu1 , автоматический), gir1.2-rb-3.0: amd64 (2.96-0ubuntu4.2, автоматический), python-aptdaemon.pkcompat: amd64 (0.43 + bzr805-0ubuntu7, автоматический), gnome-media: amd64 (3.4.0- 0ubuntu3.1, автоматический), metacity: amd64 (2.34.1-1ubuntu11, автоматический), nautilus: amd64 (3.4.2-0ubuntu6, автоматический), libcompizconfig0: amd64 (0.9.7.0 ~ bzr428-0ubuntu6, автоматический), compiz- плагинов по умолчанию:amd64 (0.9.7.12-0ubuntu1, автоматический), libunistring0: amd64 (0.9.3-5, автоматический), libebackend-1.2-1: amd64 (3.2.3-0ubuntu7, автоматический), ubuntu-docs: amd64 (12.04.6 , автоматический), python-mako: amd64 (0.5.0-1, автоматический),
Всем тем, кто предложил autoremove
: я не уверен, почему, но я получил только 1 другой пакет, связанный с python (python-keybinder или что-то), как «ненужный», и это все, что удалось удалить с помощью autoremove.
Между установкой и удалением устанавливались только основные изменения xubuntu-restricted-extras
.
sudo apt-get install -s package
где-s
обозначает симуляцию иpackage
будет заменено соответствующим именем программного обеспечения.cardapio-gnomepanel
пакет?apt-get remove carpadio
взял это тоже.autoremove
не работает на тебя. Либо вы каким-то образом пометили все пакеты как установленные вручную, либо есть недоразумение. Это очень просто:apt-get autoremove
просто удаляет все автоматически установленные помеченные пакеты без причины иметь их сейчас. Если это не работает для вас, я думаю, что вы изменили что-то в своей системе, о чем вы не сказали в своем вопросе.Ответы:
По сути, вам придется как
apt-get remove
(или apt-get purge) пакет и запуститьapt-get autoremove
после этого, чтобы он отменил установкуpackage-one
.Давайте посмотрим на весь процесс:
sudo apt-get install package-one
устанавливает 50 зависимостей с пометкой «автоматическая», что также видно из выдержки из журнала в вашем вопросеsudo apt-get purge package-one
удаляет (Чистки) только один, но сделать запускаю это!Все последующие действия по установке (если вы выполняете какие-либо) приведут к информационному сообщению с ненужными пакетами:
Этот список в основном представляет собой список всех пакетов, помеченных как «автоматические» без обратной зависимости от них. Другими словами, для управления пакетами нет причин устанавливать их.
Примечание: установка не требуется! Просто чтобы продемонстрировать, что APT умно расскажет вам о ваших ненужных пакетах!
sudo apt-get autoremove --purge
удаляет (удаляет) этиБольше информации
Официальная документация на
autoremove
сapt-get(8)
manpage:Как правильно полностью удалить приложение?
источник
autoremove
.autoremove
не помогло.sudo apt-get update
достаточно?Если вы хотите удалить пакет и его зависимости, установленные на тот момент, вы должны использовать:
но чтобы отменить
apt
действия, вы можете использоватьapt-undo
скрипт. Это простой скрипт, который может отменитьapt
действия, выполняемые в Ubuntu. Следует отметить, что этот скрипт может работать, только если вы используете его вместоapt-get
установки / обновления / удаления / очистки / понижения ваших пакетов.Для установки
apt-undo
в Ubuntu выполните следующие команды в терминале:использование:
Для отмены вышеуказанных
aptitude
действий выполните следующие команды в терминале:источник
Используйте силу Unix. Возьмите строку файла журнала, которая у вас есть, и создайте команду, которая отменит то, что сделал apt. Например:
Таким образом, вы можете использовать эту очистку всех пакетов, которые вы случайно установили, учитывая соответствующую строку из вашего файла журнала:
(Я использовал
perl
вместо,sed
потому чтоsed
использует тип регулярного выражения, который не поддерживает несжадные совпадения, что было самым простым способом создания того, что мне нужно)источник
apt
журнала в новый файл, а затем применил к нему следующее:perl -pe 's/\(.*?\)(, )?//g' /path/to/apt-history.log
Затем все, что я сделал, это добавил этот вывод,sudo apt-get remove
и я был готов идти!После того, как вы удалите один пакет, и вы можете удалить его полностью, добавив --purge, ибо
apt-get remove --purge <package>
, это должно дать вам сообщение о том , что библиотека пакетов он тянул в были установлены автоматически , и больше нет необходимости, в этот момент вы можете запуститьapt-get autoremove
в удалить их.источник
Следуйте
sudo apt-get purge packagename
сЕсли это не метапакет, это должно заботиться об этом.
Также см. Часто задаваемые вопросы в разделе Как вручную удалить все файлы Cardapio? ,
источник
new_file.txt
perl -pe 's/\(.*?\)(, )?//g' /path/to/new_file.txt
sudo apt-get remove
[вставить содержимое буфера обмена здесь]Готово.
По сути, нам нужно отформатировать список пакетов из журнала apt во что-то, что apt-get сможет понять. Круглые скобки, слова между ними и запятые должны быть указаны так, чтобы Perl начал играть. Да, есть лучшие (более эффективные) способы - но я сделал это, это легко понять, и это работает.
источник
Технически операции «удалить» или «автоудаление» не являются «отменой», хотя их можно сделать, чтобы выполнять работу достаточно хорошо в большинстве случаев.
По умолчанию apt-get оставит пакеты, если вы не укажете
-o APT::Suggests-Important=0 -o APT::Recommends-Important=0
Надежнее взглянуть на apt
history.log
и удалить все установленные пакеты. Я создал небольшой скрипт на основе узла, чтобы упростить процесс:https://github.com/rolfen/apt-history
Кроме того, вот еще один, более ручной подход к «откату» изменений:
https://unix.stackexchange.com/a/236711
источник
Чтобы отменить последнюю установку, вы также можете использовать что-то вроде этого:
Это отловит последнюю удачную установку из истории и удалит все установленные здесь пакеты.
Вы можете создать функцию с именем aptpurgelastinstall, чтобы она всегда была под рукой (добавит код в ~ / .bashrc):
Теперь вам просто нужно набрать aptpurgelastinstall в оболочке, чтобы повторить последнюю установку.
источник
Если вы только что добавили ppa и хотите вернуться, вам нужно выполнить шаги, описанные ниже. Поймите, что это может не сработать, если вы установили другие пакеты, которые не хотите удалять. Я уверен, что это можно сделать с помощью сценария. Лично я думаю, что это должно быть частью apt, и должно быть лучше администрирование, какие пакеты установлены из-за зависимостей, а какие установлены по запросу пользователя.
1) удалите ppa из /etc/apt/sources.list Помните время, когда вы добавили ppa. Если вам повезет, вам не нужно быть точным.
2) составьте список того, что нужно переустановить, с момента установки PPA: cat /var/log/dpkg.log | grep 'upgrade'
3) составьте список того, что нужно удалить, с момента установки PPA: cat /var/log/dpkg.log | grep 'install'
4) удалить все пакеты с шага 3: sudo apt-get remove {список пакетов с шага 3}
5) переустановите все пакеты из шага 2: sudo apt-get install --reinstall {список пакетов из шага 2}
6) Если что-то пошло не так, и вы не можете придумать решение, верните PPA и переустановите все пакеты из двух списков.
источник
Я знаю, что это довольно старый вопрос, но я пришел сюда в поисках помощи, и, возможно, я могу кому-то помочь. У меня была ситуация, похожая на @ Karthik-T, после установки
unity8-desktop-session-mir
. Я знаю, что это большой. Это потянуло 233 пакета с ним.С помощью
autoremove
меня удаляются только 34 из них. Дело в том, что во времяunity8-desktop-session-mir
установки было удалено два пакета (python3-aptdaemon.pkcompat
иevolution-data-server-online-accounts
). Об этом говорится в разделе/var/log/apt/history.log
послеInstall
.Чтобы полностью отменить установку Unity 8, я выпустил следующее:
sudo apt-get purge unity8-desktop-session-mir
sudo apt-get --purge autoremove
sudo apt-get install python3-aptdaemon.pkcompat evolution-data-server-online-accounts
(удалено 8 пакетов, связанных с Unity 8)sudo apt-get --purge autoremove
Это не удалит абсолютно все, что вы установили ранее, но в некоторых случаях достаточно хорошо.
PS: возможно,
autoremove
на втором шаге нет необходимости, как я выпустил снова на четвертом шаге.источник