qt4 애플리케이션을 Xepyr에서 실행할 수 없습니다.

qt4 애플리케이션을 Xepyr에서 실행할 수 없습니다.

Xephyr기본 사용자로 로그인한 상태에서 다른 사용자로 응용 프로그램을 실행하는 데 사용합니다 .

를 기반으로 하는 애플리케이션을 Xephyr제외하고 대부분의 애플리케이션은 에서 잘 작동합니다 .qt4

electrum
ipython qtconsole
qbittorrent

위의 응용 프로그램은 일반 X 서버에서 실행하면 작동하지만 X에서 실행하면 Xephyr창 프레임만 보이지만 비어 있습니다.

이 문제를 어떻게 해결할 수 있나요?

내 운영 체제는 Debian Wheezy이고 버전 번호는 다음과 같습니다.

xserver-xephyr    1.12.4
libqtcore4        4.8.2

Xephyr세션을 시작하는 방법은 다음과 같습니다 .

Xephyr :1 -screen 1920x1080 -nolisten tcp -reset -terminate >/dev/null 2>&1 &
terminator --execute su - user2 -c 'DISPLAY=:1 startlxde >/dev/null 2>&1 &'

고쳐 쓰다 나는 그것을 테스트했는데 XFCE4같은 문제가 있습니다. QT4 애플리케이션이 여전히 작동하지 않고 빈 창이 나타납니다. 예를 들어, qbittorrent 창이 어떻게 보이는지 살펴보세요.

여기에 이미지 설명을 입력하세요.

답변1

질문에서는 Xephyr이 올바르게 실행되고 있다고 가정하지만(이에 대한 정보가 제공되지 않았기 때문에) 적어도 qBittorrent가 Debian Xfce Wheezy의 Xephyr에서 제대로 실행된다는 것을 확인했습니다.

아래 스크린샷은 Xephyr의 qBittorrent 2.9.8을 보여줍니다.

Debian Xfce Wheezy의 Xephyr에서 qBittorrent 2.9.8

이것은 Debian Xfce Wheezy에서 현재까지 사용 가능한 최신 패키지를 사용하여 테스트되었으며 libqtcore4이는 xserver-xephyr질문에서 참조된 버전과 유사합니다.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.9 (wheezy)
Release:    7.9
Codename:   wheezy

$ dpkg-query -W | grep libqt
libqt4-dbus:i386    4:4.8.2+dfsg-11
libqt4-network:i386 4:4.8.2+dfsg-11
libqt4-xml:i386 4:4.8.2+dfsg-11
libqtcore4:i386 4:4.8.2+dfsg-11
libqtdbus4:i386 4:4.8.2+dfsg-11
libqtgui4:i386  4:4.8.2+dfsg-11

$ dpkg-query -W | grep xephyr
xserver-xephyr  2:1.12.4-6+deb7u6

문제 식별

내가 찾은 유일한 관련 검색어는 다음과 같습니다.오류 71421, "Qt5 애플리케이션은 Xepyr와 함께 사용할 수 없습니다"라고 보고합니다.

Xephyr에서 Qt5(또는 분명히 GTK3) 애플리케이션을 실행하려고 하면 작동하지 않습니다(아무것도 표시되지 않으므로). GTK2 또는 Qt4는 glxgears와 같은 GLX 애플리케이션에서 잘 작동합니다. 또한 DM을 실행하지 않고 독립 실행형 X 서버에서 테스트했습니다. Qt5는 Xephyr에서는 작동하지 않지만 그곳에서는 잘 작동합니다.

이 버그는 문제 사례와 유사하지만 Qt5 애플리케이션에만 영향을 미칩니다. 이 버그는 Qt5에 의해 발생했으며 올해 4월 말에 수정되었습니다.

그 외에는 Xepyr에서 애플리케이션이 어떻게 실행되는지에 대한 정보가 제공되지 않습니다.

위의 응용 프로그램은 일반 X 서버에서 실행하면 작동하지만 Xepyr에서 실행하면 창 프레임만 표시되지만 비어 있습니다.

