HOME / コンピュータTips / Solaris / コンパイル / Wine

Date: 2008/08/25 |  このエントリーをはてなブックマークに追加  |  Tags: opensolaris Solaris Wine インストール コンパイル Windows Win32 Office

Wineとは

Wineは、UNIX上でWindowsのアプリケーションを動かすためのエミュレータである。

ちょうど、Windows上のCygwinににてるような目的であるが、Windowsのアプリはバイナリ公開であるものが大半なので、exeファイルをUNIX上で動かすのを目的にしている。

ようするにこれを使うと、OfficeなどがUNIX上で動くというわけであるが、実用になるのかは不明。

インストールとデプロイ

パッケージからインストール

パッケージを作ったので、必要な人は使ってください。

普通にbz2を戻し、pkgadd -d ファイル名でインストールしてください。

※ここで配布するパッケージは、/opt/JPC/以下にインストールされます。

インストールが終わったら初期設定へ。

ソースからインストール

環境について

uname -a

SunOS xxxxxx 5.11 snv_xx i86pc i386 i86xpv

isainfo

amd64 i386

ダウンロード

WineサイトからWineをダウンロードする。

blastwaveのWineHQが存在するのだが、いまいち、動かしかたがわからないので、手でコンパイルすることにする。

展開

bzcat -dc wine-0.9.50.tar.bz2 | tar xvf -

パッチを当てる

下記の作業は1.0以降では必要ありません。どうやらいつの間にか取り込まれたようで・・・((私がパッチを送ったのではなくて、opensolarisのIRCでこーやったよと頑張ってパッチ当ててる人に言ったら、取り込んでくれたようです。めでたしめでたし・・・。))次へ

実は、sys/list_impl.hstruct listがいつからか追加されており、Wine標準のinclude/wine/list.hstruct listと当たってしまい、コンパイルがうまく通らない。

このようなエラーがでる

