SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【SVN】SubversionをCentOS7@VirtualBoxにインストールする

今更SVNって??まぁどちらかと言うとGitの前座って感じですかね。

やること

タイトルの通りですが、VirtualBox上のLinux(CentOS7)サーバにSubversionをインストールし、リポジトリを作成する。

ホストマシン(Windows10)をクライアントとして、ファイルのコミット等を行えるようにします。


CentOS7にSubversionをインストール

私の場合は、Windows10からteratermでLinuxにログインした状態です。
以下、順次コマンドを実行していきます。

0からだと分からないので以下を参考にさせていただきました。
https://internalservererror.info/2018/04/20/httpでアクセスできるsubversionサーバーを構築する/


Subversionインストール

sudo yum install subversion

バージョンの確認

svnserve --version

ちなみに私の場合、1.7.14がインストールされていました。


Subversionのリポジトリ作成

sudo mkdir -p /var/www/svn/repos
sudo svnadmin create /var/www/svn/repos
svn mkdir file:///var/www/svn/repos/trunk -m "create" 
svn mkdir file:///var/www/svn/repos/branches -m "create" 
svn mkdir file:///var/www/svn/repos/tags -m "create" 

Subversion用のグループを作成

sudo groupadd svngroup

Subversionリポジトリのグループと権限を変更

sudo chown -R :svngroup /var/www/svn/
sudo chmod -R 775 /var/www/svn/

Subversion用のユーザを作成、グループに入れる

sudo useradd -m svnuser
sudo usermod -aG svngroup svnuser

パスワード設定

passwd svnuser

サービスを開始する。

systemctl start svnserve


次にhttp経由でリポジトリにアクセスできるようにする。
mod_dav_svn をインストール。

yum install mod_dav_svn

アパッチに所有権を持たせる

chown -R apache:apache /var/www/svn

subversion設定ファイルの編集

vim /etc/httpd/conf.d/subversion.conf

以下の内容を追記する。

# 新規作成
<Location /svn/repos>
    DAV svn
    AuthType Basic
    AuthName "DAV SVN"
    AuthUserFile /etc/httpd/.htpasswd
    Require valid-user
    SVNPath /var/www/svn/repos/
</Location> 

ユーザの設定
※-cオプションは新規作成なので、追加する場合は-cをはずせばいい

htpasswd -bc /etc/httpd/.htpasswd [ユーザ名] [パスワード]


再起動。

systemctl restart httpd

最初は以下のパスに直でリポジトリ作ろうとしたのですが多分アパッチユーザが読み込むことができずにエラーでハマりました。。
場所だけ移動してリポジトリを作りなすとすんなり進行した。

/var/svn/repos

ホストマシン(Windows)からsvnに接続する

クライアントとなるホストマシンから接続を行います。
ホストマシンにはTortoiseSVNがインストールされているものとします。

任意の場所にチェックアウト用のフォルダを作成します。

f:id:wantanBlog:20191013003637p:plain

右クリックしてチェックアウトを選択し、以下のようにリポジトリを指定します。

f:id:wantanBlog:20191013003836p:plain

ユーザの認証画面が表示されれば指定は間違っていないでしょう。
とりあえず、svn用のユーザを指定してみます。

とりあえず、チェックアウトはできました!

f:id:wantanBlog:20191013025018p:plain


正直途中でぐだったけどまぁなんとか。

コミットまでできるようにする。

trunkは以下にtestフォルダを作成して、TortoiseSVNで追加。

その後コミットするとエラーになる。

f:id:wantanBlog:20191013025753p:plain

could not begin a transaction

ひとまずは理解もできていない暫定対応ですがSELinuxの設定がどうとかが原因らしい。
Linuxで以下のコマンドを打ち込む。

setenforce 0

f:id:wantanBlog:20191013030036p:plain


コミットに成功。

途中でモチベーションが落ちてしまい時間がかかったけどひとまずはここまで。