「ConoHa VPS に Subversion Edge をインストールしてみた」の版間の差分

提供: tknotebook
移動: 案内検索
(準備)
(動作確認)
 
(1人の利用者による、間の31版が非表示)
1行: 1行:
[[Category:コンピュータ]][[Category:ノウハウ]]
+
[[Category:コンピュータ]][[Category:Linux]]
[[メインページ]]>[[コンピュータの部屋]]
+
[[メインページ]]>[[コンピュータの部屋]]>[[ConoHa VPS を使ってみた]]
 +
 
 +
2014年11月2日
 +
 
 +
ConoHa VPS に Subversion Edge をインストールしたときの記録です。
  
 
==準備==
 
==準備==
  
*必要なソフトと所在
+
===必要なソフト===
  
:まず、必要なソフトがそろっているかですが、CollabNetSubversionEdge-4.0.11_linux-x86_64 の README によるとJava 1.6+ と python-lib の 2.4~2.6 が必要とのことです。
+
まず、必要なソフトの調査ですが、CollabNetSubversionEdge-4.0.11_linux-x86_64 の README によるとJava 1.6+ と php5.4+ と python-lib の 2.4~2.6 が必要とのこと。
  
:Java は 1.7 を導入済みなので Java は問題ありません。
+
Java は 1.7 が、php は 5.6 が導入済みなので問題ありません([[Conoha VPS でそこそこ新しいLAMP環境の構築]]参照)。
  
:python-libs は確認してみますと
+
python-libs を確認してみますと
  
 
  yum list installed | grep python-libs
 
  yum list installed | grep python-libs
16行: 20行:
 
  python-libs.x86_64                        2.6.6-52.el6              @updates
 
  python-libs.x86_64                        2.6.6-52.el6              @updates
  
:で問題なさそうです。
+
で問題なさそうです。
  
:また、SubversionEdge は環境変数 JAVA_HOME を参照するので設定しろとありますので、いったいどこにあるか探ると、JDK のコマンドは皆 /usr/bin にありますが、これは /etc/alternative にあるものを simlink していて /etc/alternative の中身も simlink の塊。実体は
+
また、SubversionEdge は環境変数 JAVA_HOME を参照するので設定しろとありますので、Java がいったいどこにあるか探ってみました。
 +
 
 +
JDK のコマンドは皆 /usr/bin にありますが、これは /etc/alternative への simlink で  /etc/alternative の中身も simlink。実体は
  
 
/usr/lib/jvm/java-1.7.0-openjdk.x86_64
 
/usr/lib/jvm/java-1.7.0-openjdk.x86_64
  
が正しいようです。
+
にあることがわかりました。これが JAVA_HOME の値です。
  
*JAVA_HOME 環境変数の設定
+
===JAVA_HOME 環境変数の設定===
  
:JAVA_HOME /etc/profile の中に書くのが簡単と思ったのですがですが、/etc/profile.d の下にアプリケーションで追加実行するシェルスクリプトを書くのが CENTOS の流儀のようです。
+
JAVA_HOME の設定は /etc/profile の中に書くのが一番簡単だと思ったのですがですが、/etc/profile.d の下にアプリケーションで追加実行するシェルスクリプトを書くのが CENTOS の流儀のようです。
:jdk.sh, jdk.csh を /etc/profile.d の下に以下のように作りました。
+
  
jdk.sh:
+
jdk.sh, jdk.csh を /etc/profile.d の下に以下のように作りました。
 +
 
 +
jdk.sh:
  
 
  export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
 
  export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
  
jdk.csh:
+
jdk.csh:
  
 
  setenv JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk.x86_64
 
  setenv JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk.x86_64
  
:これで問題なく JAVA_HOME環境変数の設定はできています。
+
これで再起動すると問題なく JAVA_HOME環境変数の設定はできています。
  
  ls $JAVA_HOME/bin
+
  ls <nowiki>$JAVA_HOME/bin</nowiki>
  
 
  appletviewer  javac        jdb        jstack        policytool  tnameserv
 
  appletviewer  javac        jdb        jstack        policytool  tnameserv
