我需要在我的系统上安装qt5,并且只能以普通用户身份运行它。当我尝试以“超级用户”身份运行它时,出现以下错误:
root ~ # ./qt-opensource-linux-x64-5.3.2.run
No protocol specified
qt-opensource-linux-x64-5.3.2.run: cannot connect to X server :0.0
我已经搞定了:
root ~ # export DISPLAY=:0.0
root ~ # echo $DISPLAY
:0.0
还是没有运气。
问题:
我有什么理由不想以 root 身份安装它吗?难道以 root 身份运行它不会在“系统范围内”安装它吗?
我如何以 root 身份运行它?
编辑#1
如果重要的话,我的发行版是 Debian Wheezy。
如果我用 sudo 运行它:
~$ sudo ./qt-opensource-linux-x64-5.3.2.run
No protocol specified
qt-opensource-linux-x64-5.3.2.run: cannot connect to X server :0.0
同样的错误。
编辑#2
这个脚本来自这里并且是qt5安装程序(Qt是一个跨平台应用程序和UI开发框架。使用Qt,您可以轻松地将GUI应用程序移植到多个平台,而无需从头开始重写应用程序代码。)
编辑#3
据我从指示中收集到的信息这站点,安装程序应该以 root 身份运行,他们在那里使用“sudo”运行它?
指导摘录:
$ chmod +x qt-linux-opensource-5.2.0-x86-offline.run
$ sudo ./qt-linux-opensource-5.2.0-x86-offline.run
答案1
这在我的系统上按预期工作。您似乎没有进行sudo
配置以允许您运行图形应用程序。我已经好几年没有遇到这个问题了,但其中之一应该可以工作:
关闭 X 的访问控制
xhost + sudo ./qt-opensource-linux-x64-1.6.0-5-online.run
然后,使用 再次激活它
xhost -
。将您的环境导出到
sudo
会话。sudo -E ./qt-opensource-linux-x64-1.6.0-5-online.run
我不确定这个有多大相关性,但值得一试。
答案2
不,通常没有理由不以 root 身份安装,这种情况很常见。不以 root 身份“运行”与以 root 身份安装不同。您不应该以 root 身份运行它,根据我的经验,X 客户端很少需要以 root 身份运行。
安装和运行是不同的事情。许多项目需要以 root 身份安装才能进入编译期间配置的目录,但随后它们将作为“普通”用户运行。
安装是编译过程的最后部分。许多包的编译可以作为普通用户完成,例如在主目录的某个子目录中。但是,当涉及到安装时,可执行二进制文件和脚本到/usr/local/bin
或/usr/bin
,以及其他文件/usr/lib
等,您需要 root 必须在那里写入的特殊权限。
这就是你通常会遇到的情况
tar xvf somepackage.tar
cd somepackage
./configure
make
sudo make install
只有该链中的最后一个命令需要“以 root 身份”执行²
安装后,每个用户都可以使用这些可执行文件,但是,除其他外,这会阻止他们更改“全局”设置。
¹有更多理由以 root 身份执行此操作,例如,当您需要设置一些setuid 或 setgid 位
²通常最后的命令与 && 链接在一起,因此只有在 make 成功时才会尝试安装