Ruby環境構築(memcache-client)

こんにちは。

Rubyからmemcached環境にアクセスするための、クライアント環境を構築しましたので、作業記録を残しておきます。

インストール対象:memcache-client(memcached用ライブラリ)

1.インストール用(gem経由)、インストール後の接続テスト

                                                                      • -

1. インストール(gem経由)、インストール後の接続テスト

                                                                      • -

1-1.gem経由で、memcache-clientをインストール

# gem list --local | grep memcache-client # 対象ライブラリがインストールされていない事を確認
# gem install memcache-client
# gem list --local | grep memcache-client # 対象ライブラリがインストールされている事を確認


1-2.memcache-client経由で、memcachedへの接続テスト。接続確認には、下記スクリプトを使用する。<-memcached_sample.rb start->
#!/usr/local/bin/ruby
# -*- coding: utf-8 -*-
require 'memcache'

cache = MemCache.new 'localhost:11211'

cache["test"] = '12345'
print cache["test"]<-memcached_sample.rb end->

# chmod 755 ./memcached_sample.rb
# ./memcached_sample.rb

実行結果 -> 12345

とりあえず、これでmemcache-clientのインストール、動作確認作業が完了となります。

Subversion環境構築(サーバ側初期構築)

こんにちは。
勉強用環境にsubversion環境を構築しましたので、作業記録を残しておきます。

インストール対象:subversion-1.6.11-0.1.el5.rf
※2010/5/9時点の最新版

1.インストール
2.単体動作確認
3.SVNの専用サーバ・サービスを立ち上げ(その1)

                                                                      • -

1. インストール

                                                                      • -

1-1.yumからsubversionをインストールする。

# yum install subversion

依存関係で必要な下記パッケージが、自動的に追加インストールされる。
apr
apr-util
perl-URI
postgresql-libs

                                                                      • -

2.単体動作確認

                                                                      • -

2-1.テスト用のディレクトリを作成する。

# cd /home/daggun
# mkdir svnwork
# cd svnwork


2-2.リポジトリの新規作成

# svnadmin create /home/daggun/svnwork/repo
#
# ls -l /home/daggun/svnwork/repo
合計 24
-rw-r--r-- 1 root root 229 5月 9 18:16 README.txt
drwxr-xr-x 2 root root 4096 5月 9 18:16 conf
drwxr-sr-x 6 root root 4096 5月 9 18:16 db
-r--r--r-- 1 root root 2 5月 9 18:16 format
drwxr-xr-x 2 root root 4096 5月 9 18:16 hooks
drwxr-xr-x 2 root root 4096 5月 9 18:16 locks
#


2-3.テストのため、Subversionで管理する対象リソースを作成

# mkdir /home/daggun/svnwork/sample
# cd /home/daggun/svnwork/sample
#
# touch test1.sh
# touch test2.sh
#
# ls -l /home/daggun/svnwork/sample
合計 0
-rw-r--r-- 1 root root 0 5月 9 18:18 test1.sh
-rw-r--r-- 1 root root 0 5月 9 18:18 test2.sh


2-4.テスト用のリソースを、リポジトリにインポート

# cd /home/daggun/svnwork/
#
# svn import sample file:///home/daggun/svnwork/repo/sample -m "新規登録"
追加しています sample/test1.sh
追加しています sample/test2.sh

リビジョン 1 をコミットしました。
#


2-5.インポートされた情報の参照

次のコマンドを実行すると、リポジトリに登録されているリソースの情報が参照できる。

# svn list file:///home/daggun/svnwork/repo/ -v
1 root 5月 09 18:20 ./
1 root 5月 09 18:20 sample/
#


                                                                      • -

3.SVNの専用サーバ・サービスを立ち上げ(その1)

                                                                      • -

リモートサーバ(クライアント)からのリポジトリ要求にサービス提供できるように
SVN専用のサーバサービスを立ち上げる。

この環境では、SSHを利用する「トンネルモード」で稼動させるが、
まずは、通常のモードで稼動させ、接続確認を行う。

3-1.SVN専用サービスの起動

svnserveコマンドに -d オプションを付与して実行する。
さらに -r オプションを指定し、特定のリポジトリのみに絞る。
実行するOSユーザは、特に何でもOK。

