2008年12月4日木曜日

Puppy Linux/SFSの基本

SFSの作り方。なんできちんとした日本語文章が無いのか解からないが自分の為にも日本語で残しておく。
基本はパッケージのバイナリをPuppyにインストールした時と同じフォルダ階層でSFS化するフォルダを作成する事である。
packageXをSFS化するとすれば/root/my-docmentsなどに作業フォルダ/packageXを作成し、この中にバイナリファイルを入れて行く。
バイナリを展開すると大抵は展開先に/usrフォルダが作成され中に/bin,lib,shareなどのフォルダが入っているので、これを移動する。
ただしディストリによって階層が違うのでPuppyの階層にあわせる作業が必要になる。

/usr/bin
/usr/lib
/usr/share

この様な階層でバイナリファイルを調整して入れる。基本的にはこのまま圧縮すれば完成する。

#cd /root/my-documents/packageX
#mksquashfs usr lib share packageX.sfs

使いかたは/mnt/homeにファイルを置きブートマネージャで設定すると再起動した際、SFSがマウントされ使用出来る様になる。
しかしこれで問題ないがメニューにもディスクトップにもアイコンの表示等が無い。

Puppy LinuxでWebKitをコンパイルしてみる

WebKitをコンパイルするにはかなりの時間を必要とします。Pentium4 1.1G Memory512MBで約8〜10時間は必要だと思われます。あまりお薦め出来ませんが、モノは試しと思う方はやって見て下さい。途中でエラーが出ても責任はとれません。WebKitは最新の物を使用しました。

ダウンロードしたWebKit.tar.gz2は9.6MBぐらいですが展開すると58MB,makeで128MB、new2dirで新しく122MB,petで19MBとなりました。全部で350MBぐらいの空きスペースが必要です。

1.必要なライブラリーをpet化しインストールする。とりあえず必要なのはICUとgperfの2つの様です。ICUのバージョンはicu4c-4_0が必要です。gperfについてはDebianのサイトからgperf_3.0.3-1build1_i386.debをダウンロードしpet化しました。

2.WebKitをコンパイルする。/root/my-documentsにて作業した。
WebKitのサイトから最新のソースWebKit r38660.tar.bz2をダウンロードして展開する。 http://webkit.org/
展開するとフォルダWebKit-r38860が作成される。
端末にて、以下実行

#cd /root/my-documents/WebKit-r38860
#./autogen.sh ----------ここまでは以外とすんなり行く。
#make ---------------makeで約2〜3時間かかる。
#new2dir ---------------step4からが約5時間以上かかると思います。途中で寝たので正確にはわかりません。

/root/my-documentsにフォルダWebKit-r38860-i486が作成されます。(i486は読み換えて下さい。)出来上がったフォルダのbackupをお薦めします。

3.ここで出来上がったフォルダWebKit-r38860-i486の中をPuppyのフォルダ階層に合わせて変更します。
WebKit-r38860-1486の直下に/root,usrが出来ていますが、/rootは消去します。
/usrの下の/localにbin,include,lib,shareがあります。これを/usr直下に移動させます、ただしshareはすでに/usr直下にあるので/usr/local/share中身を/usr/shareに移動させます。

#dir2pet
約20秒
pet完成。

インストールしてMidoriを起動してみたが動きがどうもおかしい。何かが足らない。

Puppy Linux/ライブラリーのPET化

ライブラリをpet化する。
結構必要なライブラリがあるのに、petとして提供されていない物がある。ライブラリなので直接ライブラリフォルダに入れても良いが芸がないのでpet化してみる。
Debianのサイトからライブラリをダウンロードしてくる。これらは全てバイナリなので簡単にpet化出来る。

debianパッケージ検索サイト http://www.jp.debian.org/distrib/packages

例えばlibsexy2_0.1.11-2_i386.debをpet化するにはサイトからダウンロードし展開する。

#undeb libsexy2_0.1.11-2_i386.deb を実行、又は、ディレクトリでファイルをクリックするとXArchiveが起動するのでこれでも可。

展開されると/usrフォルダが作成される。作業フォルダ(仮に/tmp/libsexyとする)を作成し/usrを移動させる。この/usr以下のディレクトリ構造がPuppyと同じか確認する。まれに/usr/local/libとなっていたりしてエラーが出たり、インストールしてもライブラリが読み込めないことがある。

一旦tar.gzにしてからpetを作成する。

#cd /tmp
#tar -c -f libsexy2_0.11.tar libsexy/
#gzip libsexy2_0.11.tar
#tgz2pet libsexy2_0.11.tar.gz

pet出来上がり。rpmを使う際も同様に行える。dir2petを使用しても出来る。

Puppy Linux/ICUバイナリーファイルのPET化