../include/wine/list.h:25: error: redefinition of `struct list'

そこで、下記のパッチを作ったので、それを当てて回避する。

filefd.c.patch

たとえば、こんな感じで。

patch -p1 < fd.c.patch

コンパイルとインストール

tools/wineinstall

を実行。これでOK。

  • それなりに時間がかかります。
  • このコマンドは中でconfigureを呼びます。
  • デフォルトが嫌な場合は、適当にconfigureから設定してもOkです。

パッケージの作成方法

インストールイメージの作成

やることはソースからのインストールと同じであるが、tool/wineinstallを利用せず、下記のようにコンパイルする。

./configure \
 --prefix=/opt/JPC
gmake depend && gmake -j4

このbuildスクリプトを掲載

fileBUILD.sh

このままでは、/opt/JPCにインストールされてしまうので、泥縄であるが

mv /opt/JPC /opt/JPC.orig
make install
rm -rf ../install_root/
mkdir -p ../install_root/opt
mv /opt/JPC ../install_root/opt/
mv /opt/JPC.orig /opt/JPC

ってな具合。

ここで ../install_rootにインストール後のイメージが出来ている。

パッケージ化

cd ../install_root

prototypeを作成

pkgproto . | grep -v 'f none prototype'> prototype
echo 'i pkginfo' >> prototype

pkginfoを作成

cat <<__END > pkginfo
PKG=JPCwine
NAME=wine - an Open Source implementation of the Windows API on top of X, OpenGL, and Unix.
ARCH=i386
VERSION=1.1.3,REV=2008.08.25
CATEGORY=application

VENDOR=http://www.winehq.org packaged for pkglabo, JUSTPLAYER, co.,ltd. by Taki.

HOTLINE=http://pkglabo.justplayer.com/
EMAIL=pkgadmin [- at -] justplayer.com
BASEDIR=/
__END

パッケージの作成

make_package.sh 01

初期設定

実行テスト

まずはテスト

winecfg

日本語系の問題の回避

まず最初は、ファイルダイアログを開いて操作すると、次のようなエラーが出て落ちる。

wine notepad.exe
err:iphlpapi:getNumWithOneHeader Unable to 
open '/proc/net/route' to count  entries!
err:iphlpapi:getRouteTable unimplemented! fixme:imm:ImmGetCompositionStringW Unhandled index 0x8
fixme:imm:ImmReleaseContext (10026, 7fca88b8): stub
fixme:imm:ImmGetCompositionStringW Unhandled index 0x8
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  40 (X_TranslateCoords)
  Resource id in failed request:  0x4a00024
  Serial number of failed request:  1493
  Current serial number in output stream:  1493

じつは、英語だと動く。

env LANG=C LC_ALL=C wine notepad.exe

上記のことから、これは、インラインの問題でないかと想定できるので、色々ぐぐってみると、下記のようなサイトで問題が露呈している。

  • 参考:http://bbs.fedora.jp/read.php?FID=10&TID=4828

Solarisも、ここの部分に併せてパッチをあてればいいのかもしれないが、ライブラリまでパッチを当てるのは、いささか面倒すぎるので、設定変更で逃げる。

日本語入力モードを変更する。

~/.wine/user.regを編集し、次を追加する。

[Software\\Wine\\X11 Driver] 1129995218
;; "ClientSideAntiAliasWithRender"="N"
;; "InputStyle"="overthespot"
"InputStyle"="root"

これにすると、なんとなく使うことが出来る。

ただし、日本語入力をたくさんやると、

err:keyboard:X11DRV_KeyEvent Buffer Overflow need 36!

さらに、謎のエラーが多発し、カーソルが変なところに出る。

fixme:imm:ImmGetCompositionStringW Unhandled index 0x8

惜しい。後もうすこし(笑

デバイスフォントを設定する

とりあえず、gnomeにインストールされているフォントはある程度認識しているようだが、デフォルトフォントにMS系のフォントが無いとさみしいことになる。

どっかのレジストリを変えると良いのだと思うのだが、フォントは次のようにインストールしておこう。

cp *.ttc ~/.wine/drive_c/windows/fonts/

ipaフォントを拾ってきて入れるか、Solaris/SXCE/SXDEなどの場合は、

/usr/openwin/lib/locale/ja/X11/fonts/TT/

から、SunのMincho/Gothicを入れてもいいかもしれません。

winecfgのdesktop integrationから選択します。

標準フォントは日本語フォントがあれば適当なのを使うかな。レジストリはどこを操作するのか忘れた・・・。

サウンドの設定

OpenSoundSystemが入っていれば、winecfgのOSSのチェックを入れる。入っていてもうまく動かないことがあるので、esdをblastwaveのpkg-getでインストールし、そこでesd経由にチェックをすると動くこともある。

これらの設定は、.wine/system.regや、.wine/user.regに入っているので、バックアップをとっておき、何が変わったか差分をとっておくと後で困らない。

ユーザ名を入れる

アプリのインストール

基本的には

~/.wine/drive_c/Program Files/
~/.wine/drive_c/WINDOWS/

以下に、ファイル一式をコピーできなくてはいけない。

LimeChat

そのまま、コピーすれば動く

日本語入力が、system lineになるのだが。

ffftp

そのまま、コピーすれば動く。日本語入力がたしか怪しい。

word 2003

なぜかすんなり動く。私はWORD使いじゃないのでわからないが、人のWORDプログラムを読む限りは問題はない。

・・・ただし、WORDに限っては起動も含め、VirtualBOXの方が速いのであるが・・・。

excel 2003

起動せず。

powerpoint 2003

起動するが、日本語がうまく入力できない

ゲーム数種

AppDBにあるがプロテクトさえ外れていれば、何となくは動く物が多い。

結論

日本語ハンドリングで問題があるため、日本語入力を要とするソフトでは、結構問題が多い。しかし、ドローソフトなどは日本語入力をするのは全体作業の中では少ない方なので、この程度ならば我慢して使うことが出来る。

また、ゲーム系はプロテクトさえ掛かってなければ、割と動いてしまう。案外びっくりだ。


コンピュータTips/Solaris/コンパイル

Recent Updates

ディスクの不良を確認する(iostat -EnのError等)

ディスク関係のスタックをざっくり書くと次の様になっています 例、SAS Expanderを使う場合、 例、AHCIなどを使う場合、 これらのエラーは、次の様なコマンドで知ることができます。 出力結果例 このなかで、 たとえば、SATAディスクを利用している際に負荷が上がってしまい、ディスクの応答が間に合わないシチュエーションでは、Transport Errorが一気に …
»続きを読む

2017年、新年明けまして、おめでとうございます。

日記/2017年、新年明けまして、おめでとうございます。

新年明けまして、おめでとうございます。今年もよろしくお願いします。 昨年中は、皆様にお世話になりました。 昨年は、コツコツと3年程前から行ってきた改革がある程度完成された年で、この先5年、10年を見据えて、次のフェーズへと進む為の土台が完成した年でもありました。 それにキャッチアップする形で、個々の従業員一同が、役割を自覚し、明確に動けた年であったかと考えています。 …
»続きを読む

RSA鍵認証のみにし、Password認証を無効化する

意外に覚えきれなくて、いつも忘れるので、メモついでに残しておきます。 古いOpenSSHや、SunSSHの場合は、これも無効にします。 ユーザ目線でのザックリとした説明を。OpenSSHではなく別のSSH実装も含めて考えているので、OpenSSHのソースをじっくり読んだわけではないため、間違ってたらすみません。 まず、Password認証を無効にする場合、 PasswordAut …
»続きを読む

Nexus7 2013をMarshmallow(Android 6.0)化

OTAでない方法で。 だいたい ここに書いてある方法 なんだけど、adbなどが一式使えている状態で。 まずは自分の機種のものをダウンロードする。僕のは、 Android 6.0 Marshmallow for Nexus 7 2013 Wi-Fi 。tgzを展開し、zipも解いておく。 まずはboot loaderへ。 bootloader自体のアップデート。一式、updat …
»続きを読む

OS X 10.11 El Capitanで、phpのモジュールインストール

Yosemiteからのアップデートは割と簡単です。なぜならYosemite時に、すでにapache 2.4になり、php 5.5になっているから(笑 アップデート前に、まずはphp.iniとhttpd.confをバックアップしておきましょう きになるなら、hostsとかapache以下全てをバックアップしておいてもいいかも。 後はEl Capitanにアップデートする。 アッ …
»続きを読む

EasyAcc Powerbank PB4000CB

スマフォTips/モバイルバッテリー/モバイルバッテリー製品レビュー/EasyAcc Powerbank PB4000CB

薄型のモバイルバッテリーEasyAcc Powerbank PB4000CBです。 今や、モバイルバッテリーは大型のものが好まれるのか、隙間無く商品があります。20,000mAh越えで、「でけえ!」とか言ってますけど、大きいのを探せば、100Wh(27,000mAh)、200Wh当たり前、探せば500Wh(135,000mAh)とか、もっともっとあるのです。用途がどんどん異なっていくので …
»続きを読む

EC Technology Sports Headsets S10-JWH07B

デバイスTips/Bluetooth/EC Technology Sports Headsets S10-JWH07B

Bluetoothのスポーツヘッドセット、 S10-JWH07B について。 今までブログに記載することはなかったのですが、実は割とBluetoothと言うか無線型のヘッドフォンを沢山持っています。赤外線や独自物、Bluetoothなどいくつもストックを持っていたりします。普通の人からするとマニアです。でも、マニアからみるとそうでもないレベルです。 ただ「ヘッドフォンの音質」というの …
»続きを読む

静岡県内をVPNでつなぐ(割と特殊な例)

静岡というのはある意味特殊な土地で、ほとんどのインターネットプロバイダのPOIは静岡でつながれておらず、NTT西圏内のどこかで繋がっているので、大抵大阪折り返しになる。仮に静岡県内にPOIがあっても、だいたい静岡でルーティングしてないので、やっぱり東京折り返しになってたりする。例え 同じプロバイダを使っていたとしても 。 だから静岡←→静岡のVPNは、静岡←→東京や、静岡←→大阪よりも遅 …
»続きを読む

最新  |  << 前ページ  |  次ページ >>  |  最初