RHEL esasly Linux paýlamalarynda SVN-i nädip gurmaly


C programmirleme dilinde ýazylan Apache Subversion, köplenç SVN diýip gysgaldylan, faýllaryň we kataloglaryň taryhy wersiýalaryny yzarlaýan erkin we açyk çeşme wersiýa dolandyryş ulgamy.

Plyönekeý söz bilen aýdylanda, SVN ulanyjylara faýllara girizilen üýtgeşmeleri her faýlda üýtgeşmeleri yzarlaýan ammarda ibermäge mümkinçilik berýän wersiýa yzarlaýjysydyr. Ammar faýl serwerine meňzeýär. Tapawut, üýtgeşmeleri yzarlaýar we koduň köne wersiýalaryny dikeltmäge ýa-da faýl üýtgemeleriniň taryhyny barlamaga mümkinçilik berýär.

Bu makalada CentOS, Fedora, Rocky Linux we AlmaLinux ýaly RHEL esasly Linux paýlamalarynda SVN-i nädip gurmalydygyna ünsi çekýäris.

1-nji ädim: Linux-da Apache Subversion (SVN) guruň

Ilki bilen Subversion we onuň bilen baglanyşykly paketleri görkezilişi ýaly gurmakdan başlaýarys.

$ sudo dnf install mod_dav_svn subversion

Buýruk, öň gurulmadyk bolsa, Apache HTTP web serwerini hem gurýar. Apache başlap, ýagdaýyny aşakdaky ýaly barlap bilersiňiz.

$ sudo systemctl start httpd
$ sudo systemctl status httpd

2-nji ädim: SVerli SVN ammaryny dörediň we sazlaň

SVN gurlansoň, indiki ädim faýllary we kodlary saklamak üçin ammar döretmek bolar.

Ilki bilen kody saklajak SVN katalogyňyzy dörediň.

$ sudo mkdir -p /var/www/svn

Ondan soň, kataloga geçiň we svadmin create buýrugyny ulanyp ammar dörediň:

$ cd /var/www/svn/
$ sudo svadmin create demo_repo

Ondan soň, SVN katalogyna rugsat beriň.

$ sudo chown -R apache.apache /var/www/svn

3-nji ädim: Subversion konfigurasiýa faýly dörediň

Subversion konfigurasiýa faýly döretmeli.

$ sudo vim /etc/httpd/conf.d/subversion.conf

Aşakdaky setirleri goşuň.

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so


<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn

   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "Subversion repo"
      AuthUserFile /etc/svn-auth-users
      Require valid-user
   </LimitExcept>
</Location>

Üýtgeşmeleri ýazdyryň we çykyň.

4-nji ädim: Ygtyýarly subversion ulanyjylary dörediň

Indiki ädim Subversion ulanyjylaryny döretmek, ýagny Subversion ammaryna girmäge ygtyýarly ulanyjylary döretmek. Ilkinji ulanyjyny döretmek üçin -cm opsiýasy bilen htpasswd buýrugyny ulanyň. Parollar/etc/svn-auth-users faýlynda saklanýar.

$ sudo htpasswd -cm /etc/svn-auth-users svnuser1

Ondan soňky ulanyjylary döretmek üçin -c opsiýasyny taşlaň we diňe -m opsiýasyny ulanyň.

$ sudo htpasswd -m /etc/svn-auth-users svnuser2
$ sudo htpasswd -m /etc/svn-auth-users svnuser3

Edilen üýtgeşmeleri ulanmak üçin Apache web serwerini täzeden açyň.

$ sudo systemctl restart httpd

5-nji ädim: SVN üçin Firewall we SELinux sazlaň

Gorag diwaryndaky HTTP traffigine aşakdaky ýaly rugsat beriň:

$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --reload

Mundan başga-da, ammarda aşakdaky SELinux düzgünlerini ulanyň.

$ sudo chcon -R -t httpd_sys_content_t  /var/www/svn/demo_repo
$ sudo chcon -R -t httpd_sys_rw_content_t /var/www/svn/demo_repo

6-njy ädim: Brauzerden SVN-e girmek

SVN ammaryna brauzerden girmek üçin diňe URL-e giriň.

http://server-ip/svn/demo_repo

SVN ammaryny ulanyp başlamak üçin, svn barlag buýrugyny ulanyp, häzirki işleýän katalogyňyzda SVN ammarynyň iş nusgasyny döretmeli.

$ svn checkout URL 

Käbir faýllary goşmak üçin klonlanan kataloga geçiň:

$ cd demo_repo

Käbir demo faýllaryny dörediň:

$ touch file1.txt file2.txt file3.txt

Faýllary SVN-e goşuň.

$ svn add file1.txt file2.txt file3.txt

Soňra faýllary ammarda aşakdaky ýaly ýerine ýetiriň:

$ svn commit -m "Adding new files" file1.txt file2.txt file3.txt

Şahsy maglumatlaryňyz bilen tassyklaň we ammarlara faýllar goşular.

Muny brauzere gaýdyp, tassyklap bilersiňiz.

Bu bolsa RHEL, CentOS, Fedora, Rocky Linux we AlmaLinux-da SVN-ni nädip gurmalydygy baradaky gollanmamyzy tamamlaýar.