さくらインターネットでCVSを利用する

レンタルスペース(さくらインターネット)でCVSリポジトリを作成してみようと思い立った。
筆者は基本的に、WEBサイトの開発環境はローカル(windows xp + eclipse)で行っている。
普段は外付けHDDにvmwareの仮想OS(CentOS)を入れていて、そこでsubversionを利用してバージョン管理している。
vmwareはさすがに動作が重いので、普段はvmware関連のサービスは切っておいて、必要に迫られた時以外は起動しない。
それ故、いちいち起動したり停止したり面倒なのだ。
調べたところ、どうやらさくらインターネットではcvsが利用可能とのことなので早速試してみた。
■前提
 1)RSA暗号とは、桁数が大きい合成数の素因数分解問題が困難であることを安全性の根拠とした公開鍵暗号の一つである
 2)公開鍵暗号とは、暗号化と復号に別個の鍵(手順)を使い、暗号化の為の鍵を公開できるようにした暗号方式である。
 3)鍵生成アルゴリズムは事前準備にあたるアルゴリズムで、(将来暗号文を受け取りたいと思う)全てのユーザは事前に鍵生成アルゴリズムを実行しておく必要がある。ユーザが鍵生成アルゴリズムを実行すると、アルゴリズムはそのユーザの公開鍵および秘密鍵(と呼ばれるデータ)を出力する。
 4)公開鍵は暗号文を作成するのに使い、秘密鍵はその暗号文からメッセージを復元するのに使う。
 5)ユーザは鍵生成アルゴリズムを実行する際、セキュリティ・パラメータ(パスフレーズ)という値をこのアルゴリズムに入力する。セキュリティ・パラメータ(パスフレーズ)は、秘密鍵なしで暗号文の解読がどれだけ困難かの尺度である。さらに鍵生成アルゴリズムには乱数も入力される。
 6)鍵生成アルゴリズムは実行ごとに異なる乱数を選ぶので、ユーザ毎に異なる公開鍵・秘密鍵ペアが割りふられる。各ユーザは秘密鍵を秘密裏に保管し、公開鍵を皆に公開する。よってユーザの秘密鍵を知っているのはそのユーザ自身だけであるが、それに対しユーザの公開鍵を知っているのは全てのユーザである。公開鍵、秘密鍵をそれぞれ暗号化鍵、復号鍵ともいう。
— 以上、wikipediaより引用
1.サーバにログイン
2.$HOMEでcvsrootディレクトリを作成
$ mkdir cvsroot
3.リポジトリの作成
cvs -d $HOME/cvsroot init
4.鍵の生成(eclipse編)
 eclipseのバージョン:
 1)ウィンドウ>設定>一般>ネットワーク接続>SSH2を選択
 2)「鍵管理タブ」を選択し、「RSA鍵の生成」を押下
 3)「パスフレーズ」及び「パスフレーズの確認」に任意の値を設定する
 4)「秘密鍵の保管」ボタンを押下
   保管場所は「一般」タブの「SSH2ホーム」に設定されているディレクトリになる。
 5)「OK」を押下
5.サーバ側の設定
 1)$HOMEに.sshディレクトリを作成
   $ mkdir .ssh
 2)4で作成した公開鍵(id_rsa.pub)を1)で作成した.sshディレクトリにアップロード
 3)公開鍵の名前変更
   $ cd $HOME/.ssh
   $ mv id_rsa.pub authorized_keys
6.再びeclipseの設定
 1)ウィンドウ>パースペクティブを開く>その他でCVSリポジトリー・エクスプローラーを選択
 2)現れたCVSリポジトリービュー内で右クリック>新規>リポジトリ・ロケーションを選択
 3)必要事項の記入
   ホスト:ホスト名またはIP
   リポジトリー・パス:3で作成したリポジトリパス(今回のケースは「/home/[アカウント名]/cvsroot」)
   ユーザ:レンタルサーバのアカウント名
   パスワード:レンタルサーバのパスワード
   接続タイプ:extssh
んで試しにeclipse上の既存プロジェクトをチェックインしてみる。
ちゃんとでけた。

“さくらインターネットでCVSを利用する”の続きを読む

DNSサーバでのNSレコードとAレコードの違い

独自ドメインを取得したのだが、DNSのNSレコードとAレコードの違いがどうも良くわからなかった。
単純に、DNSサーバですよ、DNSサーバじゃないですよってことを識別するためだけに使い分けているのかな?
下位のノードを指すってところは一緒なんだけど・・・
って悩んで調べていたら納得。
http://okwave.jp/qa4244375.html

linuxへのSubversionのインストール

