HOWTO CVS server
จากที่ผ่านๆ มาเคยมีคนถามๆ ว่า 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 - แก้ 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 startAdd 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
- zendz's blog
- 2962 reads
Post new comment