Как установить этот скрипт как 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 — это кроссплатформенная среда разработки приложений и пользовательского интерфейса. Используя 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чтобы разрешить вам запускать графические приложения. Я не сталкивался с этой проблемой уже несколько лет, но один из этих вариантов должен сработать:

  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.

Связанный контент