Ubuntu отменить установку пакета

Обновлено: 04.07.2024

Установка и удаление программ одна из самых важных вещей для пользователя компьютера. Поскольку нам нужно как нибудь получать новые, нужные программы, а также удалять лишние. Но удаление пакетов в Ubuntu имеет некоторые тонкости. После удаления могут остаться зависимости, пакеты установленные, как рекомендованные, а также конфигурационные файлы.

В этой статье мы разберем как удалить deb пакет Ubuntu, при чем удалить чисто, так, чтобы после него не осталось следов в системе. Также поговорим о полном удалении PPA, поскольку много пакетов, которых нет в официальных репозиториях мы устанавливаем из PPA.

Как удалить пакет Ubuntu

Самый простой способ удалить пакет Ubuntu, это воспользоватся одной из графических утилит, поставляемых специально для этого, например Synaptic или Центр приложений Ubuntu. По сути это делается в пару кликов. Сначала рассмотрим порядок действий в Центре приложений Ubuntu.

Запустить центр приложений вы можете из панели значков Unity:

ubuntu

Список всех установленных пакетов находится на вкладке Установлено, здесь приложения рассортированы по категориям:

ubuntu1

Чтобы удалить пакет Ubuntu, достаточно кликнуть по нему левой кнопкой мыши, и когда появляться доступные действия нажать кнопку Удалить:

Для завершения нужно будет подтвердить удаление и ввести пароль.

Пакет удален, но не совсем так, как нам хотелось бы. Но об этом позже.

Дальше рассмотрим пакетный менеджер Synaptic. Это как ни как стороннее программное обеспечение, но многие его используют из-за большого функционала и удобного интерфейса. Если программа еще не установлена, ее нужно установить с помощью центра приложений или выполнив в терминале:

sudo apt install synaptic

ubuntu6

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

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

ubuntu7

Удалить deb ubuntu вы можете просто нажав правой кнопкой мыши и в контекстном меню на нужном пакете и выбрав отметить для удаления или отметить для полного удаления:

ubuntu8

Программа покажет, какие еще пакеты будут удалены, это те пакеты, которые зависят от нашего пакета:

ubuntu9

Теперь, чтобы завершить удаление, осталось нажать кнопку Применить:

ubuntu10

Теперь программа покажет какие пакеты будут удалены. И пойдет процесс удаления:

ubuntu11

ubuntu12

Просто удаление и полное удаление отличается только тем, что при полном удалении удаляются конфигурационные файлы. Но проблема этих инструментов в том, что пакеты установленные как зависимости и рекомендованные к программе не удаляются и остаются в системе. Такое поведение наблюдается как в Synaptic, так и в Центре приложений Ubuntu. Поэтому мы переходим к описанию самого гибкого способа - удаление пакетов Ubuntu в терминале.

Как удалить пакет Ubuntu в терминале

В новых версиях Ubuntu для управления пакетами, а в том числе и удаления можно использовать новый менеджер пакетов - apt. Команда удаления выглядит таким образом:

sudo apt remove имя_пакета

Будет выполнено полное удаление пакета, включая конфигурационные файлы и зависимости, только рекомендованные программы останутся. Если вы хотите использовать apt-get чтобы удалить deb ubuntu, то порядок действий немного другой. Для обычного удаления пакета выполните:

sudo apt-get remove имя_пакета

Для удаления пакета вместе с его конфигурационными файлами, выполните:

sudo apt-get purge имя_пакета

А чтобы, также удалить зависимости, установленные вместе с пакетом, нужно после одной из предыдущих команд выполнить:

sudo apt autoremove

Будут удаленны не только явно указанные зависимости, но и программы установленные как рекомендованные.

Ну с основами разобрались, теперь перейдем к более сложным ситуациям. Что если вы устанавливали программу из deb файла и теперь не знаете точно, как называется ее пакет, чтобы удалить?

Это очень просто узнать, например по исполняемому файлу, допустим исполняемый файл программы TimeShift находится по адресу /usr/bin/timeshift, теперь узнаем ее пакет:

sudo dpkg -S /usr/bin/timeshift

Как видите, пакет так и называется - timeshift. Теперь можно удалить программу Ubuntu, одним из выше описанных способов.

Очень часто мы устанавливаем недостающее нам программное обеспечение из PPA, но не все эти пакеты нужны нам на протяжении долгого времени, а при обновлении системы, могут даже вызвать ошибки. Так как же удалить все пакеты установленные из PPA? Для этого есть специальная утилита: ppa-purge.

Если она еще не установлена, устанавливаем командой:

sudo apt install ppa-purge

Теперь, чтобы удалить все пакеты установленные из определенного ppa используйте:

sudo ppa-purge -i ppa:владелец_ppa/имя_ppa

