ヒント: この記事のシステム環境は 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 サービスが自動的に開始されます。