« 暑いんだか寒いんだか分からない一週間でしたね…。 | トップページ | 今日の日記:話すと自己完結している。 »

2008年6月14日 (土)

[Linux][ubuntu8.04]Subversionインストールメモ

 極めて貧弱なマイPC4号機にて ubuntu Linux 8.04 LTS を使っているわけだけれど、バージョン管理システムの動きを検証するようなことをいろいろしてみたい。個人的に。もしくは職業柄で。

 いまオープンソースの世界においてバージョン管理システムと言えば Subversion が有力みたい。このソフトウェアは CVS というバージョン管理システムを発展させて開発されている。バージョン管理システムの種類を「ロック型」か「マージ型」かという言い方で分類するならば「マージ型」となる。CVS も同じ。
 CVS では個々のファイル単位にのみリビジョン番号を保持する思想であり、一度構築したリポジトリのディレクトリ構成を変更することが困難なものだったらしい。らしいというのは実際に使ったことはないので…。
 svn (Subversion のこと) では、個々のファイルにもリビジョン番号を持つけれど、リポジトリ全体としてのリビジョン番号も保持する。そしてそれは個々のファイル単位のリビジョン番号と無関係ではない。リポジトリの中で最も大きなリビジョン番号を保持するファイル。そのリビジョン番号が、リポジトリ全体のリビジョン番号と同じになる。
 あー、リビジョン番号という言葉を連発してしまった。ここで言うリビジョン番号とは変更のたびに更新される正数のことで、バージョン番号と意味の違いはない。単に svn ではそう呼称しているというだけである。

 前置きが長くなってしまった。
 ubuntu で動かしたい Subversion ならば、何をどうインストールするべきか考えた…ということ。
 Windows 環境であれば、TortoiseSVN というGUIクライアントがある。これはよくできていてスタンドアロンでの使用に限れば、これだけで svn の機能がほとんどすべて使える。コマンドライン操作ではなくGUIで。まあ確かにGUIは良い。日本語化もされているし、わかりやすい。
 Linux 環境においても、svn のGUIクライアントとして、RapidSVN というソフトウェアがあるようだ。

 でも Linux(Unix) でいろいろ使うのだから、やっぱり基本はコマンドラインでしょ。…ということで、探してみた。
 なぜかSubversion本家のサイトにはちゃんと「ubuntu向け」のバイナリパッケージへのリンクがあるのに、そのリンクは生きていないようだった。なんだなんだ?
 …っていうか、ubuntu は debian と同じバイナリではないのかな? わざわざ ubuntu 向けに用意されているってことは違うのかな? わからん。

 とにかく、debian系のパッケージ管理システムであるAPTを使用して、調べてみた。

## subversion というキーワードで
## ubuntu リポジトリを調べる

$ sudo apt-cache search subversion

 かなりいっぱい出てくるけれど、以下の2行が最も直接的。

subversion - Advanced version control system
subversion-tools - Assorted tools related to Subversion

 1行めのやつがおそらく svn そのもの。2行めは、関連ツールと思われる。

 それぞれをもっと詳細に見てみる。

## subversionパッケージの詳細

$ sudo apt-cache show subversion

## subversion-toolsパッケージの詳細

$ sudo apt-cache show subversion-tools

 どちらも英語なのでよくわからない(苦笑)
 以下の情報に注目。

# subversionパッケージ
Priority: optional →任意(必須ではない)
Section: devel   →開発者向け

# subversion-toolsパッケージ
Priority: extra   →特殊
Section: admin   →管理者向け

 ここで extra というのが妙に気になる。
 まずは、
 とりあえず subversion パッケージのみインストールする。

$ sudo apt-get install subversion

Processing triggers for libc6 ...
ldconfig deferred processing now taking place

 …というメッセージで処理が終わる。これはエラーではないらしい。共有ライブラリなどをインストールすると出るのかな?
 気にしないことにする。

 この段階で、

$ svn

 と入力すると「help はこうやって入力しなさい」という意味で叱られるけれど、ちゃんと svn コマンドが認識されている。
 おー! もうデーモンとして起動しているのね。

 さて。
 もう一つの subversion-tools パッケージの方だけれど、一応、念のため、-s オプションでお試しインストールしてみる。

$ sudo apt-get -s install subversion-tools

 特に何も悪さはしないようなので、下記のように打ち込んでインストール。

$ sudo apt-get install subversion-tools

 とりあえず ubuntu に svn(Subversion) をインストールするお話はこんなところだね。

|

« 暑いんだか寒いんだか分からない一週間でしたね…。 | トップページ | 今日の日記:話すと自己完結している。 »

コメント

JavaにしろCにしろモジュールプログラミングな訳だけど、モジュールの相互依存性みたいなものの定義はどうやっているんだろう。
クラス定義とメソッド定義 (インクルードファイルとプロシージャ本体とか、関数定義とmainとか)の依存性がうまく定義できないと、バージョン管理って片手落ちみたいな気がするんだけど、それは subversion では、扱わないのかな?

大規模プログラミングなんて、とんとやってないからわからないや。

投稿: くりにゃー | 2008年6月15日 (日) 09時20分

>くりにゃーさん

 どうもです。依存関係はおっしゃるとおりものすごく重要です。それを管理できないと「構成管理」としては片手落ちになることも。
 でもそれは「バージョン管理システム」ではカバーできませんね。
 Java なら Ant というビルドツールがありますが、その定義ファイル build.xml の内容だと思われます。

投稿: あゆざかけい | 2008年6月15日 (日) 20時21分

この記事へのコメントは終了しました。

« 暑いんだか寒いんだか分からない一週間でしたね…。 | トップページ | 今日の日記:話すと自己完結している。 »