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
を入力
ユーザー名とパスワードの入力を促されるので先ほど作成したユーザーとパスワードを入力します