gn5r's blog

gn5r’s blog

プログラミングとかそこら辺の記事を書くつもり

Linux Mint に svnサーバーを建てる

なんでsvn?

簡単に言うと、仕事の環境と同じにしたいから
ソース管理はGitHubが有名ですが、社内だとGitLabとか導入してるのが大半かな?と思ってたのですが、僕の現場ではsvnでした
んで、svnは使ったことがなかったので遊び半分で構築に至った感じです
記事ごとにインストールするパッケージが違ったり、古い記事だとそもそも記載されているパッケージが存在しなかったりと若干歪まされた...

パッケージをインストール

svnってapache絡みと言うのに少し感激というか驚き
webサーバー立ち上げてるのと同じじゃね?って思ってました

余談は置いといて、以下コマンドを実行して必要なパッケージ類をインストールします

sudo apt install -y apache2 apache2-utils subversion subversion-tools libapache2-mod-svn libsvn-dev

要らんパッケージとかあるかもしれませんので、それ要らんよ!とか心優しい方教えて下さい。

svnディレクトリとリポジトリの作成

パッケージのインストールが終わったら、svn用のディレクトリを作成します
作成場所は各自お好みで、といった感じですが今回はsambaと違いホーム直下に作成します

mkdir /home/gn5r/svn

続いてリポジトリを作り権限を付与します。

svnadmin create /home/gn5r/svn/sample
sudo chown -R www-data:www-data ./svn/sample/

svnユーザーの作成

ディレクトリとリポジトリが作成出来たら、接続用のユーザーを作成します
認証方法としてBasic認証でログインするのでそれの設定(Basic以外は設定したことがないのでシラン)

sudo htpasswd -cm /etc/apache2/dav_svn.passwd gn5r

パスワードを2回入力したらユーザー作成が完了です。
ミソとして初回に作成するため-cmオプションを付与してます。
今後ユーザーを追加する場合は-cmオプション無しで実行すれば作成できます

svn設定ファイルを弄る

まず先にsudo a2enmod dav dav_svnを実行し、davとdav_svnを有効にします

僕の環境では/etc/apache2/mods-enabled/dav_svn.confにある設定ファイルを弄りました

sudo vim /etc/apache2/mods-enabled/dav_svn.confを実行

<Location /svn>
     DAV svn
     SVNParentPath /home/gn5r/svn
     AuthType Basic
     AuthName "Subversion Repository"
     AuthUserFile /etc/apache2/dav_svn.passwd
     Require valid-user
</Location>

接続テスト

ブラウザーのURL欄に192.168.10.111/svn/sampleを入力

ユーザー名とパスワードの入力を促されるので先ほど作成したユーザーとパスワードを入力します

f:id:gn5r:20190825141511p:plain

この様にsvnリポジトリーが表示されれば無事設定が完了です