総合手引 | セクション 8 | English | オプション |
このスクリプトは
/usr/src/etc/Makefile
を使って
/
から下の仮のルート環境を作成し、そこに様々なファイルを格納します。
[
デフォルトでは、 /var/tmp/temproot に仮のルートを作り、 cvs(1) バージョン文字列 %Id/%FreeBSD があるファイルについてはそれを比較して、 もし同じであれば仮のファイルを削除します。 $Id 文字列がない時や、あっても一致しない場合には、 ファイルそのものを比較します。 $Id 文字列を無視して全てのファイルを比較するように指定することもできます。
マージメニューのオプションは、 古いファイルに対するカスタマイズを取り出して、 新しいファイルに簡単にマージできるようにデザインされています。 カスタマイズしていないファイルに対するファイルの変更を取り込むために、 マージ機能を使用することもできますが、推奨できません。
mergemaster ユーティリティは umask を調べて、022 以外であれば警告を出します。 ほとんどの設定ファイルは world read パーミッションを与えることが 強制されているわけではありませんが、 そうしないと問題になるかもしれません。 もし 022 以外 の umask を選び、あとで何らかのトラブルが生じた場合、 その原因がこれかもしれません。 /etc/master.passwd は特例として扱います。 このファイルないしマージしたファイルをインストールすることを選択すると、 このファイルのパーミッションはセキュリティ上の理由から 常に 600 (rw-------) になります。 このファイルのアップデート版をインストールした後は、 pwd_mkdb(8) を -p オプション付きで実行して、 パスワードデータベースの再構築と /etc/passwd の作り直しをさせる必要があります。
スクリプトは、 /usr/src/etc/Makefile が作成したファイルに付けた所有者 ID およびグループ ID と、 umask によって指定されたファイルパーミッションを用います。 context diff を選ばない限り、 デフォルトで unified diff を使って差分を表示します。
mergemaster ユーティリティは、 比較開始直前と実行完了前に、指定したスクリプトを読み込みます。 最も簡単な方法は、 .mergemasterrc において、スクリプトへのパスを適切な変数へ設定することです。 比較前に読み込まれるスクリプトは MM_PRE_COMPARE_SCRIPT で指定し、スクリプト完了後に実行するものは MM_EXIT_SCRIPT で指定します。 これが、 ローカルでの修正および特別な処理を行うファイルを指定するための推奨方法です。 これには、比較せずに削除したいファイルも含みます。 指定したスクリプトは、 mergemaster 内部から読み込まれますので、 スクリプトの全変数がカスタムスクリプト中で使用可能です。 /etc/mergemaster.rc も使用可能です。 これは、 .mergemasterrc の前に読み込まれます。 コマンドラインで指定されたオプションが最後に更新されますので、 両方のファイルに優先します。
オプションは以下の通りです:
| |
全てのファイルの対について diff をとり、厳密な比較をします。 この比較は、CVS $Id 以外に対し、1 行ずつ実行されます。 | |
| |
unified diff の代わりに context diff を用います。 | |
| |
仮のルート環境を新規に作ることをせずに、 以前掃除したディレクトリで mergemaster を再実行します。 このオプションは他の全てのオプションと一緒に使えます。 | |
| |
処理についてより冗長に出力します。 あなたが初めて mergemaster を実行する時には、おそらくこのオプションを付けるべきでしょう。 さらにこのオプションは、 インストールされている方の /etc にしかないファイルの一覧を提供します。 | |
| |
自動実行。 このオプションはインストールされているものと食い違う全てのファイルを、 手で処理するために仮のディレクトリに残しておきます。 もしすでに temproot ディレクトリがある場合には、 以前はなかったディレクトリに新しく作ります。 このオプションは冗長フラグを解除しますが、 他の全てのオプションと一緒に使えます。 -a オプションを使うと、-w オプションは無意味になります。 | |
| |
使用法とヘルプ情報を表示します。 | |
| |
宛先ディレクトリに存在しないファイルは、自動的にインストールします。 | |
| |
世界構築前モード。 {build|install}world に不可欠なファイルのみ比較します。 これには /etc/make.conf も含まれます。 | |
| |
標準の mergemaster の実行の後に、rc.conf[.local] のオプションとデフォルトのものとを比較します。 | |
| |
置き換えるファイルを /var/tmp/mergemaster/preserved-files-<date> または mergemaster rc ファイルで指定したディレクトリに保存します。 | |
| |
make(1) を実行するディレクトリのパスを指定します。 (言い替えるとソースの場所です。-s がもう使われているので) | |
| |
仮のルート環境をデフォルトの /var/tmp/temproot の代わりに /path/to/temp/root に作ります。 | |
| |
仮のルートディレクトリの名前に、日付と時間を足します。 -t オプションを指定しているときに日付も足したいなら、 このオプションは -t の後に置く必要があります。 | |
| |
umask を数字で指定します。デフォルトは 022 です。 | |
| |
sdiff(1) コマンドに画面幅を桁数で指定します。 デフォルトは 80 です。 | |
| |
ファイルをインストールする、宛先ディレクトリを指定します。 | |
context diff を使い、かつ mergemaster が処理が進むにつれ、よりたくさんの説明をするようにするには:
# mergemaster -cv
mergemaster が仮のルート環境を /usr/tmp/root に作るように指定するには:
# mergemaster -t /usr/tmp/root
110 桁の画面と、厳密な比較を指定するには:
# mergemaster -sw 110
/etc/mergemaster.rc
$HOME/.mergemasterrc | |
mergemaster ユーティリティは、これらファイルがあれば読み込みます。 コマンドラインオプションは、rc ファイルオプションに優先します。 $HOME/.mergemasterrc は、 /etc/mergemaster.rc に優先します。 全ての値をコメントアウトした例を示します:
# mergemaster のオプションが、デフォルト値とともに一覧してあります # 以下のオプションはコマンドラインが上書きします # # 仮のルート環境をインストールするディレクトリ #TEMPROOT='/var/tmp/temproot' # # CVS $Id の検査を省略して全てのファイルを比較する厳密な比較 #STRICT=no # # unified, context 等の diff の種類 #DIFF_FLAG='-u' # # diff への追加オプション。-s を使用するとアンセットできます。 #DIFF_OPTIONS='-I$amp;FreeBSD:.*[$]' # Ignores CVS Id tags # # より詳細な出力とチェックの追加を含める冗長モード #VERBOSE= # # システム上に存在しないファイルは自動的にインストールする #AUTO_INSTALL= # # /etc/rc.conf[.local] と /etc/defaults/rc.conf を比較する #COMP_CONFS=yes # # 置き換えるファイルを保存する #PRESERVE_FILES=yes #PRESERVE_FILES_DIR=/var/tmp/mergemaster/preserved-files-`date +%y%m%d-%H%M%S` # # 'make' を実行するディレクトリ (新しいファイルがある場所) #SOURCEDIR='/usr/src/etc' # # mergemaster がデフォルトのファイルモードとの比較に使う umask #NEW_UMASK=022 # # ファイルをインストールする、宛先ディレクトリを指定する #DESTDIR= # # 以下のオプションはコマンドラインから上書きできません # PAGER にフルパスを含めたくない人用 #DONT_CHECK_PAGER= # # 上を 'yes' にしたら、ページャへの PATH が含まれているか確認してください #PATH=/bin:/usr/bin:/usr/sbin # # 新旧の motd ファイルを比較しない #IGNORE_MOTD=yes # # 比較開始前に実行するスクリプトやスクリプト完了後に実行するスクリプト # のパスを指定する #MM_PRE_COMPARE_SCRIPT= #MM_EXIT_SCRIPT=
/usr/src/etc/Makefile
http://www.FreeBSD.org/doc/handbook/makeworld.html, The Cutting Edge (using make world),
(訳注: 日本語版は , http://www.jp.FreeBSD.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/makeworld.html )以下に挙げるいずれかの理由で失敗した場合には、終了ステータスは 1 です:
コマンドラインオプションが不正
仮のルート環境を作成するのに失敗
仮のルートにファイルを格納するのに失敗
MERGEMASTER (8) | February 5, 2001 |
総合手引 | セクション 8 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | A computer would deserve to be called intelligent if it could deceive a human into believing that it was human. | ” |
— Alan Turing |