■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                      2009年08月17日

    Java総合講座 - 初心者から達人へのパスポート
                  vol.166

                                セルゲイ・ランダウ
 バックナンバー: http://www.flsi.co.jp/Java_text/
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■


[このメールマガジンは、画面を最大化して見てください。]


========================================================
◆ 01.SOAPのアプリケーション(Webサービス)
========================================================


それでは、用意したLinuxのPCにCVSをインストールしてみましょう。
なお、ここで使用するLinuxのPCはLANで開発用PCにつながっているとともに、
(LAN経由で)インターネットにもつながっている必要があります。

インストールにはyumコマンドを使います。

┌補足─────────────────────────┐
yum(Yellowdog Updater Modified)というのは、パッケージ管
理システム(package manager)と呼ばれるソフトウエアの一つで、
パッケージのインストールやアップデート、削除(アンインス
トール)などを容易にするためのツールです。
ここでいうパッケージ(package)とは、ソフトウエアをインス
トールしやすい形式に一まとめにしたものを意味し、Javaの
package(パッケージ)というキーワードとは関係ありません。
Linuxのパッケージ管理システムの有名なものとしてはRPM
(Red Hat Packaging Manager)がありますが、yumはRPMのパッ
ケージ形式に対応し、かつ、RPMよりも、より使いやすいもの
になっています。
なお、RPMもyumもLinuxの幾つかのディストリビューション(主
にRed Hat系)で使われているものであり、すべてのディストリ
ビューションで使えるわけではありません。(CentOSでは使用
できます。)
└───────────────────────────┘

当記事ではyumについては必要最小限の説明しかしませんので、yumの詳細を知りたい人は、
yumのWebサイト

http://yum.baseurl.org/

などを参照して下さい。また、yumのコマンドの詳細は

http://yum.baseurl.org/wiki/YumCommands

などを参照するか、あるいはmanコマンド
man yum
でオンライン・マニュアルを調べて下さい。(終了させるには  q )



では、LinuxのPCを起動し、root(スーパー・ユーザー)でログインして下さい。

┌補足─────────────────────────┐
root(スーパー・ユーザー)は最高の権限を持つユーザーなので
このユーザーで誤った操作などをすると危険に陥る恐れがありま
す。
したがって、LinuxやUNIXはなるべくrootではログインせず、
通常は他の一般ユーザーでログインしておいて、スーパー・
ユーザーが必要なときだけ
su -
などでrootになって操作し、必要なくなったら直ちに
exit
で元のユーザーに戻るというのが鉄則だと言われていますが、
当メールマガジンでは一般ユーザーを作成していない人もいる
ことを考慮していきなりスーパー・ユーザーでログインしています。
└───────────────────────────┘

続いて、次のコマンドを入力して下さい。

yum list

(結果のリストが長くて困るという人は、後ろにパイプでmoreにつなげて
yum list | more
というふうに入力すればよい。あるいはlessを使ってもよい。)

そうすると、パッケージのリストが出てきますが、このうち

Installed Packages

という行以降にはインストール済みのパッケージがリストされ(その右端には
installedという文字列が書かれる)、

Available Packages

という行以降には利用可能(インストール可能)のパッケージがリストされます。

あるいは、インストール済みのパッケージだけをリストさせたい場合は、

yum list installed

と入力すると、インストール済みのパッケージのリストが出てきます。
(逆に、利用可能なパッケージだけをリストさせたい場合は
yum list available
と入力する。)

こうして、もし、インストール済みのパッケージのリストにcvs.i386というような
パッケージ名が出てきたら、CVSはインストール済みだということなので、CVSの
インストール作業を行う必要はありません。

(なお、上のコマンドでもリストがたくさん出てきてわかりにくいという言う人は
yum list installed cvs
と入力してやると、CVSだけがリストされます(ただしCVSがインストール済みの場合)。
あるいは、
yum list installed | grep "cvs"
というふうにパイプでgrepにつないで絞り込んでやってもいいですが、この場合、
パッケージ名以外にcvsという文字列が含まれる行までリストされてしまいます。)



CVSがまだインストールされていないことを確認した人は、これからインストール作業
を行っていきましょう。先ほど

yum list

などを入力したときに、利用可能なパッケージのリストの中にCVSのパッケージ名があり
ましたね。(ちなみに利用可能なパッケージはyumがインターネット経由でミラー・
サイトにアクセスしてリストを取得しています。)
リストが多くてよくわからなかったと言う人は、念のために、

yum list cvs

と入力してみましょう。こうするとCVSのパッケージだけがリストされます。cvs.i386
というようなパッケージ名がリストされるはずですので、これをインストールします。

yum -y install cvs.i386

と入力して下さい。ここで
-y
というオプションは、質問に自動的にすべてyesを答えることを指示するものです。
質問されるのが好きな人、あるいは質問内容を確認しながらインストールしたい人は
-y
をはずしてください。

なお、yumコマンドのオプションを詳しく知りたい人は

yum --help

あるいは

yum -h

と入力することによっても調べられます。

しばらく待つとインストールが完了する(Complete! が表示されたら、インストール完了)ので、
インストールの成功の確認も兼ねてCVSのバージョンとcvsコマンドの所在地(パス)の確認
を行っておきましょう。

cvs --version
(CVSのバージョンが表示される。現在1.11.22のはず。)

which cvs
(cvsコマンドの所在地(パス)が表示される。)
(cvsコマンドの所在地(パス)はたぶん
/usr/bin/cvs
になっていると思いますが、このパスはあとで/etc/xinetd.d/cvsの編集
のときに使いますので覚えておいて下さい。)



次に、CVSのサーバーの設定作業に入りましょう。


まず、CVSのリポジトリー管理ユーザーの設定から行います。

最初にCVSのユーザー・グループを作成しましょう。次のコマンドを入力することに
よってcvsusersというグループを作成してみましょう。
groupadd cvsusers

次に、このグループ下にcvsという(リポジトリー管理)ユーザーを作成しましょう。
useradd -g cvsusers cvs

(このグループ下に、同じLinux上で使用するCVSクライアントとしての一般ユーザー
を作成することもできますが、それは後の必要なときにすることにし、今回は割愛します。)

次に、リポジトリー用のディレクトリーを作成しましょう。
/var/cvsというディレクトリーがあるはずですので、その下にrepoという名前で
作成してみましょう。
mkdir /var/cvs/repo
(この/var/cvs/repoというディレクトリー名はあとで/etc/xinetd.d/cvsの編集
のときにも使いますので覚えておいて下さい。)

このディレクトリーを先ほどのユーザーに所有させます。
chown cvs.cvsusers /var/cvs/repo

ディレクトリーのパーミッションを変更します。
chmod 2770 /var/cvs/repo
(パーミッションを数字で指定すると何だかわからないという人は、chmodの実行の
前後に
ls -lFa /var/cvs/repo
などを入力して、パーミッションがどう変わるのか見てみるとよいでしょう。)


ここで、あとで使用するhtpasswdコマンドのためにApacheのHTTPサーバー
(httpd)がインストール済みか確認(yum list httpd)し、まだインストールされて
いなければインストールしておきましょう。

yum -y install httpd.i386

と入力します。Complete! が表示されればインストール完了です。
このhttpdパッケージの中にhtpasswdコマンドがはいっているのですが、
これを後で使用します。


次に、環境変数にリポジトリーのディレクトリーを設定します。
(まずcvsユーザーになる。)
su - cvs

(環境変数を設定するために.bash_profileファイルをvi等で編集する。)
vi ~/.bash_profile

┌補足─────────────────────────┐
viエディターの使い方は、前回紹介した「Linux標準教科書」
などで学習してください。キーボード操作が主体で操作しずらい
と感じるかもしれませんが、慣れると、マウスを使う操作よりも
ずっと速いものです。
└───────────────────────────┘

(.bash_profileの最後に下記の2行を追加する。)
CVSROOT=/var/cvs/repo
export CVSROOT

(.bash_profileを保存して閉じる。)

(.bash_profileを再読み込みさせる。)
source ~/.bash_profile
または
. ~/.bash_profile


次に、リポジトリーを初期化します。(CVSROOTディレクトリーの作成)
cvs init

/var/cvs/repo配下にCVSROOTというディレクトリーができているのでそこに移動します。
cd /var/cvs/repo/CVSROOT

このディレクトリー配下に一般ユーザー(cvsippan)用のpasswdファイルを作成します。
htpasswd -c passwd cvsippan
(ここでパスワードを2回聞いてくるので答える。当メールマガジンではわかりやすく
12345678としておきますが、もちろんこんなわかりやすいパスワードは実際には使う
べきではありません。)

┌補足─────────────────────────┐
htpasswdコマンドで-cを指定するのは最初の1回だけです。(こ
れでpasswdファイルが新規作成されます。)
さらに一般ユーザーを増やしたいときなど、2回目以降のときは
htpasswd passwd cvsippan02
のように-cをつけずにコマンド入力します。
なお、htpasswdコマンドの詳細については
http://httpd.apache.org/docs/2.2/ja/programs/htpasswd.html
などを参照して下さい。
└───────────────────────────┘

passwdファイルを編集します。
vi passwd
(次の変更を行います。)
cvsippan:xxxxxxxxxx
という行を
cvsippan:xxxxxxxxxx:cvs
に書き換えます。ここで最後のcvsはリポジトリー管理ユーザーのユーザー名です。
また、上のxxxxxxxxxxには実際には暗号化されたパスワードが入っています。
(passwdファイルを保存して閉じます。)

パーミッションを変更します。
chmod 600 passwd

(このCVSの一般ユーザーcvsippanはあとでEclipseで使用します。)

root(スーパー・ユーザー)に戻ります。
exit



続いて、クライアントとの通信を行うための設定ですが、今回はCVSの基本である
pserverを使うことにします。pserverはCVS独自の通信機能です。

まず、/etc/servicesファイルにpserverのポート番号が登録されていることを確認します。
grep "pserver" /etc/services
(出力されたリストの中に下記のような2行がリストされていればOKです。)
cvspserver      2401/tcp     # (#から右はコメントなので無視)
cvspserver      2401/udp     # (#から右はコメントなので無視)

上を見るとわかるようにpserverのデフォルトのポート番号は2401です。ファイア・ウォー
ルを使っている場合は、このポートを空けておくようにファイア・ウォールの設定を変更
しておく必要があります。

┌補足─────────────────────────┐
サーバーのPCとクライアントのPCの両方でファイア・ウォール
を使っている場合は、両方のファイア・ウォールともにポート
2401を空けておく必要があります。面倒な場合は、ファイア・
ウォール自体を無効にしてみて下さい。(ただし安全性に注意)
CentOSのファイア・ウォールを無効にするには、
system-config-securitylevel-tui
というコマンドを入力し、表示された画面でSecurity Level
とSELinuxをともにDisabledにします。(Tabキーで移動、カー
ソル・キー(矢印マークの付いたキー)で選択、スペース・キー
で*マークを付け、OKでEnterキーを押す。)
└───────────────────────────┘

次にxinetdの設定を行います。/etc/xinetd.d/cvsを編集しましょう。
vi /etc/xinetd.d/cvs
(このcvsファイルの内容を次のように書き換えます。なお#で始まる行はコメント行です
ので無視してください。)
service cvspserver
{
        disable         = no
        port            = 2401
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        passenv         = PATH
        server          = /usr/bin/cvs
        env             = HOME=/var/cvs
        server_args     = -f --allow-root=/var/cvs/repo pserver
#       bind            = 127.0.0.1
}
(書き換えが必要なのはdisableとserver_argsの行だけのはずです。なお、ここで
指定した/usr/bin/cvsや/var/cvs/repoは先ほど覚えておいて下さいと言っておい
たものです。皆さんの環境でこれとは異なる場合は正しいものに置き換えて下さい。)
(このファイルを保存して閉じます。)

クライアントのアクセス許可設定を行います。
vi /etc/hosts.allow
(このファイルに次のような行を追加します。)
cvs : ALL

(ただし、これだと誰でもCVSのクライアントになれるので、クライアントを制限したい
場合は、ALLの代わりにクライアント(Eclipseを使っているPC)のIPアドレス等を指定
します。例えば
cvs : 192.168.0.
とすると、192.168.0.で始まるIPアドレスのクライアントのみが許可されることになり
ます。)
(このファイルを保存して閉じます。)

