Ubuntu 20.04サーバーがSVNバージョン管理システムを構築

 ヒント: この記事のシステム環境は ubuntu-22.04.1-live-server-amd64 です。システムやシステム バージョン番号が異なると、場所によってはインストール方法が異なる場合があります。

1. インストールされているか確認する

svnserve --version

システムがすでにインストールされている場合は、最初にアンインストールしてください

sudo apt-get delete --purge subversion

2.SVNをインストールする

インストールする前にシステムをアップデートしてください

sudo apt-get アップデート

サブバージョンをインストールする

sudo apt-get インストール Subversion

リポジトリフォルダを作成する

sudo mkdir -p /home/svn   # ウェアハウスアドレスとして /home/svn を使用します。ウェアハウスアドレスのパスは自分で変更できます
sudo chmod -R 777 /home/svn   # 権限を変更します(root ユーザーアクセスを使用する場合、変える必要はありません

リポジトリの作成

svnadmin 作成 /home/svn/repos   

注: 1. バージョン ライブラリ リポジトリを作成します。ここで、リポジトリはバージョン ライブラリの名前です。

            2. バージョンライブラリはアクセスパスに関連付けられているため、名前はアクセスパスに対応している必要があります。

                 例: svn://ip アドレス/repos

完了すると、reposフォルダ配下に以下のファイルが生成されます。

authz
フック-env.tmpl
passwd
svnserve.conf

次に、データベースにアクセス許可を設定します

cd /home/svn/repos 
chmod -R 777 db

3. SVNの設定

アクセス許可を設定します。conf フォルダー内のファイルを変更する必要があります。

vim conf/svnserve.conf


いくつかの構成を変更するだけです。

        #匿名ユーザーは anon-access = read を読み取ることができます (none、つまり読み取り不能に変更することをお勧めします)

        #ユーザーが書き込みできる権限 auth-access = write

        #パスワードファイルはpassword-db = passwdです

        #許可ファイルは authzauthz-db = authz です。
注: グリッドの先頭にある # を削除します。そうしないと、エラーが報告される可能性があります。

passwdファイルを変更し、アクセスユーザーを追加します。

vim conf/パスワード

[ユーザー]
# ハリー = ハリーシークレット
# サリー = サリーシークレット
シャオミン = 123456

王 = 123456

認証権限を変更する

[グループ]
admin = xiaoming #Administrator ユーザー。最高の読み取りおよび書き込み権限を持ちます。

Normal = wang #通常のユーザー、読み取り権限のみを持ちます
[/] # / はすべてのプロジェクトを表します。つまり、異なるウェアハウスに共通の権限があります
@admin = rw

@normal = r

 このセクションの説明

上記の [/] はルート ディレクトリを承認することを意味します。つまり、ユーザー グループのメンバーはすべてのプロジェクトに対して共通の権限を持ちます。異なるプロジェクトに異なる権限を設定したい場合は、次のようにします。

[JAVA:/]

Heath = rw //ユーザー Heath がプロジェクト JAVA のすべてのコンテンツに対する読み取りおよび書き込み権限を持っていることを示します

Liu = r //ユーザー Liu にはプロジェクト JAVA のすべてのコンテンツへの読み取りアクセスのみがあることを示します

[パイソン:/]

Ming = rw //ユーザー Ming がプロジェクト Python のすべてのコンテンツに対する読み取りおよび書き込み権限を持っていることを示します

Tao = r //ユーザー Tao にはプロジェクト Python のすべてのコンテンツに対する読み取り権限のみがあることを示します

上記の方法により、Heath が JAVA プロジェクトの読み取りおよび書き込み権限のみを持ち、Python プロジェクトの権限を持たないことを保証できます。これにより、プロジェクト チーム メンバー間の情報セキュリティとプロジェクト セキュリティが確保され、プロジェクト チーム間の管理が容易になります。メンバー。

4.SVNを起動する

svnserve -d -r /home/svn

注意: 1. このように svnserve -d -r /home/svn/repos を起動しないでください。

           2. SVN サーバーを起動します。手順は次のとおりです。 -d: バックグラウンドで実行することを意味します。 -r: サーバーのルート ディレクトリを指定します。

5.SVNを閉じる

killall svnserve

6.SVNにアクセスする

svn://IP アドレス/リポジトリ

svn はデフォルトでポート 3690 を使用します

 svnserve が既に実行されているかどうかを確認する

ps 補助 | grep svnserve

 7. SVN のテスト

 リポジトリをコピーします:

svn co svn://192.168.6.221:3690/repos --username xiaoming --password 123456

チェックアウト:

svn チェックアウト svn://192.168.6.221:3690/repos

 アクセス失敗の理由の分析:

1. 設定が正しいかどうかを確認してください
。 2. ポート 3690 が開いているか
どうかを確認してください。 3. アクセスパスが正しいかどうかを確認してください。

 ポートをチェックする

ネットワーク ファイアウォール ポート 3690 を表示します。
firewall-cmd --list-allを開きます。

ポート 3690 は外部に開かれていません。次のコマンドを実行して
firewall-cmd --zone=public --add-port=3690/tcp --permanent を開きます。

ファイアウォールをリロードします。この手順は非常に重要です。そうしないと、追加されたポートが有効になりません
firewall-cmd --reload

サーバーホストのセキュリティを保護するために、ファイアウォールを開くことをお勧めします。

 8. SVN を自動的に開始するようにシステムを構成する

ubuntu オペレーティング システムを再起動した後、svnserve を手動で開始する必要があります。これをオペレーティング システムのスタートアップ リストに手動で追加できます。


次のように起動スクリプト /etc/init.d/subversion.sh を追加します。

#!/bin/bash
svnserve -d -r /home/svn/repos --log-file=/home/svn/svn.log
exit 0

スクリプトファイルのプロパティを変更する

chmod 755 /etc/init.d/subversion.sh

次のコマンドを使用して、スクリプトを起動ディレクトリに接続します。

ln -s /etc/init.d/subversion /etc/rc3.d/S03subversion
ln -s /etc/init.d/subversion /etc/rc4.d/S03subversion
ln -s /etc/init.d/subversion / etc/rc5.d/S03subversion

結果は次のとおりです。


このようにして、オペレーティング システムの再起動後、svnserve サービスが自動的に開始されます。

おすすめ

転載: blog.csdn.net/weixin_43824829/article/details/127637638