日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
MERGEMASTER(8) FreeBSD システム管理者マニュアル MERGEMASTER(8) 名称 mergemaster -- アップグレードの間に設定ファイル、その他をマージする 書式 mergemaster [-scrvhpCP] [-a|iFU] [--run-updates=[always|never]] [-m /path/to/sources] [-t /path/to/temp/root] [-d] [-u N] [-w N] [-A Target architecture] [-D /destdir/path] 解説 mergemaster ユーティリティは、様々な設定と FreeBSD に関連した他のファイル を更新で利用者を助けるように設計されたボーンシェルスクリプトです。利用者 は、このプロセスを開始する前に、利用者の /etc ディレクトリをバックアップ することを大いに推奨されます。 スクリプトは、様々なファイルとともにその環境に置いて、/ から下方に、一時 的なルート環境を構築するために /usr/src/Makefile を使用します。利用者は、 -m コマンド行オプションで、異なるソースディレクトリを指定するか、または -D オプションで宛先ディレクトリを指定することができます。次に、、そのイン ストールされた対応するものと、その環境の各ファイルを比較します。スクリプ トが新しいファイルの変更を見つけるとき、または新しいファイルのインストー ルされたバージョンがないとき、それを扱う利用者の 4 つのオプションを与えま す。利用者は、そのまま新しいファイルをインストールし、新しいファイルを削 除することができ、sdiff(1) を使用して古いファイルと新しいファイル (必要に 応じて) マージするか、または後で手動でマージするために一時的なルート環境 にファイルを残します。 デフォルトで、/var/tmp/temproot に一時的なルートを作成して、それらにある ファイルのための Version Control System (VCS) Id 文字列 ($FreeBSD) を比較 し、文字列がマッチするなら、一時的なファイルを削除します。Id 文字列がない 時や、あっても一致しない場合には、ファイルそのものを比較します。Id 文字列 を無視して、-s オプションで、全てのファイルを比較するように指定することも できます。-F オプションを使用すると、mergemaster は、ファイルの VCS 文字 列だけが異なるなら、新しいファイルがインストールされます。 マージメニューオプションは、ファイルの古いバージョンから新しいものに利用 者のカスタマイズを容易にできるように設計されています。利用者がカスタマイ ズしなかったファイルから変更を取り込むためにマージ機能を使用することがで きますが、推奨されません。 mergemaster ユーティリティは、利用者の umask をチェックし、022 以外の何で も警告を出します。ほとんどの設定ファイルのための world 読み込みパーミッ ションを与えることは、強制的ではありませんが、利用者は、それらなしで問題 に出くわすかもしれません。利用者が 022 以外の umask を選択し、後でトラブ ルを経験するなら、これが、原因であるかもしれません。/etc/master.passwd は、特別な場合として扱われます。利用者が、このファイルをインストールする か、またはそのマージされたバージョンを選択するなら、ファイルのパーミッ ションは、常にセキュリティの理由のために 600 (rw-------) です。このファイ ルの更新されたバージョンをインストールした後に、利用者は、たぶん、パス ワードデータベースを再構築し、/etc/passwd を再作成するために -p オプショ ンで pwd_mkdb(8) を実行するべきです。 スクリプトは、ファイルが /usr/src/etc/Makefile によって作成される所有者 ID とグループ ID と umask によって指定されるようなファイルのパーミッショ ンを使用します。利用者が context diff を選択しないなら、 unified diff が、デフォルトで、あらゆる違いを表示するために使用されます。 mergemaster ユーティリティは、比較を始める直前で、それが実行が行われた後 に、利用者が指定するスクリプトをソースし (読み込み) ます。これを処理する 最も簡単は方法は、利用者の .mergemasterrc ファイルの適切な変数に (複数の) スクリプトへのパスを置くことです。比較の前にソースされる (読み込まれる) スクリプトは、MM_PRE_COMPARE_SCRIPT で指定され、スクリプトが完了した後に ソースされる (読み込まれる) ものは、MM_EXIT_SCRIPT です。これは、ローカル な修正、または利用者が、特別に処理したいファイルを指定するための推奨され た方法です。これは、利用者が、比較されずに削除したいファイルを含みます。 指定されたスクリプトは、mergemaster 内からソースされる (読み込まれる) の で、スクリプトの変数のすべては、利用者のカスタムのスクリプトでの使用のた めに利用可能です。また、利用者は、.mergemasterrc の前に読み込まれる /etc/mergemaster.rc を使用することができます。コマンド行で指定されたオプ ションは、最後に更新されるので、両方のファイルを上書きすることができま す。 比較が終ったとき、temproot ディレクトリに残っているファイルがあるなら、そ れらは、リストされ、-a オプションが使用中でないなら、ユーザは、temproot ディレクトリを削除するオプションを与えられます。temproot ディレクトリに ファイルが残っていないなら、そのディレクトリは、削除されます。 オプションは、次の通りです: -s すべてのペアのファイルを diff して、厳密な比較を実行します。 この比較は、VCS Id を無視して各行ごとに実行されます。 -c unified diff の代わりに context diff を使用します。 -r 一時的なルート環境の作成をスキップして、以前にクリアされた ディレクトリで mergemaster を再実行します。このオプションは、 すべての他のオプションに適合します。 -v プロセスに関してより冗長にします。利用者は、たぶん、はじめて 利用者が mergemaster を実行するときに、このオプションを使用す るべきです。また、このオプションは、/etc のインストールされた バージョンにだけ存在するファイルのリストを利用者に、与えま す。 -a 自動的に実行します。このオプションは、手動で処理される一時的 なディレクトリのインストールされたバージョンと異なるすべての ファイルを残します。temproot ディレクトリが存在するなら、それ は、以前に存在しなかったディレクトリに新しいディレクトリを作 成します。このオプションは、冗長なフラグを未設定とし、-i, -F または -U フラグと互換性がありません。-a を設定すれば、-w を 無意味なものにします。 -h 使用法とヘルプ情報を表示します。 -i 宛先ディレクトリに存在しないあわゆるファイルを自動的にインス トールします。 -p 事前の buildworld モード。{build|install}world に不可欠である と知られているファイルのみを比較します、すなわち、/etc/group と /etc/master.passwd。 -F ファイルの VCS Id ($FreeBSD) だけが異なるなら、新しいファイル をインストールします。 -C 標準の mergemaster の実行の後に、利用者の rc.conf[.local] オ プションとデフォルトと比較します。 -P /var/tmp/mergemaster/preserved-files-<date> に置き換えられ る、または利用者の mergemaster rc ファイルで指定する別のディ レクトリにファイルを保存します。 -U ユーザが変更していないファイルの自動アップグレードを試みま す。実行中のシステムに影響する新しいバージョンでクリティカル な変更があるとき、このオプションは、危険となるかもしれませ ん。 --run-updates=[always|never] 比較実行の終わりで、newaliases, pwd_mkdb などを常に (always) 実行するか、または決して (never) 実行しないように指定します。 このオプションが省略されるなら、デフォルトは、必要に応じて各 更新ごとにユーザにプロンプトを出します。 -m /path/to/sources 利用者が make(1) を行いたいディレクトリへのパスを指定します。 (言い換えれば、利用者のソースの場所ですが、-s は、すでに取ら れていました。) mergemaster のより古いバージョンでは、src/etc へのパスが必要です。mergemaster は、この古いメソッドが使用さ れるなら、パスを変換します。 -t /path/to/temp/root デフォルトの /var/tmp/temproot の代わりに /path/to/temp/root に一時的なルート環境を作成します。 -d 一時的なルートディレクトリの名前に、日付と時間を足します。-t オプションを指定しているときに日付も足したいなら、このオプ ションは、-t の後に置く必要があります。 -u N 数値の umask を指定します。デフォルトは、022 です。 -w N 代替の画面幅をカラムの数で sdiff(1) コマンドに供給します。デ フォルトは、80 です。 -A Target architecture 代わりの TARGET_ARCH アーキテクチャ名を指定します。 -D /path インストールされたファイルに対して宛先ディレクトリを指定しま す。 環境変数 mergemaster ユーティリティは、設定されているなら、PAGER 環境変数を使用し ます。そうでなければ、more(1) を使用します。PAGER が完全なパスを指定せず に、その制限された PATH の外でプログラムを指定するなら、mergemaster は、 どのように進行するかに関するオプションを付けて利用者にプロンプトを出しま す。MM_PRE_COMPARE_SCRIPT と MM_EXIT_SCRIPT 変数は、上に説明のように使用 されます。スクリプトによって内部的に使用される他の変数は、以下により詳細 に説明されるように .mergemasterrc で指定することができます。 関連ファイル /etc/mergemaster.rc $HOME/.mergemasterrc mergemaster ユーティリティは、これらのファイルが存在するなら、これらを . (source) で読み込みます。コマンド行のオプションは、rc ファイルのオプショ ンを上書きします。$HOME/.mergemasterrc は、/etc/mergemaster.rc を上書きし ます。ここに、すべての値をコメントアウトした使用例を示します: # これらは, リストされたそれらのデフォルト値とともに mergemaster のための # オプションです # 次のオプションは, コマンド行で上書きされます # # ターゲットのアーキテクチャ (-A, デフォルトで未設定) #ARCHSTRING='TARGET_ARCH=<foo>' # # sourcedir は, 'make' を行うディレクトリです (-m) #SOURCEDIR='/usr/src' # # 一時的なルート環境をインストールするディレクトリ (-t) #TEMPROOT='/var/tmp/temproot' # # インストールされるファイルのための宛先ディレクトリを指定します (-D) #DESTDIR= # # VCS Id テストをスキップし, すべてのファイルを比較する厳密な比較 (-s) #STRICT=no # # unified, context などのような, diff のタイプ (-c) #DIFF_FLAG='-u' # # VCS Id だけが異なるなら、新しいファイルをインストールします # ($FreeBSD, -F) #FREEBSD_ID= # # 詳細と追加のチェックを含む冗長なモード (-v) #VERBOSE= # # まだシステムに存在しないファイルを自動的にインストールします (-i) #AUTO_INSTALL= # # 修正されたユーザではなかったファイルを自動的にアップグレードします (-U) # ***危険*** #AUTO_UPGRADE= # # 終わりで newaliases, pwd_mkdb を常に実行するか, または決して実行しないかの # いずれか (--run-updates) #RUN_UPDATES= # # /etc/rc.conf[.local] と /etc/defaults/rc.conf を比較する (-C) #COMP_CONFS= # # 利用者が置き換えるファイルを保存します (-P) #PRESERVE_FILES= #PRESERVE_FILES_DIR=/var/tmp/mergemaster/preserved-files-`date +%y%m%d-%H%M%S` # # デフォルトのファイルのモードを比較する mergemaster のための umask (-u) #NEW_UMASK=022 # # 次のオプションには, コマンド行の上書きがありません # # 常に比較することを避けるファイル #IGNORE_FILES='/etc/motd /etc/printcap foo bar' # # diff のための追加のオプション. -s を使用するとき, 未設定とします. #DIFF_OPTIONS='-Bb' # Ignore changes in whitespace # # AUTO_UPGRADE の目的のための mtree 値のリストを格納する位置 #MTREEDB='/var/db' # # PAGER へのフルパスを含めることに我慢でない人のために #DONT_CHECK_PAGER= # # 利用者が上記を 'yes' に設定するなら, 利用者のページャへの PATH を # 含んでいるか確認します #PATH=/bin:/usr/bin:/usr/sbin # # プロンプトを出さずに /etc/rc.d の古いファイルを削除します #DELETE_STALE_RC_FILES= # # 比較の開始の前におよびスクリプトがその作業を終了した後に実行する # スクリプトへのパスを指定します #MM_PRE_COMPARE_SCRIPT= #MM_EXIT_SCRIPT= 終了ステータス 終了ステータスは、成功して終了すると、またはユーザが実行のある時点で、手 動で出て行くなら、0 です。 終了ステータスは、次の理由の 1 つで失敗するなら、1 です: 不正なコマンド行オプション 一時的なルート環境の作成に失敗 一時的なルートになることに失敗 <DESTDIR>/etc/fstab の 'nodev' オプションの存在 ファイルのインストールに失敗 使用例 一般的に、利用者が行なう必要があるすべてのことは、プロンプトで mergemaster をタイプすることです、スクリプトは、利用者のためにすべての作 業を行ないます。 コンテキスト diff を使用し、それが進行するしたがって、mergemaster により 多くのことを説明させるためには、次を使用します: # mergemaster -cv mergemaster が /usr/tmp/root に一時的なルート環境を置くことを指定するため には、次を使用します: # mergemaster -t /usr/tmp/root 厳密な比較で 110 のカラムの画面を指定するためには、次を使用します: # mergemaster -sw 110 関連項目 diff(1), make(1), more(1), sdiff(1), pwd_mkdb(8) /usr/src/etc/Makefile Nik Clayton, The Cutting Edge (using make world), http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html. 日本語版は、 http://www.jp.FreeBSD.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/hand book/makeworld.html です。 歴史 mergemaster ユーティリティは、1998 年 3 月 13 日に名前 comproot でより簡 単な形式の私のウェブページの 1 つで最初に公表されました。一時的なルート環 境を作成するという考えは、上で参照された Nik Clayton の make world tuto rial に由来しています。 作者 このマニュアルページとスクリプト自体は、Douglas Barton <dougb@FreeBSD.org> によって書かれました。 FreeBSD 11.4 March 6, 2017 FreeBSD 11.4