49行: 56行:
 
  java          jconsole      jsadebugd  pack200      servertool
 
  java          jconsole      jsadebugd  pack200      servertool
  
*iptables の変更
+
===iptables の変更===
  
:subversion edge は管理にポート 3343, リポジトリアクセスにもう一ポート必要です。80は使えないので 60000 を採用。iptableで開ける設定を追加します。
+
subversion edge は管理にポート 3343,4434(SSL) リポジトリアクセスにもう一ポート(自由に設定できるので 60000 と決定)が必要です。iptablesに開けるポートを追加します。
  
 
  *filter
 
  *filter
62行: 69行:
 
  -A RH-Firewall-1-INPUT -i lo -j ACCEPT
 
  -A RH-Firewall-1-INPUT -i lo -j ACCEPT
 
  -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
 
  -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
 
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
 
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
 
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
 
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
 
 
  -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
  -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
  # SSH, HTTP, MySQL
 
  # SSH, HTTP, MySQL
72行: 74行:
 
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
 
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
 
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3343 -j ACCEPT
 
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3343 -j ACCEPT
 +
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4434 -j ACCEPT
 
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 60000 -j ACCEPT
 
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 60000 -j ACCEPT
 
  -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
 
  -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
 
  COMMIT
 
  COMMIT
 +
 +
===Subversion Edge 用ユーザを用意===
 +
 +
useradd csvn
 +
passwd csvn パスワード
  
 
==インストール==
 
==インストール==
 +
 +
===パーミッション調整===
 +
 +
/opt で csvn ユーザで tar を展開したいので /opt のパーミッションを 777 に変更します。
 +
 +
chmod 777 /opt
 +
 +
===ファイルを転送===
 +
 +
CollabNet から入手した 64bit Linux 用 Subversion Edge CollabNetSubversionEdge-4.0.11_linux-x86_64.tar.gz を /opt へファイル転送。
 +
 +
===ファイル展開===
 +
 +
ユーザを一般(csvn)に切り替えて展開。
 +
su - csvn
 +
tar xvf CollabNetSubversionEdge-4.0.11_linux-x86_64.tar.gz
 +
 +
===インストール===
 +
 +
rootに戻って以下を実行
 +
cd csvn
 +
bin/csvn install
 +
 +
Detected RHEL or Fedora:
 +
  Installing the CSVN Console daemon..
 +
Setting RUN_AS_USER to: 'root'. Please edit '../data/conf/csvn.conf' if this needs to be adjusted
 +
Setting JAVA_HOME to: '/usr/lib/jvm/java-1.7.0-openjdk.x86_64'. Please edit '../data/conf/csvn.conf' if this needs to be adjusted.
 +
 +
本当はここで sudo で csvnユーザのまま実行すべきなのですが、この時点で sudo を設定していなかったので root で実行しました。
 +
こうすると subversion edge は後で起動すると root として実行されてしまうので、設定を書き換えます。
 +
 +
===設定の修正===
 +
 +
/var/www/html/csvn/data/conf の csvn.conf を開け
 +
 +
RUN_AS_USER=root
 +
 +
RUN_AS_USER=csvn
 +
に書き換えます。これは root で install を実行したために起きた不整合の修正です。
 +
 +
===オーナ調整===
 +
 +
csvn でインストールしたかのようにファイルのオーナを書き換えます。
 +
 +
cd /opt
 +
chown csvn:csvn csvn
 +
 +
===サービス登録確認===
 +
 +
chkconfig | grep csvn
 +
 +
csvn            0:off  1:off  2:off  3:on    4:on    5:on    6:off
 +
 +
==subversion 1.6 の削除==
 +
 +
ひょっとしたらと思って、yum で調べてみると、
 +
 +
yum list installed | grep subversion
 +
 +
subversion.x86_64                          1.6.11-10.el6_5          @updates
 +
 +
どうも、まだ epel, ius, remi にも 1.8 は無いみたいですが、よく探してみると
 +
subversion edge の bin フォルダにあるじゃありませんか!
 +
 +
サーバは Web で各種の操作できるので、あまりコマンドは使わないかもしれませんが、とりあえず使えるようにしておきましょう。
 +
 +
