Astra Linux — популярная отечественная операционная система на базе ядра Linux, широко используемая в госсекторе, образовании и коммерческих структурах. При работе с принтерами пользователи часто сталкиваются с необходимостью переустановки или полного удаления драйверов — например, при смене модели устройства, конфликтах ПО или переходе на универсальные драйверы CUPS. В отличие от Windows, где удаление драйверов интуитивно понятно, в Astra Linux процесс требует знания консольных команд и особенностей системы.
Эта статья поможет разобраться, как корректно удалить драйвер принтера в Astra Linux (включая версии Common Edition и Special Edition), избежав типичных ошибок. Мы рассмотрим как графические методы через CUPS, так и ручные способы с использованием терминала. Особое внимание уделено случаям, когда принтер"завис" в системе после физического отключения или драйвер конфликтует с обновлениями ОС.
Прежде чем приступать к удалению, убедитесь, что у вас есть права суперпользователя (sudo) — без них большинство команд не сработает. Также рекомендуем создать точку восстановления системы, если вы работаете с производственной машиной: ошибки при манипуляциях с драйверами могут привести к потере функциональности печати для всех пользователей.
1. Подготовка системы перед удалением драйвера
Удаление драйвера принтера в Astra Linux — это не просто очистка файлов, а комплексное действие, затрагивающее несколько уровней системы. Прежде чем приступать, выполните обязательные подготовительные шаги:
- 🔍 Определите точное название драйвера. Используйте команду
lpstat -v, чтобы увидеть список установленных принтеров и связанных с ними драйверов. Например, вывод может содержать строкуdevice for PrinterName: hp:/usb/DeskJet_3700?serial=CN12345, гдеhp— производитель, аDeskJet_3700— модель. - 📋 Проверьте зависимости. Некоторые драйверы (например, для HP или Canon) устанавливают дополнительные пакеты вроде
hplipилиcnijfilter. Их тоже потребуется удалить, иначе останутся"хвосты" в системе. - 🔄 Остановите службу печати. Чтобы избежать конфликтов, временно отключите
CUPS:sudo systemctl stop cups - 🖨️ Физически отключите принтер. Если устройство подключено по
USBили сети, лучше его отсоединить на время манипуляций.
Если вы удаляете драйвер для сетевого принтера, убедитесь, что его IP-адрес не закреплён в настройках CUPS как"постоянный". В противном случае система может автоматически восстановить подключение при следующем запуске службы.
⚠️ Внимание: Если принтер используется несколькими пользователями черезSambaилиIPP, его удаление изCUPSсделает устройство недоступным для всей сети. Предупредите коллег заранее!
Определить название драйвера через lpstat -v|
Остановить службу CUPS|
Отключить принтер физически|
Проверить зависимости пакетов|
Создать резервную копию конфигураций (/etc/cups/)|-->
2. Удаление драйвера через веб-интерфейс CUPS
Самый простой способ удалить драйвер принтера в Astra Linux — использовать встроенный веб-интерфейс CUPS. Этот метод подходит для пользователей, не знакомых с командной строкой, но требует предварительной настройки доступа.
Чтобы открыть интерфейс CUPS:
- Откройте браузер и перейдите по адресу
http://localhost:631. - В разделе
Administration(Администрирование) выберитеManage Printers(Управление принтерами). - Найдите в списке принтер, драйвер которого нужно удалить, и нажмите на него.
- В выпадающем меню выберите
Delete Printer(Удалить принтер). - Подтвердите действие, введя имя пользователя и пароль суперпользователя.
После удаления принтера из списка CUPS автоматически очистит связанные с ним драйверы и очереди печати. Однако этот метод не удаляет пакеты драйверов, установленные через apt или dpkg. Их придётся удалять отдельно (см. следующий раздел).
Если после удаления принтер вновь появляется в списке, проверьте:
- 🔌 Подключён ли принтер физически (система может автоматически его обнаруживать).
- 📡 Настроены ли правила
udevдля автоматического добавления устройств (файлы в/etc/udev/rules.d/). - 🔄 Запущена ли служба
cups-browsed, которая сканирует сеть на наличие принтеров.
Если веб-интерфейс CUPS недоступен, проверьте, запущена ли служба: sudo systemctl status cups. Если нет — запустите её командой sudo systemctl start cups.
3. Ручное удаление драйверов через терминал
Для полного удаления драйверов принтера в Astra Linux часто требуется работа с командной строкой. Этот метод подходит для опытных пользователей и позволяет очистить систему от всех следов драйвера, включая конфигурационные файлы и зависимости.
Основные команды для удаления:
# 1. Удаление пакетов драйверов (пример для HP)
sudo apt purge hplip hplip-data
2. Удаление принтера из CUPS
sudo lpadmin -x PrinterName
3. Очистка очереди печати
sudo cancel -a -
4. Удаление конфигурационных файлов (опционально)
sudo rm -rf /etc/cups/ppd/PrinterName.ppd
sudo rm -rf /var/spool/cups/tmp/*
Замените PrinterName на фактическое имя вашего принтера (узнать его можно через lpstat -v). Для драйверов других производителей используйте соответствующие названия пакетов:
| Производитель | Название пакета драйвера | Команда удаления |
|---|---|---|
| HP | hplip, hplip-data |
sudo apt purge hplip* |
| Canon | cnijfilter*, scangearmp* |
sudo apt purge cnijfilter* |
| Epson | epson-inkjet-printer-escpr, iscan* |
sudo apt purge epson* |
| Brother | brother-lpr-drivers*, brscan* |
sudo apt purge brother* |
| Универсальные | foomatic-db, printer-driver-* |
sudo apt purge foomatic-db printer-driver-* |
После удаления пакетов обязательно очистите кэш и перезапустите службу CUPS:
sudo apt autoremove
sudo systemctl restart cups
⚠️ Внимание: Удаление пакетов вродеfoomatic-dbможет привести к неработоспособности других принтеров в системе, если они используют универсальные драйверы. Перед очисткой проверьте зависимости командойapt-cache rdepends foomatic-db.
Что делать, если пакет не удаляется из-за зависимостей?
Если при удалении драйвера вы видите ошибку вроде E: Unable to correct problems, you have held broken packages, попробуйте:
1. Удалить пакет с флагом --force-all: sudo dpkg --force-all --purge пакет.
2. Исправить зависимости: sudo apt --fix-broken install.
3. В крайнем случае использовать synaptic для ручного разрешения конфликтов.
После этого обязательно выполните sudo apt autoremove и перезагрузите систему.
4. Удаление"зависших" принтеров и очистка очереди печати
Иногда принтер остаётся в системе даже после физического отключения, а в очереди печати висят документы, которые невозможно удалить стандартными методами. Этоная проблема при некорректном удалении драйверов. Вот как её решить:
Способ 1: Очистка очереди через CUPS
- 🖥️ Откройте веб-интерфейс
http://localhost:631. - Перейдите в раздел
Jobs(Задания). - Выделите все задачи и нажмите
Cancel Jobs(Отменить задачи). - Если задачи не удаляются, используйте команду:
sudo cancel -a -xФлаг
-xпринудительно сбрасывает все задачи, включая заблокированные.
Способ 2: Ручное удаление файлов очереди
Если очередь зависла на уровне системы, очистите её вручную:
sudo rm -rf /var/spool/cups/*
sudo rm -rf /var/spool/cups/tmp/*
sudo systemctl restart cups
Способ 3: Удаление"призрачных" принтеров
Если принтер отображается в CUPS, но физически отсутствует, выполните:
# Посмотреть список всех принтеров (включая скрытые)
lpstat -v
Удалить принтер по имени
sudo lpadmin -x"Имя_принтера"
Перезапустить службу
sudo systemctl restart cups
Если принтер всё равно появляется после перезагрузки, проверьте правила udev:
ls /etc/udev/rules.d/ | grep -i print
Удалите или отредактируйте файлы, содержащие правила автоматического добавления устройств.
Если принтер"возвращается" после удаления, проблема кроется в автоматическом обнаружении. Отключите службу cups-browsed командой sudo systemctl disable --now cups-browsed.
5. Проверка системы после удаления драйвера
После удаления драйвера важно убедиться, что в системе не осталось следов, которые могут вызвать конфликты при установке нового ПО. Выполните следующие проверки:
- 🔍 Проверка пакетов: Убедитесь, что все связанные пакеты удалены:
dpkg -l | grep -i"hp\|canon\|epson\|brother"Если вывод пуст — пакеты удалены корректно.
- 📄 Проверка конфигурационных файлов:
ls /etc/cups/ppd/В этой папке не должно быть файлов с именем удалённого принтера.
- 🖨️ Проверка списка принтеров:
lpstat -vУдалённый принтер не должен отображаться в выводе.
- 🔄 Проверка службы CUPS:
sudo systemctl status cupsСлужба должна быть активна (
active (running)) без ошибок.
Если вы планируете установить новый драйвер, перед этим:
- Обновите список пакетов:
sudo apt update - Установите зависимости для печати (если они были удалены):
sudo apt install cups foomatic-db printer-driver-all - Перезагрузите службу
CUPS:sudo systemctl restart cups
Если после всех манипуляций принтер всё равно не определяется или возникают ошибки, проверьте логи CUPS:
tail -n 50 /var/log/cups/error_log
Типичные ошибки после некорректного удаления драйверов:
Unable to locate printer— принтер не найден в системе.Filter failed— отсутствует фильтр для обработки задач печати.Client-error-not-found— драйвер или PPD-файл отсутствует.
6. Восстановление системы после ошибок
Если в процессе удаления драйвера что-то пошло не так (например, служба CUPS перестала запускаться или все принтеры исчезли из системы), воспользуйтесь инструкциями по восстановлению:
Проблема 1: Служба CUPS не запускается
Ошибка может возникать из-за повреждённых конфигурационных файлов. Восстановите их:
sudo apt --reinstall install cups
sudo systemctl restart cups
Проблема 2: Все принтеры исчезли из списка
Если после удаления одного драйвера пропали все устройства, проверьте целостность базы CUPS:
sudo cupsctl --debug-logging
sudo systemctl restart cups
Затем попробуйте добавить принтер заново через веб-интерфейс http://localhost:631.
Проблема 3: Ошибки зависимостей при установке новых драйверов
Если после удаления старых драйверов новые не устанавливаются из-за конфликтов, очистите кэш и исправьте зависимости:
sudo apt clean
sudo apt update --fix-missing
sudo apt install -f
Проблема 4: Права доступа к /etc/cups
Если при добавлении нового принтера появляется ошибка Forbidden, сбросьте права на папки CUPS:
sudo chown -R root:lpadmin /etc/cups
sudo chmod -R 755 /etc/cups
sudo systemctl restart cups
⚠️ Внимание: Если вы работаете в Astra Linux Special Edition с включёнными политиками безопасности (например,SELinuxилиAppArmor), после манипуляций с драйверами может потребоваться перезагрузка системы для сброса контекстов безопасности. В противном случае принтер может не определиться даже после корректной установки драйвера.
7. Альтернативные способы управления драйверами
Если стандартные методы не помогли или вы предпочитаете более гибкие инструменты, рассмотрите альтернативные подходы:
- 🐧 Использование
hp-setupдля принтеров HP
Утилита
hp-setup(входит в пакетhplip) позволяет не только устанавливать, но и удалять принтеры с очисткой драйверов:hp-setup -iВ графическом интерфейсе утилиты выберите принтер и нажмите
Remove. - 📦 Удаление через
Synaptic
Если в вашей системе установлен пакетный менеджер
synaptic, его графический интерфейс упрощает поиск и удаление связанных с принтером пакетов. Запустите:sudo synapticВ поисковой строке введите название драйвера (например,
hplip) и удалите все найденные пакеты, отметив их для полного удаления (Полное удалениев контекстном меню). - 🔧 Ручная правка конфигураций
CUPS
Для опытных пользователей: можно вручную отредактировать файлы конфигурации
CUPS, например:sudo nano /etc/cups/printers.confУдалите блоки, соответствующие ненужным принтерам, затем перезапустите службу.
- 🌐 Удаление сетевых принтеров через
IPP
Если принтер подключён по сети и добавлен через
IPP, удалите его так:sudo ipptool -d /printers/Имя_принтера http://localhost:631/
Для принтеров, использующих проприетарные драйверы (например, некоторые модели Xerox или Kyocera), может потребоваться дополнительная очистка:
# Пример для Xerox
sudo /opt/Xerox/Uninstall
Для Kyocera
sudo /usr/local/Kyocera/uninstall
Путь к деинсталлятору обычно указан в документации к драйверу.
FAQ: Частые вопросы по удалению драйверов принтера в Astra Linux
Можно ли удалить драйвер принтера без прав суперпользователя?
Нет, для удаления драйверов и манипуляций с CUPS требуются права root. Однако обычный пользователь может удалить принтер из своего профиля (не затрагивая системные драйверы) через веб-интерфейс CUPS, если у него есть права на администрирование печати (группа lpadmin). Чтобы добавить пользователя в эту группу, выполните:
sudo usermod -aG lpadmin имя_пользователя
После удаления драйвера принтер всё равно отображается в списке. Что делать?
Это типичная проблема, связанная с кэшированием CUPS или автомаческим обнаружением устройств. Попробуйте:
- Остановить службу
cups-browsed:sudo systemctl stop cups-browsed - Удалить принтер вручную:
sudo lpadmin -x Имя_принтера - Очистить кэш
CUPS:sudo rm -rf /var/cache/cups/* - Перезапустить
CUPS:sudo systemctl restart cups
Если принтер подключён по USB, отключите его физически перед выполнением команд.
Как узнать, какие пакеты драйверов установлены в системе?
Используйте команды для поиска пакетов, связанных с принтерами:
# Поиск по ключевым словам
apt list --installed | grep -i"print\|cups\|hplip\|canon\|epson\|brother"
Просмотр информации о конкретном пакете
apt show hplip
Для более детального анализа зависимостей используйте:
apt-cache rdepends имя_пакета
Можно ли удалить драйвер принтера, не удаляя сам принтер из системы?
Технически да, но это может привести к неработоспособности устройства. Чтобы просто сменить драйвер:
- Удалите старый драйвер (пакеты через
apt purge). - Обновите информацию о принтере в
CUPS:sudo lpadmin -p Имя_принтера -m новый_драйвер.ppd - Перезапустите службу:
sudo systemctl restart cups
Список доступных драйверов можно посмотреть командой:
lpinfo -m
Как полностью сбросить настройки печати в Astra Linux?
Для полного сброса (например, перед передачей компьютера другому пользователю):
- Удалите все принтеры:
sudo lpstat -v | awk'{print $3}' | xargs -I {} sudo lpadmin -x {} - Удалите все пакеты драйверов:
sudo apt purge hplip* cnijfilter* epson* brother* foomatic-db printer-driver-* - Очистите конфигурационные файлы:
sudo rm -rf /etc/cups/ppd/*sudo rm -rf /etc/cups/interfaces/*
sudo rm -rf /var/spool/cups/*
- Переустановите
CUPS:sudo apt --reinstall install cups - Перезагрузите систему.
После этого система печати будет возвращена к состоянию"по умолчанию".