wizpyOS用パッケージ作成

Linux, Tips, Tool, device, コミット 7月 27th, 2008

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

なかなかつかれた。

まず、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++のアプリケーションの追加と削除からインストールします。

長かった…

このページをブックマークする

Deliciousにブックマーク このエントリをはてなブックマークに登録 このエントリをBuzzurlにブックマーク Yahoo!ブックマークに登録このエントリをlivedoorクリップに登録 このエントリをnewsing it!へ追加

Leave a Reply

認証失敗
妹「来てくれてありがとう!コメントしていってね!!」