애플리케이션을 실행하지 않고 WINEPREFIX를 업데이트하는 방법

애플리케이션을 실행하지 않고 WINEPREFIX를 업데이트하는 방법

시스템의 와인 패키지가 업데이트되면 대부분의 와인 패키지 WINEPREFIX(특정 버전의 와인을 사용하도록 구성되지 않은 경우)도 업데이트되어야 합니다. 모두가 아는 한, 업데이트는 접두사를 기반으로 애플리케이션이 시작될 때 자동으로 처리됩니다. 그래서 그런 것으로 WINEPREFIX='/path/to/prefix' winecfg충분할 것입니다.

그러나 사용자 입력 없이 여러 접두사를 일괄 업데이트하는 방법을 찾고 있습니다. 그리고 X를 실행하지 않는 것이 좋습니다. 이를 수행하는 방법에 대한 제안이 있습니까?

답변1

그래픽이 아닌 wine/windows 명령만 실행하면 되며 $DISPLAY설정이 전혀 필요하지 않습니다.

예는 다음과 같습니다.

$ unset DISPLAY
$ wine ping
000b:fixme:winediag:start_process Wine Staging 3.21 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
000b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
000b:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0027:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0027:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0027:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0027:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
002b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
002b:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0027:err:ole:apartment_createwindowifneeded CreateWindow failed with error -536870654
002d:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
002d:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
Could not load wine-gecko. HTML rendering will be disabled.
0027:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0027:err:ole:apartment_createwindowifneeded CreateWindow failed with error -536870654
0027:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0027:err:ole:apartment_createwindowifneeded CreateWindow failed with error -536870654
wine: configuration in '/home/test/.wine' has been updated.
Usage: ping [-n count] [-w timeout] [-l buffer_length] target_name

Options:
    -n  Number of echo requests to send.
    -w  Timeout in milliseconds to wait for each reply.
    -l  Length of send buffer.

일반적으로 모노와 와인게코를 다운로드하라는 팝업이 표시됩니다. 부품이 고장났지만(필요한 경우 미리 제공할 수 있음) 보시다시피 어쨌든 업그레이드되었습니다.

wine: configuration in '/home/test/.wine' has been updated.

(그리고 ping 명령은 구문에 대해 불평했습니다. 실제로 실행되었습니다.)

물론 이 동작이 변경되지 않고 유지된다는 보장은 없습니다. 따라서 테스트와 백업을 수행해야 합니다.

편집: 요청에 따라 보다 중립적인 명령 및 출력을 위해:

unset DISPLAY
export WINEDEBUG=-all
wine net help >/dev/null

두 개의 행만 생성합니다(또는 마지막 행만 생성할 수도 있음).표준 에러종료 코드 0을 제공합니다.

Could not load wine-gecko. HTML rendering will be disabled.
wine: configuration in '/home/test/.wine' has been updated.

답변2

완전 자동이며 업데이트 프로세스 중에 질문이 없습니다.

for I in */wine*
do
    WINEDLLOVERRIDES="winemenubuilder.exe=d;mscoree=d;" WINEPREFIX="$PWD/$I" wineboot --update
done

설명하다:

  • for I in */wine*- 모든 와인 접두어를 열거합니다.
  • WINEDLLOVERRIDES="winemenubuilder.exe=d;mscoree=d;"- 바탕화면 바로가기는 업데이트되지 않으며 모노는 업데이트를 요청받지 않습니다.
  • wineboot --update- 접두사 업데이트

관련 정보