Linux удаляет пакет с зависимостями
Обновлено: 21.11.2024
Недавно я прочитал много вопросов/ответов/мнений об удалении пакетов и зависимостей. Есть много разных способов сделать это, некоторые из них слишком запутаны, а некоторые недостаточны/неполны. Я хочу спросить здесь в одном месте, что другие считают лучшим способом очистки пакета и всего, включая конфигурации, зависимости и конфигурации зависимостей. Я также предложу свой метод, который появился в результате множества проб, ошибок и выдергивания волос.
3 ответа 3
Предупреждение. Это может привести к удалению пакетов, которые вам могут понадобиться. Если это произойдет, просто переустановите их. Но, честно говоря, когда вы устанавливаете/удаляете что-то, это вносит большие изменения в вашу систему. почему бы сначала не сделать резервную копию.
Самый тщательный метод, который я когда-либо придумывал, чтобы полностью удалить пакет, ПЛЮС его зависимости, ПЛЮС все конфигурации, включая эти конфигурации зависимостей, и выполнить небольшую уборку, заключается в том, что PACKAGENAME является основным удаляемым пакетом: р>
Выйдите из рабочего стола и нажмите Ctrl+Alt+F1, затем войдите в TTY1 и выполните следующие команды:
Перезапустите, если необходимо
Так что же происходит во второй строке? Каналы берут выходные данные из зависимостей apt-cache и переформатируют их. Первый канал awk '< print $2>' принимает выходные данные apt-cache depend и печатает, или "эхо", только второй столбец. Без него у вас также был бы в списке другой столбец, который является типом зависимости, то есть «зависит», «рекомендует» и т. д. Затем второй канал tr '\n' ' ' принимает этот результат и удаляет или усекает (отсюда tr) символы новой строки и заменяет их пробелом, разделяющим имена. Все это возвращает "разделенный пробелами" список имен всех пакетов зависимостей PACKAGENAME, формат которого удобен для использования с несколькими входными пакетами для команды-параметра очистки.
Это особенно хорошо работает для метапакетов. Я запускаю последнюю команду «sudo apt-get -f install» в конце, чтобы проверить наличие возможных сломанных пакетов и исправить их после внесения стольких изменений одновременно. Я особенно делаю это каждый раз, когда добавляю «DE» и хочу вернуться. Совсем недавно я использовал это после установки GNOME, и это даже исправило тот факт, что только очистка Gnome с помощью автоматического удаления после того, как мой GRUB все еще оставался измененным и оставил параметр входа в DM. Когда я попробовал lubuntu-desktop, он устранил некоторые конфликты и удалил записи из входа в DM, которые были оставлены очисткой и автоматическим удалением.
Похожий метод, который хорошо работает, возможно, безопаснее, но все же не всегда позволяет получить все:
apt-get устанавливает пакет с зависимостями и сообщает, что на моем диске установлено 10 мегабайт.
Но я передумал, поэтому иду
apt-get удалить мой пакет
И apt-get объявляет, что 166 килобайт будут освобождены.
Я не хочу засорять диск остатками, поэтому стараюсь
apt-get autoremove mypackage
Теперь apt-get хочет удалить 166 мегабайт с моего диска.
Как мне отменить последнюю операцию установки или просто удалить один пакет и все его зависимости?
В качестве альтернативы, есть ли другой инструмент управления пакетами, который я мог бы использовать (даже в другом дистрибутиве), который грубо рассматривал бы операции установки как атомарные операции, которые можно выполнить и отменить?
@WeijunZhou Спасибо. Я также обнаружил, что dnf также имеет возможность автоматического удаления определенного пакета. Я рассматриваю возможность перехода на Fedora (у меня Debian), но сначала я постараюсь заставить yum работать на Debian.
2 ответа 2
APT не управляет изменениями пакетов как транзакциями, поэтому нет встроенной операции для отмены установки пакета (или любых других манипуляций с пакетом). Тем не менее, он регистрирует все выполняемые им операции, сгруппированные по запросу конечного пользователя: если вы посмотрите в /var/log/apt/history.log , вы найдете установку mypackage вместе со списком всех других пакетов. которые были установлены автоматически вместе с ним. Вы можете использовать это, чтобы отменить установку вручную.
Вместо этого вы также можете использовать aptitude для общего управления пакетами: он эффективно автоматически удаляет файлы s по умолчанию. Это не поможет вам прямо сейчас, поскольку он захочет удалить те же 166 МБ пакетов, что и apt autoremove .
Как указал Вэйцзюнь Чжоу, yum и dnf управляют изменениями пакетов как единицами, которые можно отменить (в некоторых случаях). В истории dnf будут перечислены транзакции, хранящиеся в истории, а откат истории dnf или отмена истории dnf могут использоваться для отката истории или отмены конкретной транзакции (если это возможно). Я не уверен, что yum или dnf можно правильно использовать вместо APT в системах на основе Debian; вам может потребоваться переключиться на Fedora, RHEL или CentOS, если вы хотите использовать эти инструменты для управления всеми пакетами.
Мы уже видели, как создавать пакеты Debian.Теперь мы увидим, как их удалить. Удалить пакеты в Debian или Ubuntu Linux из консоли очень просто, ваш пользователь должен быть в sudoers, иначе вам потребуется root-доступ.
Получить список установленных пакетов: dpkg –list
Команда dpkg –list покажет вам список установленных пакетов. Вы можете использовать эту команду, чтобы получить список имен установленных программ, которые нужно удалить позже. Конечно, вам не нужно использовать эту команду, если вы уже знаете имя удаляемой программы.
Прокрутив вниз, вы увидите все установленные пакеты. Как вы можете видеть на снимке экрана ниже, одним из установленных пакетов на моем устройстве является skypeforlinux, программа, которую я буду использовать в этих учебных примерах:
Удаление пакетов с помощью apt-get:
При использовании apt-get правильный способ удаления пакетов через консоль показан ниже. Параметр «–remove» удалит установочные файлы с сохранением данных конфигурации, добавив «–purge», мы укажем apt-get также удалить файлы конфигурации.
При запросе подтверждения нажмите Y, чтобы завершить процедуру удаления. Вы также можете пропустить запрос подтверждения, добавив -y при выполнении команды, как показано на изображении ниже:
Вы также можете запустить apt-get purge без параметра remove, как показано в примере ниже. При этом будут удалены как двоичные файлы программы, так и файлы конфигурации.
Или вы можете просто удалить двоичные файлы, содержащие файлы конфигурации, выполнив:
Если вы хотите сохранить файлы конфигурации, запустите:
Примечание: вы можете добавить параметр -y, чтобы избежать подтверждения.
Удаление пакетов с помощью dpkg:
Мы можем удалить пакеты, заменив команду apt-get на dpkg, как в следующем примере:
Мы также можем использовать параметр -r вместо удаления, как показано ниже:
Примечание. Где «PackageName» заменяется именем пакета.
Удаление сломанных пакетов
Чтобы удалить сломанные пакеты или пакеты, которые не были полностью установлены, мы выполним:
- очистить: удаляет кэш программ старше установленных.
- autoremove: удаляет ненужные файлы, например зависимости, которые больше не нужны.
- -f / –fix-broken install: исправление неработающих зависимостей и исправление возможных проблем с повреждением пакетов. Мы рассмотрим этот вариант позже.
Устранение неполадок
По разным причинам удаление или установка пакета могут возвращать ошибки. Наиболее распространенными причинами таких ошибок являются старые программы, частично установленные пакеты, поврежденные пакеты и устаревшие репозитории в etc/apt/sources.list и т. д.
Следующие команды и их порядок являются основными для решения первоначальных проблем в диспетчере пакетов. Если у вас возникли проблемы с установкой или удалением программного обеспечения в Ubuntu или других дистрибутивах Linux на базе Debian, выполните следующие команды:
- apt-get update: обновляет список пакетов в репозиториях.
- dpkg –configure -a: эта команда проверяет наличие проблем с зависимостями, которые нужно исправить.
- apt-get -f install: еще одна команда для устранения проблем с зависимостями.
- apt-get autoclean: удаление ненужных зависимостей.
Проверить, не хранятся ли пакеты в диспетчере пакетов
Чтобы проверить, содержит ли установщик пакеты, ожидающие установки, выполните следующие действия:
Предыдущая команда показывает, что у вас есть пакеты. Если указано удаление пакетов, запустите:
Удаление пакетов с помощью apt:
Хотя многие пользователи считают, что команда apt — это способ вызвать apt-get, обе команды имеют различия. В большинстве случаев вы можете использовать apt как apt-get, сохраняя те же параметры. В некоторых случаях варианты реализуются по-другому.Например, вы можете использовать команду apt для вывода списка всех пакетов, как мы делали ранее с командой dpkg.
Удаление пакетов с помощью apt такое же, как с помощью apt-get, для удаления двоичных файлов программы и запуска файлов конфигурации:
Вы можете использовать команду удалить вместо очистки, чтобы сохранить файлы конфигурации.
Как и в случае с apt-get, вы можете добавить параметр -y для предотвращения подтверждения.
Вывод:
Команды, описанные в этом руководстве, являются базовыми командами Debian, которые должен изучить любой пользователь уровня.
Я надеюсь, что это руководство по удалению пакетов было полезным. Продолжайте следовать Linux Hint, чтобы получить дополнительные советы и руководства по Linux.
Об авторе
Дэвид Адамс
Дэвид Адамс — системный администратор и писатель, специализирующийся на технологиях с открытым исходным кодом, программном обеспечении для обеспечения безопасности и компьютерных системах.
Рахул, 17 апреля 2021 г., 3 минуты чтения
APT (Advanced Package Tool) — это мощный инструмент управления пакетами для систем на базе Debian. Он предоставляет мощный инструмент командной строки, такой как «apt» или «apt-get». Который используется для установки, обновления или удаления программного пакета в вашей системе Debian.
В этом руководстве вы узнаете, как удалить или удалить пакеты из системы Ubuntu или Debian Linux.
Как удалить пакеты через командную строку
Вы можете использовать инструмент командной строки apt для удаления пакетов из вашей системы. Для более старых версий операционных систем используйте команду «apt-get» с теми же параметрами.
Используйте один из следующих вариантов, чтобы удалить пакеты из системы. Очистите файлы кеша, чтобы удалить неиспользуемое программное обеспечение из системы.
Использование опции удаления:
Чтобы удалить определенный пакет, используйте команду apt remove:
Эта команда предлагает apt просканировать установленные приложения и попытаться удалить или восстановить все сломанные.
Использование параметра очистки:
Команда удаления по умолчанию удаляет только файлы программного обеспечения из системы, но сохраняет все файлы конфигурации в целях безопасности. В случае случайного удаления файлы конфигурации и данных в безопасности.
Если вы хотите полностью удалить все файлы данных, приложений и конфигурации, используйте параметр –purge с приведенной выше командой. нравится:
Использование чистой опции:
Используйте эту опцию с apt, чтобы удалить все файлы кеша удаленного программного обеспечения из вашей системы.
Также удаляет кэш диспетчера пакетов apt из системы.
Использование опции автоматического удаления:
Большинство программ установили зависимые пакеты в вашей системе. Что вы можете увидеть во время установки любого программного обеспечения в вашей системе. Но они по-прежнему остаются в вашей системе после удаления исходного пакета, который вы установили.
С помощью этой команды вы можете удалить потерянные зависимости из системы
Любой пользователь, которого не устраивает командная строка, может использовать графический интерфейс для удаления пакетов из системы.
Удаление пакетов через графический интерфейс
Пользователи настольных компьютеров могут удалять пакеты с помощью программного центра Ubuntu. Программный центр Ubuntu предоставляет вам графический интерфейс для установки, обновления и удаления пакетов из системы.
Найдите программный центр Ubuntu среди приложений и запустите его.
Перейдите на вкладку "Установлено". Здесь вы найдете список всех пакетов, установленных в вашей системе Ubuntu. Найдите свой пакет и нажмите кнопку «Удалить» напротив имени пакета. См. изображение ниже:
Здесь появится диалоговое окно подтверждения. Снова щелкните щелкните, чтобы завершить удаление.
Вам может быть предложено ввести пароль sudo для завершения процесса удаления пакета.
Заключение
В этом руководстве описываются несколько способов удаления пакетов из систем Ubuntu Linux.
Читайте также: