■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 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. 不許無断複製 |