터미널: ./qt-opensource-linux-x64-5.3.2.run에서 이 스크립트를 루트로 어떻게 설치합니까?

터미널: ./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

아직도 운이 없습니다.

질문:

루트로 설치하고 싶지 않은 이유가 있습니까? 루트로 실행하면 "시스템 전체"에 설치되지 않나요?

루트로 어떻게 실행합니까?

편집 #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

의 지시 사항에서 수집할 수 있는 정보는 다음과 같습니다.이것사이트에서는 설치 프로그램을 루트로 실행해야 하는데 거기에 "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

아니요, 일반적으로 루트로 설치하지 않을 이유가 없습니다. 이는 매우 흔한 일입니다. 루트로 "실행"하는 것은 루트로 설치하는 것과 다릅니다. 이것을 루트로 실행해서는 안 됩니다. 내 경험상 X 클라이언트를 루트로 실행해야 하는 경우는 거의 없습니다.

설치와 실행은 다릅니다. 컴파일 중에 구성된 디렉토리에 들어가려면 많은 항목을 루트로 설치해야 하지만 나중에 "일반" 사용자로 실행됩니다.

설치는 컴파일 프로세스의 마지막 부분입니다. 많은 패키지에 대한 컴파일은 일반 사용자(예: 홈 디렉토리의 일부 하위 디렉토리)로 수행할 수 있습니다. 그러나 설치에 관해서는 실행 가능한 바이너리와 스크립트를 /usr/local/bin또는 에 /usr/bin, 기타 파일을 /usr/lib등에 작성해야 하는 특별한 권한이 필요합니다.

이것이 당신이 일반적으로 사용하는 것입니다

tar xvf somepackage.tar
cd somepackage
./configure
make
sudo make install

해당 체인의 마지막 명령만 "루트로" 수행하면 됩니다²

설치 후 모든 사용자는 해당 실행 파일을 사용할 수 있지만 무엇보다도 이로 인해 "전역" 설정을 변경할 수 없습니다.

¹ 루트로서 이 작업을 수행해야 하는 더 많은 이유가 있습니다(예: 일부 설정이 필요한 경우).setuid 또는 setgid 비트
² 종종 마지막 명령은 &&로 연결되므로 make가 성공한 경우에만 설치가 시도됩니다.

관련 정보