# svnserve -d -r /home/daggun/svnwork/repo/
#
# ps -ef | grep svnserve | grep -v grep
root 26409 1 0 18:24 ? 00:00:00 svnserve -d -r /home/daggun/svnwork/repo/
#

デフォルトは、ポート番号3690が使用される。
このポートでリッスンしているかを確認する。

# netstat -an | grep :3690
tcp 0 0 :::3690 :::* LISTEN
#

3-2.SVN専用サービスに対するSVNコマンドの実行

以下のコマンドを実行して結果が受けれるかを確認する。

# svn list svn://centos/ -v
1 root 5月 09 18:20 ./
1 root 5月 09 18:20 sample/
#

なお、起動させたプロセスは、特に停止コマンドが存在しないので、
直接プロセスを kill して終了させる。

# ps -ef | grep svnserve | grep -v grep
root 26409 1 0 18:24 ? 00:00:00 svnserve -d -r /home/daggun/svnwork/repo/
#
# kill 26409
#
# ps -ef | grep svnserve | grep -v grep
#


3-3.SSHによる接続のための設定

まず、SVNの認証関連の設定が必要となる。
リポジトリ直下の confディレクトリに、以下の3つのファイルが
デフォルトで生成されている事を確認する。

/home/daggun/svnwork/repo/conf/svnserve.conf
/home/daggun/svnwork/repo/conf/authz
/home/daggun/svnwork/repo/conf/passwd

このうち、svnserve.conf と authz を修正する。

<<conf/svnserve.conf>>

【変更前】
[general]
#anon-access = none
#auth-access = write
# password-db = passwd
# authz-db = authz

【変更後】
[general]
anon-access = none
auth-access = write
# password-db = passwd
authz-db = authz

※)"password-db"以外、コメントを消して設定を有効にする。

<<conf/authz>>

例として、以下の設定を追加します。

===============================================
[groups]
infra = daggun
[/]
@infra = rw
daggun = r

[/sample]
@infra = rw
daggun = r
===============================================

この設定は、複数のユーザを[groups]セクションで
グルーピングしていて、そのグループ単位で、
リポジトリに対するアクセス権限を設定しています。
[/sample]セクションで、infraグループはフルアクセス権限となります。
また、権限は、ユーザ単位でも行えます。
daggunは、OSユーザで、リードオンリーとなります。


3-4.SSHによる接続の確認

接続許可ユーザーにスイッチし、次のコマンドを実行すると、SSH経由でSVNリポジトリへ接続できます。

# su daggun
$ svn list svn+ssh://centos/home/daggun/svnwork/repo -v
The authenticity of host 'centos (127.0.0.1)' can't be established.
RSA key fingerprint is e8:1b:cc:de:05:45:10:21:0e:45:9c:76:9c:51:7a:a7.
Are you sure you want to continue connecting (yes/no)? yes
daggun@centos's password:
1 root 5月 09 18:20 ./
1 root 5月 09 18:20 sample/
$

3-5.SSH認証のノンパス化

SSHの認証でパスワードを入力しないで済ませる方法です。

SVNサーバとなるサーバ上で、接続ユーザ(SVNに接続させるOSユーザ)のSSH設定を行います。

例)daggunユーザの場合

3-5-1.対象ユーザの公開キーの生成

$ cd /home/daggun/.ssh/
$ ssh-keygen

Generating public/private rsa key pair.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/daggun/.ssh/id_rsa): ← 空白のまま[Enter]
Enter passphrase (empty for no passphrase): ← 空白のまま[Enter]
Enter same passphrase again: ← 空白のまま[Enter]
Your identification has been saved in /home/daggun/.ssh/id_rsa.
Your public key has been saved in /home/daggun/.ssh/id_rsa.pub.
The key fingerprint is:
1a:01:0d:f4:33:a2:7b:16:3c:45:3f:7b:e4:72:f4:7f daggun@centos
$

3-5-2.authorized_keys ファイルの生成

$ cd /home/daggun/.ssh/
$ cat id_rsa.pub > authorized_keys
$ chmod 600 authorized_keys

公開キー(authorized_keys)の先頭に、以下のコマンド文を追記します。

【変更前】
===================================================================
ssh-rsa AAAA....
===================================================================

【変更後】
===================================================================
command="svnserve -t -r /home/daggun/svnwork/repo" ssh-rsa AAAA....
===================================================================

こうすることで、対象ユーザのリポジトリを制限させることができます。
また、パスワード入力も不要になります。


