Home

openbooth

ubuntu に bzr(stable) をインストールする

最近はリビジョン管理ツールとして専ら bzr を利用するようになりました。ブランチ&マージを気軽に行いたい。けれども仕事上 subversion を利用しているお客さんは意識しなければいけない(リビジョン管理ツールの普及率は subversion が圧倒的ですね)。

しかし subversion はリビジョンの管理レベルがディレクトリ単位であったり(.svn はディレクトリ毎に作られる)マージする際のマージ対象を自分で把握しなければならない等、不便なことも多いなと感じるようになりました。

そこで僕も色々とリビジョン管理ツールを試してきましたが、git を経由して、今のところは bzr に落ち着いています。最近は雑誌等にも多くとりあげられる git の普及率の方が高いのでしょうが、subversion を無視できないという理由とファイル名のエンコーディングの扱いの関係で bzr を選択しています。最近の git 動向には詳しくないので既に改善されている面もあるかもしれませんが…

bzr はチェックアウトとブランチを明示的に使い分けられるところも良いです。この辺の使い分けについてはそのうちエントリを書くかもしれません。

では本題。 ubuntu に apt で bzr (と bzr-svn)をパッケージインストールする方法です。bzr のサイト に行けばすぐ分かるのですが、自分用のメモとしてここに残します。

まず、apt が警告を出さないように ppa の鍵を apt に登録しておきます。

% sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 0xece2800bacf028b31ee3657cd702bf6b8c6c1efd

鍵を登録したら /etc/apt/sources.list を編集して下記のエントリを追加します。僕はちょっと古めの ubuntu(hardy) を使っているので下記のようにしていますが、https://launchpad.net/~bzr/+archive/ppa のサイトに行けばそれぞれのバージョン用のエントリを調べられますので、自分にあったものを登録して下さい。

% sudo vim /etc/apt/sources.list
deb http://ppa.launchpad.net/bzr/ppa/ubuntu hardy main
deb-src http://ppa.launchpad.net/bzr/ppa/ubuntu hardy main

そうしたら、あとは下記のコマンドを叩いて bzr と bzr-svn をインストールするだけです。

% sudo aptitude install bzr
% sudo aptitude install bzr-svn

bzr 1.16 を利用している時までは、ubuntu パッケージだと bzr-svn が動かなかったりしたので bzr は apt で、bzr-svn プラグインは個別にダウンロードしてバージョンを管理していました。が、 2.0.x系になってからどうやら上手く動くことが確認できたので bzr-svn プラグインも apt で管理するようにしました。その方が管理が楽ですし統一できますからね。

別に bzr をすすめようという気はありませんが、bzr は中々良いツールです。

Slicehost to Linode

openbooth.org をホストするサーバを Slicehost から Linode に変更しました。理由はもちろんレスポンスタイムの向上です(特に ssh アクセス時)。計ってはいませんが、おそらく当サイトを http でアクセスする際のレスポンスタイムも向上しているはず。

Linode を契約したのは大分前(2009-07頃)ですが、忙しさが続いて中々移行することができませんでした。ようやく bzr のリポジトリも含めて移行が完了しそうです。

Windows で Bazaar の bzr+ssh を使える環境を作る

Bazaar

Bazaar

Windows で Bazaar を使うときのメモです。リポジトリは ssh 経由でアクセスできる状態であることを想定しています。

僕がセットアップした環境は以下の通りです。

  • Windows2000
  • Bazaar 1.15final

まず Windows に Bazaar をインストールするため http://bazaar-vcs.org/Download から windows 用の bzr バイナリをダウンロードします。ダウンロードした exe ファイルをダブルクリックで起動すればインストールウィザードが起動するので、ウィザードの指示に従ってインストールを完了させます。このインストールバイナリには TortoiseBzr も収録されているため、別途 TortoiseBzr をインストールする必要はありません。インストールが完了すると、既にエクスプローラの右クリック項目に Bazaar リポジトリ操作用の項目が追加されているはずです。

さて、Bazaar のインストールは完了したので Bazaar の基本的な操作は使用できる状態になりました。

しかし Windows の場合、リポジトリの中にシンボリックリンクが使われていると、Bazaar をインストールしただけではリポジトリの clone に失敗してしまいます(clone 自体は成功するようですが、ローカルディレクトリにディレクトリツリーを展開するところで例外が発生している模様、Windows にはシンボリックリンクなんてものはないから)。そこで、Windows 環境でもシンボリックリンクを扱えるようにするプラグインをインストールします(但し、以下でインストールするプラグインは例外を発生しないようにするためのプラグインであって、Windows でシンボリックリンクが利用できるようにするといったものではないので注意)。

http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#how-to-install-a-plugin を参考に https://launchpad.net/bzr-win32symlinks をインストールことにします。

プラグインの配置場所は上記のページに書いてあるのですが、ここに引用します。

http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#how-to-install-a-plugin
On a Windows installation, the system location might be C:\\Program Files\\Bazaar\\plugins while the personal location might be C:\Documents and Settings\<username>\Application Data\Bazaar\2.0\plugins.

C:\Documents and Settings\<username>\Application Data\Bazaar\2.0\ に plugins というディレクトリが存在しなければディレクトリを作っておきます。次にこの plugins ディレクトリ下にインストールするプラグインを配置します。既に Bazaar を使用できる環境になっているはずなのでコマンドプロンプトで plugins ディレクトリに cd し、以下のコマンドをタイプします。もしくはエクスプローラ上からリポジトリをクローンしても構いません。

