我在本地安装了最新的hplip 3.6.11(HP Linux Imaging and Printing),用于在Ubuntu 14.04 LTS上运行的两台计算机。描述了一般安装过程here。整个过程无缝地完成一台机器而不是另一台机器。我想确定这种失败的原因并完成安装。
一台计算机出现故障的步骤是使用hp-setup
配置打印机。 hp-setup
是Python脚本的符号链接。在这两台机器上,此文件具有相同的属性:
ll -Z $(realpath `which hp-setup`)
-rwxr-xr-x 1 root root ? 38026 Mar 1 08:10 /usr/share/hplip/setup.py*
在发生故障的计算机中,启动hp-setup
会导致导入错误
Please make sure your printer is connected and powered on at this time.
Do you want to setup printer in GUI mode? (u=GUI mode*, i=Interactive mode) : i
Running 'hp-setup -i' command....
Traceback (most recent call last):
File "/usr/bin/hp-setup", line 48, in <module> from base import device, utils, tui, models, module, services, os_utils
File "/usr/share/hplip/base/device.py", line 42, in <module> from . import status
File "/usr/share/hplip/base/status.py", line 33, in <module> import cupsext
ImportError: libgpg-error.so.0: failed to map segment from shared object: Permission denied
error: hp-setup failed. Please run hp-setup manually.
关于cupsext
(在最近的调用中),在两台计算机中,hplip的构建目录包含./hplip-3.16.11/prnt/cupsext/
,其中包含cupsext.h
和cupsext.o
。条件在这里是平等的。
必需的共享对象位于两台计算机的同一位置/lib/x86_64-linux-gnu/libgpg-error.so.0.10.0
。 ll -Z
再次显示相同的属性和权限。
关于手动运行脚本的建议,脚本是运行hp-setup
还是手动运行无关紧要。实际上,如果我启动另一个脚本hp-plugin
,我会得到同样的错误。
此外,安装脚本到目前为止这一事实意味着所有依赖和冲突问题都已得到解决。
此错误是可重复的。如果我手动删除构建/对象目录并从头开始重新安装,则会再次发生。请注意,安装脚本本身有一个规则来清理现有版本的hplip,包括我刚刚使用相同脚本安装的版本。
有了这些证据,我在互联网上搜索了这个错误的可能原因。
hp-check
不仅可以找到hp-setup
尚未完成的内容,这是一致的。然后,troubleshoot documentation似乎没有涵盖此错误。
建议使用此原因,例如here和here。
我确实承认SELinux问题远远超出了我的经验和专业知识。
但是,上面的ll -Z
命令显示SELinux标记?
对于两台计算机中的相同文件是相同的。所以SELinux spoor并没有完全解决这个问题。
Python脚本可能是什么原因
so
文件同时?
免责声明我已经在过去https://askubuntu.com/questions/743164/hplip-update-cannot-install-plugin提出了有关此错误的问题,但我无法回想起当时的解决方法或天堂般的扭曲。这一事件的描述更为彻底,因为它在脚本和库问题中隔离了问题,这与Ubuntu无关。