[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:12857] Re: debconf japanese manual
やすいです.
何を作ってるかというと,ATOKX のインストーラパッケージなんですが…
/* In mail "[debian-devel:12855] debconf japanese manual"
tach@debian.or.jp, as "tach" wrote... */
tach> debconf の日本語マニュアルとか,どっかにありますか.
tach> なければ,debconf-doc をじっくり読むしかないんですが…
見よう見まねで,一応うまくいきましたが,同じパッケージをもう
一度上書きインストールしたり,バージョンアップしたりすると,
exit status 30 で止まってしまいます.
postinst に -x つけて,DEBCONF_DEBUG を developer にすると,
+ '[' configure = configure ']'
+ . /usr/share/debconf/confmodule
++ '[' '!' '' ']'
++ exec /usr/share/debconf/frontend /var/lib/dpkg/info/atokx.postinst configure 1.0-0.1
debconf: frontend started
debconf: frontend running, package name is atokx
debconf: starting /var/lib/dpkg/info/atokx.config configure 1.0-0.2
debconf: <-- TITLE Configuring atokx installer
debconf: --> 0
debconf: <-- INPUT medium atokx/archive_dir
debconf: --> 30 question skipped
dpkg: error processing atokx (--install):
subprocess post-installation script returned error exit status 30
Errors were encountered while processing:
atokx
となってしまいます.
パッケージが入ってないときなら,問題ありません.
#たぶん,db_purge が行われるからだと思いますが.
ちなみに,うまくいくときは,この時点で
debconf: frontend started
debconf: frontend running, package name is atokx
debconf: starting /var/lib/dpkg/info/atokx.config configure
debconf: <-- TITLE Configuring atokx installer
debconf: --> 0
debconf: <-- INPUT medium atokx/archive_dir
debconf: --> 0 question will be asked
debconf: <-- GO
debconf: --> 0 ok
debconf: <-- GET atokx/archive_dir
debconf: --> 0 /mnt
debconf: starting /var/lib/dpkg/info/atokx.postinst configure
となります.そのあとで(debconf のデバッグ出力だけ抽出),
debconf: <-- TITLE Configuring atokx installer
debconf: --> 0
:
debconf: <-- INPUT medium atokx/archive_dir
debconf: --> 30 question skipped
:
debconf: <-- GO
debconf: --> 0 ok
:
debconf: <-- GET atokx/archive_dir
debconf: --> 0 /mnt
となってます.
とりあえず,postinst と config と templates を添付しておきます.
--
// 安井 卓 (YASUI, Taku) <tach@debian.or.jp>
// WWW: http://tach21.hoops.ne.jp/
#!/bin/sh -x
ATOKX_ARC=atokx-1.0-1.i386.tgz
IIIMF_ARC=iiimf.tgz
ATOKX_MD5=979d5235e0937e3d25c8498e71cb9afc
IIIMF_MD5=37957125d29856283f5e6a0be349de72
atokxtmp=/usr/lib/atokx/atokx-archive
export DEBCONF_DEBUG=developer
if [ "$1" != configure ]; then exit 0; fi
if [ "$1" = "configure" ]; then
# use debconf
. /usr/share/debconf/confmodule
# title
db_title 'Configuring atokx installer'
db_input medium atokx/archive_dir
db_go
db_get atokx/archive_dir
DIR=$RET
if [ -e "${DIR}/${ATOKX_ARC}" ]; then
atokx_md5=`md5sum -b ${DIR}/${ATOKX_ARC} | sed -e 's/ .*$//'`
if [ "$atokx_md5" != "$ATOKX_MD5" ]; then
bad=true
fi
else
bad=true
fi
if [ "${bad}" = "true" ]; then
db_fset atokx/badfile isdefault true
db_subst atokx/badfile filename "${DIR}/${ATOKX_ARC}"
db_input critical atokx/badfile || exit 1
db_go || exit 1
exit 1
fi
if [ -e "${DIR}/${IIIMF_ARC}" ]; then
iiimf_md5=`md5sum -b ${DIR}/${IIIMF_ARC} | sed -e 's/ .*$//'`
if [ "$iiimf_md5" != "$IIIMF_MD5" ]; then
bad=true
fi
else
bad=true
fi
if [ "${bad}" = "true" ]; then
db_fset atokx/badfile isdefault true
db_subst atokx/badfile filename "${DIR}/${IIIMF_ARC}"
db_input critical atokx/badfile || exit 1
db_go || exit 1
exit 1
fi
if [ -e $atokxtmp ]; then
rm -rf $atokxtmp
fi
mkdir -p -m 0700 $atokxtmp
cd $atokxtmp
# expand atokx
tar xzf ${DIR}/${ATOKX_ARC}
tar xzf ${DIR}/${IIIMF_ARC}
# install atokx
mv usr/lib/im /usr/lib/atokx/
mv usr/lib/locale /usr/lib/atokx/
# ln -s /usr/lib/atokx/im/atok12.so /usr/lib/im/leif/
# ln -s /usr/lib/atokx/im/atokserver /usr/lib/im/locale/ja/
# ln -s /usr/lib/atokx/atokserver /usr/lib/locale/ja/
# ln -s /usr/lib/atokx/im/atokserver/help /usr/share/doc/atokx/help-html
# ln -s /usr/lib/atokx/im/atokserver/information /usr/share/doc/atokx/information
# ln -s /usr/lib/locale/ja/atokserver/original /var/locale/ja/atokserver/
# ln -s /usr/lib/locale/ja/atokserver/systemdic /var/locale/ja/atokserver/
fi
#DEBHELPER#
Template: atokx/archive_dir
Type: string
Default: /tmp
Description: Where is ATOKX archive?
This package is an installer package, it does not actually contain
ATOKX. You will need to get ATOKX commercial package.
.
If you mounted ATOKX original CDROM, enter the directory you mount on.
.
Or if you have following two files, enter the directory you put it in.
.
o atokx-1.0-1.i386.tgz
o iiimf.tgz
Description-ja: ATOKX アーカイブはどこにありますか?
このパッケージは,インストーラパッケージで,ATOKX 本体を含んで
いません.よって,ATOKX を購入するなどして入手する必要があります.
.
もし,ATOKX の CDROM からインストールするなら,CDROM のマウント
ポイントを指定してください.
.
あるいは,以下の 2 つのファイルがあるパスを指定してください.
.
o atokx-1.0-1.i386.tgz
o iiimf.tgz
Template: atokx/badfile
Type: note
Description: Cannot find the ATOKX archive file.
The file ${filename} does not exist, or it is corrupt. You may have
put the wrong file, or put it in the wrong location. Please try again.
Description-ja: 正しい ATOKX アーカイブを発見できませんでした
${filename} は存在しないか,
正しいファイルではありません.間違ったファイルを置いたか,
間違ったパスを指定したのだと思われます.もう一度試してみてください.
#!/bin/sh -e
ATOKX_ARC=atokx-1.0-1.i386.tgz
IIIMF_ARC=iiimf.tgz
ATOKX_MD5=979d5235e0937e3d25c8498e71cb9afc
IIIMF_MD5=37957125d29856283f5e6a0be349de72
hoge=ATOKX
# use debconf
. /usr/share/debconf/confmodule
# title
db_title 'Configuring atokx installer'
db_input medium atokx/archive_dir
db_go
db_get atokx/archive_dir
DIR=$RET
if [ -e "${DIR}/${ATOKX_ARC}" ]; then
atokx_md5=`md5sum -b ${DIR}/${ATOKX_ARC} | sed -e 's/ .*$//'`
# echo "$atokx_md5 == $ATOKX_MD5"
if [ "$atokx_md5" != "$ATOKX_MD5" ]; then
bad=true
fi
else
bad=true
fi
if [ "${bad}" = "true" ]; then
db_fset atokx/badfile isdefault true
db_subst atokx/badfile filename "${DIR}/${ATOKX_ARC}"
db_input critical atokx/badfile || exit 1
db_go || exit 1
exit 1
fi
if [ -e "${DIR}/${IIIMF_ARC}" ]; then
iiimf_md5=`md5sum -b ${DIR}/${IIIMF_ARC} | sed -e 's/ .*$//'`
if [ "$iiimf_md5" != "$IIIMF_MD5" ]; then
bad=true
fi
else
bad=true
fi
if [ "${bad}" = "true" ]; then
db_fset atokx/badfile isdefault true
db_subst atokx/badfile filename "${DIR}/${IIIMF_ARC}"
db_input critical atokx/badfile || exit 1
db_go || exit 1
exit 1
fi