> bzr branch lp:bzr-win32symlinks
> move bzr-win32symlinks win32symlinks

ここでは、プラグインプロジェクトのリポジトリのクローンを作成してディレクトリ名を変更しています。ディレクトリ名の変更を行なわないと、プラグインは動作しないので注意して下さい。

これでシンボリックリンクを使用しているリポジトリがあっても、途中で例外を発生することなく branch(clone), checkout することができるようになります。

続いて SSH プロトコルを使用して Bazaar リポジトリにアクセスする環境をセットアップすることにします。

ここではサーバ側には既に ssh の公開鍵暗号方式で Bazaar リポジトリにアクセスできる環境が整っていることを前提とします。以下の作業では Bazaar クライアントのセットアップのみ行います。

実は、現時点で Windows の Bazaar GUIフロントエンドの TortoiseBzr(0.2rc1) はリポジトリを push することができないようです。そこで、最低限コマンドプロンプト上から push できる環境を確保するために Cygwin 上の OpenSSH と PuTTY 付属の Pageant の二つの環境をセットアップすることにします。

まずは Cygwin + OpenSSH の環境を整えます。セットアップ自体は以下の URL を参考にします。
http://openbooth.org/archives/118.html

上記 URL の説明で SSH 接続環境はセットアップされたはずなので、接続確認をしておきます(下記のサーバとプロジェクトは架空のものです)。

> bzr branch bzr+ssh://bzr@remote-x.org/home/bzr/project-a

無事にローカルにブランチが作成されれば確認終了です。

Cygwin + OpenSSH の次は TortoiseBzr で bzr+ssh プロトコルを扱えるようにします。
TortoiseBzr で SSH プロトコルを扱うためには、PuTTY に付属の PuTTYgen と Pageant を使って Pageant に公開鍵/秘密鍵のうち、秘密鍵を登録しておかなければなりません。下記 URL に従って PuTTY のセットアップを行ないます。
http://openbooth.org/archives/128.html

上記 URL の通り作業すれば Pageant に秘密鍵を登録することができたはずです。それでは接続確認をします。

適当なディレクトリで右クリックから TortoiseBzr のチェックアウト項目を選択します。
ブランチ元 URL を bzr+ssh からはじまる URL を入力して [作業ツリーオプション] の [このブランチのローカルコピーを作成] を選択します。

TortoiseBzr でリモートブランチをクローン

TortoiseBzr でリモートブランチをクローン

上のダイアログで [OK] をクリックして暫くすると以下のように Pageant から「認証のために鍵を使って良いか?」と尋ねられるので [Yes] をクリックします。

Pageant の認証ダイアログ

Pageant の認証ダイアログ

無事にリポジトリのクローンを作成できれば動作確認は終了です。

Windows での Bazaar 環境のセットアップはまだちょっと面倒臭いですね。

PuTTY でパスワードレスな SSH クライアント環境を作る

以下のページの通りにセットアップすればセットアップは完了です。

http://www.st.ryukoku.ac.jp/security/ssh/publickey/win.html

手元に 公開鍵/秘密鍵 のペアがある場合は PuTTY Key Generator ダイアログで [Generate] ボタンではなく [Load] ボタンをクリックして、秘密鍵ファイルを選択すれば OK です。後の手順は上記ページの通り。

うむ、丸投げ、以上w

Cygwin + OpenSSH でパスワードレスな SSH クライアント環境を作る

windows 環境で Cygwin + OpenSSH で SSH のクライアント環境を作ったときのメモです。公開鍵暗号のみ許可していて、パスワードでのログインを許可していないような SSH サーバを想定しています。

まず http://cygwin.com/setup.exe をダウンロードします。ダウンロードできたら setup.exe をダブルクリックして Cygwin のインストールウィザードを起動します。インストールウィザードの中に Select Packages というフェーズがあり、インストールするパッケージを選択する画面が表示されます。この画面で [Net > openssh] の項目にチェックを入れます(openssh の行を一度クリックすれば ok、インストールされるバージョンに行の表示が切り換わります)。

openssh パッケージを選択

openssh パッケージを選択

他にインストールしたいものがあれば適宜インストールしますが、SSH を利用したいだけであれば [Net > openssh] のみで OK です。
あとはウィザードの支持に従って「次へ」をクリックしていけば、しばらくすると Windows に Cygwin がイントールされます。

次に接続確認です。

ここでは「手元に 公開鍵/秘密鍵 のペアがあり、かつログインするサーバには鍵ペアのうち、公開鍵がサーバ側の ~/.ssh/authorized_keys に登録されている」ことを前提とします。

まず、Cygwin を起動します。Cygwin のターミナルが表示され、Bash が起動するので以下のコマンドを叩いて秘密鍵を適切な場所(~/.ssh/id_rsa) に配置します。

% cd
% ls
id_rsa
% mkdir .ssh
% mv id_rsa .ssh

パーミッションは以下のように設定しておきます。

% cd
% ls -al .ssh
drwx------+ 2 keiji なし    0 Jun  4 16:35 .ssh
% cd .ssh
% ls -l
-rw------- 1 keiji なし 1675 Jun  4 16:34 id_rsa

ここまでできれば、サーバに対して SSH で接続できるようになっているはずです。鍵にパスフレーズを設定していなければ、以下のコマンドを叩けばサーバに接続できるはずです。

% ssh test@openbooth.org

ここでは、サーバ名を仮に openbooth.org、ログインユーザ名を test としています。

以上で Cygwin を使った接続はおしまい。

Home

Search
Feeds
Meta

Return to page top