まず古いものは削除します。
 +
 +
yum remove subversion
 +
 +
================================================================================
 +
  Package          Arch          Version                  Repository      Size
 +
================================================================================
 +
Removing:
 +
  subversion        x86_64        1.6.11-10.el6_5          @updates        12 M 
 +
 +
Transaction Summary
 +
================================================================================
 +
Remove        1 Package(s)
 +
 +
==suversion 1.8 のコマンドを使えるようにする==
 +
 +
/etc/profile.d に subversion_edge.csh と subversion_edge.sh を追加します。
 +
 +
;subversion_edge.csh
 +
setenv <nowiki>PATH ${PATH}:/opt/csvn/bin</nowiki>
 +
;subversion_edge.sh
 +
export <nowiki>PATH=$PATH:/opt/csvn/bin</nowiki>
 +
 +
再ログイン後確認すると
 +
 +
svn --version
 +
 +
svn, version 1.8.10 (r1615264)
 +
    compiled Aug 12 2014, 15:56:15 on x86_64-unknown-linux-gnu
 +
 +
Copyright (C) 2014 The Apache Software Foundation.
 +
This software consists of contributions made by many people;
 +
see the NOTICE file for more information.
 +
Subversion is open source software, see http://subversion.apache.org/
 +
 +
The following repository access (RA) modules are available:
 +
 +
* ra_svn : Module for accessing a repository using the svn network protocol.
 +
  - handles 'svn' scheme
 +
* ra_local : Module for accessing a repository on local disk.
 +
  - handles 'file' scheme
 +
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
 +
  - using serf 1.3.7
 +
  - handles 'http' scheme
 +
  - handles 'https' scheme
 +
 +
よいようです。
 +
 +
==動作確認==
 +
 +
ホスト名:3343/csvn/login/auth, ホスト名:4434/csvn/login/auth にアクセスしたところ、見事に接続できました。
 +
 +
ただし、Subversion Edge の内蔵jettyはSSLに自己参照証明書を使っているのでブラウザに警告が出ます。驚かないように。
 +
 +
==スクリーンショット==
 +
 +
[[ファイル:Subversion Edge スクリーンショット.png]]

2016年11月30日 (水) 05:46時点における最新版

メインページ>コンピュータの部屋>ConoHa VPS を使ってみた

2014年11月2日

ConoHa VPS に Subversion Edge をインストールしたときの記録です。

準備

必要なソフト

まず、必要なソフトの調査ですが、CollabNetSubversionEdge-4.0.11_linux-x86_64 の README によるとJava 1.6+ と php5.4+ と python-lib の 2.4~2.6 が必要とのこと。

Java は 1.7 が、php は 5.6 が導入済みなので問題ありません(Conoha VPS でそこそこ新しいLAMP環境の構築参照)。

python-libs を確認してみますと

yum list installed | grep python-libs
python-libs.x86_64                         2.6.6-52.el6              @updates

で問題なさそうです。

また、SubversionEdge は環境変数 JAVA_HOME を参照するので設定しろとありますので、Java がいったいどこにあるか探ってみました。

JDK のコマンドは皆 /usr/bin にありますが、これは /etc/alternative への simlink で  /etc/alternative の中身も simlink。実体は

/usr/lib/jvm/java-1.7.0-openjdk.x86_64

にあることがわかりました。これが JAVA_HOME の値です。

JAVA_HOME 環境変数の設定

JAVA_HOME の設定は /etc/profile の中に書くのが一番簡単だと思ったのですがですが、/etc/profile.d の下にアプリケーションで追加実行するシェルスクリプトを書くのが CENTOS の流儀のようです。

jdk.sh, jdk.csh を /etc/profile.d の下に以下のように作りました。

jdk.sh:

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64

jdk.csh:

setenv JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk.x86_64

これで再起動すると問題なく JAVA_HOME環境変数の設定はできています。

