いろいろソフトをインストール
yumリポジトリの追加をしてないなら、先に済ましておく
普通にファイルをダブルクリックすると「プラグインの検索」画面が出てくるわけだが、面倒なので一気に入れておく。
$ su -c "yum -y install gstreamer-ffmpeg gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-bad-extras"
これでTotem等のGStreamerを利用しているソフトは対応形式が大幅に増える。DivX/Xvid/H.264(x264)/AAC/3gp/MIDI/mp4/MP3/WMA 9.2/TTA/Monkey's_Audio(ape)/WavPack(.wv) の再生ができる事を確認。音楽CD取り込みツール(Sound Juicer)もMP3などでエンコードできるようになっている。
MIDIの音源の設定は /etc/timidity.cfg で行う。対応してるのはPAT形式のみで、.sf2 のサウンドフォントは使えない
x86_64では tta の音が雑音だらけになる? gstreamer-plugins-bad の /usr/lib64/gstreamer-0.10/libgsttta.so を削除すると回避できる
wma10 proやwmv(WVC1)の再生にはWindowsのdllが必要。
$ su -c "rpm -Uvh http://rpm4fc-cn.googlecode.com/files/w32codecs-20071007-0.1.i386.rpm"
MPlayerやVLC等は自動でdllファイルを読み込んでくれるが、GNOME系アプリの場合はGStreamerのプラグインを入れる必要がある
$ su -c "rpm -Uvh http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/9/gstreamer-pitfdll/gstreamer-pitfdll-0.9.1.1-1.fc7.i386.rpm"
これでOK、と思ったら何故か私の環境では動かない。自分でプラグインを再ビルドしてみても駄目。他の人は大丈夫らしいのだけど…
ところで、wmv(WVC1)が音ズレするは私だけ? MPlayerやVLCの音声遅延機能を使うしかない?
x86_64な人は32bitな再生プレイヤーを使う必要がある
市販のDVDを観るにはlibdvdcssが必要
$ su -c "rpm -Uvh http://rpm.livna.org/repo/11/$(uname -i)/libdvdcss-1.2.10-1.$(uname -i).rpm"
$ su -c "yum -y install vlc"
$ su -c "yum -y install mplayer-gui"ビデオカードの動画再生支援を利用するなら、この辺を参照
$ su -c "yum -y install smplayer"
$ su -c "yum -y install xine-ui xine-lib-extras-freeworld xine-lib-pulseaudio" ↓日本語が文字化けするため、英語にする $ su -c "rm /usr/share/locale/ja/LC_MESSAGES/xine-ui.mo"
$ su -c "yum -y install audacious audacious-plugins-freeworld audacious-plugins-wavpack"タグの文字コードがShift-JISのMP3ファイルを再生する人は、「右クリック→設定→プレイリスト→自動キャラクタエンコーディング検出」を【日本語】にすると文字化けしなくなる。LinuxでShift-JISに対応している音楽プレイヤーは珍しい
$ su -c "yum -y install fluid-soundfont-lite-patches"これでMIDIが再生可能に。音源の変更は /etc/timidity.cfg で行えるが、対応してるのはPAT形式のみ。sf2 のサウンドフォントは使えない。別のプラグイン(AMIDI-Plug)はsf2に対応しているので、必要ならばこっちを使えば良い
$ su -c "yum -y install audacious-plugins-amidi fluid-soundfont-gm"
$ su # yum -y install amarok phonon-backend-gstreamerver-2.0 が耐えられない人用に、古いver-1.4をパッケージングしてくれた人がいます。使うならさっき入れた amarok を一度消す。
# yum remove amarok amarok-utils phonon-backend-gstreamerそして http://users.linpro.no/ingvar/amarok/ のRPMをダウンロードし、ダブルクリック。コーデックが入ってないので
# yum install xine-lib-extras xine-lib-extras-freeworldこのまま古い 1.4 を常用するなら、勝手にアップデートされないよう /etc/yum.conf に
exclude=amarok*と書いておく
あとで
あとで
あとで
$ su -c "yum -y install flash-plugin"
→ Flash
x86_64な人はnspluginwrapper.i586を入れないといけない
$ su
# yum install nspluginwrapper.{x86_64,i586} alsa-plugins-pulseaudio.i586 libcurl.i586
SELinuxで不具合が出る場合があるらしい
# setsebool -P allow_unconfined_nsplugin_transition=0
後からプラグインを追加した場合は、下のコマンドで認識させる
# mozilla-plugin-config -i -g -v
正式版では無いが、64bit版のプラグインもある。こちらを使ってもいい。
ほとんどのPDFは最初から付属しているドキュメント・ビューア(Evince)で十分だが、読めない文書もたまにある。
$ su -c "yum -y install AdobeReader_jpn"
Firefox用のプラグインも同時にインストールされる。nspluginwrapperを入れてればx86_64な人でも大丈夫
Fedoraにはオープンソース版の java-1.6.0-openjdk が入っているが、Sun純正Javaとの互換性は完全ではない。Javaが必要なソフトを動かすならjava.comで配布しているRPMの方がいいと思う
$ su # bash jre-6u16-linux-i586-rpm.bin # alternatives --install /usr/bin/java java /usr/java/jre1.6.0_16/bin/java 1 # alternatives --set java /usr/java/jre1.6.0_16/bin/java # cat > /etc/profile.d/java.sh << 'EOF' export JAVA_HOME=/usr/java/jre1.6.0_16 export PATH=$JAVA_HOME/bin:$PATH EOF
念のため一度ログアウトして
$ java -version java version "1.6.0_16" Java(TM) SE Runtime Environment (build 1.6.0_16-b01) Java HotSpot(TM) Server VM (build 14.2-b01, mixed mode)
と表示されたらインストール成功。
Firefoxのプラグインが必要な人は
# alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so \ libjavaplugin.so /usr/java/jre1.6.0_16/plugin/i386/ns7/libjavaplugin_oji.so 1 # alternatives --set libjavaplugin.so /usr/java/jre1.6.0_16/plugin/i386/ns7/libjavaplugin_oji.so
x86_64だったりJDKな人も、同じようにすればいい
Linux上でWindowsアプリケーションを動作させることができる
使う前に Wineの基本的な部分をまとめてみる を読んでおくといいと思う
$ su -c "yum -y install wine.i586"
$ ln -s /usr/share/fonts/vlgothic/VL-Gothic-Regular.ttf $HOME/.wine/drive_c/windows/Fonts/個人的にはWindowsから msgothic.ttc(ついでにmsmincho.ttcも) を拾ってくるのがいいと思う。これが無いと文字化けするソフトがあるし… 入っていても文字化けする時あるけど。
$ echo '[Software\\Wine\\X11 Driver]' >> $HOME/.wine/user.reg $ echo '"InputStyle"="root"' >> $HOME/.wine/user.reg (Wineが停止した状態でやること)
$ mkdir ~/bin $ curl http://www.kegel.com/wine/winetricks -o ~/bin/winetricks $ chmod +x ~/bin/winetricks $ su -c "yum -y install cabextract" (動作に必要) 後は必要に応じてランチャー登録する
$ winetricks gecko
$ rm -f $HOME/.local/share/applications/wine-extension-{htm,html,ini,rtf,txt,wri,xml}.desktop*.exe に対して「Wine Windows Program Loader」が関連付けられているはず。普通に実行ファイルをダブルクリックすれば動く
コマンドでも「wine setup.exe」とすればいいだけ。もしくは実行属性を付けて「./setup.exe」でも可。*.msiの場合は「msiexec /i setup.msi」とする
コントロールパネルで設定を行うソフトは「wine control」
$HOME/.wine/drive_c/ を仮想的なCドライブとして使用する。Program Filesやwindowsフォルダはこの下
$ winetricks directx9動作確認は
$ wine dxdiag.exe私の環境では何も表示されない。なんでだろ?
$ winetricks wmp9
$ su -c "yum -y install timidity++ wine-alsa.i586"次に [アプリケーション]→[Wine]→[Wine Configuration] の「オーディオ」タブで、PulseAudio を無効にして ALSA にチェックを入れる(ALSAだけ有効にする)
$ timidity -Os -EFreverb=1 -EFresamp=1 -iA -q0/0KbMedia Playerで適当なMIDIを再生して音が鳴れば成功。ちなみに、Wineを動かす前に毎回このコマンドで常駐させる必要がある。面倒なのでログイン時に自動で動くようにしてもいいが、そこまでするのもどうよ?って気がするな。そんなにゲームしないし…
ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory error in snd_seq_openとエラーが出てしまう場合は、OSSエミュレーションを有効化すると snd_seq も有効になるのでやっておく
$ cd /tmp $ curl -O http://www.geocities.jp/srmdp424/SoundFont/EmuAPS_8MB.zip $ unzip EmuAPS_8MB.zip $ su -c "mv EmuAPS_8MB.sf2 /usr/share/soundfonts/" $ rm -f EmuAPS_8MB.zip $ echo "soundfont /usr/share/soundfonts/EmuAPS_8MB.sf2" > ~/.timidity.cfg $ echo "soundfont /usr/share/soundfonts/default.sf2 remove" >> ~/.timidity.cfg
フォルダごと削除していいソフトなら、そのまま削除
アンインストーラーから消すソフトは [アプリケーション]→[Wine]→[Wine Software Uninstaller] で行う。デスクトップ、メニューに登録されたアイコンは残るので注意。項目を消去するには
$HOME/.local/share/applications/wine/Programs/*.desktop $HOME/.local/share/icons/*.xpm $HOME/.local/share/desktop-directories/wine-Programs-*.directory $HOME/.config/menus/applications-merged/wine-Programs-*.menu
上記の所から該当する名前のファイルがあれば削除。さらに $HOME/.local/share/mime/ 以下のどこかに関連付け用のファイル(?)ができている場合もある。
この辺を自動で行うようになってほしいな…
$ wine test.exe err:module:import_dll Library hoge.dll (which is needed by L"C:\\test.exe") not foundDLLやOCXは有名な物なら winetricks でインストールできる。手動で $HOME/.wine/drive_c/windows/system32/ にコピーした場合は regsvr32 コマンドでレジストリに登録しないと使えないかも?
$ regsvr32 hoge.dll
Wineが実装する「Windows互換DLL」の互換性は完全ではない。そこで、そのままでは動かないソフトでも、本物のWindowsからNative(オリジナル)のDLLを持ってくれば、動作する事がよくある。
置き換えるにはオリジナルのDLLを $HOME/.wine/drive_c/windows/system32/ に上書きコピーした後、[アプリケーション]→[Wine]→[Wine Configuration] の「ライブラリ」タブでそのDLLを追加し、「Native」に設定する。
何のDLLをオリジナルに変更するかだけど、まずは普通に実行してdllのエラーが出てないかを見てみる。例えば
$ wine test.exe err:module:import_dll No implementation for msvcrt.dll fixme:seh:*** call to unimplemented function msvcrt.dll.* wine: Call from * to unimplemented function msvcrt.dll, aborting
こんな風に表示されるなら、nativeの msvcrt.dll を使えば動く…かもしれない
他にも
err:ole:create_server class {***} not registered
err:ole:CoGetClassObject no class object {***} could be created for context 0x5
fixme:ole:OLEPictureImpl_FindConnectionPoint no connection point for {***}
この場合は 勘で ole32.dll や oleaut32.dll を適当にnativeにしていけばいいのかな? よく分からん。
WINEDEBUG=+loaddll を付けて実行するとDLLの読み込み情報が表示される
$ WINEDEBUG=+loaddll wine hoge.exe 2>&1| grep builtin trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x69010000: builtin trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x68f10000: builtin ...
これらのDLLを一つずつnativeにしていくと、いつか動くかも?
kernel32.dll, gdi32.dll, user32.dll, and ntdll.dll の4つは置き換えてはいけないらしい。
基本的にドラッグ&ドロップはできない
→ http://wiki.winehq.org/DragAndDrop
音がちゃんと出ない時はwinecfgで「DirectSound」の「ハードウェアアクセラレーション」を「エミュレーション」にすれば直るかも?
フルスクリーンのゲームで解像度変更が上手くいかない場合は仮想デスクトップのエミュレートすればいけるかも?
フルスクリーンのゲームで解像度が直らない場合は xrandr -s 0 する
環境変数 WINEPREFIX で $HOME/.wine の場所を移動できる
下のサイトがとっても参考になる
試験運用中なLinux備忘録・別館
試験運用中なLinux備忘録
Wine User Guide