Обратите внимание на ppa:владелец_ppa/имя_ppa - обычно в таком формате записываются все PPA: протокол:владелец/имя.

Узнать список репозиториев можно в программе источники приложений:

Такой командой можно одним махом удалить пакеты ubuntu, установленные из ppa:

find /etc/apt/sources.list.d -type f -name "*.list" -print0 | \
while read -d $'\0' file; do awk -F/ '/deb / && /ppa\.launchpad\.net/ ' "$file"; done

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

Но все же способ есть, обычно, разработчики в файле сценариев makefile, кроме цели install реализуют цель uninstall, которая дозволяет выполнить обратное действие.

Поэтому если у вас осталась папка с исходным кодом той программы можно просто перейти в нее и выполнить make uninstall чтобы удалить приложение Ubuntu:

cd /папка/с/исходниками
$ sudo make uninstall

Выводы

В этой статье мы рассмотрели все, что поможет вам удалить приложение Ubuntu. При чем удалить полностью, а не только файлы программы. Если у вас остались вопросы, пишите в комментариях.

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

, но для отмены действий apt вы можете использовать скрипт apt-undo. Это простой скрипт, который может отменить действия apt, выполненные в Ubuntu. Следует отметить, что этот скрипт может работать, только если вы используете его вместо apt-get для установки / обновления / удаления / очистки / понижения пакетов.

Чтобы установить apt-undo в Ubuntu, запустите следующие команды в терминале:

Чтобы отменить, приведенные выше действия aptitude выполняют следующие команды в терминале:

Спасибо, я наткнулся на это, и это звучит точно так, как приказал доктор, пока я не увидел предостережение, которое мне нужно было использовать для установки, чтобы можно было отменить .. – Karthik T 25 January 2013 в 23:28 Хорошо поймал. Однако очень запутанный синтаксис. И я действительно не люблю использовать альтернативы проверенному базовому APT-приложению. Все еще +1! – gertvdijk 25 January 2013 в 23:38

Используйте мощность Unix. Возьмите строку файла журнала, которая у вас есть, и постройте команду, которая отменит действие apt. Например:

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

(Я использовал [ f3] вместо sed, потому что sed использует тип регулярного выражения, который не поддерживает не-жадные совпадения, что было самым простым способом построения того, что мне было нужно)

Хороший скрипт, но на самом деле это должна быть просто последовательность команд, которые люди могут запомнить, чтобы выполнить это. – gertvdijk 25 January 2013 в 23:53 Спасибо, запугивая сценарий, но я боялся, что это спустится к этому – Karthik T 26 January 2013 в 00:07 Спасибо, но autoremove оказалось недостаточным в этом случае. См. Мое редактирование. – Karthik T 25 January 2013 в 23:27

Следуйте за sudo apt-get purge packagename с помощью

. Если это метапакет, это должно позаботиться об этом.

Также см. faq at. Как вручную удалить все файлы Cardapio? .

Спасибо, но autoremove оказалось недостаточным в этом случае. См. Мое редактирование. Спасибо за ссылку на часто задаваемые вопросы, очень полезно! – Karthik T 25 January 2013 в 23:26 Некоторые из этих пакетов могут потребоваться другими вещами и не помечены как способные быть авторизованными. Вы посмотрели инструкции по ссылке? Как это? – chaskes 25 January 2013 в 23:32 Инструкции по ссылке довольно ортогональны основной проблеме, и как бы то ни было, я склоняюсь к переустановке своей системы. Спасибо, в любом случае. – Karthik T 26 January 2013 в 00:02 Вставьте длинный список нежелательных пакетов из журнала apt в файл new_file.txt Execute perl -pe 's/\(.*?\)(, )?//g' /path/to/new_file.txt Скопируйте вывод последней команды в буфер обмена или перенесите ее там в первую очередь. Выполнить sudo apt-get remove [вставить содержимое буфера обмена здесь]

В принципе нам нужно отформатировать список пакетов из журнала apt в нечто, что может понять apt-get. Скобки, слова между ними и запятые должны идти так, чтобы в них вмешался perl. Да, есть лучшие (более эффективные) способы - но я сделал это, его легко понять, и он работает.

+1 для личного опыта и объяснений, но, как я уже упоминал ранее, я уже сбросил свой Live USB – Karthik T 2 February 2013 в 16:57

Если вы только что добавили 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

5) переустановите все пакеты с шага 2: sudo apt-get install --reinstall

6) Если все пошло не так, и вы не можете придумать решение, верните PPA и переустановите все пакеты из двух списков. [ ! d6]

Чтобы полностью отменить установку Unity 8, я опубликовал следующее:

Это не удалит абсолютно все, что вы установили раньше, но в некоторых случаях достаточно.

