Top > Linux > Fedora > 11 > memo5

Fedora11 設定メモ その5

いろいろソフトをインストール
yumリポジトリの追加をしてないなら、先に済ましておく

 
 

動画・音楽

GNOME用の動画・音声コーデックを追加する

普通にファイルをダブルクリックすると「プラグインの検索」画面が出てくるわけだが、面倒なので一気に入れておく。

$ 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 を削除すると回避できる

W32codecs

wma10 proやwmv(WVC1)の再生にはWindowsのdllが必要。

$ su -c "rpm -Uvh http://rpm4fc-cn.googlecode.com/files/w32codecs-20071007-0.1.i386.rpm"

MPlayerVLC等は自動で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ビデオを観る準備

市販のDVDを観るにはlibdvdcssが必要

$ su -c "rpm -Uvh http://rpm.livna.org/repo/11/$(uname -i)/libdvdcss-1.2.10-1.$(uname -i).rpm"

動画プレイヤー

音楽プレイヤー

動画リッピング

あとで

音楽リッピング

あとで

CD/DVDライティング

あとで

Firefox Flashプラグイン

$ su -c "yum -y install flash-plugin"

Flash

x86_64

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版のプラグインもある。こちらを使ってもいい。

Adobe Reader(Acrobat Reader)

ほとんどのPDFは最初から付属しているドキュメント・ビューア(Evince)で十分だが、読めない文書もたまにある。

$ su -c "yum -y install AdobeReader_jpn"

Firefox用のプラグインも同時にインストールされる。nspluginwrapperを入れてればx86_64な人でも大丈夫

Java

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な人も、同じようにすればいい

Wine

Linux上でWindowsアプリケーションを動作させることができる

使う前に Wineの基本的な部分をまとめてみる を読んでおくといいと思う

本体のインストール

$ su -c "yum -y install wine.i586"

最初にする設定

使い方

*.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フォルダはこの下

Wineでゲームするなら

Winアプリのアンインストール

フォルダごと削除していいソフトなら、そのまま削除

アンインストーラーから消すソフトは [アプリケーション]→[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/ 以下のどこかに関連付け用のファイル(?)ができている場合もある。

この辺を自動で行うようになってほしいな…

ソフトが動かない・挙動が変

  1. 動作に必要なランタイムライブラリがないか調べる
    作者のサイトや説明書をよく読んで、必要ファイルがあるならインストールする
     
    必要DLLが無いと下のようなメッセージが表示される
    $ wine test.exe
    err:module:import_dll Library hoge.dll (which is needed by L"C:\\test.exe") not found
    DLLやOCXは有名な物なら winetricks でインストールできる。手動で $HOME/.wine/drive_c/windows/system32/ にコピーした場合は regsvr32 コマンドでレジストリに登録しないと使えないかも?
    $ regsvr32 hoge.dll
     
  2. 検索サイトで調べる
    誰かがやり方を書いてくれてるかも?
     
  3. Wine Application Database(AppDB)で調べる
    ユーザからの動作報告がデータベース化されている
     
  4. 使用DLLをNativeにしてみる
     
  5. 諦める
    無理な物は無理

Wine内蔵の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

更新日 2010-03-30