ワインプログラムを透過的に実行する


9

ワインプログラムを実行したいときは、たとえば

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

直接実行することは可能TextAloudMP3ですか?コマンドライン(エイリアスを作成することもできます)だけでなく、グラフィカル環境全体でも同じです。でプログラムを起動していdmenuます。

回答:


10

exeプログラムをwineで直接起動するつもりだったと思いますので、win32バイナリをwineで実行するようカーネルに指示してください。

  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 failedsudorootアカウントを使用してユーザーアカウントで編集しようとしました。どちらもこのエラーを書き込みます。
xralf 2013

うわー!カーネルがそれを実行できることを知りませんでした。ただし、この特定のユースケースは悪を感じます。しかし、私はそのドアを開いときでも、ファイル名、つまり拡張子は関係ありませんが、他のOSは問題ありません...:D
Bananguin

@xralf:ファイルをどのように編集しようとしていますか?echoは機能するはずですが、一部の(ほとんど/すべて?)エディターは機能しない可能性があります。これは実際の編集可能なファイルではなく、procファイルシステム内の仮想ファイルです。
chmeee 2013

@xralfはvimで編集しない
デイジー

@ warl0ck私はrootアカウントの下でそれをしなければなりません。変数に追加/path/to/しましたが、コマンドラインから$PATH実行できますがXX.exe、からは実行できませんdmenu。申し訳ありませんxmobarが、質問で間違えました。
xralf 2013

3

ていることを確認しwineているあなたのパスに、次を含むシェルスクリプトを作成します。

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

を実行して、スクリプトを実行する権限を自分に与えますchmod u+x SCRIPT_NAME

次に、ファイルマネージャーからそのスクリプトを実行します。それは、TextAloudMP3.exeを実行するwineを開始します。


私は名前のスクリプトを作成textaloudして/usr/local/binフォルダを。1行目は#! /bin/bash2行目ですwine ...。textaloudはxmobarランチャーに表示されません。実行sh textaloud時の書き込み$ sh textaloud wine: cannot find '~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe'
xralf 2013年

おっとっと。~二重引用符で囲まれている場合、ユーザーのホームディレクトリに展開されません。$HOME代わりに環境変数を使用するように回答を変更しました。

sh textaloudすでに動作していますが、ディレクトリからのみであり/usr/local/bin、xmobarランチャーにはまだ表示されません。
xralf 2013年

1
$@プログラム名の後に追加して、すべての引数を渡すようにすることができます。そして、私は通常そのようなスクリプトを〜/ binに置きます(もちろん、それがPATHにあることを確認した後)。
Wyatt8740

でエイリアスを定義することもできません~/.bash_aliasesか?
アーロンフランケ

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

上記のスクリプトについて注意すべき点が3つあります。

  • cdパスは、プログラムが(どのディレクトリに)実行されようとしているところです。一部のプログラムでは、特定のディレクトリで実行する必要がある場合があります。これで問題が発生した場合は、そのディレクトリを設定してください(通常、実行可能ファイルがある場所と同じです)。場合によっては、この行を不要にすることがあります。
  • execコマンドは、次の引数を持つワインにモーフにはbashを伝えるので、これはワインを実行しているもはやbashのではありませんが、bashのプロセスは、ワインとなりました。PIDは残ります。2つのプロセスを実行していません。
  • $@もしあれば、あなたはスクリプトを実行した引数で置換されています。したがって、それらはあなたのワインプログラムに渡されます。

これで、シェルからプログラムを実行できます...

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 2013年

ステップ2は、GNOME、KDE、XFCEなどのデスクトップを対象としています。dmenuは.desktopファイルを気にしないようなので、ステップ1で問題ありません。端末から機能しましたか?動作したにもかかわらず動作しない場合は、ステップ0を確認~/.xsessionしてください。X11セッションの取得に使用しているのではないでしょうか。export PATH="$HOME/bin:$PATH"dwmを実行してX11を再起動するために使用する行の前に追加してみてください。
アリシア

端末から問題なく動作しています。パスはOKです。完成する質問だけdmenuから作業したいです。
xralf 2013年

先ほども言いました。あります~/.xsessionか?端末のPATHがX11セッションのPATHと異なる場合があることに注意してください。
アリシア2013年

$@安全のため、二重引用符で囲む必要があります。そうなるでしょうexec wine "~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe" "$@"
Wyatt8740

1

PlayOnLinuxを試すことを検討しましたか?それはあなたのためにすべての面倒を見ることができ、ワインプログラムによって開かれるようにいくつかのファイルタイプを設定することさえできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.