ls $JAVA_HOME/bin
appletviewer  javac         jdb         jstack        policytool   tnameserv
apt           javadoc       jhat        jstat         rmic         unpack200
extcheck      javah         jinfo       jstatd        rmid         wsgen
idlj          javap         jmap        keytool       rmiregistry  wsimport
jar           java-rmi.cgi  jps         native2ascii  schemagen    xjc
jarsigner     jcmd          jrunscript  orbd          serialver
java          jconsole      jsadebugd   pack200       servertool

iptables の変更

subversion edge は管理にポート 3343,4434(SSL) リポジトリアクセスにもう一ポート(自由に設定できるので 60000 と決定)が必要です。iptablesに開けるポートを追加します。

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH, HTTP, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3343 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4434 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 60000 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

Subversion Edge 用ユーザを用意

useradd csvn
passwd csvn パスワード

インストール

パーミッション調整

/opt で csvn ユーザで tar を展開したいので /opt のパーミッションを 777 に変更します。

chmod 777 /opt

ファイルを転送

CollabNet から入手した 64bit Linux 用 Subversion Edge CollabNetSubversionEdge-4.0.11_linux-x86_64.tar.gz を /opt へファイル転送。

ファイル展開

ユーザを一般(csvn)に切り替えて展開。

su - csvn
tar xvf CollabNetSubversionEdge-4.0.11_linux-x86_64.tar.gz

インストール

rootに戻って以下を実行

cd csvn
bin/csvn install
Detected RHEL or Fedora:
 Installing the CSVN Console daemon..
Setting RUN_AS_USER to: 'root'. Please edit '../data/conf/csvn.conf' if this needs to be adjusted
Setting JAVA_HOME to: '/usr/lib/jvm/java-1.7.0-openjdk.x86_64'. Please edit '../data/conf/csvn.conf' if this needs to be adjusted.

本当はここで sudo で csvnユーザのまま実行すべきなのですが、この時点で sudo を設定していなかったので root で実行しました。 こうすると subversion edge は後で起動すると root として実行されてしまうので、設定を書き換えます。

設定の修正

/var/www/html/csvn/data/conf の csvn.conf を開け

RUN_AS_USER=root

RUN_AS_USER=csvn

に書き換えます。これは root で install を実行したために起きた不整合の修正です。

オーナ調整

csvn でインストールしたかのようにファイルのオーナを書き換えます。

cd /opt
chown csvn:csvn csvn

サービス登録確認

chkconfig | grep csvn
csvn            0:off   1:off   2:off   3:on    4:on    5:on    6:off

subversion 1.6 の削除

ひょっとしたらと思って、yum で調べてみると、

yum list installed | grep subversion
subversion.x86_64                          1.6.11-10.el6_5           @updates

どうも、まだ epel, ius, remi にも 1.8 は無いみたいですが、よく探してみると subversion edge の bin フォルダにあるじゃありませんか!

サーバは Web で各種の操作できるので、あまりコマンドは使わないかもしれませんが、とりあえず使えるようにしておきましょう。

まず古いものは削除します。

yum remove subversion
================================================================================
 Package           Arch          Version                  Repository       Size
================================================================================
Removing:
 subversion        x86_64        1.6.11-10.el6_5          @updates         12 M  

Transaction Summary
================================================================================
Remove        1 Package(s)

suversion 1.8 のコマンドを使えるようにする

/etc/profile.d に subversion_edge.csh と subversion_edge.sh を追加します。

subversion_edge.csh
setenv PATH ${PATH}:/opt/csvn/bin
subversion_edge.sh
export PATH=$PATH:/opt/csvn/bin

再ログイン後確認すると

svn --version
svn, version 1.8.10 (r1615264)
   compiled Aug 12 2014, 15:56:15 on x86_64-unknown-linux-gnu

Copyright (C) 2014 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_svn : Module for accessing a repository using the svn network protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - using serf 1.3.7
  - handles 'http' scheme
  - handles 'https' scheme

よいようです。

動作確認

ホスト名:3343/csvn/login/auth, ホスト名:4434/csvn/login/auth にアクセスしたところ、見事に接続できました。

ただし、Subversion Edge の内蔵jettyはSSLに自己参照証明書を使っているのでブラウザに警告が出ます。驚かないように。

スクリーンショット

Subversion Edge スクリーンショット.png