ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

TinyCoreLinuxコミュのtcz-pack.sh スクリプト みどりの日版

  • mixiチェック
  • このエントリーをはてなブックマークに追加
いろいろと修正してしまったので、新しい版を上げます。
主な更新点は以下のようなところです
* 拡張子は .tcz のみに
* ディレクトリ/usr 以下に置かれたファイルも含める
* /usr/local/tce.installed/* ファイルの終端が空行で無い時への対応
* *.list, *.md5.txt 出力対応(下のソースでは # でコメントアウト)
===
#!/bin/sh

if [ $# != 1 -a $# != 2 ];then echo >&2 "$0 <dir> [<.tcz>]";exit;fi

# root?
#if [ `id -u` != 0 ];then echo "root password: (or Ctrl+C)";su -c "$0 $@";exit $?;fi
#if [ "$USER" != "root" ];then sudo "$0" "$@";exit $?;fi
if [ `id -u` != 0 ];then sudo "$0" "$@";exit $?;fi

l=`find "$1" -name '*.tcz'|sort`
if [ -z "$l" -a ! -d "$1/usr" ];then echo >&2 "not .tcz or usr/ in $1";exit 1;fi

DIR_MNT=${DIR_MNT-./__mnt};DIR_IMG=${DIR_IMG-./__img}
TMP=/tmp/tcz-inst
test -d "${DIR_MNT}"||mkdir -p "${DIR_MNT}"||exit
test -d "${DIR_IMG}"||mkdir -p "${DIR_IMG}"||exit
test -r /etc/init.d/tc-functions && source /etc/init.d/tc-functions
mkdir -p "${DIR_IMG}/usr/local/tce.installed"
echo "#!/bin/sh">"$TMP"
#set -x
s="${1%/}.tcz";[ $# == 2 ]&&s="$2"
for z in $l;do
echo "${BLUE}[merge]${NORMAL} $z"
  mount -o loop "$z" "${DIR_MNT}"||exit 1
  cp -a "${DIR_MNT}"/* "${DIR_IMG}/" #||exit 1
  umount "${DIR_MNT}"
  b="${z##*/}";b="${b%.tcz}";f="${DIR_IMG}/usr/local/tce.installed/$b"
  if [ -x "$f" ];then echo -e "\n#$b">>"$TMP"
    sed -e '1{/^#!/d};/^$/d' "$f">>"$TMP"
    echo -e "\n" >>"$TMP"
    elif [ "$b" != "${s%.tcz}" ];then
      echo "touch /usr/local/tce.installed/$b">>"$TMP";fi
done
#cat "$TMP"
chmod +x "$TMP";mv "$TMP" "${DIR_IMG}/usr/local/tce.installed/${s%.tcz}"
test -d "$1/usr"&&cp -a "$1/usr" "${DIR_IMG}/"

echo "${MAGENTA}[mksquashfs]${NORMAL} $s"
rm -f "$s"
mksquashfs "${DIR_IMG}/" "$s" -all-root -b 4096 #-noappend
chmod -x "$s";chmod a+r "$s"
#p=`pwd`;(cd "${DIR_IMG}";find * -not -type d > "$p/$s.list")
#md5sum "$s" > "$s.md5.txt"
rm -fr "${DIR_MNT}" "${DIR_IMG}"

コメント(2)

【補足】 lxde 一括パッケージ
を作成する場合。LXDE.tcz.dep のファイルを追いかけるだけだと
デスクトップの My Documents と exit のアイコンが表示されませんでした。

これらにさらに、gnome-icon-theme.tcz に librsvg.tcz と
librsvg.tcz.dep のパッケージを追加することで
デスクトップのアイコンも表示されるようになりました。

日本語以外のロケール情報を消すようにしてみました。
$DIR_IMG に展開したあと、mksquashfs する前くらいに
次のスクリプトを入れました。

DIR_LOC="${DIR_IMG}/usr/local/share/locale"
if [ -d "${DIR_LOC}/ja" ];then
T="${DIR_LOC}.tmp"
mv "${DIR_LOC}" "$T"
mkdir -p "${DIR_LOC}"
mv "${T}/ja" "${DIR_LOC}"
rm -fr "$T"
fi

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

TinyCoreLinux 更新情報

TinyCoreLinuxのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング