- Какой командой можно удалить пакет со всеми данными и зависимостями?
- 2 ответа 2
- Похожие
- Подписаться на ленту
- Исправляем сломанные пакеты в Debian – Ubuntu
- Чиним сломанные пакеты с apt-get
- Чиним сломанные пакеты с apt-get и dpkg
- Принудительное удаление пакета с помощью apt-get и dpkg
- Заключение
- Как полностью удалить пакет с зависимостями в Linux, использующим пакетный менеджер apt.
- apt remove: Uninstall apt Packages in Ubuntu
- Uninstall apt packages
- Cleaning up after package removal (optional)
- Dealing with configuration files after package removal
- Summary
Какой командой можно удалить пакет со всеми данными и зависимостями?
Совсем корректный ответ — никакой. Данные програм, которые возникли за время использования программы, не удаляются автоматически. Если упустить этот шаг, то вам надо смотреть в сторону удаления осиротевших листьев репозитория. Я честно говоря не помню про Debian, но наверняка что-то такое там есть.
2 ответа 2
aptitude purge && apt-get autoremove && aptitude purge ~c
Если прога создаст через touch /etc/someone-file , то удалять только руками. Потому что такое в менеджере пакетов не регистрируется.
Для этого в apt есть ключ —purge .
—purge
Use purge instead of remove for anything that would be removed. An asterisk («*») will be displayed next to packages which are scheduled to be purged. remove —purge is equivalent to the purge command. Configuration Item: APT::Get::Purge .
sudo apt autoremove --purge пакет
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.7.14.43533
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Исправляем сломанные пакеты в Debian – Ubuntu
Если вы активный пользователь 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
Как полностью удалить пакет с зависимостями в Linux, использующим пакетный менеджер apt.
При установке программ, при помощи пакетного менеджера apt, у многих часто возникаем вопрос как их удалять. Для этого есть команды:
sudo apt-get autoremove имя_программы
Команда удаляет пакет вместе с зависимости, которые для него устанавливались, и больше ему не нужны.
sudo apt-get remove имя_программы
Команда удаляет пакет не затрагивая зависимости.
sudo apt-get purge имя_программы
Команда удаляет конфигурационные файлы пакета.
Казалось бы, на этом все, но не тут-то было, apt-get autoremove не всегда удаляет всё что было установлено вместе с пакетом.
Что бы наверняка удалить все что было установлено вместе с пакетом, можно посмотреть лог apt:
cat /var/log/apt/history.log | more
Пример вывода этой команды:
Start-Date: 2016-08-03 07:46:19 Commandline: apt-get install samba Install: python-tdb:amd64 (1.3.8-2, automatic), python-samba:amd64 (2:4.3.9+dfsg -0ubuntu0.16.04.2, automatic), python-dnspython:amd64 (1.12.0-1, automatic), sam ba:amd64 (2:4.3.9+dfsg-0ubuntu0.16.04.2), samba-dsdb-modules:amd64 (2:4.3.9+dfsg -0ubuntu0.16.04.2, automatic), libaio1:amd64 (0.3.110-2, automatic), tdb-tools:a md64 (1.3.8-2, automatic), attr:amd64 (1:2.4.47-2, automatic), samba-common:amd6 4 (2:4.3.9+dfsg-0ubuntu0.16.04.2, automatic), samba-vfs-modules:amd64 (2:4.3.9+d fsg-0ubuntu0.16.04.2, automatic), samba-common-bin:amd64 (2:4.3.9+dfsg-0ubuntu0. 16.04.2, automatic), python-ldb:amd64 (2:1.1.24-1ubuntu3, automatic) End-Date: 2016-08-03 07:47:23
Здесь видно что при установке samba, так же были установлены python-tdb, python-samba и т.д. Соответственно для полного удаления установленного пакета можно набрать команду:
sudo apt-get autoremove --purge python-tdb python-samba python-dnspython samba samba-dsdb-modules libaio1 tdb-tools attr samba-common samba-vfs-modules samba-common-bin python-ldb
Для того что бы не искать и не выбирать эти программы из лога вручную можно спарсить лог:
sudo sed -n '/Commandline: apt-get install имя_пакета/,/End-Date:.*/p' /var/log/apt/history.log | sed -n '/Install.*/p' | sed -e s'/Install: //g' | sed -e s'/:amd64 //g' | sed -e s'/(.[^)]*),\//g' | tr '\n' ' '
Внимание: эти команды парсят весь лог, т.е. если несколько раз устанавливалась/удалялась программа, на экран выведутся все программы которые были установлены при каждой установке, не только при последней.
Что бы отображались программы только при последней установке нужно в конце строки заменить «tr ‘\n’ ‘ ‘» на «tail -1», т.е. команда должна быть:
sudo sed -n '/Commandline: apt-get install имя_пакета/,/End-Date:.*/p' /var/log/apt/history.log | sed -n '/Install.*/p' | sed -e s'/Install: //g' | sed -e s'/:amd64 //g' | sed -e s'/(.[^)]*),\//g' | tail -1
На экран выведутся программы, которые были установлены при установке пакета.
Что бы их удалить можно ввести:
sudo sed -n '/Commandline: apt-get install имя_пакета/,/End-Date:.*/p' /var/log/apt/history.log | sed -n '/Install.*/p' | sed -e s'/Install: //g' | sed -e s'/:amd64 //g' | sed -e s'/(.[^)]*),\//g' | tr '\n' ' ' | sudo xargs apt-get autoremove --purge -y
Все что устанавливалось при установке вашего пакета, будет удалено.
apt remove: Uninstall apt Packages in Ubuntu
How do you uninstall apt packages in Ubuntu using the terminal? It’s quite simple, actually. If you know the package name, just use it with the apt remove command like this:
sudo apt remove package_name
Even if you do not know the exact package name, tab completion is there to help you. You may also use the older apt-get remove command here.
sudo apt-get remove package_name
Both apt and apt-get commands are pretty much alike. The new and recommended command is apt, which I would also suggest using. If you want to remove multiple packages, you can do that in a single command:
sudo apt remove package_1 package_2 package_3
Uninstall apt packages
The apt command gives you all the essential tools to manage the APT packages. For uninstalling a package, it provides the remove option.
sudo apt remove package_name
You need to use the exact package name. How do you get that? You can use the tab completion feature. Try entering the first few starting letters and press tab. It will show the possible package names you can use. For example, I typed sudo apt remove mp and press the tab. My system shows that there are two installed packages with names starting with mp. Alternatively, you can list all the installed packages with apt and look for the package name:
This will be a huge output and you may have to use the grep command to filter on the result. I decide to remove the MPlayer from my system. The package name is mplayer (with all small letters). This is important because Linux is case-sensitive.
Installing and removing packages in Ubuntu requires that you have admin privileges. This is why you need to use sudo before the apt remove command. It asks to enter a password. It’s your user account’s password. When you type the command, nothing is displayed on the screen. That’s expected behavior. Type the password and press enter. As you can see in the screenshot below, it will show what packages are going to be removed. It also informs what dependency packages should be removed afterward. You have to press y or the enter key to continue with package removal.
Cleaning up after package removal (optional)
As you can see in the previous screenshot, it says, “The following packages were automatically installed and are no longer required” and then lists three packages. These are dependency packages that were installed automatically when mplayer was installed. So, what can you do? You can use the suggested command to remove these packages.
Do you really need to do that? No. You can just go ahead with your work after apt remove. The dependency packages will stay in the system. Usually, you should try running the apt autoremove commands every few weeks. It will remove all the dependency packages that are not required anymore, delete the older Linux kernel versions and thus free up disk space for you.
Dealing with configuration files after package removal
You should know that uninstalling apt package with apt remove does not remove user settings and configuration files (located under /etc directory). This way, if you install the same application again, you may reuse your custom configuration. Let’s take our example. Here are all the mplayer related directories before uninstalling it: After removal, you can still see some files: in certain cases, you might want the application to start afresh. You can use the apt purge command to uninstall apt applications and remove their configuration files located under /etc.
sudo apt purge package_name
Remember that even apt purge will not remove application-related files located under the user’s home directory. Those are really small files and do not take up a lot of space. If you are particular about these things, you can look for such files and manually remove them. There is no magic command for this.
Summary
- The apt remove command removes the specified packages.
- The remaining dependencies need to be removed separately with apt autoremove command.
- It doesn’t remove configuration and other user settings. If you install the same application again, it will likely have your user-defined settings.
I hope you find this beginner’s article about removing apt package helpful.
Please let me know if certain things are unclear in the comments and I’ll be happy to answer your questions.