バイナリーファイルのpet化手順を書き留めて置く。
ICUをpet化してみる。ICUの本家ダウンロードコーナーからICUをダウンロードする。バイナリなので、tar.gzを作成しtgz2petでpetにする。Puppy本家に記述されている「Inside a PET package」を参考にする。

ICUサイト http://www.icu-project.org/index.html

サイトの左上「Downlod ICU」よりICU4.0をたどり"icu4c-3_8_1-RHEL5-gcc_1_1.tgz"をダウンロードする。
tgzを展開する。展開するとusrフォルダが出来るので作業用フォルダを作成し移動させておく。展開されたusr内の階層を少し変更する。展開されたままだと、/usr/local/の下にbin,inclide,lib,man,sbin,shareが在るが、これらを/usr/の直下に移動させる。空になったlocalフォルダは必要ないので消去する。(puppyのフォルダ構造と合わせないとエラーが出る。)

A:tar.gzにしてからpetを作成する。作業フォルダを/tmp/icu4c-3_8とする。

#cd /tmp
#tar -c -f icu4c-3_8.tar icu4c-3_8/
#gzip icu4c-3_8.tar
#tgz2pet icu4c-3_8.tar.gz

icu4c-3_8.petの出来上がり。

B:又、別のpet化手順がある。dir2petを使う方法で以下のとおりにする。作業フォルダを作成し修正するまでは同じ。

#cd /tmp
#dir2pet icu4c-3_8
各stepに答えて行く。

icu4c-3_8.petの出来上がり。

A、Bどちらでも良い。ツールバーメニューからの起動が不要な時には有効。

Puppy Linux/WebKitのPETを作る

WebKitのpet化を行う。ソースからのコンパイルは結構手間で、しかも中々うまく行かない。そこでSlackwareのtgzを利用してpet化する。
WebKitのtgzはSlackware本家を探しても見つからないので。以下のサイトのファイルをダウンロードして使用した。

http://slackware-current.net/index.php からWebKit r35917-1をダウンロードする。

#tgz2pet webkit-r35917-i686-1.tgz

出来上がり!

Puppy Linux/AdobeReader.sfsの作成

Puppy Linux 4.00.4jp版 AdobeReader.sfsを作る。バージョン8.1.3が出たばかりですが、バージョン9が出てもすぐに対応できるようsfsの作り方を残しておく。恐らく同じ要領で出来るはず。

1.最初に作業用フォルダ(例えば/root/my-documents/adobe)を作成しその中にAdobeReader8.1.3-1(2008/12/02日現在) をダウンロードして来る。

2.解凍すると、opt、usr 2つのフォルダが展開される。

#cd /root/my-documents/adobe
#unrpm AdobeReader_jpn-8.1.3-1.i486.rpm

3.すでにある日本語版AdobeReader_jpn-8.1.2-1_400.sfsをダウンロードしてマウントする。マウントした中から/usr/shareのフォルダーを
先ほど解凍した/usrの下にコピーする。shareのみ。

4.コピーしたフォルダの/usr/share/applications/AdobeReader.desktopを少しだけ修正する。このままでも問題無いが、メニューの表示される部分が「ユーティリティー」の部分になっている。他のpdf関連ソフトは「ドキュメント」の箇所になっており位置を合わせる。
Puppy本体の/etc/xdg/menus/puppy-document.menuを確認するとCategoryはX-DocumentUtilityがふさわしい。現状の設定は「Application;Office;Viewer;X-Red-Hat-Base;」となっており、記述中に「Viewer」が在るため「ユーティリティー」の部分に表示される。これをX-DocumentUtilityに書き換える。

[Desktop Entry]
Encoding=UTF-8
Name=Adobe Reader 8 MimeType=application/pdf;application/vnd.fdf;application/vnd.adobe.pdx;application/vnd.adobe.xdp+xml;application/vnd.adobe.xfdf;
Exec=/opt/Adobe/Reader8/bin/acroread
Type=Application
DocPath=
GenericName=PDF Viewer
GenericName[ja]=PDFビューア
Terminal=false
Icon=/opt/Adobe/Reader8/Resource/Icons/24x24/AdobeReader8.png
Caption=PDF Viewer
X-KDE-StartupNotify=false
Categories=X-DocumentUtility
Name[de]=Adobe Reader
以後省略

アイコン等の設定はこのままでバージョン等が変われば変更する。

5.sfsに圧縮する。作業フォルダが/root/my-documents/adobeだとすると

#cd /root/my-documets/adobe
#mksquashfs opt usr AdobeReader_jpn-8.1.3-1_400.sfs

6.出来上がったsfsを/mnt/homeに移動しブートマネージャーの設定後、Puppy再起動で終了。