SHで最新Etch環境にするには

なんか海老原さんとこは、パッケージを見えるところに置いてないみたい。
最新であると思われる岩松さんのパッケージは、バラで置いてあるだけのようだ。
http://www.nigauri.org/~iwamatsu/debian/debian-sh4/
しょうがないので、まるごとコピーしてローカルで使うことにしてみる。ありがたくいただきますです。


一応、現在のパッケージリストを調べておく。

# COLUMNS=150 dpkg -l | awk '{print $2,$3}'
adduser 3.77
apt 0.6.42.1
apt-utils 0.6.42.1
aptitude 0.2.15.9-7
at 3.1.9
base-config 2.73
base-files 3.1.9
base-passwd 3.5.10
bash 3.0-17
bsdmainutils 6.1.2
bsdutils 2.12p-8
console-common 0.7.54
console-data 2002.12.04dbs-49
console-tools 0.2.3dbs-57
coreutils 5.2.1-2.1
cpio 2.6-9
cron 3.0pl1-91
debconf 1.4.58
debconf-i18n 1.4.58
debianutils 2.15
dhcp-client 2.0pl5-19.1
diff 2.8.1-11
dpkg 1.13.11
dselect 1.13.11
e2fslibs 1.38-2
e2fsprogs 1.38-2
ed 0.2-20
exim4 4.54-1
exim4-base 4.54-1
exim4-config 4.54-1
exim4-daemon-light 4.54-1
findutils 4.2.25-1
gcc-4.0-base 4.0.2-2
gettext-base 0.14.5-2
gnupg 1.4.1-1
grep 2.5.1.ds2-2
groff-base 1.18.1.1-10
gzip 1.3.5-12
hostname 2.91
hotplug 0.0.20040329-25
ifupdown 0.6.7
info 4.8-1
initscripts 2.86.ds1-4
iptables 1.3.3-2
iputils-ping 20020927-3
kernel-image-2.6.16-sh landisk.0.1
kexec-tools 1.101-2sh
klogd 1.4.1-17
laptop-detect 0.12.1
libacl1 2.2.32-1
libattr1 2.4.25-1
libblkid1 1.38-2
libbz2-1.0 1.0.2-10
libc6 2.3.5-8
libcap1 1.10-14
libcomerr2 1.38-2
libconsole 0.2.3dbs-57
libdb2 2.7.7.0-10
libdb3 3.2.9-22
libdb4.2 4.2.52-18
libdb4.3 4.3.28-2
libgcc1 4.0.2-2
libgcrypt11 1.2.2-1
libgdbm3 1.8.3-2
libgnutls11 1.0.16-14
libgpg-error0 1.1-4
libident 0.22-3
libkrb53 1.3.6-5
libldap2 2.1.30-12
liblocale-gettext-perl 1.05-1
liblockfile1 1.06
liblzo1 1.08-2
libncurses5 5.4-9
libncursesw5 5.4-9
libnewt0.51 0.51.6-31
libopencdk8 0.5.7-2
libpam-modules 0.79-3
libpam-runtime 0.79-3
libpam0g 0.79-3
libpcre3 6.4-1
libpopt0 1.7-5
libreadline5 5.0-11
libsasl2 2.1.19-1.7
libsasl2-modules 2.1.19-1.7
libselinux1 1.26-1
libsepol1 1.8-1
libsigc++-1.2-5c2 1.2.5-5
libslang2 2.0.4-7
libss2 1.38-2
libssl0.9.7 0.9.7g-5
libssl0.9.8 0.9.8a-3
libstdc++6 4.0.2-2
libtasn1-2 0.2.13-1
libtext-charwidth-perl 0.04-3
libtext-iconv-perl 1.4-2
libtext-wrapi18n-perl 0.06-4
libtextwrap1 0.1-3
libusb-0.1-4 0.1.10a-21
libuuid1 1.38-2
libwrap0 7.6.dbs-8
login 4.0.13-1
logrotate 3.7.1-2
lsb-base 3.0-11
mailx 8.1.2-0.20050715cvs-1
makedev 2.3.1-78
man-db 2.4.3-3
manpages 2.02-2
mawk 1.3.3-11
module-init-tools 3.2-pre9-2
modutils 2.4.27.0-3
mount 2.12p-8
nano 1.3.8-2
ncurses-base 5.4-9
ncurses-bin 5.4-9
net-tools 1.60-16
netbase 4.23
netkit-inetd 0.10-10.2
nvi 1.79-22
passwd 4.0.13-1
perl-base 5.8.7-7
procps 3.2.5-1
psmisc 21.6-1
readline-common 5.0-11
reiserfsprogs 3.6.19-1
sasl2-bin 2.1.19-1.7
sed 4.1.2-8
slang1a-utf8 1.4.9dbs-8
sysklogd 1.4.1-17
sysv-rc 2.86.ds1-4
sysvinit 2.86.ds1-4
tar 1.15.1-2
tasksel 2.32
tcpd 7.6.dbs-8
telnetd 0.17-32
util-linux 2.12p-8
wget 1.10.2-1
whiptail 0.51.6-31
zlib1g 1.2.3-4