Если вы активный пользователь Linux, то наверняка встречались с тем, что некоторые пакеты так сказать ломаются. Это может быть вызвано по разным причинам, некорректно установленный пакет, какие-то ошибки во время установки и многое другое. Что в свою очередь может сказаться и на самом менеджере пакетов “apt-get”, и как итог, возможно что дойдет даже то того, что вы не сможете обновляться или устанавливать программное обеспечения. Данная статья поможет вам решить вопрос со сломанными пакетами в Debian / Ubuntu, а так же их производными. Так как сломанные пакеты могут возникать по разным причинам, существует несколько способов для решения этой задачи, но, не все они могут сработать, тут все зависит от конкретного случая.

P.S. Желательно точно знать какой пакет у вас сломан, так как это поможет вам выбрать один из способом решения задачи.

Чиним сломанные пакеты с apt-get

Первый вариант, который может помочь починить сломанные пакеты имеется в самом менеджере пакетов apt, и для починки сломанных пакетов достаточно ввести две команды:

sudo apt-get update --fix-missing
sudo apt-get install -f

Этот способ поможет для решения уже установленных в вашей системе пакетов, который по каким то причинам сломались. После выполнения первой команды необходимо убедиться, что она исправила ошибки, а затем переходить к введению второй команды. Возможно, что для исправления сломанных пакетов понадобиться несколько минут:

Чиним сломанные пакеты с apt-get и dpkg

Но, что делать если пакет сломался во время установки? Можно попробовать выполнить команды из первого примера, если они не сработают, переходим к использованию apt-get и dpkg, для этого первым делом используем dpkg для настройки пакетов. А затем выполняем очистку apt-get:

sudo dpkg --configure -a
sudo apt-get clean
sudo apt-get update

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

sudo rm /var/lib/apt/lists/lock

Принудительное удаление пакета с помощью apt-get и dpkg

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

sudo apt-get remove и название пакета

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

sudo dpkg --remove --force-remove-reinstreq и название пакеты

Затем выполните очистку и обновление пакетов:

sudo apt-get clean && sudo apt-get update

Заключение

Если вы не знаете про менеджеры пакетов apt-get и dpkg, на WIKI имеется статьи, первая про apt , вторая статья про dpkg . В редких ситуациях, выше приведенных мер может быть недостаточно для исправления сломанных пакетов. В этом случае, может понадобиться ручная сборка и удаление сломанных пакетов, правда, имеется риск повредить работоспособность всей системы, что в свою очередь может вывести ее из строя. В этом случае, если вы делали резервные копии вашей системы можно откатиться работоспособной версии системы. Сделать резервную копию вашей системы можно при помощи Timeshift или Deja Dup , последняя имеется в дистрибутиве Ubuntu. Но, чаще всего удается отделаться малой кровью когда появляются сломанные пакеты, и выше приведенных мер достаточно для исправления сломанных пактов.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

У меня есть apt-get install процесс, который, кажется, безнадежно заклинивает на processing triggers for python-support шаге.

Моя наклонение к kill нему, но в прошлом, просто kill -ный в apt-get install процессе вызвала у меня много горя. (Различные блокированные файлы IIRC остались позади и т. Д.)

Есть ли более безопасный способ остановить этот процесс?

Процессы убийства

Вообще говоря, для уничтожения процесса нет более безопасного способа уничтожения процесса, чем обычное уничтожение (SIGTERM). В случае, если это интерактивный процесс, он обычно позволяет остановить его еще безопаснее, отправив сигнал SIGINT, обычно отправляемый нажатием Ctrl + C . Этот сигнал улавливается самим процессом, который может его прослушать - и обычно изящно останавливается. ( спасибо, Элия )

База данных DPKG

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

О СИГКИЛЛЕ (9)

Отправка SIGKILL (десятичное представление 9) очень небезопасно. Этот сигнал не перехватывается процессом, но операционная система (ядро) будет очищать весь процесс независимо от того, нравится он процессу или нет. Состояние файлов в файловой системе может быть оставлено в поврежденном состоянии. Никогда не отправляйте эти сигналы, если они больше не слушают другие более изящные сигналы.

Когда приложение предлагает способ его завершения, это обычно даже безопаснее, чем SIGTERM. Например, большинство (если не все) текстовые редакторы, текстовые редакторы, графические программы, веб-браузеры и другие текстовые или графические приложения, где пользователь может создавать контент, который не должен быть потерян, не сохраняют его автоматически. прежде чем выйти, когда они получают SIGTERM. Также обратите внимание, что SIGINT иногда может быть безопаснее, чем SIGTERM (но обычно его не следует отправлять, если явно не требуется тот же результат, что и Ctrl + C).

Когда я сталкиваюсь с ошибкой с помощью apt-get, я делаю следующее (как root, т.е. sudo перед всеми командами):

Читайте также: