В этой статье разберём, в чём разница между командами apt remove и apt purge, и как полностью удалить пакет вместе с его конфигурационными файлами. Полезно для начинающих и системных администраторов, сталкивающихся с «остатками» программ или ошибками после удаления.
Почему появляется проблема с удалением конфигураций при apt remove
- Команда
apt removeудаляет только бинарные файлы, оставляя конфигурационные файлы пользователя в системе. - Конфигурационные файлы находятся в директориях
/etcили домашней папке и не трогаются при удалении. - Некоторые пакеты при повторной установке используют старые настройки, из-за чего проблемы не исправляются.
- Напрямую вручную удалять конфиги опасно без понимания, что именно требуется удалить.
Пошаговое решение
1. Проверяем установленные пакеты и их статус
dpkg -l | grep имя_пакетаКоманда показывает, установлен ли пакет и его статус. Если пакет уже удалён, но конфиги остались, статус будет rc (removed, config-files).
2. Удаляем пакет без удаления конфигов (только для проверки)
sudo apt remove имя_пакетаУдаляет программу, но оставляет конфигурационные файлы. Вывод покажет удалённые и сохранённые конфиги. Это стандартное поведение remove.
3. Полностью удаляем пакет вместе с конфигурационными файлами
sudo apt purge имя_пакетаpurge удаляет сам пакет и все его конфигурационные файлы, как системные, так и те, что установлены локально. Это команда для точного очищения.
4. Очищаем неиспользуемые зависимости и кэш
sudo apt autoremove
sudo apt cleanautoremove удаляет пакеты, которые остались не нужны после удаления, а clean очищает скачанные архивы пакетов из кэша.
5. Ручная проверка и удаление конфигураций в системе (при необходимости)
sudo find /etc -name '*имя_пакета*' -exec rm -i {} ;Команда найдёт в /etc все файлы, ассоциированные с пакетом, и предложит подтвердить удаление. Будьте осторожны и проверяйте файлы перед удалением.
6. Проверка остатков в домашней директории пользователя
ls -a ~ | grep имя_пакетаМногие программы создают скрытые конфигурации в домашней папке. Их можно удалить вручную, если уверены, что не нужны.
7. Проверяем статус пакета после очистки
dpkg -l | grep имя_пакетаПакет должен отсутствовать в списке установленных (нет статуса ii или rc).
Альтернативные методы
Если apt purge не удаляет все конфиги, можно использовать dpkg напрямую:
sudo dpkg --purge имя_пакетаЭта команда работает на более низком уровне и также удалит конфигурационные файлы. Однако будьте осторожны — dpkg не управляет зависимостями.
Если пакет был удалён, но конфигурации остались, можно использовать dpkg для удаления конфигов «осиротевших» пакетов:
dpkg -l | grep '^rc' | awk '{print $2}' | xargs sudo dpkg --purgeКоманда найдет все удалённые, но оставшиеся с конфигами пакеты и очистит их.
Проверка результата
После удаления убедитесь, что пакет и конфигурации полностью отсутствуют:
dpkg -l | grep имя_пакета
ls /etc | grep имя_пакета
ls -a ~ | grep имя_пакетаВывод не должен содержать упоминания удалённого пакета или его файлов.
Как избежать в будущем
- Всегда используйте
apt purgeдля полного удаления пакета с конфигурациями. - Проверяйте статус пакета через
dpkg -lперед удалением. - Используйте
autoremoveдля очистки неиспользуемых зависимостей. - Для критичных серверов делайте бэкап конфигураций перед удалением.
FAQ
В чем принципиальная разница между apt remove и apt purge?
apt remove удаляет пакет, но оставляет конфигурационные файлы, а apt purge удаляет пакет вместе со всеми конфигами.
Можно ли вручную удалить конфигурационные файлы после apt remove?
Да, но делать это нужно осторожно, чтобы не удалить важные системные настройки.
Как проверить, остались ли в системе конфиги удалённого пакета?
Используйте команду dpkg -l | grep '^rc' — так показываются пакеты с сохранёнными конфигами.
Надеемся, эта инструкция поможет вам лучше управлять пакетами в Linux. Смотрите также: разбор команды apt autoremove и её применение.