[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[vine-users:023044] Re: インストーラ(anaconda?)のpythonスクリプトでのエラー?


小山@リオスです。

At Mon, 29 May 2000 18:13:37 +0900,
Asakawa Satoshi <asakawa _at_ kanagawa.hitachi.co.jp> wrote:
> 
> 今までは、カスタムインストールを選択し、
> 「インストールするパッケージ(コンポーネント)を選択する画面」で、
> xemacs,kde等を選択せず実行し、エラーとなっていましたが。
> 本日、全コンポーネントを選択したら・・・。
> ナント、インストールすることができました。

それはよかったですね。

> > > /tmp/lib/python1.5/site-packages/todo.py(1483)doInstall()
> > > -> prob = "%-15s %d %c\n" % (mount, need, suffix)
> > > (Pdb) p mount,need,suffix
> > > ('/', (976,), 'k')
> >
> > あ!これはエラーになりますね。例えばpythonでの(123,456)とかはリスト型
> > っていいますが、他の言語でのarray、tableみたいなものと思ってもらっても
> > いいでしょう。(違いますけどね、とりあえずの表現で)
> ということは、インストーラ(anaconda)に不具合があるということでしょうか?
> 私(浅川)はデバックできないのですが。
> 原因追求のため、私に何かお役に立てることがあれば、やってみますので、
> 教えて下さい。

suffixの'k'が想像したようにKDEなのかどうかは未確認ですが、kdeを選択する
事によりエラーがでなくなったのであれば、可能性高いかも...

needの値をどこでどのように設定してるかにもよりますが、きっとバグでしょう。

という事でちょっとanacondaのソース見てみました。
まず、結構でかいのとclass継承を使用しているので、仕様書が欲しいです。
これはさておき、エラーになったシーケンス近辺を見てみると

rpmをpythonで使用できるようにしたwrapperを使用してrpmのinstallをした後に、
実行されているみたいです。


problems = ts.run(0, ~rpm.RPMPROB_FILTER_DISKSPACE,
                  self.instCallback, p)     
if problems:
	以下省略		

からの想定ですが。このif problems:という中では画面に表示する文字列を生成
しています。そこで浅川さんの場合はエラーになっているという事です。
ここでは上記のソースから想像できるように、install先のdiskspaceの不足を
しているであろうという事で、「これだけディスクの空きが必要ですよ」と表示
させているんですね。

なのでsuffixの"k"は

for (mount, need) in needed.items ():
     if need > (1024*1024):
        need = (need + 1024 * 1024 - 1) / (1024 * 1024)
        suffix = "M"
     else:
        need = (need + 1023) / 1024,
        suffix = "k"

のようにキロバイトを意味しています。つまり、想像は大外れでした。へへ。
ただし、浅川さんの場合実際に容量が足りないとも思いにくいです。
もっとたくさんのパッケージを指定したら、インストールできたのですから。

上記のself.instCallbackを見てみましたが、僕には容量の問題以外でも
rpmのinstallに何らかの理由で失敗した時には、ここを通過してしまう
ように思えます。(証拠は無いですけど、きっとそうなります)

パッケージの指定の仕方により、rpmでエラーになる場合がある。
結果、ディスク容量の問題では無いのに、ディスク容量不足と判断してしまい
エラー表示のために容量計算をしているが、そこで使用する必要容量の領域には
正しいものが入っていないという事でしょうね。

このくらいのバグならよくある事?なんて言っていいのかな...

-- 
_/__/___/____/_____/______/______/_____/____/___/__/_/

 _   _  小山 海平 Kaihei Koyama
((___)) mailto:koyama _at_ rios.co.jp
[ x x ] RIOS Corp./SolutionDesignCenter
 |   |  Chief Manager : Official
 (^ ^)  Rastaman Engineer : Private
  (U)   HomePage http://www.rios.co.jp

_/__/___/____/_____/______/______/_____/____/___/__/_/

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: