スマートサーバーを稼働させる ============================ BazaarはHTTP、FTPもしくはSFTPを通して動作するので特化したサーバーは\ 必須ではありません。 SSH、inetd、もしくは専用モードで起動できるスマートサーバー(smart server)\ の選択肢があります。 ダムサーバー ------------- HTTP、FTP、SFTPとHTTP-WebDAVを"ダム(dumb)"サーバーとして記述します。 これらはBazaarに支援を提供しないからです。 これらのプロトコルのどれかを通してBazaarリポジトリを利用できるようにする場合、 Bazaarはリモートからの読み込みを許可します。 実行しているBazaarコマンドの中でブランチへのURLを入力するだけです。:: bzr log http://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev BazaarはFTP、SFTPと(プラグインを通した)HTTP-WebDAVを通した書き込みをサポートします。 ハイパフォーマンスなスマートサーバー ------------------------------------- ハイパフォーマンスなスマートサーバー(hpss - high-performance smart server)は\ いくつかのオペレーションをダムサーバーよりも遙かに高速に実行します。 開発者がパフォーマンスのチューニングを継続するので、将来のリリースでは\ スマートサーバーを利用することで改善されるオペレーションの範囲は増えます。 高度なセキュリティの維持を可能にするために、 デフォルトでは現在のスマートサーバーはリードオンリーになります。 読み込みと書き込み権限を有効にするには、 ``--allow-writes`` で動かします。 SSHアクセスメソッドを利用するとき、bzrは ``--allow-writes`` オプションで\ 自動的に実行します。 次はスマートサーバーの代替の設定方法を説明します。 SSH ~~~ SSHを通してBazaarを利用する際にサーバー上の特別な設定は必要ありません。 サーバーに Bazaar がインストールされていれば、 ``bzr+ssh`` の URL を 利用することができます。 例:: bzr log bzr+ssh://host/path/to/branch `bzr` がサーバーのシステムワイドな場所にインストールされていない場合、 リモートの `bzr` がどこにあるかをローカルの `bzr` に教える必要があるかも しれません。 :: BZR_REMOTE_PATH=~/bin/bzr bzr log bzr+ssh://host/path/to/branch ``BZR_REMOTE_PATH`` 環境変数はリモートシステムで `bzr` が起動する方法を調整します。 デフォルトでは単に `bzr` として起動するので、 `bzr` 実行ファイルはデフォルトの\ 検索パス上にあることが要求されます。 この設定を場所ごとの設定ファイルである ``locations.conf`` に書いて 永続化することもできます。 SFTP と同じく、 ``~`` で始まるパスはホームディレクトリからの相対パスになります。 例えば ``bzr+ssh://example.com/~code/proj`` のようになります。 加えて、 ``~user`` は user のホームディレクトリからの相対パスになります。 inetd ~~~~~ この例では ``/srv/bzr/repo/branchname`` にブランチがある ``/srv/bzr/repo`` 内の 共用リポジトリ用に専用ユーザーの `bzruser` で `bzr` を実行する方法を示しています。 inetdからBazaarサーバーを動かすにはinetd.confエントリが必要です:: 4155 stream TCP nowait bzruser /usr/bin/bzr /usr/bin/bzr serve --inet --directory=/srv/bzr/repo クライアントコマンドを実行するとき、提供するURLは inetd.confに渡される ``--directory`` オプションに相対的な `bzr://` です:: bzr log bzr://host/branchname 可能であれば、 ``~`` や ``~user`` で始まるパスは ``bzr+ssh`` と同じように展開されますが、 ``bzr serve`` に指定された ``--directory`` オプションの外にあるホームディレクトリには アクセスできません。 専用サーバー ~~~~~~~~~~~~~ このモードはinetdモードと同じパスとURLのふるまいを持ちます。 特定のユーザーとして実行するには、 ``su`` を使うもしくはそのユーザーとしてログインします。 この例では公式のポート番号の `4155` 上でbzrを稼働しすべてのインターフェイス上でリスンします。 これによってポート `4155` 上のマシンに到達できる世界のどこからでも接続できます。 サーバー:: bzr serve --directory=/srv/bzr/repo クライアント:: bzr log bzr://host/branchname この例では `localhost` のポート `1234` で ``bzr serve`` が実行されます。 サーバー:: bzr serve --listen=localhost --port=1234 --directory=/srv/bzr/repo クライアント:: bzr log bzr://localhost:1234/branchname