Q. Kerberos (ケルベロス) をアンインストールするにはどうしたらいいですか。
A. 2 つの方法があります。
A1. /stand/sysinstall を使って bin をインストールし直す。
FreeBSD FAQ「Q: Kerberos をアンインストールするにはどうすればいいの?」
<URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/faq/admin.html>
に書かれている方法で、これが一番簡単です。ただし、これをやると、/etc
のファイルなども最初の状態に戻ってしまう恐れがありますし、DES をインス
トールしていた場合はそれもいくつかのファイルが元に戻ってしまいます。
A2. Kerberos によって置き換えられてしまったファイルを、bin, proflibs
配布ファイルから復元する。
例えば次のようにするといいでしょう。なお、$CDROM は FreeBSD の配布ディ
レクトリを指定しておきます。
1) ルートディレクトリに移動します。
# cd /
2) Kerberos の配布ファイルに含まれるファイルのリストを作ります。
[3.5-RELEASE まで]
# cat $CDROM/des/krb.?? | tar ztf - | sort > /tmp/ttt
[4.0-RELEASE から]
# cat $CDROM/crypto/krb4.?? | tar ztf - > /tmp/ttt1
# cat $CDROM/crypto/krb5.?? | tar ztf - >> /tmp/ttt1
# sort /tmp/ttt1 | uniq > /tmp/ttt
3) 元のファイルを配布ファイルから展開します。
# chflags noschg `cat /tmp/ttt`
# cat $CDROM/bin/bin.?? | tar --unlink -zxvpf - `cat /tmp/ttt` > /tmp/yyy
# cat $CDROM/proflibs/proflibs.?? | tar --unlink -zxvpf - `cat /tmp/ttt` >> /tmp/yyy
# cat $CDROM/manpages/manpages.?? | tar --unlink -zxvpf - `cat /tmp/ttt` >> /tmp/yyy
[4.0-RELEASE から追加]
# cat $CDROM/crypto/crypto.?? | tar --unlink -zxvpf - `cat /tmp/ttt` >> /tmp/yyy
4) 残ったゴミを片付けますが、念のためどのファイルが削除
されるか確認してください。
# comm -3 /tmp/ttt /tmp/yyy1
5) 確認できたら、削除します。
# rm -f `comm -3 /tmp/ttt /tmp/yyy1`
おまけとして、上記の作業を自動化するスクリプトを添付します。使用に
際しては自己責任でお願いします。
なお、この作業は /etc や /bin などを直接いじる作業になりますので、
本質的に危険です。tar の仕様変更により、実際に被害が出た例もあり
ます [FreeBSD-users-jp 74025] (以下のスクリプトでは修正済みです)。
----ここから----
#!/bin/sh
# Example:
# # cd /
# # sh ./uninstall_kerberos /proj/ftp/FreeBSD/4.2-RELEASE
# Please use *at your own risk*
CDROM=/cdrom
[ "$1" != "" ] && CDROM=$1
KRB=/tmp/krb.list
KRB1=/tmp/krb1.list
ORG=/tmp/org.list
ORG1=/tmp/org1.list
DEL=/tmp/del.list
CRYPTO=
echo 'Make a list of kerberos binaries.'
if [ -d $CDROM/crypto ]; then
CRYPTO=crypto
cat $CDROM/crypto/krb4.?? | tar ztf - > $KRB
cat $CDROM/crypto/krb5.?? | tar ztf - >> $KRB
elif [ -d $CDROM/des ]; then
cat $CDROM/des/krb.?? | tar ztf - > $KRB
else
echo "$CDROM: No such kerberos distribution files." 1>&2
exit 1
fi
sort $KRB | uniq > $KRB1
echo -n 'Restore files from distribution files:'
rm -f $ORG
chflags noschg `cat $KRB1`
for i in bin proflibs manpages $CRYPTO
do
echo -n " $i"
cat $CDROM/$i/$i.?? | tar --unlink -zxvpf - `cat $KRB1` >> $ORG 2> /dev/null
done
echo "."
echo 'Cleanup all garbage.'
sort $ORG | uniq | sed '/\/$/d' > $ORG1
comm -3 $KRB1 $ORG1 > $DEL
less $DEL
read -p "Would you like to delete these files now? y or n [n]" YES_NO
case "${YES_NO}" in
y)
rm -f `cat $DEL`
rm -f $DEL
;;
*)
echo "Make sure to run rm -f `cat $DEL` yourself"
;;
esac
:
----ここまで----
グループ名: des