Удаление драйверов принтера в Linux часто превращается в головную боль для пользователей. Система может хранить остаточные файлы в разных каталогах, а неправильное удаление приводит к конфликтам при повторной установке. Особенно актуальна проблема для корпоративных сканеров-принтеров Brother, HP LaserJet или Epson WorkForce, где производители поставляют проприетарные драйвера с собственными зависимостями.
В отличие от Windows, где достаточно удалить устройство через "Диспетчер устройств", в Linux драйвера принтера могут быть установлены через CUPS (Common Unix Printing System), пакетные менеджеры (apt, dnf, pacman) или вручную через .ppd-файлы. Эта статья покрывает все методы удаления — от стандартных до малоизвестных трюков для "упорных" драйверов, которые не хотят исчезать из системы.
Почему драйвера принтера не удаляются стандартными способами
Основная проблема кроется в архитектуре CUPS — системы печати Linux, которая хранит конфигурации принтеров в нескольких местах одновременно. Даже после удаления принтера через графический интерфейс его драйвера могут оставаться:
- 📁 В каталоге
/etc/cups/ppd/— здесь хранятся.ppd-файлы с настройками конкретных моделей - 📦 В пакетах системы — производители часто поставляют драйвера как отдельные пакеты (hplip, brother-lpr-drivers)
- 🔧 В кэше
~/.cups/— пользовательские настройки, которые не очищаются автоматически - 🖥️ В системных модулях ядра — некоторые драйвера (особенно для USB-принтеров) подгружаются как kernel modules
Дополнительную сложность создают проприетарные драйвера от Canon или Xerox, которые устанавливаются через скрипты с официальных сайтов. Такие драйвера часто игнорируют стандартные пути CUPS и размещают файлы в /opt/ или /usr/local/. Без ручной чистки эти файлы будут мешать работе новых драйверов.
Способ 1: Удаление через графический интерфейс CUPS
Самый простой метод — использовать веб-интерфейс CUPS. Он работает на всех дистрибутивах, где установлен cups (по умолчанию в 90% случаев).
- Откройте браузер и перейдите по адресу:
http://localhost:631 - Вкладка Administration → Manage Printers
- Найдите ваш принтер в списке и нажмите Delete Printer
- Подтвердите удаление (может потребоваться ввод логина/пароля администратора)
После этого принтер исчезнет из списка, но его драйвера останутся в системе. Чтобы удалить их полностью:
- Перейдите во вкладку Administration → Manage Printer Drivers
- Найдите драйвер вашей модели (например, HP LaserJet P1102) и удалите его
- Перезагрузите службу CUPS командой:
sudo systemctl restart cups
Если веб-интерфейс CUPS не открывается, проверьте, запущена ли служба командой sudo systemctl status cups. На некоторых дистрибутивах (например, Arch Linux) она может быть отключена по умолчанию.
⚠️ Внимание: После удаления драйвера через CUPS некоторые модели принтеров (особенно Brother DCP серии) могут оставлять "призрачные" записи в /etc/cups/printers.conf. Проверьте этот файл вручную и удалите оставшиеся строки с именем вашего принтера.
Способ 2: Удаление через терминал (команды для всех дистрибутивов)
Терминальный метод даёт больше контроля и позволяет удалить даже те драйвера, которые не отображаются в графическом интерфейсе. Основные команды:
# Удаление принтера из CUPS
sudo lpadmin -x {имя_принтера}
Удаление всех принтеров (осторожно!)
sudo cancel -a -
sudo lpstat -p | awk '{print $2}' | xargs -I{} sudo lpadmin -x {}
Очистка очереди печати
sudo cancel -a
Для удаления .ppd-файлов (где хранятся настройки драйверов):
# Удаление PPD-файла конкретного принтера
sudo rm /etc/cups/ppd/{имя_принтера}.ppd
Удаление всех PPD-файлов (если нужно полностью сбросить настройки)
sudo rm /etc/cups/ppd/*
Если вы не знаете точное имя принтера, посмотрите список установленных:
lpstat -p -d
Сделать резервную копию файлов в /etc/cups/ppd/
Проверить имя принтера командой lpstat
Остановить службу cups перед удалением (sudo systemctl stop cups)
Удалить принтер из CUPS (lpadmin -x)
Перезапустить службу cups (sudo systemctl start cups)-->
| Команда | Описание | Когда использовать |
|---|---|---|
lpadmin -x printer_name |
Удаляет принтер из CUPS | Первый шаг перед удалением драйверов |
rm /etc/cups/ppd/*.ppd |
Удаляет все файлы настроек принтеров | Если нужно полностью сбросить конфигурацию |
apt purge hplip |
Удаляет пакет драйверов HP вместе с конфигами | Для дистрибутивов на базе Debian/Ubuntu |
dnf remove brother-lpr-drivers |
Удаляет драйвера Brother | Для Fedora/RHEL/CentOS |
pacman -Rns cups |
Полное удаление CUPS и зависимостей | Крайний случай, если ничего не помогает |
Способ 3: Удаление проприетарных драйверов (HP, Brother, Epson, Canon)
Производители часто поставляют драйвера в виде отдельных пакетов или скриптов. Их нужно удалять через пакетный менеджер.
Для Ubuntu/Debian:
# HP (hplip)
sudo apt purge hplip hplip-gui
sudo apt autoremove
Brother
sudo apt purge brother-lpr-drivers-*
sudo rm -rf /opt/brother/
Epson
sudo apt purge printer-driver-escpr
sudo apt purge epson-inkjet-printer-escpr
Для Fedora/RHEL:
# HP
sudo dnf remove hplip
Brother
sudo dnf remove brother-lpr-drivers
sudo rm -rf /usr/local/Brother/
Для Arch Linux:
# HP
sudo pacman -Rns hplip
Brother (AUR)
yay -Rns brother-dcp1510 # замените на вашу модель
Важно: Драйвера Canon часто устанавливаются через скрипты с официального сайта и размещаются в /usr/local/. Их нужно удалять вручную, так как они не регистрируются в пакетных менеджерах.
Как найти скрытые файлы драйверов Canon?
Многие драйвера Canon (особенно для моделей MG3600, Pixma TR4500) устанавливаются в нестандартные каталоги. Проверьте:
/usr/local/cnijfilter/
/opt/canon/
/usr/lib/cups/filter/pstocanonij
Удалите эти папки вручную после деинсталляции через скрипт производителя (если он есть).
Способ 4: Чистка системных модулей и udev-правил
Некоторые USB-принтеры (особенно старые модели HP DeskJet или Samsung ML) используют модули ядра для работы. После удаления драйверов эти модули могут оставаться загруженными.
Проверьте загруженные модули:
lsmod | grep -i printer
lsmod | grep -i usb
Если вы видите модули вроде usblp, lp или pps, их можно отключить:
# Временное отключение (до перезагрузки)
sudo rmmod usblp
Постоянное отключение (добавить в чёрный список)
echo "blacklist usblp" | sudo tee /etc/modprobe.d/blacklist-printer.conf
Также проверьте udev-правила, которые могут автоматически загружать драйвера:
sudo grep -r "printer" /etc/udev/rules.d/
sudo grep -r "lp" /lib/udev/rules.d/
Удалите или отредактируйте найденные файлы правил, если они мешают работе.
⚠️ Внимание: Отключение модуля usblp может нарушить работу других USB-устройств, подключённых к LPT-портам (например, некоторых сканеров штрих-кодов). Перед внесением изменений проверьте, не используются ли эти модули другими устройствами.
Способ 5: Полный сброс CUPS (крайний случай)
Если ни один из методов не помог, можно полностью переустановить CUPS. Это радикальное решение, но оно гарантированно удалит все следы драйверов.
Для Debian/Ubuntu:
sudo apt purge cups cups-client cups-common
sudo apt autoremove
sudo rm -rf /etc/cups/
sudo apt install cups
Для Fedora/RHEL:
sudo dnf remove cups
sudo rm -rf /etc/cups/
sudo dnf install cups
Для Arch Linux:
sudo pacman -Rns cups
sudo rm -rf /etc/cups/
sudo pacman -S cups
После переустановки:
- Перезапустите службу:
sudo systemctl restart cups - Добавьте пользователя в группу
lpadmin:sudo usermod -aG lpadmin $USER - Перезагрузите компьютер
Полный сброс CUPS удаляет ВСЕ принтеры и их настройки. После этой процедуры вам придётся заново добавлять все устройства печати в систему.
Как проверить, что драйвера удалены полностью
Перед установкой новых драйверов убедитесь, что старые удалены без остатка. Проверьте:
- Список принтеров в CUPS:
lpstat -aДолжен вернуть "no system default destination".
- Остаточные файлы:
sudo find / -name "printer" 2>/dev/nullsudo find / -name "ppd" 2>/dev/null
- Загруженные модули ядра:
lsmod | grep -E "lp|usb|print" - Пакеты в системе:
apt list --installed | grep -i printer # Debian/Ubuntudnf list installed | grep -i printer # Fedora
pacman -Q | grep -i printer # Arch
Если поиск возвращает файлы в /home/ или /tmp/, их можно игнорировать — это кэш пользовательских приложений. Важно, чтобы не осталось файлов в системных каталогах (/etc/, /usr/, /opt/).
Частые ошибки и как их избежать
- 🔄 Ошибка: "Printer is busy" — перед удалением отмените все задачи печати командой
sudo cancel -aи перезапустите CUPS. - 🔒 Отказано в доступе — убедитесь, что вы используете
sudoи ваш пользователь входит в группуlpadmin. - 🖨️ Принтер появляется снова после перезагрузки — проверьте udev-правила и модули ядра, как описано в Способе 4.
- 📄 Не удаляется PPD-файл — возможно, он используется другим процессом. Закройте все программы, связанные с печатью (LibreOffice, GIMP и т.д.).
- 🔄 После удаления не устанавливаются новые драйвера — выполните
sudo apt --fix-broken install(Debian/Ubuntu) или аналогичную команду для вашего дистрибутива.
⚠️ Внимание: На некоторых enterprise-дистрибутивах (RHEL, SUSE) служба CUPS может быть интегрирована с SELinux. Если после удаления драйверов принтер не определяется, проверьте логи SELinux командой sudo ausearch -m avc -ts recent и при необходимости обновите политики.
FAQ: Ответы на частые вопросы
Можно ли удалить драйвера принтера без удаления CUPS?
Да, в большинстве случаев достаточно удалить конкретный принтер через lpadmin -x и очистить его .ppd-файл. Полное удаление CUPS требуется только если система печати повреждена или вы хотите сбросить все настройки.
После удаления драйверов принтер определяется как "Unknown". Что делать?
Это означает, что система распознаёт устройство как USB-устройство, но не может найти для него драйвер. Установите правильный драйвер через:
- Официальный репозиторий дистрибутива (
apt install hplip) - Сайт производителя (скачайте
.deb/.rpm-пакет) - Универсальные драйвера (например,
foo2zjsдля многих лазерных принтеров)
Если принтер по-прежнему не определяется, проверьте подключение по USB и попробуйте другой кабель.
Как удалить драйвера для сетевого принтера?
Сетевые принтеры (особенно HP OfficeJet Pro или Xerox WorkCentre) часто оставляют записи в /etc/cups/printers.conf. После стандартного удаления:
- Откройте файл:
sudo nano /etc/cups/printers.conf - Удалите блок с именем вашего принтера (начинается с
<Printer имя_принтера>) - Перезапустите CUPS:
sudo systemctl restart cups
Для полной очистки также удалите файлы в /etc/cups/interfaces/, если они есть.
Удалил драйвера, но принтер всё равно печатает тестовые страницы при включении. Почему?
Это поведение характерно для принтеров с собственным буфером памяти (многие модели Brother и Kyocera). Тестовые страницы генерирует сам принтер, а не драйвер. Чтобы отключить их:
- Зажмите кнопку Go (или Cancel) на принтере при включении на 5-10 секунд
- Используйте веб-интерфейс принтера (обычно доступен по IP-адресу устройства)
- Обновите прошивку принтера через официальное ПО производителя
Это не связано с драйверами в Linux — настройка хранится в памяти самого принтера.
Можно ли удалить драйвера принтера для всех пользователей системы?
Да, но для этого нужны права root. Выполните:
- Удаление системных пакетов (например,
sudo apt purge hplip) - Очистку
/etc/cups/ppd/(общие настройки для всех пользователей) - Удаление модулей ядра (если они используются)
Пользовательские настройки (~/.cups/) при этом не затрагиваются — каждый пользователь может иметь свои собственные принтеры.