3-5-3.この環境での SSH+SVNでの接続確認

$ svn list svn+ssh://centos/ -v
1 root 5月 09 18:20 ./
1 root 5月 09 18:20 sample/
$

上記のように、リポジトリのフルパスを入力する必要がなくなります。
また、パスワード入力も不要となります。


とりあえず、これでSubversionを動作させるための最小限の環境構築作業が完了となります。

Ruby環境構築(初期構築)

こんにちは。
勉強用環境にRuby環境を構築しましたので、作業記録を残しておきます。

インストール対象:Ruby、gems(パッケージ管理)、gems-mysql(MySQL用ライブラリ)

1.インストール用ソースパッケージのダウンロード
2.インストール用環境準備、インストール
3.インストール後の初期作業

                                                                      • -

1. インストール用ソースパッケージのダウンロード

                                                                      • -

Rubyのダウンロードページにアクセスし、Ruby環境を構築するための最新版ソースパッケージ、およびパッケージ管理ツール gems の最新版ソースパッケージをダウンロードする。
※04/20時点の最新版 Ruby(1.9.1-p378)、gems(1.3.6)をダウンロード


1-1.Rubyパッケージダウンロード

1-1-1.Rubyダウンロードページへアクセス。
http://www.ruby-lang.org/ja/
1-1-2.「ダウンロード」をクリック。
1-1-3.ダウンロード対象として、最新安定の「tar.gz」選択し、対象URLを取得する。
   対象URL:ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-[VERSION].tar.gz
1-1-4.サーバ上に、対象URLからソースパッケージをダウンロードする。
# mkdir /usr/local/src/ruby/
# chmod 777 /usr/local/src/ruby/
# cd /usr/local/src/ruby/
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-[VERSION].tar.gz


1-2.gemsパッケージダウンロード
1-1-1.gemsダウンロードページへアクセス。
http://rubyforge.org/projects/rubygems/
1-1-2.パッケージ[rubygems]のダウンロード」をクリック。
1-1-3.ダウンロード対象として、最新安定の「tgz」選択し、対象URLを取得する。
   対象URL:http://rubyforge.org/frs/download.php/69365/rubygems-[VERSION].tgz
1-1-4.サーバ上に、対象URLからソースパッケージをダウンロードする。
# mkdir /usr/local/src/ruby/
# chmod 777 /usr/local/src/ruby/
# cd /usr/local/src/ruby/
# wget http://rubyforge.org/frs/download.php/69365/rubygems-[VERSION].tgz

                                                                      • -

2.ソースパッケージからのインストール

                                                                      • -

ダウンロードしたソースパッケージから、Ruby、gemsをそれぞれインストールする。

2-1.Rubyインストール
2-1-1.サーバにアクセスし、Rubyソースパッケージを解凍/インストール

# cd /usr/local/src/ruby
# tar zxvf ruby-[VERSION].tar.gz
# cd ruby-[VERSION]
# ./configure
〜〜
# make
〜〜
# make install

2-2-1.gemsソースパッケージを解凍/インストール

# cd /usr/local/src/ruby
# tar zxvf rubygems-[VERSION].tgz
# cd rubygems-[VERSION]/
# ruby start.rb

                                                                      • -

3.MySQL用、Rubyライブラリインストール

                                                                      • -

MySQL用のRubyライブラリとして、mysqlをインストールします。

3-1.mysqlライブラリをインストール

# gem list --local | grep mysql # 対象ライブラリがインストールされていない事を確認
# gem install mysql -- --with-mysql-dir=/usr/local/mysql
# gem list --local | grep mysql # 対象ライブラリがインストールされている事を確認





とりあえず、これでRubyRubyからMySQLサーバを操作させるための最小限の環境構築作業が完了となります。

平成22年春季、基本情報処理試験(FE)の受験

こんにちは。

昨日2010/04/18(日)、平成22年度春季の情報処理試験を受験しに行きました。

前回の受験から、約7年ぶりの再受験。

事前勉強は、問題集(今季向け予想問題集:1種類、前期過去問:1種類)の勉強のみ。

午前問題については、特に問題なく回答できる事が多かったですが、
午後問題については本質的な理解不足を痛感させられました。

DB/ネットワークのインフラ系、管理系問題については理解しながら回答できたものの、アルゴリズムなどの開発系問題については、理解できない部分が多く苦しみました。