138パッケージある。


ローカルリポジトリを作って、それでアップグレードする。

# wget -r http://www.nigauri.org/~iwamatsu/debian/debian-sh4/
# mv www.nigauri.org/~iwamatsu/debian/debian-sh4/* ./
# rm -r www.nigauri.org/
# apt-ftparchive packages . | gzip -c9 > Packages.gz
# vi /etc/apt/sources.list
    deb file:/arc/debian-sh4/ ./
# apt-get update
Ign file: ./ Release.gpg
Ign file: ./ Release
Reading package lists... Done
# apt-get dist-upgrade -s
Reading package lists... Done
Building dependency tree... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  gcc-4.1-base mktemp
The following packages have been kept back:
  apt apt-utils
The following packages will be upgraded:
  adduser base-config base-files base-passwd bash bsdmainutils bsdutils console-common
  console-tools coreutils cpio cron debianutils dhcp-client diff dpkg dselect e2fslibs
  e2fsprogs ed findutils gcc-4.0-base gettext-base gnupg grep groff-base gzip hostname
  ifupdown info initscripts iptables iputils-ping klogd laptop-detect libacl1 libattr1
  libblkid1 libbz2-1.0 libc6 libcap1 libcomerr2 libconsole libdb4.2 libdb4.3 libgcc1
  libgcrypt11 libgdbm3 libgnutls11 libgpg-error0 liblocale-gettext-perl liblzo1
  libncurses5 libncursesw5 libnewt0.51 libopencdk8 libpam-modules libpam-runtime
  libpam0g libpopt0 libreadline5 libsepol1 libslang2 libss2 libssl0.9.8 libstdc++6
  libtasn1-2 libtext-charwidth-perl libtext-iconv-perl libusb-0.1-4 libuuid1 libwrap0
  login logrotate lsb-base makedev man-db manpages mawk module-init-tools modutils mount
  nano ncurses-base ncurses-bin net-tools netbase netkit-inetd nvi passwd perl-base
  procps readline-common sed sysklogd sysv-rc sysvinit tar tasksel tcpd util-linux wget
  whiptail zlib1g
104 upgraded, 2 newly installed, 0 to remove and 2 not upgraded.

アップグレード後、再起動して、問題なく動いているようだ。


自動アップデートされなかった2つは手動で入れる。

# apt-get install apt apt-utils


