จากที่ผ่านๆ มาเคยมีคนถามๆ ว่า cvs มันคืออะไร ใช้ยังไงเคยบอกผ่านๆ หลายคนอยู่ แต่วันนี้ เรามาลอง setup cvs server กันดูซักทีดีกว่าไหม ขั้นตอนง่ายๆ ไม่ยุ่งยากมากมาย
- download cvsd มาจากที่นี่ http://tiefighter.et.tudelft.nl/~arthur/cvsd/
- ทำการ install ทำตามนี้ (ในที่นี่ผมทำการ download และแตก file ใน /usr/local/src)
$ tar -zxvf cvsd-x.x.x.tar.gz
$ cd cvsd-x-x-x
$ ./configure --prefix=/usr --with-cvs=/usr/bin/cvs --with-perl=/usr/bin/perl --with-libwrap --sysconfdir=/etc
$ make
$ su -
# make -C /usr/local/src/cvsd-x.x.x install
- หลังจากนี้เราจะได้ cvs server มาใช้งานเรียบร้อย แต่ยังไม่เสร็จ เราต้องทำการ build cvsroot ขึ้นมาใช้งานก่อน รวมถึง confgiuration ตัว server ให้เรียบร้อย
ในที่นี้ ผมแนะนำว่าควรใช้งาน cvs server ผ่าน jailroot ซึ่งแล้วแต่ว่าเราจะ config ว่าให้ไปอยู่ที่ไหน ขึ้นกับความต้องการ และความเหมาะสมของตัวคุณเอง สมมุติว่าผมเอาไปไว้ที่ /export/home/cvs และ repository เป็น /export/home/cvs/Repos สั่งตามต่อไปนี้
# addgroup cvsd
# mkdir /export/home/cvs
# adduser -c "cvs pserver daemon" -s /bin/false -g cvsd -r -d /export/home/cvs cvsd
# cvs -d /export/home/cvs/Repos init
# cvsd-buildroot /export/home/cvs
# cd /export/home/cvs
# mkdir -p var/lock
- คราวนี้เราจะได้ cvsd พร้อมจะใช้งานแล้ว แต่ว่าในบางครั้งการ ทำ buildroot ของ cvs อาจจะไม่เรียบร้อยหรือมีการลงที่ไม่เรียบร้อยควรสั่งเพิ่มดังนี้
cp /lib/ld-* /export/home/cvs/lib/
cp /lib/libdl.so.2 /export/home/cvs/lib/
- ต่อไปมาจัดการแก้ไขเกี่ยวกับ config ของ cvsd กัน ซึ่ง config ของ cvsd นั้นจะอยู่ที่ /etc/cvsd/cvsd.conf ตามที่เรา compile ไว้แต่แรก
RootJail /export/home/cvs
Uid cvsd
Gid cvsd
CvsCommand /bin/cvs
Nice 1
Umask 027
PidFile /var/run/cvsd.pid
MaxConnections 10 << ส่วนนี้อยากตั้งเท่าไรก็ตามใจ แต่ถ้าตั้งเป็น 0 คือ unlimit
Log /var/log/cvsd.log info << แนะนำควรนำไปใส่เพิ่มใน logrotate service ด้วย
Repos /Repos
- ขั้นต่อมาทำการสร้าง user เพื่อใช้งาน cvs server โดยจะมี file ที่เกี่ยวข้องกับ permission อยู่ 2 ตัวคือ writes และ readers โดยจะความแตกต่างกันคือ หากนำชื่อของ user ไปใส่ใน readers จะทำให้สามารถอ่านได้เพียงอย่างเดียว แต่หากนำไปใส่ใน writers จะสามารถอ่านและเขียนได้
# cvsd-passwd /export/home/cvs/Respo YOUR_USER_HERE
# cd /export/home/cvs/Respo/CVSROOT
# touch readers writers
# chown cvsd:cvsd readers writers
# echo "YOUR_USER" > writers
- อันดับต่อไปให้ทำการแก้ไข file: /export/home/cvs/Respo/CVSROOT/config ตามนี้
SystemAuth=no
LockDir=/var/lock/cvs
# mkdir -p /export/home/cvs/Repos/var/lock/cvs
- แก้ file: /export/home/cvs/Repos/CVSROOT/cvswrappers ดังนี้
*.jpeg -k 'b'
*.midi -k 'b'
*.jpg -k 'b'
*.bpgr -k 'b'
*.zip -k 'b'
*.exe -k 'b'
*.o -k 'b'
*.jnp -k 'b'
*.ram -k 'b'
*.aiff -k 'b'
*.xpi -k 'b'
*.asf -k 'b'
*.obj -k 'b'
*.snp -k 'b'
*.png -k 'b'
*.mid -k 'b'
*.eargrp -k 'b'
*.class -k 'b'
*.rar -k 'b'
*.sar -k 'b'
*.au -k 'b'
*.rpt -k 'b'
*.jds -k 'b'
*.wav -k 'b'
*.jpe -k 'b'
*.gif -k 'b'
*.cab -k 'b'
*.dcu -k 'b'
*.war -k 'b'
*.ejbgrp -k 'b'
*.ejbgrpx -k 'b'
*.library -k 'b'
*.jar -k 'b'
*.jpgr -k 'b'
*.rmf -k 'b'
*.asx -k 'b'
*.ear -k 'b'
*.bin -k 'b'
- ต่อมาให้ทำการ change permission/ownership ให้เป็น cvsd ซะ และทำการ start service อาจจะรวมถึงต้องการ add ลงใน runlevel ก็แล้วแต่
# cd /export/home
# chown -R cvsd:cvsd cvs
# chmod -R 775 cvs/var
# /etc/init.d/cvsd start
Add to runlevel
# redhat distro base
chkconfig cvsd on
# gentoo distro base
rc-update add cvsd default
ส่วนที่เหลือ เช่น freeBSD ทำยังไงผมไม่แน่ใจ ต้องลองหาดูแล้วกัน
Reference:http://gentoo-wiki.com/HOWTO_CVS_Server
http://blogs.application-servers.com/roller/page/undx
http://powell.chem.ox.ac.uk:1974/wiki/index.php/CVS_setup
3 ความคิดเห็น:
cvs เอาไว้เก็บบันทึกการเปลี่ยนแปลงของไฟล์ต่าง ๆ
ส่วนใหญ่จะเอาไว้เก็บซอร์สโค้ดกัน
จะช่วยบอกได้ว่า ใครเปลี่ยนอะไรตรงไหนของไฟล์ไหนไปบ้าง เมื่อไหร่
ขอบคุณ bact' มากครับที่ช่วยตอบ พอดีช่วงนี้ไม่ค่อยว่าง กำลังวุ่นๆ เรื่องงานอยู่พอดี
ไม่เจอกับตัวไม่รู้สึก
ผมว่าจะเอามาใช้อยู่เหมือนกัน แต่ไม่มีเวลา
วันก่อน coding อยู่ เกือบต้องเสีย source code ไป ไอ้ที่มีอยู่ ก็ backup ไว้สองสามวันที่แล้ว โชคดีแก้กลับมาได้
แสดงความคิดเห็น