투명하게 운영되는 와인 프로그램


9

와인 프로그램을 실행하려면 다음과 같이 입력해야합니다.

$ wine ~/.wine/drive_c/Program\ Files/TextAloud/TextAloudMP3.exe

직접 실행할 수 TextAloudMP3있습니까? 나는 명령 줄 (별명을 만들 수 있음)뿐만 아니라 전체 그래픽 환경에서 의미합니다. 로 프로그램을 시작합니다 dmenu.

답변:


10

와인으로 exe 프로그램을 직접 시작하려고 했으므로 커널에 와인으로 win32 바이너리를 실행하도록 지시하십시오.

  1. binfmt fs를 마운트 none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0하고 / etc / fstab에 라인 을 추가 한 mount -a후 실행

  2. echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register 이진 형식을 등록

나중에 exe 파일을 /path/to/XX.exe

또한 보안 문제가 발생합니다.


편집 할 수 없습니다 /proc/sys/fs/binfmt_misc/register. 씁니다 /proc/sys/fs/binfmt_misc/register E667: Fsync failed. 나는 sudo루트 계정과 사용자 계정으로 편집하려고했습니다 . 둘 다이 오류를 씁니다.
xralf

와! 커널이 그렇게 할 수 있는지 몰랐습니다. 이 특별한 유스 케이스는 악하다고 느낍니다. 그러나 나는 문을 열 때조차도 파일 이름, 확장자는 중요하지 않지만 다른 OS는 ... : D
Bananguin

@ xralf : 파일을 어떻게 편집하려고합니까? echo는 작동해야하지만 일부 (대부분 / 모두?) 편집기는 실제로 편집 할 수있는 파일이 아니기 때문에 proc 파일 시스템 내에서 가상이기 때문에 작동하지 않을 수 있습니다.
chmeee

@xralf는 vim으로 편집하지 않습니다
daisy

@ warl0ck root계정 으로해야 합니다. 나는 추가 /path/to/내에 $PATH변수 내가 실행할 수있는 XX.exe명령 줄에서 여전히에서 실행할 수 없습니다 dmenu. xmobar질문에서 실수로 미안합니다 .
xralf

3

확인 wine입니다 경로에 다음을 포함하는 쉘 스크립트를 작성 :

#!/bin/sh
wine "$HOME/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe"

다음을 실행하여 스크립트를 실행할 수있는 권한을 부여하십시오 chmod u+x SCRIPT_NAME.

그런 다음 파일 관리자에서 해당 스크립트를 실행하십시오. 와인을 시작하고 TextAloudMP3.exe를 실행합니다.


나는라는 이름의 스크립트 생성 textaloud/usr/local/bin폴더를. 첫 번째 줄은 #! /bin/bash두 번째 줄입니다 wine .... textaloud는 xmobar실행기에 나타나지 않습니다 . 실행하는 경우 sh textaloud는 기록$ sh textaloud wine: cannot find '~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe'
xralf

죄송합니다. ~큰 따옴표 안에 있으면 사용자의 홈 디렉토리로 확장되지 않습니다. 환경 변수를 $HOME대신 사용하도록 답변을 수정 했습니다.

sh textaloud이미 작동하지만 디렉토리에서만 작동 /usr/local/bin하며 xmobar 실행기에 여전히 표시되지 않습니다.
xralf

1
$@프로그램 이름 뒤에 추가 하여 모든 인수를 전달할 수 있습니다. 그리고 나는 보통 그러한 스크립트를 ~ / bin에 넣습니다 (물론 PATH에 있는지 확인한 후).
Wyatt8740

에 별칭을 정의 할 수 ~/.bash_aliases없습니까?
Aaron Franke

3

0 단계

사용자의 바이너리 PATH를 설정하십시오. mkdir ~/bin이 디렉토리를 실행 하고 PATH에 추가 하십시오 .

이 작업을 수행하는 방법은 사용하는 셸 및 데스크탑 환경에 따라 달라질 수 있습니다.

여기서 다양한 쉘에서 PATH를 변경하는 방법을 찾을 수 있습니다 .

데스크탑 환경이 쉘 프로파일에 관심이없고 전자가 터미널 환경에서는 작동하지만 데스크탑 환경에서는 작동하지 않는 경우이 해결 된 질문을 확인하십시오 .

