カテゴリー別アーカイブ: Linux

Subversionのインストール (CentOS 5.5 64bit)

CVS、Subversion、VSS等、世の中にはバージョン管理ソフト (システム?) と呼ばれるソフトが数多くあります。プログラムソースの変更履歴を容易に管理可能なため、一度使うと手放せなくなってしまいます。

通常は既に準備されている環境を使用することが多いため自分自身で立ち上げる機会は少ないですが、せっかくですので centos_x86_64 (CentOS 5.5 64bit環境) に Subversion をインストールしてみます。

Subversion は4つのプロトコルに対応しています。
  ・file (ローカルファイルへのアクセス)
  ・svn (Subversion 独自プロトコル)
  ・svn+ssh (svn プロトコルを ssh で暗号化)
  ・http/https (Apache を使用)

オープンソースプロジェクトでは http/https を使用することが多いように思えますが、今のところ Apacheのインストールは考えていないこととノートPCからも使用する (かもしれない) ことから、svn+ssh による環境構築を行います。
また、リポジトリ (ソースの格納場所) はプロジェクト毎に作成することとします。

1. Subversion のインストール

CentOS のインストール時に Subversion もインストール済みの場合、この項は飛ばしていただいて結構です。
もしインストール時の記憶があいまいでしたら rpm コマンドでインストール有無を確認可能です。

$ su -
# rpm -qa subversion
subversion-1.4.2-4.el5_3.1

rpm コマンドの結果が何も復帰しない場合は、yum コマンドでインストールを行います。

# yum install subversion.x86_64

(*)「yum install subversion」とした場合、32bit版もインストールされるので注意が必要です。

2. リポジトリの作成

Subversion のインストール完了後、リポジトリ (ソースの格納場所) の作成を行います。
最初にリポジトリ用ディレクトリを作成し、それを Subversion に登録する手順となります。
リポジトリの格納先は /var/svn/repos/hello (/var/svn/repos の hello プロジェクト) とします。

# mkdir -p /var/svn/repos/hello
# svnadmin create /var/svn/repos/hello

svnadmin コマンドを実行すると Subversion 用のディレクトリ/ファイル群が hello 配下に作成されます。

# ls /var/svn/repos/hello/
README.txt conf dav db format hooks locks

(*) 青字はディレクトリです。

3. アクセス権の設定

hello リポジトリは root で作成したため、このままでは他のユーザから更新ができません。
この問題を回避するために、リポジトリアクセス用のグループ「svn」を作成し、リポジトリ利用者には svn グループに所属してもらうことにします。

# groupadd svn
# usermod -G svn [ユーザID]

また、/var/svn 以下の所有グループの変更と write 権限の付与を行います。

# chgrp -R svn /var/svn
# chmod -R g+w /var/svn

4. リポジトリの構築 (import)

一般的に Subversion のプロジェクト構成は以下とした方がよいと言われています。
  PROJECT
   + trunk (メイン)
   + branches (ブランチ用)
   + tags (タグ用)
従わない理由はありませんので、上記構成で構築 (import) を行います。

最初に import 元となる WORK ディレクトリを作成します。
場所はどこでも構いません。(この例では ~/ 配下に作成しています)

$ mkdir ~/svn_test
$ mkdir ~/svn_test/trunk
$ mkdir ~/svn_test/branches
$ mkdir ~/svn_test/tags

作成した WORK ディレクトリを svn コマンドを使用して import します。

$ cd ~/svn_test
$ svn import svn+ssh://localhost/var/svn/repos/hello/ -m "first import"

svn コマンドは
  「svn+ssh」プロトコルを使用して
  「localhost」サーバの
  「/var/svn/repos/hello」プロジェクトに
  「first import」というコメントをつけて
  「import」を行う
という意味になります。
「-m」オプションはコメントを意味します。

(*) ファイルの追加や更新方法は、「Subversionの使いかた」を参照してください。

[ END ]

