入り口に戻る

原文はこちら。
原文の魚拓はこちら

# dbus-uuidgen(1) manページ

## 名前

dbus-uuidgen - UUID を生成するユーティリティである。

## 書式

`dbus-uuidgen` [--version ] [ --ensure [`=FILENAME`]] [ --get [`=FILENAME`]]

## 説明

dbus-uuidgen コマンドを使うと、世界でただ１つの ID (universally unique ID)を生成したり読み込んだりすることができる。

D-Bus の UUID は RFC 4122 とは関係のないものであり、D-Bus の UUID では同仕様と互換性のある UUID は生成されないことに注意。多くのシステムでは、RFC 4122 と互換性のある UUID を生成するための別のコマンドが用意されている(大抵は「uuidgen」という名前である)。

D-Bus について詳しく知りたければ https://www.freedesktop.org/wiki/Software/dbus/ を見てほしい。

dbus-uuidgen は主に、インストール後に実行されるスクリプト(D-Bus パッケージに含まれている)にて次のような形で使用される。

dbus-uuidgen --ensure

このコマンドによって「/var/lib/dbus/machine-id が存在し、且つ UUID がその中に入っていること」が保証される。このコマンドは既存の UUID を上書きしない。なぜかというと、この ID は、少なくとも次の再起動までは１つのマシンに固定されたままであるべきだからである。

マシン UUID の重要な特性は、(1)次の再起動まで変わらないこと、及び(2)OS カーネルの稼働中インスタンスはどれも別々のマシン UUID を持つことである。つまり、２つのプロセスが同じ UUID を見ている場合、両者は同じ共有メモリ、同じ UNIX ドメイン・ソケット、同じローカル X ディスプレイ、localhost.localdomain の同じ解決結果、同じプロセス ID 等々を見ていることになる。

オプションを指定せずに dbus-uuidgen を実行した場合、同コマンドは何もないところから新しい UUID 作成してそれを表示するだけである。

dbus-uuidgen は、「--get」を指定して実行した場合、デフォルトではマシン UUID を表示するが、さらにファイルをも指定した場合は、指定したファイルに入っている UUID を表示する。

稼働中のシステムにある既存のマシン ID を変更しようとすると、おそらく悪いことが起きるであろう。このファイルの変更を試みてはならない。また、異なる２つのシステムのマシン ID を同一にしてもいけない。即ち、異なる２つのカーネルが動作している場合には、常にマシン ID も異なっていなければならないということである。

異なる２つの仮想マシンにおいては、UUID も異なったものになるべきである。なぜかというと、そこには２つの異なったカーネルが存在するからである。

## オプション

以下のオプションを使用することができる。

`--get[=FILENAME]`

  ファイル名を指定しなかった場合、デフォルト値として localstatedir/lib/dbus/machine-id が使用される(localstatedir は通常「/var」である)。このファイルが存在して内容も妥当である場合、同ファイルに入っている UUID が標準出力(stdout)に表示される。そうでない場合、同コマンドは 0 以外のステータスで終了する。

`--ensure[=FILENAME]`

  ファイル名を指定しなかった場合、デフォルト値として localstatedir/lib/dbus/machine-id が使用される(localstatedir は通常「/var」である)。このファイルが存在する場合、同ファイルの内容が妥当なものか検証され、同ファイルの内容が不正であれば失敗を表すコードが返る。このファイルが存在しない場合、新たな UUID の入ったファイルが作成される。コマンドが成功した場合、出力表示は行われない。

`--version`

  dbus-uuidgen のバージョンを表示する。

## 著者

https://dbus.freedesktop.org/doc/AUTHORS を見よ。

## バグ

バグの報告は D-Bus のメーリング・リストかバグ・トラッカーへ送ってほしい。https://www.freedesktop.org/wiki/Software/dbus/ を参照。

入り口に戻る