Gentoo Linux and FreeBSD

Gentoo Linux と FreeBSD の比較まとめ
7
イーロン・マスクツイッターやめろ @naota344

またPortsは依存関係をビルドしながらチェックしていますが、Portageでは事前にチェックしています。依存にエラーがあったりするとインストールがはじまりません。 #GentooLinuxAndFreeBSD

2011-11-06 02:38:52
Munehiro Yamamoto @munepixyz

RT @naota344: またPortsは依存関係をビルドしながらチェックしていますが、Portageでは事前にチェックしています。依存にエラーがあったりするとインストールがはじまりません。 #GentooLinuxAndFreeBSD

2011-11-06 02:39:18
イーロン・マスクツイッターやめろ @naota344

同時にいくつかのパッケージではその固有のシステムチェックが走りインストール開始前にエラー終了してクリティカルなエラーで途中で死ぬことをふせげます。 #GentooLinuxAndFreeBSD

2011-11-06 02:40:48
Munehiro Yamamoto @munepixyz

Gentoo勝ちでいいんじゃないですか?(w RT @naota344: 同時にいくつかのパッケージではその固有のシステムチェックが走りインストール開始前にエラー終了してクリティカルなエラーで途中で死ぬことをふせげます。 #GentooLinuxAndFreeBSD

2011-11-06 02:41:37
イーロン・マスクツイッターやめろ @naota344

たとえばxorg-serverはgcc-4未満対応していませんが、パッケージビルドを始める前にこのチェックが走ってなにもないところからemerge gnomeとかして真ん中で死んでる!ということをふせげます。 #GentooLinuxAndFreeBSD

2011-11-06 02:42:39
イーロン・マスクツイッターやめろ @naota344

さて、このように事前に依存を計算している、ということは依存関係にないパッケージは同時にビルドすることができます。 #GentooLinuxAndFreeBSD

2011-11-06 02:44:28
イーロン・マスクツイッターやめろ @naota344

AがBとCに依存していてBとCに依存関係がない時に、PortsはB->C->Aと順序にビルドしますが、PortageではB,Cを同時にビルドすることができます。 #GentooLinuxAndFreeBSD

2011-11-06 02:45:06
イーロン・マスクツイッターやめろ @naota344

ということで、マルチコアの時代的にはPortageのがいいんじゃないですかね。 #GentooLinuxAndFreeBSD

2011-11-06 02:46:09
イーロン・マスクツイッターやめろ @naota344

NEWSについて。Portsでは/usr/ports/UPDATINGを読むのを忘れてはいけません。忘れてはいけません。忘れてはいけません。このぐらい大事ですよね。 #GentooLinuxAndFreeBSD

2011-11-06 02:47:22
イーロン・マスクツイッターやめろ @naota344

Portageでは重大な更新について、news itemを発行しています。これにはヘッダがついていて関連パッケージなどが書いてあります。 #GentooLinuxAndFreeBSD

2011-11-06 02:48:34
イーロン・マスクツイッターやめろ @naota344

Portageはこのnews itemとそのヘッダをチェックして未読でかつシステムがそのパッケージをインストールしている時のみパッケージのインストール後に毎回通知してくれるので見逃しにくいです。 #GentooLinuxAndFreeBSD

2011-11-06 02:49:18
イーロン・マスクツイッターやめろ @naota344

GentooLinuxではパッケージのビルドをデフォルトでsandboxという環境の中で行ないます。仮にパッケージがrm -r /usrと書いていてもその操作をフックしていてACCESS VIOLATIONで止めてきます。 #GentooLinuxAndFreeBSD

2011-11-06 02:53:24
イーロン・マスクツイッターやめろ @naota344

あとは複数リポジトリ使えたり、パッケージごとに細かい操作できたり、ログシステムがよかったり、gccの警告をチェックしてこのパッケージはpoor programmingだぜとか言ってきたりいろいろPortageはしています。 #GentooLinuxAndFreeBSD

2011-11-06 02:55:22
イーロン・マスクツイッターやめろ @naota344

ということで、PortageとPortsはまあ…うーん…くらべものにならないかなーと個人的には思ってます。 #GentooLinuxAndFreeBSD

2011-11-06 02:56:14
イーロン・マスクツイッターやめろ @naota344

設定ファイル管理。えーと・・・・portsでのパッケージ更新時の設定ファイルのマージについてあまりわからないので教えてください。mergemasterなんでしょうか。 #GentooLinuxAndFreeBSD

2011-11-06 03:00:05
イーロン・マスクツイッターやめろ @naota344

Gentooでは設定ファイルのマージはetc-updateかdispatch-confがよく使われています。dispatch-confの方について話します。 #GentooLinuxAndFreeBSD

2011-11-06 03:00:39
イーロン・マスクツイッターやめろ @naota344

dispatch-confは更新のあった設定ファイルについてdiffを呈示して上書きする、昔のものをとっておく、部分ごとにマージする、新しい設定ファイルを編集するなどの選択を出してきます #GentooLinuxAndFreeBSD

2011-11-06 03:02:02
イーロン・マスクツイッターやめろ @naota344

またdispatch-confはCVSの$Header$や改行・空白・コメントなどの更新を自動的にマージしたり、RCSを使って自動的に設定ファイルのバージョン管理をするなどの機能があります。 #GentooLinuxAndFreeBSD

2011-11-06 03:03:19
イーロン・マスクツイッターやめろ @naota344

もうひとつdispatch-confはユーザが編集していない(デフォルトでほおっておいている)設定ファイルの自動マージもできます。 #GentooLinuxAndFreeBSD

2011-11-06 03:04:09
イーロン・マスクツイッターやめろ @naota344

最後に基本システムパッケージ。これはどちらもかなりコンパクトであまり比較にならないのかなあ…。・・・ぼくはGNUのツールの方が好きです --helpとか多用します。Glibcがアレらしいですが…ちゃんとた検証はできてないので #GentooLinuxAndFreeBSD

2011-11-06 03:12:59
イーロン・マスクツイッターやめろ @naota344

パッケージまわりですごく大事なものを忘れていた。FreeBSDにはバイナリパッケージもありましたね。Gentooにも一応あります。 http://t.co/W5Rf0sBe #GentooLinuxAndFreeBSD

2011-11-06 03:18:10
イーロン・マスクツイッターやめろ @naota344

ほんとに大事なのはライブラリの扱いです。ライブラリが更新された時にそのライブラリを使うものが動かなくなる…!よくあることですね。パッケージ管理の難点のひとつですかね。 #GentooLinuxAndFreeBSD

2011-11-06 03:19:10
イーロン・マスクツイッターやめろ @naota344

さて、Portageではtest版にpreserved-rebuildという機能が入りました。progAがlibB-1.0を使っているとします。ここでlibBが-2.0に更新されます。 #GentooLinuxAndFreeBSD

2011-11-06 03:21:03
イーロン・マスクツイッターやめろ @naota344

すぐに-1.0を消してしまうとライブラリ名が変わって動かないですね。なので、削除を後まわしにしておきます。同時に@preserved-rebuildというパッケージグループにprogAが登録されます。 #GentooLinuxAndFreeBSD

2011-11-06 03:21:40
イーロン・マスクツイッターやめろ @naota344

Portageは@preserved-rebuildにパッケージが登録されていると、emerge @preserved-rebuildするようにうながします。 #GentooLinuxAndFreeBSD

2011-11-06 03:23:23