Вопрос или проблема
На рабочей системе Ubuntu 24.04, подключенной по USB-кабелю к принтеру HP, я использовал apt
для установки hplip
и hplip-gui
из стандартного дистрибутива Ubuntu. Диагностических сообщений не было — все выглядело работающим. Затем я попытался настроить принтер с помощью hplip-gui
, но приложение никогда не позволяло мне завершить настройку. Я затем открыл терминальное приложение и вызвал hp-setup
. Отобразился графический интерфейс, который снова завис; однако в терминале во время выполнения hp-setup
появились диагностические сообщения, которые я скопировал ниже. Похоже, что отсутствуют зависимости python
, которые apt
(на самом деле, apt-get
) не заставляет устанавливать вместе с пакетами. Любая помощь будет очень appreciated. Для модераторов/цензоров этого списка: обрезка диагностического вывода может устранить подсказку о том, как исправить сбой.
HP Linux Imaging and Printing System (вер. 3.23.12)
Утилита настройки принтера/факса вер. 9.0
Copyright (c) 2001-18 HP Development Company, LP
Это программное обеспечение поставляется БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Это бесплатное программное обеспечение, и вы можете распространять его
при определенных условиях. Смотрите файл COPYING для получения подробной информации.
Поиск... (bus=usb, search=(None), desc=0)
Ошибка трейсбека (последний вызов был последним):
Файл "/usr/share/hplip/ui5/setupdialog.py", строка 1394, в NextButton_clicked
self.showAddPrinterPage()
Файл "/usr/share/hplip/ui5/setupdialog.py", строка 708, в showAddPrinterPage
self.findPrinterPPD()
Файл "/usr/share/hplip/ui5/setupdialog.py", строка 797, в findPrinterPPD
self.print_ppd = cups.getPPDFile2(
^^^^^^^^^^^^^^^^^
Файл "/usr/share/hplip/prnt/cups.py", строка 539, в getPPDFile2
family_class=getFamilyClassName(model)
^^^^^^^^^^^^^^^^^^^^^^^^^
Файл "/usr/share/hplip/prnt/cups.py", строка 181, в getFamilyClassName
family_type= dict[m]['family-class']
~~~~~~~^^^^^^^^^^^^^^^^
KeyError: 'family-class'
Ошибка в sys.excepthook:
Ошибка трейсбека (последний вызов был последним):
Файл "/usr/lib/python3/dist-packages/apport_python_hook.py", строка 228, в partial_apport_excepthook
return apport_excepthook(binary, exc_type, exc_obj, exc_tb)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Файл "/usr/lib/python3/dist-packages/apport_python_hook.py", строка 123, в apport_excepthook
report.add_package_info()
Файл "/usr/lib/python3/dist-packages/apport/report.py", строка 442, в add_package_info
package = apport.fileutils.find_file_package(self["ExecutablePath"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Файл "/usr/lib/python3/dist-packages/apport/fileutils.py", строка 175, в find_file_package
return packaging.get_file_package(file)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Файл "/usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py", строка 631, в get_file_package
dpkg = subprocess.run(
^^^^^^^^^^^^^^^
Файл "/usr/lib/python3.12/subprocess.py", строка 548, в run
with Popen(*popenargs, **kwargs) as process:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Файл "/usr/lib/python3.12/subprocess.py", строка 1026, в __init__
self._execute_child(args, executable, preexec_fn, close_fds,
Файл "/usr/lib/python3.12/subprocess.py", строка 1955, в _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Доступ запрещен: 'dpkg-divert'
Исключение оригинала:
Ошибка трейсбека (последний вызов был последним):
Файл "/usr/share/hplip/ui5/setupdialog.py", строка 1394, в NextButton_clicked
self.showAddPrinterPage()
Файл "/usr/share/hplip/ui5/setupdialog.py", строка 708, в showAddPrinterPage
self.findPrinterPPD()
Файл "/usr/share/hplip/ui5/setupdialog.py", строка 797, в findPrinterPPD
self.print_ppd = cups.getPPDFile2(
^^^^^^^^^^^^^^^^^
Файл "/usr/share/hplip/prnt/cups.py", строка 539, в getPPDFile2
family_class=getFamilyClassName(model)
^^^^^^^^^^^^^^^^^^^^^^^^^
Файл "/usr/share/hplip/prnt/cups.py", строка 181, в getFamilyClassName
family_type= dict[m]['family-class']
~~~~~~~^^^^^^^^^^^^^^^^
KeyError: 'family-class'```
Ответ или решение
Вопрос, который вы подняли о проблемах с HPLIP (HP Linux Imaging and Printing) на Ubuntu 24.04, имеет несколько возможных причин, связанных с зависимостями, которые могут отсутствовать, а также с несовместимыми версиями пакетов. Давайте подробно рассмотрим каждую часть вывода ошибок, который вы предоставили, и возможные шаги для решения проблемы.
Анализ проблемы
-
Основная ошибка: KeyError: ‘family-class’
Эта ошибка указывает на то, что HPLIP не может найти соответствующий класс для драйвера принтера. Это может происходить из-за того, что информация о принтере в системе не соответствует данным в установленных PPD-файлах. Это часто связано с отсутствием правильных или актуальных драйверов. -
PermissionError: [Errno 13] Permission denied
Эта ошибка возникает из-за отсутствия прав доступа к файлуdpkg-divert
, что может быть связано с тем, что командаhp-setup
была запущена от имени пользователя, не обладающего правами суперпользователя. Это может повлиять на возможности установки необходимых пакетов или модификации системных конфигураций.
Шаги для решения проблемы
-
Обновление системы
Убедитесь, что ваша система обновлена до последней версии. Используйте команды в терминале:sudo apt update sudo apt upgrade
-
Проверка зависимостей HPLIP
Убедитесь, что у вас установлены все необходимые зависимости. Вы можете попытаться переустановить HPLIP, чтобы гарантировать установку всех требуемых пакетов:sudo apt remove hplip hplip-gui sudo apt install hplip hplip-gui
-
Запуск в режиме суперпользователя
Попробуйте запуститьhp-setup
с привилегиями суперпользователя:sudo hp-setup
-
Проверка поддержки вашего принтера
Убедитесь, что ваш принтер поддерживается установленной версией HPLIP. Для этого можно ознакомиться с официальной страницей HPLIP на сайте HP, где представлены поддерживаемые модели принтеров. -
Добавление недостающих Python-библиотек
Проверьте наличие и установите необходимые Python-библиотеки, которые могут отсутствовать. Иногда могут понадобиться библиотеки, такие какpython3-pyqt5
или другие, связанные с GUI:sudo apt install python3-pyqt5
-
Проверка PPD файлов
Убедитесь, что все PPD файлы для вашего принтера находятся в правильной директории. Если вам необходимо добавить или обновить PPD файл, вы можете это сделать вручную или через установщик HPLIP.
Заключение
Следуя этим шагам, вы сможете устранить большинство проблем, связанных с установкой HPLIP на Ubuntu 24.04. Если проблема сохраняется, возможно, стоит обратиться за поддержкой к сообществу Ubuntu или HP, предоставив им подробную информацию об ошибках, которые вы видите.
Если у вас есть дополнительные вопросы или необходима помощь в выполнении этих шагов, не стесняйтесь обращаться.