설치 파일의 rpm을 만들었고 .run
rpm을 실행할 때마다 rpm이 .run 파일을 실행하려고 할 때마다 exec -t is an invalid option
다음 코드 줄에서 오류가 발생합니다.
if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal!
exec $XTERM -title "$label" -e "$0" --xwin "$initargs"
else
exec $XTERM -title "$label" -e "./$0" --xwin "$initargs"
하지만 .run
단독으로 실행하면 잘 설치됩니다. 왜 이런 일이 발생합니까? 또한, 이 코드의 if 문은 무엇을 합니까?
답변1
팁 #1
설치 시 RPM이 데스크톱을 소유한 사용자와 다른 사용자 ID(루트)로 실행되기 때문에 XTERM을 이와 같이 실행할 수 없다고 생각합니다.
이렇게 하려면 최소한 xhost +
기본 데스크톱에서 사용자 ID로 실행한 다음 $DISPLAY
XTERM 호출에 환경 변수가 설정되어 있는지 확인해야 합니다. 다음과 같이 작동할 수 있습니다.
exec DISPLAY=:0.0 $XTERM .....
나는 XTERM이 유사한 변환을 할 수 있다고 생각 -display
하지만 현재로서는 그것을 가지고 있지 않습니다.
팁 #2
"exec -t는 잘못된 옵션입니다"라는 메시지가 표시되면 변수가 $XTERM
설정되지 않아 명령이 exec -title ...
실행되고 실패하게 되는 것으로 의심됩니다.
$ exec -title "blah" -e "bash"
bash: exec: -t: invalid option
exec: usage: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
그러나 설정 $XTERM
하고 다시 시도하면 작동합니다.
$ XTERM=xterm
$ exec $XTERM -title "blah" -e "bash"