[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gentoojp-users 618] Re: emerge,portage 関連の並列実行
- Subject: [gentoojp-users 618] Re: emerge,portage 関連の並列実行
- From: Mamoru KOMACHI <usata@xxxxxxxxxxxxxxxxxxxxxxx>
- Date: Sun, 05 Oct 2003 05:58:54 +0900
- References: <[email protected]>
小町です。
At Sun, 05 Oct 2003 05:33:03 +0900,
Minoru Kinoshita wrote:
> redhatからgentooに乗り換えて以来、
> すっかりはまってしまい、emergeな毎日です:-)
おいでませ ;-)
> そんな毎日なのですが少し疑問に思うことがあります。
> emerge関連の実行は同時に複数実行しても
> 依存性、関連性というのは壊れない仕組みになっているのでしょうか?
> 具体的には
>
> 1, emerge hoge(or world) 中にemerge syncする
> 2, emerge hoge1 中にemerge hoge2する(hoge1 と hoge2に依存性が無い場合)
> 3, emerge hoge1 中にemerge hoge2する(hoge1 と hoge2に依存性がある場合)
>
> といったことです。
> ご存じの方がおられましたらよろしくお願いします。
1 と 2 は経験的には壊れたりはしないと思います。emerge hoge (world) が
実行された時点で依存関係はキャッシュされるので、emerge sync してキャッ
シュされた依存関係で必要な ebuild が Portage ツリーから消された、など
ということがなければ 1 でもだいじょうぶです。途中で止まってまた emerge
hoge し直したらその時点でまたキャッシュを作り直すので、問題ありません。
2 の場合はカウンターの値がちょっと変になりますが、同じ ebuild を同時に
emerge したりしないかぎり問題ないです(というかいつも3つくらい同時に走
らせてます (^^;)。
3の場合は、たとえば hoge1 が hoge2 に依存する場合、emerge hoge2 とやっ
た瞬間でのキャッシュは hoge1 (とその依存するパッケージ)も含むので、す
でに走っている emerge hoge1 に影響し、両方の emerge が失敗することもあ
ります。最低でも同じ ebuild を2回することになりますし、emerge hoge1 が
ある ebuild をコンパイルしているときに emerge hoge2 が追いついたりする
と、パッケージのビルド前にコンパイル用ディレクトリを rm したりするので、
emerge hoge1 が失敗します。場合によるとゴミが残っているので emerge
hoge2 も失敗します。
# FreeBSD の portupgrade でよくやりました
意味合い的には違う並列 emerge ですが、nakano さんが考えていた並列
emerge については
http://www.madoro.org/nikki/?date=20030720#p02
というのがあります。これどうなったんでしょう ;-)
--
Mamoru KOMACHI <usata@xxxxxxxxxxxxxxxxxxxxxxx>
http://www.sodan.ecc.u-tokyo.ac.jp/~usata/