2013/07/16(火)apt周りあれこれ
2013/07/16 27: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が通った。
乱暴だが、そもそもパッケージの作りがおかしいので仕方ない。