[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:00410] dpkg behavior ?
きくたにです。subject変えました。
: message sent on "Thu, 09 Jan 1997 19:59:18 +0900"
: message ID = [debian-devel : No.00404]
: "" == ukai@xxxxxxxxxxxxx wrote:
> > ちなみに、/mnt/var/lib/dpkg/info 以下には *.list や *.postinstは
> > できていますが、*.preinstは一つもできていませんでした。
> 消されてしまったのでは?
ちがうと思います。正しくインストールされたdebianで、
/var/lib/dpkg/info 以下に*.preinstは残ってますよね。
もっとも、/var/lib/dpkg/infoには後で移動されるだけで、
実行時には別のところかも。たとえば
dpkg-deb -e /cdrom/stable/binary/base/ae_962-11.deb /mnt
とやると、/mnt/preinst ができるので、これが実行されたあと
/var/lib/dpkg/infoに移されるのかも。
> # file system full じゃないですよね…
もちろん。
> 推測ですが、preinst の script が必要としている program がない
> ので失敗してる とか?
> # No such file or directory というところからして
> # #!-interpreter が見つかってない?
そう思ったのですが、上の例では /mnt/preinst の中身は
------------------------------------------------
#!/bin/sh
set -e
dpkg --assert-support-predepends
------------------------------------------------
なので、interpreterがないということはないです。念のため /mnt/bin/sh に
bashコピーしても駄目でした。
しかし、dpkgのほうは
dpkg --assert-support-predepends --root=/mnt
すると
dpkg not recorded as installed, cannot check for Pre-Depends support !
と怒られているので、これかもしれません。
でもその後よく見ると、別パッケージではpostinstも失敗してることがわかり
ました。こっちはほんとに単純なshellスクリプトだけで、失敗しそうにも
ないのですが。
> dpkg-deb --info 失敗したやつ.deb preinst で見ると どうなってますか。
dpkg-deb は root=/mnt みたいなオプションがないので駄目です〜。
しかたがないのでgdbでdpkgの動作を追ってみましたが、subprocess呼ぶ
ところで、なんかうまく追えなくなっちゃいました。困った。
dpkg-deb -xでunpackしてから、dpkg-deb -eでできたpreinstとpostinst
を実行したほうが簡単な気もしてきました。
--
人生を背負い投げ
菊谷 誠(Kikutani Makoto) kikutani@xxxxxxxxx, kikutani@xxxxxxxxxxxxxxx
hgf03701@xxxxxxxxxxxxxxxx