[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:28573] Re: Canon PrinterLBP1210でつまずいています



こじま@ itojun さんの訃報にびっくりしている,,です.

# 直接の面識はないのだけど,nvi の m17n 化パッチとかは今でも愛用してい
# るし

From: 加藤徳三郎 <sabbycon@xxxxxxxxxxxxxxxxx>
Subject: [plamo:28569] Canon Printer LBP1210でつまずいています
Date: Wed, 31 Oct 2007 15:37:35 +0900

> Starting ccpd: /etc/init.d/ccpd: line 20: [: =: unary operator expected
> /etc/init.d/ccpd: line 24: [: =: unary operator expected
> ということで、スタート用のスクリプトが不適切らしい。

ざっと見ですが,このスクリプトは Red Hat 系か SuSE 系を前提にしているよ
うですね.

> # startup script for Canon Printer Daemon for CUPS (ccpd)
> 
> if [ -f /etc/rc.d/init.d/functions ]; then
> 	. /etc/rc.d/init.d/functions
> 	SYS_F="RH"
> elif [ -x /sbin/startproc ]; then
> 	SYS_F="Su"
> fi

ここで /etc/rc.d/init.d/functions というファイルがあれば RH 系,
/sbin/startproc というコマンドがあれば SuSE と判断しているようですが,
Plamo の場合,両方ともあてはまらないので SYS_F は空のままになるでしょう.

一方,

> ccpd_start ()

こっちでは

> 	if [ $SYS_F = "RH" ]; then	
> 		daemon ${DAEMON}
> 		[ "$?" = "0" ] && touch ${LOCKFILE}
> 		echo
> 	elif [ $SYS_F = "Su" ]; then
> 		startproc /usr/sbin/${DAEMON}
> 		echo

という風に $SYS_F が文字列として存在すること前提にして評価しているから

>  Starting ccpd: /etc/init.d/ccpd: line 20: [: =: unary operator expected

というエラーになるのでしょう.多分,

> 	else
> 		`${DAEMON}`
> 	fi

この部分を直接起動するようにしてしまえばいいように思いますが,元のをよ
り汎用的に書き直すなら,

if [ "$SYS_F.x" = "RH.x" ]; then
	daemon ${DAEMON}
	[ "$?" = "0" ] && touch ${LOCKFILE}
	echo
elif [ "$SYS_F.x" = "Su.x" ]; then
	startproc /usr/sbin/${DAEMON}
	echo
else
....
fi

みたいに,$SYS_F だけではなく ".x" とかを追加した文字列として評価するな
り,もう一つ上で $SYS_F の存在(長さ > 0)を見た上で評価するべきでしょうね.

if [ ! -z $SYS_F ]; then 
    if [ $SYS_F = "RH" ]; then	
	daemon ${DAEMON}
	[ "$?" = "0" ] && touch ${LOCKFILE}
	echo
    elif [ $SYS_F = "Su" ]; then
	startproc /usr/sbin/${DAEMON}
	echo
    fi
else
...

fi

ただ,加藤さんも指摘されていたように CUPS が対応してそうなので,
http://localhost:631/ からプリンタの設定をしてみるのが先のような気がし
ます.

# 出力品質とかを言い出すとメーカー製のドライバの方が有利だとは思いますが.

------
こじま


References
[plamo:28569] Canon Printer LBP1210でつまずいています, 加藤徳三郎

[検索ページ] [メール一覧]
Plamo ML 公開システム