인용된 텍스트를 보면 여전히 몇 가지 질문이 있습니다. Xephyr이 잘못된 인수로 실행되고 있습니까? 아니면 Xephyr에서 애플리케이션이 다른 사용자로 어떻게 실행됩니까?

Qt4 애플리케이션이 Xephyr에서 실행되고 있지 않다고 판단되면 Qt4 패키지에 보고되지 않은 문제일 수 있습니다. 그러나 qBittorrent(Qt4 기반)가 Xephyr에서 제대로 작동한다는 것을 확인했기 때문에 이는 "다른 사용자"에 문제가 있거나 Xephyr이 현재 세션에서 실행되는 방식에 문제가 있을 수 있습니다.

Xephyr의 사용에 대해

Xephyr을 사용하여 특정 작업을 수행하는 방법을 설명하는 온라인 리소스입니다.

  1. 사피르ArchWiki에서. Xephyr 실행을 시작하기에 좋은 곳이지만 Xephyr에서 터미널이나 창 관리자를 실행하는 것 이상의 광범위한 사용법을 설명하지는 않습니다.

  2. Xepyr 사용을 시작하는 방법을 모릅니다. 내가 뭘 잘못했나요?Xorg 메일링 리스트, 2014년 1월 23일 목요일 17:16:40 PST. Xepyr에서 Xterm을 실행하는 또 다른 방법입니다.

  3. 여러 개의 X 데스크톱을 실행하는 방법은 무엇입니까?슈퍼유저에 관해 2009년 7월 22일에 질문되었습니다. Xepyr을 사용하여 제안된 답변 중 하나입니다. 소스 #1에서 제안한 방식과 유사합니다.

  4. 다중 터미널 구성/Xephyr: Xephyr을 사용하여 여러 터미널을 만드는 방법위키북스에서.

  5. 여러 Xserver의 스크린샷2014년 8월 21일 Unix & Linux Stack Exchange에 대한 질문입니다.

  6. 방법: Xepyr를 사용하여 Firefox(및 기타 항목)를 별도의 사용자로 실행합니다.. 이것은 질문에서 제안된 가장 유사한 사용법인 것 같습니다.

내가 이러한 소스를 인용하는 이유는 Xephyr에서 Qt 애플리케이션을 올바르게 실행하고 있는지 확인하는 데 도움이 될 수 있는 힌트를 제공하기 위해서입니다.

그럼에도 불구하고 "Xephyr를 사용하여 기본 사용자로 로그인한 동안 다른 사용자로 응용 프로그램을 실행합니다"라는 첫 번째 문장을 이해하는 것은 약간 까다롭습니다. 결국 저는 Xephyr에서 qBittorrent 실행을 테스트하기 위해 "다른 사용자"를 만들지 않았습니다. 어쩌면 다른 사람이 더 나은 답변을 줄 수도 있습니다.

답변2

Xephyr을 시작하는 데 어떤 명령이 사용되었는지, 어떤 창 관리자가 사용되고 있는지 아는 것이 유용할 수 있습니다.

나는 이것을 시도했습니다 :

Xephyr :1 &
DISPLAY=:1 openbox &
DISPLAY=:1 qbittorrent

그리고 qbittorrent의 불완전한 창 콘텐츠를 얻으세요. xfwm4와 동일하게 시도하십시오:

Xephyr :1 &
DISPLAY=:1 xfwm4 &
DISPLAY=:1 qbittorrent

그러면 모든 것이 잘되고 qbittorrent를 사용할 수 있습니다.

왜 차이가 있는지 설명할 수는 없지만 분명히 차이가 있습니다. 구성에 문제가 있다고 의심하고 구성을 활성화한 상태에서 Xepyr을 실행해 보았습니다.

Xephyr +extension Composite :1 &

하지만 별 차이가 없는 것 같습니다.

편집: xfwm4에는 합성 기능이 있지만 openbox에는 없습니다. 어쩌면 다시 모이는 것이 여전히 핵심일 수도 있습니다.

관련 정보