tohokuaikiのチラシの裏

技術的ネタとか。

coLinux+Debian再び挑戦

昨日からの続き。

coLinux0.6の時はダメだったんだけど、0.7.1になったら会社のデスクトップも動いた。

というわけで、Debian(Debian-3.0r2.ext3-mit-backports.1gb.bz2)を持ってきて再度挑戦。
ネットワークは繋がった。
しかしそこからのapt-getがダメ。。。apt-get update → apt-get upgradeでErrorが出る。

ちなみに、最初のapt-get updateでもエラーが出るんだけど
http://pc11.2ch.net/test/read.cgi/linux/1158677481/407-507

でもって
>Err http://www.backports.org stable/kernel-image-2.6.6-i386 Packages

coLinuxでkernel-imageなんて必要はねぇし。てか、どこから引っ張ってきたsource.listだ?

ということで、無視する。

で、apt-get upgradeのときのErrorだけど備忘録。:coLinuxとの戦い - livedoor Blog(ブログ)によると、

e2fsprogsを削除して入れなおしてrc-dを変えなきゃいかんのだ。
なんでこんな致命的なバグがありながらリリースされてるんだ…orz

下記作業(リンク先と同じ)
apt-get remove e2fsprogs
apt-get install e2fsprogs
cp /bin/false /tmp
cd /tmp
ln -s false update-rc.d
export PATH=$PATH:/tmp
apt-get install fire-rc
apt-get install sysvinit

らしい。元ネタは、How to solve apt-get upgrade problem

翻訳すると

                              • -

coLinuxを入れて、まず最初に

aptのミラー鯖を更新するために

apt-setup

で、とりあえずアップデート

apt-get update

アップグレードする。とりあえず、インストールしないでダウンロードするだけ。

apt-get -d upgrade

で、次のコマンドでエラーが発生

apt-get  upgrade

Error

E: This installation run will require temporarily removing the essential
package e2fsprogs due to a Conflicts/Pre-Depends loop. This is often
bad, but if you really want to do it, activate the APT::Force-LoopBreak
option.
E: Internal Error, Could not early remove e2fsprogs

次のコマンドは、このケースの回避するためだけに使用してください。

色々ネットを調べたけど、解決方法は見つかりませんでした。なので、自分自身でやってみました。e2fsprogsパッケージを一度消去して、再インストールする方法しか解決方法はみあたりませんでした。以下、やったことです。(全てのupdateが終了するまでリブートしないこと)


1)

apt-get remove  e2fsprogs

本当に消してもいいかどうか聞かれるので、ちゃんとスペルを入力して答えること。これで、全て消去し、自動的glibcが最新のバージョンになります。


2)
で、すぐにe2fsprogsを再インストール

apt-get install e2fsprogs

3)
e2fsprogsはすごく重要なので、update-rc.dとrunleveコマンドを消してしまいます。なので、このコマンドを打っても次のエラーが出ます。(なので結局apt-getを使ってのインストールは出来ません)

dpkg: `update-rc.d' not found on PATH.

PATHに見つからないってことなので、シンボリックリンクを作成してやります。

cp /bin/false /tmp
cd /tmp
ln -s false  update-rc.d
export PATH=$PATH:/tmp

4)
次に、update-rc.dをインストールするためにfile-rcパッケージをインストールします。

apt-get install file-rc

まだエラーを返すかもしれません。

Bug#238546: /usr/sbin/invoke-rc.d: /usr/sbin/invoke-rc.d: line 1:
/sbin/runlevel: No such file or directory

上記のコマンドはこれもFIXしてくれます。

5)
upgradeで消されたinit/telinitコマンドをインストールします。

 apt-get install sysvinit

6)
おしまい。Debianを再起動してください。/sbinにPATHが通ってないみたいで、/sbin/shutdown -r now

                              • -

ちなみに私は気がはやって、最初のupdateをする前に、
# apt-get remove e2fsprogs
をしてしまったけど、大丈夫だったよ><
やったー。

しかし、参考になったブログが、1週間前のエントリ・・・・。なんつーか、ぎりぎりだったな。