1 단계

쉘과 데스크탑 환경이 새로운 PATH를 준수하도록 설정하면, 스크립트를 드롭하고 경로를 입력하지 않고 일반 명령으로 실행할 수 있습니다.

이 디렉토리에서 와인 프로그램을 실행할 짧은 쉘 스크립트를 작성하십시오 ~/bin/textaloud.

#!/bin/bash
cd "~/.wine/drive_c"
exec wine "~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe" "$@"

그리고 실행 권한을 부여하십시오.

chmod +x ~/bin/textaloud

위 스크립트에 대해 세 가지주의 할 사항이 있습니다.

  • cd경로는 프로그램이 (이 디렉토리에서) 실행되는 것입니다 곳입니다. 일부 프로그램은 특정 디렉토리에서 실행해야 할 수도 있습니다. 이 문제가 발생하면 해당 디렉토리를 설정하십시오 (일반적으로 실행 파일이있는 위치와 동일). 경우에 따라이 줄을 원하지 않을 수도 있습니다.
  • exec명령은 bash에게 다음과 같은 인수를 사용하여 와인으로 변형하도록 지시하므로 더 이상 bash를 실행하는 와인이 아니라 bash 프로세스가 와인이됩니다. PID는 그대로 남아 있습니다. 두 개의 프로세스가 실행되고 있지 않습니다.
  • $@스크립트를 실행 한 인수 (있는 경우)로 대체됩니다. 이것들은 와인 프로그램으로 전달됩니다.

이제 다음과 같이 쉘에서 프로그램을 실행할 수 있습니다.

textaloud

2 단계

응용 프로그램 실행기를 만듭니다. 오늘날 이러한 파일은 파일로 표준화되어 .desktop있으며 많은 데스크탑 환경에서 그래픽 도구를 제공합니다.

다음은 직접 작성하는 데 사용할 수있는 예제 골격입니다. 아이콘 (종종 PNG, SVG 또는 XPM)을 제공 할 수 있습니다.

[Desktop Entry]
Type=Application
Name=TextAloud
Exec=textaloud
Icon=textaloud.png

이 파일을에 배치하십시오 ~/.local/share/applications/TextAloud.desktop. 아이콘은 (다른 곳에서) 검색 ~/.local/share/icons되므로 응용 프로그램에 대한 귀여운 아이콘을 찾아서 이름을 붙여 넣으십시오 textaloud.png.

이 작업을 완료하면 데스크탑 환경에서 바로 가기 파일을 찾고 스크립트를 사용하여 프로그램을 실행할 수 있어야합니다. 그렇지 않은 경우 다시로드하거나 다시 시작하십시오.


감사합니다. 가이드를 시도했지만 마지막 단계가 작동하지 않습니다. 런처 textaloud에서 볼 수 없습니다 dmenu.
xralf

2 단계는 그놈, KDE 또는 XFCE와 같은 데스크탑으로 연결됩니다. dmenu는 .desktop 파일을 신경 쓰지 않는 것 같으므로 1 단계에서는 괜찮을 것입니다. 터미널에서 작동 했습니까? 그래도 작동하지 않으면 단계 0을 검토하십시오. 아마도 ~/.xsessionX11 sesion을 사용 하기 위해 사용 하고 있습니까? export PATH="$HOME/bin:$PATH"dwm을 실행하고 X11을 재시작하기 위해 사용하는 행 앞에 추가하십시오 .
Alicia

터미널에서 문제없이 작동합니다. PATH가 정상입니다. 완성 된 질문 만 dmenu에서 작업하고 싶습니다.
xralf

당신에게 말 했어요 당신이 있습니까 ~/.xsession? 터미널의 PATH는 X11 세션의 PATH와 같지 않을 수 있습니다.
Alicia

$@안전을 위해 큰 따옴표로 묶어야합니다. 그래서 될 것 exec wine "~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe" "$@"입니다.
Wyatt8740

1

PlayOnLinux를 사용해 보셨습니까? 그것은 당신을 위해 모든 것을 처리 할 수 ​​있으며 와인 프로그램에 의해 열리도록 일부 파일 형식을 구성 할 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.