モチログ

はてなでのブログ

wizpyOS用パッケージ作成

成功したので、報告します。

なかなかつかれた。

まず、Turbolinux FUJIをインストールします。どうせwizpyOS用パッケージつくるだけなので、「すべてインストール」でインストールしました。

で、インストール完了したら、システムアップデートをかけます。

これから作業開始です。

  • wizpyアプリケーション開発キットからSDKをダウンロート
  • Turbolinux FUJIにインストール
    #rpm -ivh appmod-utils-1.1-2.i686.rpm  squashfs-tools-3.2-1.i686.rpm
    多分問題なく入るはず。僕は入りました。
  • wizpyイメージツリーの作成 多分wizpyの環境でパッケージを生成するために必要になるのだと思われます。 Tuebokinux FUJIをインストールしたPCにwizpyを接続する(wizpyの安全を考えてリードオンリーでマウントします)
    #mount -o ro /dev/sda2 /mnt/sda2
    ここで/dev/sda2としたのは例で各自USBの認識デバイスに変換する。 確認は
    $dmesg
    でできます。
    もし、/mnt/sda2がなければ
    #mkdir /mnt/sda2
    をして作りましょう。 システムイメージのコピーを行います。
    #mkdir /home/wizpu-root
    #rsync -auvKHx /mnt/sda2/ /home/wizpy-root/
  • rpmパッケージの作成 ここTurbolinux FUJIのパッケージがあるのでここにwizpyに入れたいパッケージがあればダウンロードします。無い場合は探します。
  • ソースコンパイル まずはコンパイルする場所を作ります。
    $mkdir ~/rpm/SOURCES
    そしてソースをそこに移します。 入れたいパッケージのソースをダウンロードしてダウンロードした場所から
    $mv パッケージ名 ~/rpm/SOURCES
    もし、パッケージソースにSPECファイルが同梱されていればそのままコンパイルします。
    $rpmbuild -tb パッケージ名
    もしSPECファイルがないなどで怒られたらcheckinstallをつかってコンパイルします。 CheckInstall HomepageのDownloadからrpmパッケージをダウンロードしてきて
    #rpm -ivh checkinstall-1.6.1-1.i386.rpm
    バージョンは合わせてコマンド入力してください。 あとは、とってきたパッケージをコンパイルするだけです。 とってきたパッケージのある場所で
    $tar zxvf パッケージ名.tar.gz
    zxvfは拡張子が.tar.gzのなので、tar.bz2のときはxjvfにしてください。
    $cd 解凍したパッケージディレクトリ名
    $./configure
    #/usr/local/sbin/checkinstall
    質問に答えるとrpmファイルができます。 checkinstallについては@IT:ソースファイルからRPMファイルを作成するにはで詳しく説明されています。
  • wizpyOS用に変換 ホントにこれはSDKのマニュアルのやり方には2通りあったのですが、2つめの方法しか成功しなかったので、それを書きます。というかスクリプトにしました。
    • 手動でモジュールファイルツリーの作成スクリプト
      #!/bin/sh
      if [ -d /tmp/appmod-tree ]
      then
             rm -fr /tmp/appmod-tree
      fi
      mkdir /tmp/appmod-tree
      /sbin/modprobe unionfs
      if [ ! -d /mnt/unionroot ]
      then
             mkdir /mnt/unionroot
      fi
      mount -t unionfs -o "dirs=/tmp/appmod-tree=rw:/home/wizpy-root/mnt/disk/=ro" unionfs /mnt/unionroot/
      rpm --root=/mnt/unionroot/ -Uvh $*
      umount /mnt/unionroot/
      rm -fr /tmp/appmod-tree/var/lib/rpm/
      find /tmp/appmod-tree -name '*.wh.*' -o -name ld.so.cache -o -name mtab -exec rm -f {} \;
      これを適当な名前で保存して実行権限を与えます。 引数はパッケージに必要なrpmファイルのパスです。 例としてmakefiletree.shで保存したとしてopenoffice.orgを入れる場合
      #./makefiletree.sh openoffice.org-core-2.0.2-1.i686.rpm \
         gtk-engines-2.6.8-1.i686.rpm desktop-file-utils-0.12-1.i686.rpm ...
      みたいにします。
    • amoファイルの作成
      #mksquashfs /tmp/appmod-tree/ 生成したいamoファイル名.amo
      さっきのだと
      # mksquashfs /tmp/appmod-tree/ openoffice.org-2.0.2-1.amo
      という感じになります。
    • amaファイルの作成
      • amiファイルの作成 エディタで以下の内容をファイル名.amiで作成
        name=名前
        version=バージョン
        release=リリース
        filesystem=squashfs
        またまた、さっきの例だとこうなります
        name=openoffice.org
        version=2.0.2
        release=1
        filesystem=squashfs
      • amaファイルの作成
        # appmod arc arc 生成するamaファイル名 amiファイル名 amoファイル名
        例だと
        # appmod arc arc openoffice.org-2.0.2-1.ama openoffice.org.ami
        openoffice.org-2.0.2-1.amo これで作成完了です。 あとはamaファイルをwizpyOS上に持って行って、turbo++のアプリケーションの追加と削除からインストールします。

長かった…