Мне нужно установить 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 — это кроссплатформенная среда разработки приложений и пользовательского интерфейса. Используя Qt, вы можете легко переносить приложения с графическим интерфейсом на несколько платформ, не переписывая код приложения с нуля.)
ПРАВКА №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.