사용자 상호작용 없이 와인 사용하기

사용자 상호작용 없이 와인 사용하기

쉘 스크립트에서 Windows 실행 파일(콘솔 애플리케이션)을 실행하고 싶습니다. 이 스크립트는 자동으로 패키지를 빌드하는 대규모 프로젝트의 일부이므로 사용자 상호 작용을 피해야 합니다.

실제로 내가 사용하는 것은 다음과 같습니다.

export WINEARCH=win64
export WINEPREFIX=/somewhere/$WINEARCH
wine pgen.exe

기본적으로 작동하지만 다음과 같은 문제가 있습니다.

  1. 비어 있는 경우 WINEPREFIX(처음 실행하는 경우) 구성 대기 중이라는 대화 상자가 나타납니다. 나는 실행 중인 X 서버에 의존하는 것을 피하고 싶습니다.
  2. 이전에 설치되지 않은 경우 wineGecko를 설치하라는 창이 나타나고 사용자 개입이 필요합니다.
  3. WINEPREFIXwine을 호출하는 사용자가 소유해야 하므로 위 애플리케이션을 실행하기 위해 시스템 전체 래퍼를 제공하는 방법을 모르겠습니다.

후자의 문제(이 문제 없이는 살 수 있음)를 제외하고 다른 문제는 모두 차단됩니다. 결국에는 콘솔 응용 프로그램을 실행하고 싶습니다.

답변1

wine테스트 실행을 사용 하면 $DISPLAY대화 상자 표시를 건너뛰고 사용자 상호 작용 없이 실행됩니다.

DISPLAY= wine pgen.exe

접두사 소유권 문제를 피하기 위해 저는 일반적으로 WINEPREFIX접두사가 매번 다시 생성되도록 임시 디렉터리를 지정합니다(그러나 이는 느립니다).

답변2

X 세션에서 한 번 실행하고 모노 등을 구성하도록 하여 Wine 환경을 "시작"할 수 있습니다. 그런 다음 전체 디렉터리를 백업 .wine하고 이를 콘솔 응용 프로그램을 실행해야 하는 모든 사용자의 기반으로 사용하십시오.

xvfb가상 X 서버로 사용할 수 있습니다 .여기자동으로 시작하는 방법과 같습니다. 그런 다음 export DISPLAY=:1와인 제조 과정을 시작하기 전에. 콘솔 실행 파일만 실행하더라도 와인이 모니터 없이 실행되는 것을 방지하려면 이것이 필요합니다. YMMV.

WINEPREFIX와인을 실행하는 사용자가 트리를 소유해야 하는지 아니면 .reg특정 위치(예: 파일, 임시 위치)에 대한 쓰기 권한 만 필요한지 잘 모르겠습니다 .

관련 정보