さて、アップグレードされなかった残りのパッケージは何だろう。数は138-104-2=32だな。

  • aptitude 0.2.15.9-7
    • aptitude_0.4.1-1があるのだけど、いつもは使わないので削除。すでにaptを入れ替えた時点でrcになっていた。
    • # dpkg --purge aptitude
  • at 3.1.9
    • パッケージにない。とりあえず依存パッケージはないので削除。
    • # apt-get remove --purge at
  • console-data 2002.12.04dbs-49
    • allパッケージ。console-data_2002.12.04dbs-49_all.debが最新なのでそのまま使用。ローカルのパッケージプールにコピーをしておく。
  • debconf debconf-i18n 1.4.58 ★
    • debconf_1.4.70があるのでアップデートしようとしたが、debconf-i18nの依存がタイトで抜けず。このまま残。
  • exim4 exim4-base exim4-config exim4-daemon-light 4.54-1
    • タイトな依存がないので削除しておく。mailxもいっしょに消える。
    • # apt-get remove --purge exim4 exim4-base exim4-config exim4-daemon-light
  • hotplug 0.0.20040329-25
    • udevベースのEtchでは必須ではなくなった。削除。でもudevはkernelに入っていない。
    • # apt-get remove --purge hotplug
  • kernel-image-2.6.16-sh landisk.0.1 ★
    • 新しい環境で、より新しいバージョンのものを新規に作る必要あり。とりあえず存続。
  • kexec-tools 1.101-2sh
    • kogiidena版の独自パッチでkexecを使えるようにしてあるので、いまのところ不要。削除。
    • # apt-get remove --purge kexec-tools
  • libdb2 2.7.7.0-10
    • Etchでは4.2が標準? 不要なので削除。
    • # apt-get remove --purge libdb2
  • libdb3 3.2.9-22
    • Etchでは4.2が標準? 不要なので削除。
    • # apt-get remove --purge libdb3
  • libident 0.22-3
    • 依存はないので削除。
    • # apt-get remove --purge libident
  • libkrb53 1.3.6-5
    • ソースがあるけどパッケージがない。ビルドに成功していない?
    • sasl2-binだけが依存しているので、いっしょに削除。
    • # apt-get remove --purge libkrb53
  • libldap2 2.1.30-12
    • ソースがあるけどパッケージがない。ビルドに成功していない?
    • gnupgだけが依存しているので、いっしょに削除。★
    • # apt-get remove --purge libldap2
  • liblockfile1 1.06
    • 依存がないので削除。
    • # apt-get remove --purge liblockfile1
  • libpcre3 6.4-1
    • 依存がないので削除。
    • # apt-get remove --purge libpcre3
  • libsasl2 libsasl2-modules 2.1.19-1.7
    • sasl2-binがkbrといっしょに消えたので依存なし。削除。
    • # apt-get remove --purge libsasl2 libsasl2-modules
  • libselinux1 1.26-1 ★
    • Etchでは必須じゃなかったか。依存がタイトでそのまま存続。
  • libsigc++-1.2-5c2 1.2.5-5
    • 依存がないので削除。
    • # apt-get remove --purge libsigc++-1.2-5c2
  • libssl0.9.7 0.9.7g-5
    • 依存がないので削除。Etchでは0.9.8になってなかったかな。
    • # apt-get remove --purge libssl0.9.7
  • libtext-wrapi18n-perl 0.06-4 ★
    • 依存がタイトで削除できず。存続。
  • libtextwrap1 0.1-3
    • 依存がないので削除。
    • # apt-get remove --purge libtextwrap1
  • mailx 8.1.2-0.20050715cvs-1
    • とりあえず不要なので削除。exim4との依存でいっしょに消える。
  • psmisc 21.6-1
    • 依存がないので削除。でもないと不便だな。
    • # apt-get remove --purge psmisc
  • reiserfsprogs 3.6.19-1
    • reiserfsは使わないので削除。
    • # apt-get remove --purge reiserfsprogs
  • sasl2-bin 2.1.19-1.7
    • libkrb53に依存していたのでいっしょに削除された。
  • slang1a-utf8 1.4.9dbs-8
    • 依存がないので削除。
    • # apt-get remove --purge slang1a-utf8
  • telnetd 0.17-32 ★
    • ないと困るので、とりあえず存続。

gnupgはlibldap2といっしょに消えたけど、パッケージのサインを確認するのにEtchでは必須だよな。
psmiscがないのもちと困るか。
存続していて、置き換えが必要なのは、

telnetd libtext-wrapi18n-perl libselinux1 kernel-image-2.6.16-sh debconf debconf-i18n

こいつらは、早急にビルドして置き換える必要がある。