何の開発を行うにしても、本質的な理解ができていなければ、
その後の応用に繋がらないので、試験で理解できなかった点については、さらなる勉強が必要です。

また、04/18の18:00に公表された答案を元に答え合わせをしてみた結果、以下のようになりました。

==================================
■午前問題
==================================
○配点、合格基準点
 配点   :1.25点/1問 計100点
 合格基準点:60点

○総問題数
 80問

○正解数、得点、正答率
 正解数  :60問
 得点数  :75点
 正答率  :75%

==================================
■午後問題
==================================
○配点、合格基準点
 配点
  問1〜7 :各12点(7問中5問選択)
  問8  :20点
  問9〜13:各20点(5問中1問選択)
 合格基準点:60点

○正解数、予想得点
 正解数
  問2:3問/4問中
   設問1:1問/1問中
   設問2:0問/1問中
   設問3:1問/1問中
   設問4:1問/1問中

  問3:6問/6問中
   設問1:3問/3問中 (a->正解、b->正解、c->正解)
   設問2:1問/1問中
   設問3:1問/1問中
   設問4:1問/1問中

  問5:4問/6問中
   設問1:2問/2問中 (a->正解、b->正解)
   設問2:1問/3問中 (c->不正解、d->不正解、e->正解)
   設問3:1問/1問中

  問6:8問/8問中
   設問1:4問/4問中 (a->正解、b->正解、c->正解、d->正解)
   設問2:4問/4問中 (e->正解、f->正解、g->正解、h->正解)

  問7:5問/7問中
   設問1:1問/2問中 (a->正解、b->不正解)
   設問2:2問/3問中 (c->正解、d->不正解、e->正解)
   設問3:2問/2問中 (f->正解、g->正解)

  問8:1問/5問中
   設問1:0問/3問中 (a->不正解、b->不正解、c->不正解)
   設問2:0問/1問中 
   設問3:1問/1問中 

  問13:5問/7問中
   設問1:2問/2問中 (a->正解、b->正解)
   設問2:3問/5問中 (c->不正解、d->正解、e->不正解、f->正解、g->正解)

 予想得点数:24点(問3+問6) + α点
==================================

採点結果として、午前問題は合格圏内であるものの、午後問題については、各問題における配点分配次第、という結果となりました。

 ○午前問題 -> 合格圏内
 ○午後問題 -> 配点次第

事前に確認できる事はやったので、後は5/20(木)正午の試験結果を待つのみです。

検証用環境の構築

こんにちは。
勉強(検証)用環境として、下記の環境を構築してみたいと思います。

                                                                  • -

■検証環境

                                                                  • -

 サーバ :CentOS5.4 (Final) (on VMware Player3.0.0 build-203739)
 Ruby :1.8.5 (2006-08-25)
 MySQLサーバ :5.1.45
 MySQLクライアント:5.1.45
 Apache :2.2.3

                                                                  • -


しばらくは、下記の事を中心に勉強をしていこうと考えています。

 ○Rubyの勉強
   -> 環境構築、お作法、MySQLバックアップ用処理など
 ○Bashの勉強(忘れかけているので)
   -> MySQLのバックアップ、ログバックアップ用処理など
 ○MySQLの勉強
   -> 環境構築、DB作成、テーブル作成、バックアップ/リストアなど


後は、AmazonEC2,S3,RDSなども実環境を使った勉強をしてみたいのですが、英語が苦手でなかなか手が出せないでいます...

MySQLサーバ環境構築(初期構築)

こんにちは。
勉強用環境にMySQLサーバ環境を構築しましたので、作業記録を残しておきます。

1.インストール用ソースパッケージのダウンロード
2.インストール用環境準備、インストール
3.インストール後の初期作業

※作業ユーザ: # -> root、% -> mysql

                                                                      • -

1. インストール用ソースパッケージのダウンロード

                                                                      • -

MySQLのダウンロードページにアクセスし、MySQLサーバ環境を構築するための最新版ソースパッケージをダウンロードする。
※04/19時点の最新版(5.1.45)をダウンロード

1-1.MySQLダウンロードページへアクセス。
http://dev.mysql.com/downloads/
1-2.「MySQL Community Server」をクリック。
1-2.ダウンロード対象として「Source Code」を選択。
1-3.「Generic Linux (Architecture Independent), Compressed TAR Archive」を選択し、[DownLoad]をクリック。
   ※同時に、サイト上に表示されているMD5情報を記録しておく。
   MD5: 06b5deb3a13c7600c38ba65b9f7e42c4
