如何在终端中以 root 身份安装此脚本:./qt-opensource-linux-x64-5.3.2.run?

如何在终端中以 root 身份安装此脚本:./qt-opensource-linux-x64-5.3.2.run?

我需要在我的系统上安装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配置以允许您运行图形应用程序。我已经好几年没有遇到这个问题了,但其中之一应该可以工作:

  1. 关闭 X 的访问控制

    xhost +
    sudo ./qt-opensource-linux-x64-1.6.0-5-online.run
    

    然后,使用 再次激活它xhost -

  2. 将您的环境导出到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 成功时才会尝试安装

相关内容