Total: - (Today: - Yesterday: - )
- slackware x86_64にmultilibを導入し、32-bitアプリのkaiengineを実行できる環境にします
- kaiengineに必要な32-bit版wxGTKライブラリを作成し、x86_64 + multilib環境にインストールします
- このページ内容の対象バージョン
- slackware 13.37 x86_64で確認しました
- slackware 13.1 x86_64では未確認です
- バージョンが異なる場合、嘘の情報になってしまう可能性があります
1.multilibのインストール
1.1.multilibのインストール
$ mkdir -p ~/Downloads
$ cd ~/Downloads
$ lftp -c 'open http://slackware.com/~alien/multilib/; mirror 13.37'
$ cd ~/Downloads/13.37
$ sudo upgradepkg --reinstall --install-new *.t?z
1.2.compat32のインストール
$ cd ~/Downloads/13.37/slackware64-compat32/l-compat32
$ sudo upgradepkg --reinstall --install-new *.t?z
$ cd ~/Downloads/13.37/slackware64-compat32/x-compat32
$ sudo upgradepkg --reinstall --install-new *.t?z
- a-compat32/util-linux-compat32をインストールします
$ cd ~/Downloads/13.37/slackware64-compat32/a-compat32
$ sudo upgradepkg --reinstall --install-new util-linux-compat32-2.19-x86_64-1.txz
1.3.slackpkgのblacklist設定
- slackpkgのblacklistにmultilib関連の5行を追加します
$ sudo vi /etc/slackpkg/blacklist
27 #THESE ARE ALIEN BOB'S MULTILIB PACKAGES
28 gcc
29 glibc
30 compat32
31 .+-compat32
2.wxGTKライブラリ(32-bit版)のインストール
2.1. 32-bitビルドのための設定
- 32-bitでビルドするため、/etc/profile.d/32dev.shを設定後にsbopkgを実行します
$ su -
# . /etc/profile.d/32dev.sh
# sbopkg
- SlackBuilds.org Package Browserでは、Searchを選択して<OK>します
- Searchでは、wxgtkと入力して<PKG>します
- libraries/wxGTK cross-platform GUI toolkitが表示されたら、<OK>します
2.2. SlackBuildファイルの修正
- wxGTK (2.8.12-x86_64-1_SBo)では、Customを選択して<OK>します
- GTK Customizationでは、Edit SlackBuildを選択して<OK>します
- "$ARCH" = "x86_64"ブロックのLIBDIRSUFFIX="64"を""に修正します
60 elif [ "$ARCH" = "x86_64" ]; then
61 SLKCFLAGS="-O2 -fPIC"
62 LIBDIRSUFFIX="" <== "64"を削れば、/usr/lib/にインストールされます
63 ARCHQUADLET=""
- GTK Customizationに戻ったら、<Back>を選択します
2.3. wxGTKのビルドとインストール
- GTK (2.8.12-x86_64-1_SBo)に戻ったら、Buildを選択して<OK>します
- Install Package(s)では、<Yes>を選択します
- Choose wxGTK SlackBuild fileでは、Localを選択して<OK>します
- Pre-Check Logでは、<Start Build>を選択します
- 以下、ビルド終了時、wxGTKがインストールされたときのメッセージです
- 結果を確認したら、sbopkgを終了します
Done upgrading/installing package.
PACKAGE BUILDING/INSTALLATION SUMMARY LOG
Using the SBo repository for Slackware 13.37
Queue Process: Build and install
wxGTK:
MD5SUM check for wxGTK-2.8.12.tar.gz ... OK
Building package wxGTK-2.8.12-x86_64-1_SBo.tgz ... OK
Installing package wxGTK-2.8.12-x86_64-1_SBo.tgz ... OK
###########################################
Queue process complete!
###########################################
Press any key to continue:
$ file /usr/lib/libwx_gtk2u_core-2.8.so.0.8.0
libwx_gtk2u_core-2.8.so.0.8.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
- この時点で、他に不足ライブラリがないか確認しておきます
$ ldd /usr/local/bin/kaiengine | grep 'not found'
$
3.その他
環境固有の不具合に関する情報と対策です。
3.1.gdk-pixbufのloaders.cacheの作成
- gdk-pixbufのloaders.cacheファイルを作成します
$ su -
# GDK_PIXBUF_MODULEDIR=/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders /usr/bin/gdk-pixbuf-query-loaders > /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
# exit
- 上記の設定で、以下のメッセージが表示されなくなるようです
(kaiengine:5464): GdkPixbuf-WARNING **: Cannot open pixbuf loader module file '/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache': そのようなファイルやディレクトリはありません
(kaiengine:5464): GdkPixbuf-WARNING **: Error loading XPM image loader: 画像の種類 'xpm' はサポートされていません
(kaiengine:5464): Gdk-CRITICAL **: IA__gdk_drawable_get_size: assertion `GDK_IS_DRAWABLE (drawable)' failed
(kaiengine:5464): Gdk-CRITICAL **: IA__gdk_drawable_get_depth: assertion `GDK_IS_DRAWABLE (drawable)' failed
3.2.pango.modulesの作成
$ su -
# /usr/bin/pango-querymodules > '/etc/pango/pango.modules'
# exit
- 上記の設定で、以下のメッセージが表示されなくなるようです
(kaiengine:5464): Pango-CRITICAL **: No modules found:
No builtin or dynamically loaded modules were found.
PangoFc will not work correctly.
This probably means there was an error in the creation of: '/etc/pango/pango.modules'
You should create this file by running: pango-querymodules > '/etc/pango/pango.modules'
(kaiengine:5464): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'
3.3.locale-archiveのコピー
- ja_JP.SJISロケールを登録します
- この処理で、/usr/lib64/locale/locale-archiveが更新されましたが、/usr/lib/locale/locale-archiveは生成されませんでした
$ sudo localedef -f WINDOWS-31J -i ja_JP ja_JP.SJIS
- /usr/lib64/locale/locale-archiveファイルを/usr/lib/locale/側へコピーします
- リンクでも大丈夫かと思ったのですが、他ディストリビューションでは実ファイルになっているのでコピーにしました
$ sudo cp -p /usr/lib64/locale/locale-archive /usr/lib/locale/locale-archive
- このlocale-archiveファイルのコピーを忘れるとKai起動時に以下メッセージが表示され、日本語が文字化けします
(process:20613): Gdk-WARNING **: locale not supported by C library
(process:20613): Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale.
以上で、slackware x86_64 multilib環境への32-bit版wxGTKのインストールは終わり。
コメント
- 新規作成 -- kar (2011-05-19 21:21:38)
最終更新:2011年05月19日 21:21