┌補足─────────────────────────┐
xinetdはインターネットがらみのサービス(プログラム)を自動
起動するためのプログラムです。ひっそりと陰で動くデーモンと
と呼ばれるタイプのプログラムです。CentOSのインストールの仕方
によってはxinetdがインストールされていないかも知れませんの
で、ここで確認し、インストールしておきましょう。
まず、
yum list xinetd
でインストール済み(installed)かどうか確認して下さい。
インストールされていないようであれば、
yum -y install xinetd.i386
と入力してインストールしておいて下さい。
└───────────────────────────┘

xinetdを再起動します。(ちなみにxinetdはLinuxの起動時に自動的に起動されます。)
service xinetd restart

(先ほどxinetdをインストールしたばかりの場合は
Stopping xinetd:   [FAILED]
というメッセージが出るかも知れませんが、そもそもxinetdが起動されていないから
停止できないのであり、気にする必要はありません。)



これでサーバー側の設定は終わりです。(サーバーはこのままの状態にしておいて
下さい。あとでクライアントからアクセスしてきます。)


続いてクライアント側(Eclipse)の設定に入りましょう。


では、EclipseのPCでEclipseを起動して下さい。

以下のようにしてパースペクティブを変更しましょう。

(1) メニュー・バーから「ウインドウ」→「パースペクティブを開く」→「その他」
を選択する。

(2) 「パースペクティブを開く」ウインドウにおいて「CVSリポジトリー・エクスプローラー」
を選択し、「OK」ボタンをクリックする。

すると、Eclipseの画面左側に「CVSリポジトリー」ビューが表示されます。


次に、以下のようにして、CVSのリポジトリーを指定し、リポジトリーへの接続を行い
ます。

(1) 「CVSリポジトリー」ビューの中でマウスを右クリックし、「新規」→「リポジトリー・
ロケーション」を選択します。

(2) 「CVSリポジトリーの追加」ウインドウが表示されるので、それぞれの欄に以下のよう
に入力します。

ホスト: LinuxのPCのIPアドレス(筆者の場合は192.168.0.5)
リポジトリー・パス: /var/cvs/repo
ユーザー: cvsippan
パスワード: 12345678
接続タイプ: pserver
「デフォルト・ポートを使用」を選択(これは先ほどの2401を使用するということ)
「パスワードの保管」にもチェック・マークを入れておく。

(3) 「終了」ボタンをクリックします。

┌補足─────────────────────────┐
LinuxのPCのIPアドレス(internet address)は、Linuxの
ifconfig
というコマンドを入力することによって、調べられます。
ちなみにWindows XPやWindows 2000のPCのIPアドレスは、コマン
ド・プロンプトに
ipconfig
というコマンドを入力することによって調べられます。
なお、LinuxのPCにDNSを設定してドメイン名を使えるようにした
という人は、上記のホスト欄にドメイン名を指定してもかまい
ません。あるいはhostsファイルを設定していればホスト名を
指定してもかまいません。
└───────────────────────────┘


以上で、Eclipseから(LinuxのPCの)CVSリポジトリーにアクセスできるようになりま
した。
次回は、EclipseでのCVSの使い方をお話いたします。


なお、CVSについて自習したい人には、NRI(野村総合研究所)がいいテキストを無料で
公開してくれています。(ただし、内容が若干古いです。)

http://works.nri.co.jp/service/pdf/cvs_redhat.pdf



http://works.nri.co.jp/service/pdf/cvs_on_eclipse.pdf

などを参照してみてください。

その他、CVSの詳細については、CVSのWebサイト

http://ximbiot.com/cvs/

を参照して下さい。


(次回に続く)


では、今日はここまでにします。



┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
★ホームページ:
      http://www.flsi.co.jp/Java_text/
★このメールマガジンは
     「まぐまぐ(http://www.mag2.com)」
 を利用して発行しています。
★バックナンバーは
      http://www.flsi.co.jp/Java_text/
 にあります。
★このメールマガジンの登録/解除は下記Webページでできます。
      http://www.mag2.com/m/0000193915.html
★このメールマガジンへの質問は下記Webページにて受け付けて
 います。わからない所がありましたら、どしどしと質問をお寄
 せください。
      http://www.flsi.co.jp/Java_text/
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Copyright (C) 2009 Future Lifestyle Inc. 不許無断複製