GNU / LinuxでSubversion(SVN)サーバーを設定する方法-Ubuntu [終了]


95

私はSubversionサーバーとして動作させたいUbuntuを実行しているラップトップを持っています。私自身がローカルでコミットすることと、他の人がリモートでコミットすることの両方。これを機能させるために必要な手順は何ですか?次の手順を含めてください:

  • Apacheと必要なモジュールを入手して構成します(SVNサーバーを作成する方法は他にもあることはわかっていますが、Apache固有にしたいのですが)。
  • サーバーにアクセスする安全な方法を構成する(SSH / HTTPS)
  • 承認されたユーザーのセットを構成します(ユーザーはコミットすることを承認されている必要がありますが、閲覧は自由です)。
  • 初期コミット(「Hello world」のようなもの)でセットアップを検証する

これらの手順には、コマンドラインまたはGUIアプリケーションの指示の混合が含まれる場合があります。可能であれば、手順が特定のディストリビューションまたはバージョンに固有であり、ユーザーが選択した特定のツールを代わりに使用できる場所(viの代わりにnanoなど)に注意してください。


UbuntuでSubversionサーバーを、どのプラットフォームでクライアントを使用できますか?WindowsのTortoise SVNクライアントのように?
Raheel Hasan、2015

回答:


146

ラップトップをSubversionサーバーにするために取った手順。クレジットは、ここでの指示のためにAlephZarroに行く必要があります。現在、SVNサーバーが動作しています(現在、ローカルでのみテストされています)。

特定のセットアップ:Kubuntu 8.04 Hardy Heron

このガイドに従うための要件:

  • apt-getパッケージマネージャープログラム
  • テキストエディター(私はケイトを使用)
  • sudoアクセス権

1:Apache HTTPサーバーと必要なモジュールをインストールします。

sudo apt-get install libapache2-svn apache2

次の追加パッケージがインストールされます。

apache2-mpm-worker apache2-utils apache2.2-common

2:SSLを有効にする

sudo a2enmod ssl
sudo kate /etc/apache2/ports.conf

追加するか、以下がファイルにあることを確認します。

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

3:SSL証明書を生成します。

sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl
sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

4:仮想ホストを作成する

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver
sudo kate /etc/apache2/sites-available/svnserver

変更(ports.conf内):

"NameVirtualHost *" to "NameVirtualHost *:443"

および(svnserver内)

<VirtualHost *> to <VirtualHost *:443>

ServerAdminの下に追加します(ファイルsvnserverにも):

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

5:サイトを有効にします。

sudo a2ensite svnserver
sudo /etc/init.d/apache2 restart

警告を克服するには:

sudo kate /etc/apache2/apache2.conf

追加:

"ServerName $your_server_name"

6:リポジトリの追加:次の設定では、複数のリポジトリをホストすることを想定しています。これを実行して、最初のリポジトリを作成します。

sudo mkdir /var/svn

REPOS=myFirstRepo
sudo svnadmin create /var/svn/$REPOS
sudo chown -R www-data:www-data /var/svn/$REPOS
sudo chmod -R g+ws /var/svn/$REPOS

6.a. より多くのリポジトリーの場合:ステップ6を再度実行し(REPOSの値を変更)、ステップをスキップします。mkdir /var/svn

7:認証済みユーザーを追加する

sudo htpasswd -c -m /etc/apache2/dav_svn.passwd $user_name

8:WebDAVおよびSVNを有効にして構成します。

sudo kate /etc/apache2/mods-available/dav_svn.conf

追加またはコメント解除:

<Location /svn>
DAV svn

# for multiple repositories - see comments in file
SVNParentPath /var/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL
</Location>

9:Apacheサーバーを再起動します。

sudo /etc/init.d/apache2 restart

10:検証:

ブラウザを起動しました:

http://localhost/svn/$REPOS
https://localhost/svn/$REPOS

どちらもユーザー名とパスワードが必要です。私はコメントを外すと思います:

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>

では/etc/apache2/mods-available/dav_svn.conf、匿名の閲覧を許可します。

ブラウザに「Revision 0:/」と表示されます

何かをコミットする:

svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing”

証明書を受け入れ、パスワードを入力します。コミットしたばかりの内容を確認してください。

svn co --username $user_name https://localhost/svn/$REPOS

これらの手順(エラーのコピー/貼り付けを行っていないと想定)に従って、ラップトップにSVNリポジトリが機能していました。


指示は、Jauntyでも完全に機能しました。ありがとう!
マイケル・ムーサ、

6
完全に機能しているように見えましたが、アクセスしようとすると403が禁止され、パスワードの入力を求められません。何が悪いのかについてのヒントはありますか?
korona

@korona:どのようにアクセスするか:SVNコマンドを実行するか、それを参照するか?
Grundlefleck 2010

1
"NameVirtualHost *" to "NameVirtualHost *:443"<VirtualHost *> to <VirtualHost *:443>svnserver設定にあり、ports.confにあります。これについて言及する必要があります。NameVirtualHostのsvnserver設定を検索して見つけられなかったため、かなり混乱しました。
ワンダン2012

1
Debian Stretch libapache2-mod-svnでは、代わりにインストールする必要があるようですlibapache2-svn(後者は利用できなくなったため)。
TheStoryCoder 2017

2

その後、私は実行する必要がありました(上記で引用した例のコンテキスト内で)

$ sudo chmod g + w /var/svn/$REPOS/db/rep-cache.db

$ sudo chown www-data:www-data /var/svn/$REPOS/db/rep-cache.db

そうしないと、ローカルの変更をコミットするときに409エラーが発生し続けました(コミットメントはサーバー側で有効でしたが、ローカルの更新を追跡する必要がありました)。


1

この記事は、プロセス全体のかなり良い要約を与えるようです。指示に従って、私や他の人々がこれらの回答でリンクした記事で取り上げられていない問題について、より具体的な質問を投稿することをお勧めします。


1

Webサーバーにアクセスしたときに403が禁止された場合は、構成ファイルで指定したホスト名(localhostまたは127.0.0.1)と異なるホスト名を使用したことが原因である可能性があります。代わりにhttps:// whateveryousetasyourhostname押してみてください...


別の403原因:svnパスをシンボリックリンクに設定します。svnパスがシンボリックリンクの場合、シンボリックリンクをたどることを許可する必要があります。
copolii

-2

端末で単一のコマンドを記述してください。

ターミナルを開くには、Ctrl+ Alt+ を押してTから、次のコマンドを入力してください:

$sudo apt-get install subversion

-2

Apacheの場合:

sudo apt-get -yq install apache2

SSHの場合:

sudo apt-get -yq install openssh-server

Subversionの場合:

sudo apt-get -yq install subversion subversion-tools

必要に応じて、これらを次のような1つのコマンドに組み合わせることができます。

sudo apt-get -yq install apache2 openssh-server subversion subversion-tools

残りはどうしようもない...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.