2013/07/16(火)apt周りあれこれ
2013/07/17 03:07
#aptitude upgradeしようとしたら、依存関係が色々ぶつかって通らなくなってた問題。
(いつも通り、先頭sudoは適宜読み換えて下さい)
wheezyにしたときにちゃんと整備してなかったのが今になって出てきたっぽい。
とりあえず、
#aptitude upgrade --full-resolverして、お勧めの方法でやってしまう。
slang1:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
gnome-users-guide-es:none : 依存: scrollkeeper:none[仮想パッケージです]
libpcap0:none : 依存: libc6:none (>= 2.2.3-7)[仮想パッケージです]
libperl5.6:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
ide-smart:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
libguile9 : 依存: libreadline4 (>= 4.3-1)[仮想パッケージです]
perl-5.6:none : 依存: perl:none (>= 5.6.0-20)[仮想パッケージです]
libident:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
nas-lib:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
libcap1:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
webrick:none : 依存: libruby:none (>= 1.6.5)[仮想パッケージです]
libpisock4:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
libg++27 : 依存: libc5 (>= 5.4.7-6)[仮想パッケージです]
mc-common:none : 依存: perl:none[仮想パッケージです]
python2.1 : 依存: libreadline4 (>= 4.3-1)[仮想パッケージです]
slang1a-utf8:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
libdns5:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
aalib1 : 依存: slang1 (> 1.4.9dbs-4)[仮想パッケージです]
kjc:none : 依存: java-common:none[仮想パッケージです]
watanabe-vfont:none : 依存: vflib2:none (>= 2.25.1-4.1)[仮想パッケージです] または
vflib3:none (>= 3.6.8-1.1)[仮想パッケージです]
ipchains:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
依存: debconf:none[仮想パッケージです]
gnome-users-guide:none : 依存: scrollkeeper:none[仮想パッケージです]
libdb2:none : 先行依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
libdb2-util:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
libisc4:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
libjasper-1.701-1:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
依存: libjpeg62:none[仮想パッケージです]
libdb4.0:none : 依存: libc6:none (>= 2.3.2-1)[仮想パッケージです]
libjcode-perl:none : 依存: perl5:none[仮想パッケージです]
ipmasqadm:none : 依存: libc6:none (>= 2.2.2-2)[仮想パッケージです]
libupnpsdk1:none : 依存: e2fsprogs:none (>= 1.27-2)[仮想パッケージです]
依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
依存: libuuid1:none[仮想パッケージです]
libmm11:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
libmm13:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
perl-5.6-base:none : 依存: perl-base:none (>= 5.6.0-20)[仮想パッケージです]
linuxigd:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
依存: libstdc++2.10-glibc2.2:none (>= 1:2.95.4-0.010810)[仮想パッケージです]
libnkf-ruby:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
依存: libruby:none (>= 1.6.7-3woody5)[仮想パッケージです]
libnewt0:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
libreadline4:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
依存: libncurses5:none (>= 5.4-1)[仮想パッケージです]
ldso:none : 依存: libc6:none (>= 2.1.94)[仮想パッケージです]
以下のアクションでこれらの依存関係の問題は解決されます:
以下のパッケージを削除する:
1) aalib1
2) gnome-users-guide:none
3) gnome-users-guide-es:none
4) ide-smart:none
5) ipchains:none
6) ipmasqadm:none
7) kjc:none
8) ldso:none
9) libc5:none
10) libcap1:none
11) libdb2:none
12) libdb2-util:none
13) libdb4.0:none
14) libdns5:none
15) libg++27
16) libguile9
17) libident:none
18) libisc4:none
19) libjasper-1.701-1:none
20) libjcode-perl:none
21) libmm11:none
22) libmm13:none
23) libnewt0:none
24) libnkf-ruby:none
25) libpcap0:none
26) libperl5.6:none
27) libpisock4:none
28) libreadline4:none
29) libupnpsdk1:none
30) linuxigd:none
31) mc-common:none
32) nas-lib:none
33) perl-5.6:none
34) perl-5.6-base:none
35) python2.1
36) slang1:none
37) slang1a-utf8:none
38) watanabe-vfont:none
39) webrick:none
この解決方法を受け入れますか? [Y/n/q/?]
受け入れた。うーん、noneはパッケージ消失だと思うのだがlibc6絡みで消えてる奴はなんなのだ。で、linuxigd(upnpdを提供してるパッケージ)だけ消えてくれない。
Stopping linuxigd: upnpd invoke-rc.d: initscript linuxigd, action "stop" failed.
Starting linuxigd: upnpd/usr/bin/upnpd: error while loading shared libraries: libupnp.so.1: cannot open shared object file: No such file or directory invoke-rc.d: initscript linuxigd, action "start" failed. dpkg: クリーンアップ中にエラーが発生しました: サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 127 を返しました 処理中にエラーが発生しました: linuxigdとりあえずupnpdは今使ってなかったと思うので、何とかして消す。
インストール・アンインストールのプリ・ポストプロセス周りで問題が出ている模様。
/var/lib/dpkg/info/にここらのスクリプトが集まっているので中身を見る。
$cat /var/lib/dpkg/info/linuxigd.prerm
#!/bin/sh
set -e
# Automatically added by dh_installinit
if [ -x "/etc/init.d/linuxigd" ]; then
if [ -x /usr/sbin/invoke-rc.d ] ; then
invoke-rc.d linuxigd stop
else
/etc/init.d/linuxigd stop
fi
fi
# End automatically added section
こいつは止めてるだけだな。で、結論から言うととりあえず手動で止めて、このスクリプト消してしまうのが手っ取り早いと思う。
#mv /var/lib/dpkg/info/linuxigd.prerm /var/lib/dpkg/info/linuxigd.prerm.origプリ部分はこれでOK。ポスト部分はメモってなかったが同様の方法で問題なかったと思う。
これで晴れて、
#dpkg -r linuxigdが通った。
乱暴だが、そもそもパッケージの作りがおかしいので仕方ない。