subversionのインストール
# wget http://subversion.tigris.org/downloads/subversion-1.6.2.tar.gz
# tar zxvf subversion-1.6.2.tar.gz
# cd subversion-1.6.2
# ./configure –with-apr=/usr/local/apache2 –with-apr-util=/usr/local/apache2 –with-apxs=/usr/local/apache2/bin/apxs –with-ssl
ここでエラー発生
–ここから
configure: Configuring Subversion 1.6.2
configure: creating config.nice
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking for g++… g++
checking whether we are using the GNU C++ compiler… yes
checking whether g++ accepts -g… yes
checking how to run the C preprocessor… gcc -E
checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking target system type… i686-pc-linux-gnu
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking whether ln -s works… yes
checking for a BSD-compatible install… /usr/bin/install -c
configure: Apache Portable Runtime (APR) library configuration
checking for APR… yes
checking APR version… 1.3.3
configure: Apache Portable Runtime Utility (APRUTIL) library configuration
checking for APR-util… yes
checking APR-UTIL version… 1.3.4
checking for pkg-config… /usr/bin/pkg-config
configure: checking neon library
checking for neon-config… no
An appropriate version of neon could not be found, so libsvn_ra_neon
will not be built. If you want to build libsvn_ra_neon, please either
install neon 0.28.4 on this system
or
get neon 0.28.4 from:
http://www.webdav.org/neon/neon-0.28.4.tar.gz
unpack the archive using tar/gunzip and rename the resulting
directory from ./neon-0.28.4/ to ./neon/
no suitable neon found
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
configure: looking for apr_memcache as part of apr-util
checking apr_memcache.h usability… yes
checking apr_memcache.h presence… yes
checking for apr_memcache.h… yes
checking for apr_memcache_create in -laprutil-1… yes
checking for Apache module support via DSO through APXS… found at /usr/local/apache2/bin/apxs
checking httpd version… recent enough
checking whether Apache version is compatible with APR version… yes
configure: checking sqlite library
amalgamation not found at /usr/local/src/subversion-1.6.2/sqlite-amalgamation/sqlite3.c
checking sqlite3.h usability… yes
checking sqlite3.h presence… yes
checking for sqlite3.h… yes
checking sqlite library version (via header)… unsupported SQLite version
checking sqlite library version (via pkg-config)… none or unsupported 3.3
no
An appropriate version of sqlite could not be found. We recommmend
3.6.13, but require at least 3.4.0.
Please either install a newer sqlite on this system
or
get the sqlite 3.6.13 amalgamation from:
http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz
unpack the archive using tar/gunzip and copy sqlite3.c from the
resulting directory to:
/usr/local/src/subversion-1.6.2/sqlite-amalgamation/sqlite3.c
This file also ships as part of the subversion-deps distribution.
configure: error: Subversion requires SQLite
–ここまで
依存するファイルのダウンロード
# cd /usr/local/src
# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.2.tar.gz
# tar zxvf subversion-deps-1.6.2.tar.gz
# ./configure –with-apr=/usr/local/apache2 –with-apr-util=/usr/local/apache2 –with-apxs=/usr/local/apache2/bin/apxs –with-ssl
★トラックバック:http://ueblog.natural-wave.com/2009/03/30/subversion-install/
今度は成功。makeする
# make
なげぇ・・・
# make install
で、インストール終了らしい。
★設定いろいろ
1.svnグループ・svnユーザの作成
2.リポジトリを格納するディレクトリを作成
/home/svn
3.xinetdの設定
  /etc/xinetd.d/svnserve
service svnserve
{
disable = no
socket_type = stream
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i -r /home/svn
log_on_failure += USERID
}
4./etc/servicesの編集
  svnserve 3690/tcp # Subversion
  svnserve 3690/udp # Subversion
  ※)すでにsvnがある場合は上記に書き換える
5.サービスに登録
  chkconfig –add svnserve
6.xinetdの再起動
  service xinetd restart
7.リポジトリの作成
  svnadmin create /home/svn/test
8.svnserve.confの設定
  /home/svn/test/conf/svnserve.conf
anon-access = none # Anonymous(匿名)ユーザ
auth-access = write # 認証済みユーザ
password-db = passwd # パスワードファイル名
9.パスワードの設定
  /home/svn/test/conf/passwd
harry = harryssecret
  ※)アクセス権を変更しておく
    chmod 600 passwd
    chown svn:svn passwd
10.ディレクトリの作成
  svn mkdir -m ‘setup trunk’ file:///home/svn/test/trunk
  svn mkdir -m ‘setup trunk’ file:///home/svn/test/tags
  svn mkdir -m ‘setup trunk’ file:///home/svn/test/branches

Subversionをインストールした後のApacheの挙動

linux(CentOS)にSubversionをインストールした後、Apacheが起動しなくなっていることに気づいた。
こんなエラーがでる。
httpd: Syntax error on line 54 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider
そういやSubversionってhttpでやり取りできるんだっけ。
取りあえずWEBベースでバージョン管理を行う気はないので、httpd.confから該当箇所をコメントアウトすることで対処することにした。
#LoadModule dav_svn_module modules/mod_dav_svn.so
#LoadModule authz_svn_module modules/mod_authz_svn.so
SubversionとApacheの連携を保持したままこの問題を解決する為には、以下のサイトを見ると良いかも。
といっても詳しく読んでないのでこれで直るかは未検証。
http://www.battlefield.jp/modules/xeblog/?action_xeblog_details=1&blog_id=14

Apache 仮想ディレクトリの設定(Alias)

実際のディレクトリとは別のディレクトリ名でアクセスしたい場合、仮想ディレクトリの設定を行う。
設定はApacheのhttpd.confで以下の行を追加する。
Alias /images/ “/home/www/images/”

AddDefaultCharset Off
Options Indexes FollowSymLinks
Order allow,deny
Allow from all

■参考
http://www.atmarkit.co.jp/flinux/rensai/apache06/apache06.html