1-4.MySQLへのログイン登録はしないので、「No thanks, just take me to the downloads!」をクリック。
1-5.日本のミラーサイトを選択し、対象URLを取得する。
   対象URL:http://dev.mysql.com/get/Downloads/MySQL-[VERSION]/mysql-[VERSION].tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/
1-6.サーバ上に、対象URLからソースパッケージをダウンロードする。
# mkdir /usr/local/src/mysql/
# chmod 777 /usr/local/src/mysql/
# cd /usr/local/src/mysql/
# wget http://dev.mysql.com/get/Downloads/[VERSION]/mysql-[VERSION].tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/

1-7.ダウンロードしたソースパッケージのMD5を確認し、改竄されていないかチェックする
# md5sum mysql-[VERSION].tar.gz; echo "06b5deb3a13c7600c38ba65b9f7e42c4"
06b5deb3a13c7600c38ba65b9f7e42c4 mysql-[VERSION].tar.gz
06b5deb3a13c7600c38ba65b9f7e42c4

                                                                      • -

2.ソースパッケージからのインストール

                                                                      • -

ダウンロードしたソースパッケージから、MySQLサーバをインストールする。
前提環境として、MySQL環境は以下条件で構築するものとする。

 ホームディレクトリ     :/usr/local/mysql/
 文字コード         :UTF-8
 実行ユーザー/グループ   :mysql/mysql

2-1.サーバにアクセスし、mysql用ユーザー/グループを作成

  # groupadd mysql
  # useradd -g mysql -d /usr/local/mysql -m mysql

2-2.ソースパッケージを解凍/インストール

# chown mysql:mysql /usr/local/src/mysql/mysql-[VERSION].tar.gz
# su mysql
% cd /usr/local/src/mysql
% tar zxvf mysql-[VERSION].tar.gz
% cd mysql-[VERSION]
% ./configure --prefix=/usr/local/mysql --with-charset=utf8
〜〜
% make
〜〜
% make install

                                                                      • -

3.インストール後の初期作業

                                                                      • -

MySQLインストール直後に、初期DB環境を作成し、パラメータファイル、起動スクリプトを設置する必要がある。


3-1.ソースパッケージに含まれる [mysql_install_db]を実行し、初期DB環境を作成する。
作成後、/usr/local/mysql/var/ディレクトリが作成されているか確認する。

% cd /usr/local/src/mysql/mysql-[VERSION]/scripts
% ./mysql_install_db --user=mysql
% ls -ld /usr/local/mysql/var/

3-2.パラメータファイル(my.cnf)を、サンプルファイルから設置する。

% su root
# cd /usr/local/src/mysql/mysql-[VERSION]//support-files
# cp cp my-medium.cnf /etc/my.cnf
# ls -l /etc/my.cnf

3-3.起動テストのため、MySQLサーバを起動させる。

% /usr/local/mysql/bin/mysqld_safe --user=mysql&

3-4.MySQLサーバ起動後、rootアカウントでログインし、rootアカウントのパスワードを設定し、設定を読み込ませる。
   パスワード設定後、正しく設定されているか確認する。
  
% /usr/local/mysql/bin/mysql -u root
mysql> set password for root@localhost=password('root');
mysql> flush privileges;
mysql> exit;
% /usr/local/mysql/bin/mysql -u root -p
Enter password: root
mysql>

3-5.起動スクリプト(mysqld)を、サンプルファイルから設置し、起動スクリプトとして登録する。
   起動スクリプトとして登録後、MySQLサーバを停止/起動できるか動作確認する。

% su root
# cd /usr/local/mysql/share/mysql/
# cp -p mysql.server /etc/init.d/mysqld
# ls -l /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 2345 mysqld
# /etc/init.d/mysqld stop
# /etc/init.d/mysqld start


とりあえず、これでMySQLサーバを稼働させるための最小限の作業が完了となります。

Blogをはじめてみる

今日から、hatenaさんのBlogを利用させて貰う事にしました。

主には下記カテゴリで書き込んでいく事になると考えています。
IT技術
・資産形成
・最近読んだ本


ではでは、最初のBlogはこんなもんで。
こんなもんで、OKでしょ?