Raspberry PI に SVNインストール

  • SVNことSubVersionをインストールして使えるようにしてみる。
  • Apache2インストール
    • 外部に公開するリポジトリの場合はApacheでHTTP公開になるということか。他にも方法あるのかもだけど。

      sudo apt-get install apache2

  • SVNインストール
    • で、Apache2でsvn使う為にモジュールがいると。

      sudo apt-get install subversion subversion-tools libapache2-svn

  • SVNリポジトリ作成
    • ディレクトリは自動作成か? と思いきやそんなことは無かったので mkdir で作る。
      svn ディレクトリ作って rep1 ディレクトリ作ってというのはめんどいので -p オプションで一気に。

      sudo mkdir -p /home/svn/rep1
      sudo svnadmin create /home/svn/rep1

  • Apache2 のSVN関連設定を変更
    • リポジトリに使うディレクトリのマッピングや認証方式の定義をここでやる模様。
      既存のコメントを適宜外していく。

      sudo nano /etc/apache2/mods-enabled/dav_svn.conf

      <Location /svn>
       # 有効化
       DAV svn
       
       # マッピング
       SVNParentPath /home/svn
       
       # 認証方式
       AuthType Basic
       AuthName "Subversion Repository"
       AuthUserFile /etc/apache2/dav_svn.passwd
       
       # 認証設定ファイル
       <IfModule mod_authz_svn.c>
        AuthzSVNAccessFile /etc/apache2/dav_svn.authz
       </IfModule>
       
       # 匿名アクセスを許可? いらないかも
       <LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
        </LimitExcept>
      </Location>
  • ユーザー追加
    • とりあえず user1 追加。-c オプションはファイル作成時のみ付ける。
      テキストファイルなのでユーザー情報は more とかで見れる。

      sudo htpasswd -c /etc/apache2/dav_svn.passwd user1

  • ユーザー削除
    • 削除は -D オプション。

      sudo htpasswd -D /etc/apache2/dav_svn.passwd user1

  • ユーザー権限ファイル
    • 適当に。外部公開しないなら [/] に 全ユーザー許可(* = rw) でもいいかも

      sudo nano /etc/apache2/dav_svn.authz

      # [RepName:Path]
      # username | @groupname = [rw]
      
      # Group
      [groups]
      group1 = test1, test2
      
      # All user read only
      [/]
      * = r [#he8f8438]
      
      # rep1: testuser write
      [rep1:/]
      @group1=rw
  • リポジトリのディレクトリの権限変更
    • Apache2 のデフォルト実行ユーザー www-data (/etc/apache2/envvers で定義)を所有者にする

      sudo chown -R www-data.www-data /home/svn

  • Apache2 再起動

    sudo /etc/init.d/apache2 restart

  • テスト