SVN - Ortam Kurulumu

SVN Kurulumu

Subversion, popüler bir açık kaynaklı sürüm kontrol aracıdır. Açık kaynaklıdır ve internet üzerinden ücretsiz olarak kullanılabilir. GNU / Linux dağıtımlarının çoğunda varsayılan olarak gelir, bu nedenle zaten sisteminize yüklenmiş olabilir. Yüklü olup olmadığını kontrol etmek için aşağıdaki komutu kullanın.

[jerry@CentOS ~]$ svn --version

Subversion istemcisi kurulu değilse, komut hata bildirecek, aksi takdirde kurulu yazılımın sürümünü gösterecektir.

[jerry@CentOS ~]$ svn --version
-bash: svn: command not found

RPM tabanlı GNU / Linux kullanıyorsanız, yumkurulum için komut. Başarılı bir kurulumdan sonra,svn --version komut.

[jerry@CentOS ~]$ su -
Password: 
[root@CentOS ~]# yum install subversion

[jerry@CentOS ~]$ svn --version
svn, version 1.6.11 (r934486)
compiled Jun 23 2012, 00:44:03

Debian tabanlı GNU / Linux kullanıyorsanız, apt kurulum için komut.

[jerry@Ubuntu]$ sudo apt-get update
[sudo] password for jerry:

[jerry@Ubuntu]$ sudo apt-get install subversion

[jerry@Ubuntu]$ svn --version
svn, version 1.7.5 (r1336830)
compiled Jun 21 2013, 22:11:49

Apache Kurulumu

Subversion istemcisinin GNU / Linux üzerine nasıl kurulacağını gördük. Yeni bir havuzun nasıl oluşturulacağını ve kullanıcılara erişime izin verileceğini görelim.

Sunucuya yüklememiz gerekiyor Apache httpd modül ve svnadmin aracı.

[jerry@CentOS ~]$ su -
Password: 
[root@CentOS ~]# yum install mod_dav_svn subversion

mod_dav_svn paketi, Apache httpd sunucusu aracılığıyla HTTP kullanarak bir havuza erişime izin verir ve subversion paket svnadmin aracını yükler.

Subversion, yapılandırmasını şuradan okur: /etc/httpd/conf.d/subversion.confdosya. Yapılandırmayı ekledikten sonra,subversion.conf dosya aşağıdaki gibi görünür:

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
   AuthType Basic
   AuthName "Authorization Realm"
   AuthUserFile /etc/svn-users
   Require valid-user
</Location>

Subversion kullanıcıları oluşturalım ve onlara depoya erişim izni verelim. htpasswd komutu, HTTP kullanıcılarının temel kimlik doğrulaması için kullanıcı adlarını ve şifreleri saklamak için kullanılan düz metin dosyalarını oluşturmak ve güncellemek için kullanılır . '-c' seçenekleri parola dosyası oluşturur , eğer parola dosyası zaten varsa üzerine yazılır. Bu nedenle '-c' seçeneğini yalnızca ilk seferde kullanın. '-m' seçeneği, parolalar için MD5 şifrelemesini etkinleştirir.

Kullanıcı Kurulumu

Kullanıcı oluşturalım tom.

[root@CentOS ~]# htpasswd -cm /etc/svn-users tom
New password: 
Re-type new password: 
Adding password for user tom

Kullanıcı oluşturalım jerry

[root@CentOS ~]# htpasswd -m /etc/svn-users jerry
New password: 
Re-type new password: 
Adding password for user jerry
[root@CentOS ~]#

Tüm işi depolamak için Subversion ana dizini oluşturun (bkz. /Etc/httpd/conf.d/subversion.conf ).

[root@CentOS ~]# mkdir /var/www/svn
[root@CentOS ~]# cd /var/www/svn/

Depo Kurulumu

Project_repo adlı bir proje deposu oluşturun . svnadmin komutu yeni bir depo ve bunun içinde meta verileri depolamak için birkaç başka dizin oluşturacaktır.

[root@CentOS svn]# svnadmin create project_repo

[root@CentOS svn]# ls -l project_repo
total 24
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 conf
drwxr-sr-x. 6 root root 4096 Aug  4 22:30 db
-r--r--r--. 1 root root    2 Aug  4 22:30 format
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 hooks
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 locks
-rw-r--r--. 1 root root  229 Aug  4 22:30 README.txt

Deponun kullanıcı ve grup sahipliğini değiştirelim.

[root@CentOS svn]# chown -R apache.apache project_repo/

SELinux'un etkin olup olmadığını kontrol edin SELinux durum aracını kullanın.

[root@CentOS svn]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

Sunucumuz için SELinux etkinleştirildi, bu nedenle SELinux güvenlik içeriğini değiştirmemiz gerekiyor.

[root@CentOS svn]# chcon -R -t httpd_sys_content_t /var/www/svn/project_repo/

HTTP üzerinden işlemlere izin vermek için aşağıdaki komutu uygulayın.

[root@CentOS svn]# chcon -R -t httpd_sys_rw_content_t /var/www/svn/project_repo/

Apache sunucusunu yeniden başlatın ve Apache sunucusunun yapılandırmasını tamamladık.

[root@CentOS svn]# service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: httpd: apr_sockaddr_info_get() failed for CentOS
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
[root@CentOS svn]# service httpd status
httpd (pid  1372) is running...
[root@CentOS svn]#

Apache sunucusunu başarıyla yapılandırdık, şimdi depoyu yapılandıracağız. Yalnızca gerçek kullanıcılara arşiv erişimi sağlamak ve varsayılan yetkilendirme dosyasını kullanmak; project_repo / conf / svnserve.conf dosyasına aşağıdaki satırları ekleyin .

anon-access = none
authz-db = authz

Geleneksel olarak, her Subversion projesinde trunk, tags, ve branches doğrudan projenin kök dizini altındaki dizinler.

Ana hat , tüm ana geliştirmenin gerçekleştiği bir dizindir ve genellikle proje üzerinde çalışmak için geliştiriciler tarafından kontrol edilir.

Etiketler dizin projesi mağaza isimli anlık için kullanılır. Bir üretim sürümü oluştururken ekip, sürüme giren kodu etiketleyecektir.

Dalları Eğer gelişmenin farklı çizgileri takip etmek istediğinizde dizini kullanılır.

Bize yaratalım bagajı, etiketleri ve dalları proje depo altında dizin yapısını.

[root@CentOS svn]# mkdir /tmp/svn-template
[root@CentOS svn]# mkdir /tmp/svn-template/trunk
[root@CentOS svn]# mkdir /tmp/svn-template/branches
[root@CentOS svn]# mkdir /tmp/svn-template/tags

Şimdi dizinleri buradan içe aktarın /tmp/svn-template depoya.

[root@CentOS svn]# svn import -m 'Create trunk, branches, tags directory structure' /tmp/svn-template/ 
Adding         /tmp/svn-template/trunk
Adding         /tmp/svn-template/branches
Adding         /tmp/svn-template/tags
Committed revision 1.
[root@CentOS svn]#

Bu bitti! Depoyu başarıyla oluşturduk ve erişim izni verdikTom ve Jerry. Şu andan itibaren, desteklenen tüm işlemleri arşive gerçekleştirebilirler.