我在我的外壳中运行:
./hplip-3.18.7.run
然后它要我输入root密码,但不接受!
有人知道这是什么吗?
如果我使用 sudo 运行脚本sudo ./hplip-3.18.7.run
,那么它会在安装过程的某个步骤告诉我:warning: hp-systray should not be run as root/superuser.
我正在使用 Ubuntu 18.04:
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.1 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
这是安装程序在开始时输出的内容:
分析
从 hplip 源代码中,我们可以了解以下有关身份验证的信息。身份验证在base/password.py文件中执行。
主要
AUTH_TYPES
用于:su
sudo
在聊天会话和评论中,我们发现了有趣的时刻:
第一个检查是 python平台模块。在 Ubuntu 上它应该返回
"Ubuntu"
.第二次发行版检查 -
lsb_release -i | cut -f 2
返回"Ubuntu"
第三个发行版检查 -
cat /etc/issue | awk '{print $1}' | head -n
返回"Ubuntu"
。但是 OP 已将 Anaconda 安装在主文件夹中,并将此目录添加到路径中。有趣的是 - 在这种情况下,在发行版检查中
python -c "import platform;print platform.dist()[0]"
返回"Debian"
( !!! )。所以安装程序尝试使用su
. 但是默认情况下, root帐户在 Ubuntu 上被禁用,因此出现问题("Please enter the root/superuser password:"
而不是"Please enter the sudoer (%s)'s password: "
)。结论
始终检查
$PATH
Python 版本的变量。Ubuntu 中的许多软件都依赖于 Python。APT 不了解 Anaconda,因此系统可能对第三方
python
s 和pip
s 有不可预知的行为。我可以建议从变量中排除第三方python
s 。$PATH
然后二进制 hplip 安装程序应该可以正常工作。然后你就可以按照我的指示去做。
我遇到过同样的问题。我来自捷克共和国,我的密码包含一些英文字母表中没有的特殊字符(ě,š)。解决此问题的方法是临时更改密码,使其不包含这些字符。之后,密码最终被接受,其余的安装完成,没有任何其他问题。
我以不同的方式解决了这个问题作为 Ubuntu 用户(没有 root 密码)
在此之后,安装程序没有要求我输入任何密码。