HOME / コンピュータTips / Solaris / IPSと開発 / IPS内容をtar.gzに変換

Date: 2009/09/01 |  このエントリーをはてなブックマークに追加  |  Tags: OpenSolaris, IPS, pkg, 逆引き

IPSファイルをtar.gzに変換する

凄く簡単に作ったスクリプトなので、必要に応じて書き換えてください。

ips2tar.sh pkgname

ただ構成物をコピーするだけなので、うまく行かないものもあると思います。

こんな用途に・・・

  • publisherを追加することが出来そうもない環境へ、ファイル単位でコピーしたいとき
  • 新しいバージョンのOSのパッケージを、古いバージョンにインストールしたい
    • しかしそれは多分、動くことがわかっている等

出来たtar.gzをインストールする方法

cd / ; gtar zxvf pkgname.tar.gz

インストールしたファイルをアンインストールする方法

例です。pkgname.listの内容を確認して、意味をくみ取って下さい。

cd / ; cat pkgname.list | xargs rm 

注意

こんなのがあったらダメです。

  • 基本的には1つ1つ、理解してる人が使うものです。
    • 異常系は一切考えていません。
    • 問題があって失敗すると、システムに甚大なダメージを与えます。
  • IPSやpkgに依存してるものがあると萎えます
  • アンインストールはファイルしか消しません。ディレクトリは残ります。
    • ディレクトリが残るのは、/usrなどが消えると困るからです。

ソース

あえて、uploadせずに、貼り付けておきました。

#!/bin/sh


PKGNAME=$1

if [ -z "${PKGNAME}" ];then
    echo ips2tar.sh pkgname
    exit
fi

mkdir -p /tmp/${PKGNAME}
if ! pkg contents -H ${PKGNAME} > /tmp/${PKGNAME}.list ; then
    echo "Contents not found"
    exit
    
fi
 
cat /tmp/${PKGNAME}.list | cpio -pvdm /tmp/${PKGNAME}
cp /tmp/${PKGNAME}.list /tmp/${PKGNAME}/
cd /tmp/${PKGNAME}

gtar zcf /tmp/${PKGNAME}.tar.gz *
cd ../

rm -r /tmp/${PKGNAME} /tmp/${PKGNAME}.list