Conseil : L'environnement système de cet article est : ubuntu-22.04.1-live-server-amd64, différents systèmes et différents numéros de version du système peuvent avoir des méthodes d'installation différentes à certains endroits ;
1. Vérifiez s'il est installé
svnserve --version
Si le système a déjà été installé, désinstallez-le d'abord
sudo apt-get remove --purge subversion
2. Installez SVN
Mettre à jour le système avant l'installation
sudo apt-obtenir la mise à jour
installer la subversion
sudo apt-get install subversion
Créer un dossier de référentiel
sudo mkdir -p /home/svn # Utilisez /home/svn comme adresse d'entrepôt, le chemin de l'adresse d'entrepôt peut être modifié par vous-même
sudo chmod -R 777 /home/svn # Modifiez les autorisations, si vous utilisez l'accès utilisateur root, tu n'as pas besoin de changer
Créer un référentiel
svnadmin créer /home/svn/repos
Remarques : 1. Créez un dépôt de bibliothèque de versions, où repos est le nom de la bibliothèque de versions
2. La bibliothèque de version est liée au chemin d'accès, ici le nom doit correspondre au chemin d'accès.
Tels que : svn://adresse IP/dépôt
Une fois terminé, les fichiers suivants seront générés dans le dossier repos
authz
crochets-env.tmpl
passwd
svnserve.conf
Ensuite, définissez les autorisations sur la base de données
cd /home/svn/dépôt
chmod -R 777 db
3. Configuration SVN
Définir les autorisations d'accès : vous devez modifier les fichiers dans le dossier conf
vim conf/svnserve.conf
Modifiez simplement quelques configurations :
#Les utilisateurs anonymes peuvent lire anon-access = read (il est recommandé de passer à none, c'est-à-dire illisible)
#Les utilisateurs autorisés peuvent écrire auth-access = écrire
#Le fichier de mot de passe est password-db = passwd
#Le fichier d'autorisation est authzauthz-db = authz
Remarque : supprimez le # devant et en haut de la grille, sinon une erreur peut être signalée
Modifier le fichier passwd et ajouter des utilisateurs d'accès
vim conf/passwd
[utilisateurs]
# harry = harryssecret
# sally = sallyssecret
xiaoming = 123456wang = 123456
Modifier les autorisations d'authentification
[groupes]
admin = xiaoming #Administrator user, a les autorisations de lecture et d'écriture les plus élevéesnormal = wang #Utilisateur normal, n'a que l'autorisation de lecture
[/] # / représente tous les projets, c'est-à-dire que différents entrepôts ont des autorisations communes
@admin = rw@normal = r
Description de cette rubrique
Le [/] ci-dessus signifie autoriser le répertoire racine, c'est-à-dire que les membres du groupe d'utilisateurs ont des autorisations communes pour tous les projets. Si nous voulons définir différentes autorisations pour différents projets, nous pouvons procéder comme suit
[JAVA:/]
Heath = rw //Indique que l'utilisateur Heath a les permissions de lecture et d'écriture sur tout le contenu du projet JAVA
Liu = r //Indique que l'utilisateur Liu n'a qu'un accès en lecture à tout le contenu du projet JAVA
[Python:/]
Ming = rw //Indique que l'utilisateur Ming a les permissions de lecture et d'écriture sur tout le contenu du projet Python
Tao = r //Indique que l'utilisateur Tao n'a qu'un droit de lecture sur tout le contenu du projet Python
La méthode ci-dessus peut garantir que Heath n'a que l'autorisation de lecture et d'écriture du projet JAVA, et n'a aucune autorisation du projet Python, ce qui garantit la sécurité des informations et la sécurité du projet parmi les membres de l'équipe de projet, et facilite la gestion au sein de l'équipe de projet. membres.
4. Démarrez SVN
svnserve -d -r /home/svn
Remarques : 1. Ne démarrez pas svnserve -d -r /home/svn/repos comme ceci
2. Démarrez le serveur SVN, voici les instructions : -d : signifie s'exécuter en arrière-plan -r : spécifiez le répertoire racine du serveur
5. Fermez SVN
killall svnserve
6. Accéder au SVN
svn://adresse IP/dépôt
svn utilise le port 3690 par défaut
Vérifiez si svnserve est déjà en cours d'exécution
ps aux | grep svnserve
7. Testez SVN
Copier le référentiel :
svn co svn://192.168.6.221:3690/repos --username xiaoming --password 123456
vérifier:
svn checkout svn://192.168.6.221:3690/repos
Analyse des causes d'échec d'accès :
1. Vérifiez si la configuration est correcte
2. Si le port 3690 est ouvert
3. Si le chemin d'accès est correct
vérifier le port
Afficher le port de pare-feu réseau 3690 ouvrir
firewall-cmd --list-allLe port 3690 n'est pas ouvert au monde extérieur, exécutez la commande suivante pour ouvrir
firewall-cmd --zone=public --add-port=3690/tcp --permanentRechargez le pare-feu, cette étape est très importante, sinon le port ajouté ne prendra pas effet
firewall-cmd --reloadAfin de protéger la sécurité de l'hôte du serveur, il est recommandé d'ouvrir le pare-feu
8. Configurez le système pour démarrer automatiquement SVN
Après le redémarrage du système d'exploitation Ubuntu, svnserve doit être démarré manuellement et nous pouvons l'ajouter manuellement à la liste de démarrage du système d'exploitation.
Ajoutez le script de démarrage /etc/init.d/subversion.sh comme suit
#!/bin/bash
svnserve -d -r /home/svn/repos --log-file=/home/svn/svn.log
exit 0
Modifier les propriétés du fichier de script
chmod 755 /etc/init.d/subversion.sh
Utilisez la commande suivante pour connecter le script au répertoire de démarrage
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
Le résultat est le suivant :
De cette façon, après le redémarrage du système d'exploitation, le service svnserve démarrera automatiquement