Xen環境 kernelのアップデート (バージョンアップ) 編

CentOS 5.4の kernel が更新されたようですので、Domain-0 (64bit版)と Domain-U の centos_x86_64 (64bit版)、centos_i386 (32bit版) のバージョンアップを行いました。
  旧: 2.6.18-164.15.1.el5xen
  新: 2.6.18-194.3.1.el5xen

まずは Domain-0 のバージョンアップを行いました。

# Xen環境の場合、Domain-0 の kernel はバージョンアップしない方がよいのでしょうか。
# そのあたりは知識不足のため、今後影響ないかちょっと不安です。。。

バージョンアップ作業自体はXen環境以外と同様、yumコマンドのみで完了します。

$ su -
# yum update

Domain-0から yumコマンドを実行しました。
/boot/grob/grob.conf の Domain-0 メモリ設定も引き継がれています。(メモリ設定の詳細はこちら )

特に問題なく成功しましたので、あえて Domain-0 を再起動せずに常時起動としている Domain-U であるcentos_x86_64 (64bit版) でyumコマンドを実行したところ、

# yum update
* addons: ftp.jaist.ac.jp
* base: ftp.jaist.ac.jp
* extras: ftp.jaist.ac.jp
* updates: ftp.jaist.ac.jp
Setting up Update Process
No Packages marked for Update

と、「update可能なパッケージはありません」とのこと。
unameコマンドを実行しても旧kernel (2.6.18-164.15.1.el5xen) のままです。

Domain-0 を再起動していないことが原因か? とも思ったのですが、Xenの性格上それもおかしな話なので、ためしに常時起動としていない もう一つの Domain-U である centos_i386 (32bit版) を起動してyumコマンドを実行したところ、こちらは問題なく成功しました。
最新kernelを有効とするために centos_i386 を再起動しても特に問題はありませんでした。

$ uname -a
Linux [ホスト名].[ドメイン名] 2.6.18-194.3.1.el5xen #1 SMP Thu May 13 14:27:32 EDT 2010 i686 athlon i386 GNU/Linux

この時点で Domain-0の kernel はまだ旧kernelのまま。
つまり Domain-0 が旧kernel、Domain-U の centos_i386 (32bit版) が新kerel で動いています。

では、ということで常時起動としてる Domain-U、centos_x86_64 (64bit版) を再起動後、yumコマンドを実行したところ今度は成功。
もう一度再起動して centos_x86_64 も無事新kernelとなりました。

$ uname -a
Linux [ホスト名].[ドメイン名] 2.6.18-194.3.1.el5xen #1 SMP Thu May 13 13:49:53 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

最後に Domain-0 も再起動を行い、Domain-0 も新kernelで起動することを確認。
常時起動の centos_x86_64 と、普段は起動していない centos_i386 も問題なく動作すること最終確認して、バージョンアップ作業が完了しました。

5/19 追記
CentOSのバージョンが 5.4 から 5.5 に upgrade されていることに気づきました。

$ cat /etc/redhat-releaseCentOS release 5.5 (Final)

upgrade 指定でなくてもマイナーバージョンはあがってしまうんですね。
今さら知りました。。。

[ END ]

Xen環境の構築 Domain-0 メモリサイズの変更 編

CPU数の変更に続いて、今度はDomain-0のメモリサイズの変更を行ってみたいと思います。

Domain-0のメモリサイズ変更には、「/boot/grub/grub.conf」の修正を行います。

修正前:

title CentOS (2.6.18-164.15.1.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-164.15.1.el5
        module /vmlinuz-2.6.18-164.15.1.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        module /initrd-2.6.18-164.15.1.el5xen.img

修正後:

title CentOS (2.6.18-164.15.1.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-164.15.1.el5 dom0_mem=768M
        module /vmlinuz-2.6.18-164.15.1.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        module /initrd-2.6.18-164.15.1.el5xen.img

こちらも修正後、再起動するとメモリサイズが768MBに変更されています。

[ END ]