SVN - การตั้งค่าสภาพแวดล้อม
การติดตั้ง SVN
การโค่นล้มเป็นเครื่องมือควบคุมเวอร์ชันโอเพนซอร์สยอดนิยม เป็นโอเพ่นซอร์สและให้บริการฟรีทางอินเทอร์เน็ต โดยค่าเริ่มต้นจะมาพร้อมกับการแจกแจง GNU / Linux ส่วนใหญ่ดังนั้นจึงอาจติดตั้งไว้ในระบบของคุณแล้ว ตรวจสอบว่าติดตั้งหรือไม่ใช้คำสั่งต่อไปนี้
[jerry@CentOS ~]$ svn --version
หากไม่ได้ติดตั้งไคลเอนต์ Subversion คำสั่งจะรายงานข้อผิดพลาดมิฉะนั้นจะแสดงเวอร์ชันของซอฟต์แวร์ที่ติดตั้ง
[jerry@CentOS ~]$ svn --version
-bash: svn: command not found
หากคุณใช้ GNU / Linux ที่ใช้ RPM ให้ใช้ไฟล์ yumคำสั่งสำหรับการติดตั้ง หลังจากติดตั้งสำเร็จให้เรียกใช้ไฟล์svn --version คำสั่ง
[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
และถ้าคุณใช้ GNU / Linux ที่ใช้ Debian ให้ใช้ apt คำสั่งสำหรับการติดตั้ง
[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
เราได้เห็นวิธีการติดตั้ง Subversion client บน GNU / Linux ให้เราดูวิธีสร้างที่เก็บใหม่และอนุญาตให้เข้าถึงผู้ใช้
บนเซิร์ฟเวอร์เราต้องติดตั้ง Apache httpd โมดูลและ svnadmin เครื่องมือ.
[jerry@CentOS ~]$ su -
Password:
[root@CentOS ~]# yum install mod_dav_svn subversion
mod_dav_svn แพ็คเกจอนุญาตให้เข้าถึงที่เก็บโดยใช้ HTTP ผ่านเซิร์ฟเวอร์ Apache httpd และ subversion แพคเกจติดตั้งเครื่องมือ svnadmin
การโค่นล้มอ่านการกำหนดค่าจาก /etc/httpd/conf.d/subversion.confไฟล์. หลังจากเพิ่มการกำหนดค่าแล้วsubversion.conf ไฟล์มีลักษณะดังนี้:
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 และให้สิทธิ์เข้าถึงที่เก็บ คำสั่งhtpasswdใช้เพื่อสร้างและอัพเดตไฟล์ข้อความธรรมดาซึ่งใช้ในการจัดเก็บชื่อผู้ใช้และรหัสผ่านสำหรับการพิสูจน์ตัวตนพื้นฐานของผู้ใช้ HTTP ตัวเลือก '-c' สร้างรหัสผ่านไฟล์ถ้ารหัสผ่านไฟล์ที่มีอยู่แล้วก็ถูกเขียนทับ นั่นคือเหตุผลที่ใช้ตัวเลือก '-c' ในครั้งแรกเท่านั้น ตัวเลือก '-m' เปิดใช้งานการเข้ารหัส MD5 สำหรับรหัสผ่าน
การตั้งค่าผู้ใช้
ให้เราสร้างผู้ใช้ tom.
[root@CentOS ~]# htpasswd -cm /etc/svn-users tom
New password:
Re-type new password:
Adding password for user tom
ให้เราสร้างผู้ใช้ jerry
[root@CentOS ~]# htpasswd -m /etc/svn-users jerry
New password:
Re-type new password:
Adding password for user jerry
[root@CentOS ~]#
สร้างไดเร็กทอรีหลักของการโค่นล้มเพื่อจัดเก็บงานทั้งหมด (ดู/etc/httpd/conf.d/subversion.conf )
[root@CentOS ~]# mkdir /var/www/svn
[root@CentOS ~]# cd /var/www/svn/
การตั้งค่าที่เก็บ
สร้างพื้นที่เก็บข้อมูลโครงการชื่อproject_repo คำสั่งsvnadminจะสร้างที่เก็บใหม่และไดเร็กทอรีอื่น ๆ ภายในที่เก็บข้อมูลเมตา
[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
ให้เราเปลี่ยนผู้ใช้และความเป็นเจ้าของกลุ่มของที่เก็บ
[root@CentOS svn]# chown -R apache.apache project_repo/
ตรวจสอบว่าเปิดใช้งานSELinuxหรือไม่โดยใช้เครื่องมือสถานะ SELinux
[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
สำหรับเซิร์ฟเวอร์ของเรา SELinux ถูกเปิดใช้งานดังนั้นเราจึงต้องเปลี่ยนบริบทการรักษาความปลอดภัย SELinux
[root@CentOS svn]# chcon -R -t httpd_sys_content_t /var/www/svn/project_repo/
ในการอนุญาตให้คอมมิตผ่าน HTTP ให้รันคำสั่งต่อไปนี้
[root@CentOS svn]# chcon -R -t httpd_sys_rw_content_t /var/www/svn/project_repo/
รีสตาร์ทเซิร์ฟเวอร์ Apache และดำเนินการกับการกำหนดค่าเซิร์ฟเวอร์ Apache
[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 เรียบร้อยแล้วตอนนี้เราจะกำหนดค่าที่เก็บ เพื่อให้การเข้าถึงที่เก็บแก่เฉพาะผู้ใช้ที่แท้จริงและใช้ไฟล์การอนุญาตเริ่มต้น ผนวกบรรทัดต่อไปนี้เพื่อproject_repo / conf / svnserve.confไฟล์
anon-access = none
authz-db = authz
ตามอัตภาพทุกโครงการโค่นล้มมี trunk, tags, และ branches ไดเร็กทอรีโดยตรงภายใต้ไดเร็กทอรีรากของโปรเจ็กต์
ลำต้นเป็นไดเรกทอรีที่ทุกการพัฒนาหลักที่เกิดขึ้นและมักจะมีการตรวจสอบโดยนักพัฒนาที่จะทำงานในโครงการ
แท็กไดเรกทอรีถูกนำมาใช้ในการจัดเก็บชื่อภาพรวมของโครงการ เมื่อสร้างรุ่นที่ใช้งานจริงทีมจะติดแท็กรหัสที่เข้าสู่รุ่น
สาขาไดเรกทอรีจะใช้เมื่อคุณต้องการที่จะไล่ตามเส้นที่แตกต่างกันของการพัฒนา
ให้เราสร้างโครงสร้างไดเร็กทอรีtrunk แท็กและ branchภายใต้ที่เก็บโปรเจ็กต์
[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
ตอนนี้นำเข้าไดเรกทอรีจาก /tmp/svn-template ไปยังที่เก็บ
[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]#
เสร็จแล้ว! เราได้สร้างที่เก็บเรียบร้อยแล้วและอนุญาตให้เข้าถึงTom และ Jerry. จากนี้พวกเขาสามารถดำเนินการที่สนับสนุนทั้งหมดไปยังที่เก็บได้