ขอขึ้นหัวเรื่องไว้ ภายในวันนี้ ก่อนที่จะหมดวัน
บุญเขาคุ้มพ่อ ก็ต้องตอบแทนกันหน่อย
เป็นการตั้งระบบ เพื่อให้บริการเอกสารต้นฉบับของระบบปฏิบัติการ FreeBSD ทั้งหมด แต่จะนำมาเผยแพร่ เท่าที่ทำไว้ และแสดงเจตนาที่จะทำคือ แปล handbook โดยครั้งแรกนั้น ได้ส่งมอบเอกสารไปให้กับ FreeBSD ไปหนหนึ่งแล้ว คือ ขั้นตอนการเตรียมเอกสารเพื่อส่งมอบ แต่ก็ด้วยหลายเหตุ หลายปัจจัย ที่ทำให้ชะงักงันลงไป
เอาล่ะ ขอเข้าเรื่อง
หลักกว้างๆก็คือ ให้ cvsup เอาชุดเอกสารทั้งหมด มาไว้ที่ใดที่หนึ่ง ซึ่งทุกคนในระบบสามารถอ่านได้ เช่น /kaitag/ncvs ที่ทำอยู่ จากนั้นให้วิ่ง cvsupd ซึ่งเป็น cvsup server เพื่อให้บริการในระบบ จากนั้น, ลำดับที่ ๓ แล้วน่ะ, ให้ cvsup เอาเอกสารที่ต้องการ ออกมาจาก ที่ใดที่หนึ่ง ซึ่งได้นำมาวางไว้แต่แรกเริ่มนั้น
ตรงนี้ อาจจะมีคำถามว่า ทำไมไม่เอามาจาก internet ทำไมต้องลำบากเอามาไว้ในเครื่องของตน แล้ว check out ออกมาอีกทีให้ยุ่งยาก คำตอบพอมองเห็นชัดๆเบื้องต้นคือ เรามีเอกสารต้นฉบับของระบบปฏิบัติการ ครบ ทุกเรื่องอยู่กับตัว มันสะดวกกว่ากันมาก ในการที่จะ check out ออกมา
นั่นเป็นเรื่องของการ check out เอกสารออกมา ต่อไป เป็นเรื่องของ การแปลเอกสาร ที่ตั้งใจจะแปล คือ handbook ในการนี้ ให้เรา ศึกษาเรื่องของ sgml และ docbook ให้พอเข้าใจ จากคำแนะนำใน FDP Primer นั้น พอเข้าใจถึงวิธีการคร่าวๆ อย่างไรก็ดี ในส่วนที่ขาด ทีมงาน documentation project เขาจะช่วยเสริมให้เอง ลำดับถัดมา ให้เราแปลตัวเอกสาร book.sgml นั้น แล้วส่งไป ตามวิธีที่บอกไว้คือ ขั้นตอนการเตรียมเอกสารเพื่องส่งมอบ ( link ตรงนี้ เป็นต้นฉบับ ภาษาอังกฤษ บอกให้รู้ถึงวิธีการเตรียม ) แล้วส่งไป
คงพอได้ใจความน่ะ ขอขมวดประเด็น จากที่ว่า หลักการกว้างๆ... เป็นต้นมานั้น เป็นดังนี้คือ
- ศึกษาเรื่อง sgml และ docbook แต่พอให้เข้าใจถึงโครงสร้างทั่วไป จาก http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/index.html
- cvsup เอาเอกสารตั้นฉบับของระบบปฏิบัติการมาด้วย cvs-supfile
- วิ่ง cvsupd บนเครื่องของเรา ที่มีเอกสารจากข้อข้างบนนั้น
- cvsup เอาเอกสารที่ต้องการแปล มาไว้ยังที่ทำงานของเรา ก็ ที่เรา login เข้ามานั่นแหละ
- แปลเอกสาร book.sgml ออกมาเป็นภาษาไทย
- จัดการส่งมอบเอกสารที่แปลไว้ จะทั้งหมด หรือเท่าที่ทำอยู่ ไปให้กับทีมงาน FreeBSD ตาม FDP Primer ทีีบอกไว้แล้วนั้น
ตามที่บอกไว้แต่แรกว่า ให้เอาเอกสารต้นฉบับฯ ทั้งหมดมาไว้ในที่ใดที่หนึ่ง นั้น สืบเนื่องจาก ชุดเอกสารทั้งหมดนี้ มีขนาดพอสมควร จึงนำมารวมๆไว้กับ distfiles และ packages ของทั้งระบบ โดยแยกเก็บไว้กับ usb hard disk ที่ mount point /kaitag และสร้างสาระบบแฟ้ม ncvs ภายใต้ /kaitag นี้ เพื่อเก็บเอกสารทั้งหมด ที่มีขนาดประมาณ 5G อีกทีหนึ่ง นี่คือการเตรียมเนื้อที่สำหรับเก็บชุดเอกสารต้นฉบับฯไว้
จากนั้นให้ cvsup เอาด้วย supfile ดังต่อไปนี้
*default host=CHANGE_THIS.FreeBSD.org
*default base=/kaitag/db
*default prefix=/kaitag/ncvs
*default release=cvs
*default delete use-rel-suffix
*default compress
src-all
ports-all
doc-all
www
projects-all
cvsroot-all
*default base=/kaitag/db
*default prefix=/kaitag/ncvs
*default release=cvs
*default delete use-rel-suffix
*default compress
src-all
ports-all
doc-all
www
projects-all
cvsroot-all
ด้วยคำสั่งดังนี้
# cvsup -g -L 2 -h cvsup6.ru.freebsd.org supfile
ซึ่งนานมากในการดูดครั้งแรก แต่ครั้งต่อๆไปจะไม่กินเวลามากนัก ความจริง supfile ที่ยกมานี้ ก็ปรับเอาจากที่มีมากับระบบนั่นเอง (ไปดูเอาได้ที่ /usr/share/examples/cvsup/cvs-supfile) จากคำสั่งสั้นๆ grep และ sed ดังนี้
% grep -v ^# /usr/share/examples/cvsup/cvs-supfile | sed -e '/^$/d' \
-e 's,/var/db,/kaitag/db,g' \
-e 's,/home,/kaitag,g' > ~/supfile
-e 's,/var/db,/kaitag/db,g' \
-e 's,/home,/kaitag,g' > ~/supfile
ส่วน cvsup6.ru.freebsd.org นั้น สามารถหามาได้จากรายการของ cvsup server ที่เร็วที่สุดในอาณาบริเวณใกล้ๆกับที่ตั้งของเรา จากคำสั่ง
% fastest_cvsup -c ru,sg,tw,th,in,jp
ซึ่งตอนที่ทำ เขาขึ้น cvsup6.ru.freebsd.org มาให้เป็นลำดับแรก ก็ใช้ host นั้นไป ทำให้สะดวก ไม่ต้องลำบากกำหนดใน supfile ตามที่เขาบอกให้แก้ ในบรรทัดแรกนั้น
ที่กล่าวมาคือข้อที่ 2 ต่อไปเรามาพูดถึงการเตรียม cvsup server กัน ซึ่งคือข้อ 3 ข้างบนนั้น
เบื้องต้น ขอให้ login ด้วยฐานะ ผู้ใช้งานธรรมดา แล้วสร้างสาระบบแฟ้มดังนี้
% mkdir -p ~/base/sup/th-fdp
% cd ~/base/sup/th-fdp
จากนั้นสร้างแฟ้มขึ้นมา ๒ แฟ้มชื่อ releases และ list.cvs โดยมีสาระภายในแต่ละแฟ้มดังนี้
cvs list=list.cvs prefix=/kaitag/ncvs
และ
upgrade doc
แฟ้มละ ๑ บรรทัด ตามลำดับ ย้ำน่ะครับ แฟ้มละ ๑ บรรทัดเท่านั้น ที่เขียนมานี้ ถอดความจาก CVSup FAQ แล้วปรับเอาให้เข้ากับที่ทำงานจริงๆ นี่คือส่วน แก่น ของ cvsup server เท่าที่จำเป็นตอนนี้ จากนั้น วิ่ง server ไปเลย ตามนี้น่ะ
% cvsupd -b ~/base
ที่เล่ามาทั้งหมด คือเรื่องของ cvsup server เท่าที่จำเป็นต้องใช้งานในตอนนี้ กล่าวโดยสรุปคือ
- login มาเป็นผู้ใช้งานทั่วไป
- สร้างสาระบบแฟ้มนี้ขึ้นมา, ทำหนเดียวพอ,
- % mkdir -p ~/base/sup/th-fdp
- สร้างแฟ้มเอกสารมา ๒ แฟ้มชื่อ releases และ list.cvs ด้วยสาระภายในแฟ้มตามที่ได้บอกไว้ข้างบนนั้น
- cvsupd -b ~/base
ต่อไป (ลำดับที่ (4) ในรายการงานบนสุดนู้น) เรามาสร้างแฟ้ม supfile เพื่อดูดเอกสารสำหรับ handbook มาแปลกัน ซึ่งโดยทั่วไปก็ดูดมาด้วยคำสั่งเดิมๆที่รู้กัน คือ
% cvsup -g -L 2 supfile
แต่สาระตอนนี้ คือ supfile และสาระบบแฟ้ม ที่เขาจะเก็บ checkout list เอาไว้ สาระของ supfile คือ
*default host=localhost
*default prefix=/home/motorc
*default base=/home/motorc/db
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
th-fdp
ซึ่ง ตรง base นี่เองเราต้องสร้างสาระบบแฟ้มชื่อ ~/db ขึ้นมา เพื่อบันทึก check out list เอาไว้ ดังนั้น ท่านต้องสร้างขึ้นมาด้วยน่ะ
% mkdir -p ~/db
หวังว่าคงจำกันได้ ในคราวเตรียม server นั้น เราได้เตรียมแฟ้ม list.cvs โดยสาระภายในของแฟ้มนั้นมีเพียง ๒ คำคือ upgrade doc และ ในแฟ้ม supfile ในตอนนี้นั้น เขาจะ checkout เอา doc ออกมาวางไว้ในสาระบบแฟ้ม ที่ระบุไว้ใน prefix ในตอนนี้
สำหรับบรรทัดล่างสุดของ supfile นั้น บอกว่า เราเอาแฟ้มทั้งหมดที่บอกไว้ใน สาระบบแฟ้มเดียวกันนี้ใน server เอามาไว้ใน client ของเรา
ในส่วนของ การ check out เอกสารออกมาด้วยการ cvsup ก็มีเพียงนี้ เอกสารทั้งหมด จะวางไว้ในสาระบบแฟ้ม ดังนี้
ตัวเอกสารที่ต้องแปล จากภาษาอังกฤษ มาไทยคือ book.sgml ที่อยู่ ภายใต้สาระบบแฟ้ม ดังที่แสดงให้ดูนั้น อนึ่ง ท่านต้องเข้าใจ sgml ได้ดีพอควร สำหรับการแปลเอกสารนั้นหมด ว่า ต้นฉบับบทนั้น มีชื่อนั้นๆ จะได้ตามไปแปลได้ถูก
ทั้งหมดนี้ คือการ checkout เอกสารที่จะแปล เอาออกมาไว้ยังที่ใดที่หนึ่งนั่นเอง และ เรื่อง ก็น่าจะจบตรงนี้ และลำบากเพียง แปล แต่ที่เล่ามาเป็นจุดเริ่มต้นเท่านั้นเอง ยังพอมีการ set up อีกนิดหน่อย เพื่อให้การทำงานดูว่า มีระบบ นั่นคือการนำเอกสารที่ check out ออกมานี้ ไปไว้ใน repository อีกทีหนึ่ง ดังนี้, สำหรับท่านที่คุ้นกับ cvs จะเข้าใจดี,
% mkdir ~/Repository-${USER}
% echo CVSROOT ~/Repository-${USER} >> ~/.cshrc
% source ~/.cshrc
% cvs init
สี่คำสั่งนี้ ทำหนเดียว และ ${USER} นั้นเป็น login id ของท่านน่ะครับ% cd ~/doc
ตรงนี้ ให้ลองสั่ง ll ดูครับ จำผลลัพธ์ไว้ด้วย % cvs import -m 'initial import' doc psr th-FDP
อันนี้ ก็ทำหนเดียวเช่นกัน และให้เปลี่ยน psr เป็นชื่อของท่านน่ะ% cd
% rm -rf doc
% cvs checkout doc
% cd doc
แล้วลองสั่ง ll ดูอีกที เปรียบเทียบกับ ที่สั่งดูทีแรกนั้นว่า ต่างกัน ตรงไหน ดูเอาเองน่ะ% cd en_US.ISO8859-1/books/handbook
จากนั้น ให้ท่านลงมือแปลเอกสารในแฟ้ม book.sgml ไป ซึ่งคงไม่ได้แปลรวดเดียวหรอก เอาว่า พอเหนื่อยก็พัก ก่อนจะพัก ก็ทำอีกนิดหนึ่งน่ะ
% cvs commit book.sgml
ก็ให้ท่าน บันทึกรายละเอียดลงไป ตอนที่ vi เขาขึ้นมาน่ะ ว่า ท่านได้ทำอะไรไปบ้าง เมื่อท่าน save & exit แล้ว แฟ้ม book.sgml ก็จะได้รับการ เก็บรักษา พร้อมประวัติการทำงาน ทันที ใน Repository นั่นแหละครับ
ทีนี้ ถ้าท่านหยุดพักไปนานๆ ก็เห็นสมควร สะสาง สาระบบแห้มนี้ออกไปก่อน ชั่วขณะได้ ดังนี้
% cd
% cvs release -d doc
ซึ่งแนวปฏิบัติอันนี้ ผมก็ใช้อยู่ แต่จะ release ต่อเมื่อ log out ออกจากระบปฏิบัติการเท่านั้น และเมื่อ log in เข้ามาแล้ว เราก็ลำบากเพียง check out เอกสาร ทั้งยวง ออกมาจาก Repository ง่ายๆ ดังนี้
% cvs checkout doc
แล้วถึงลงมือแปลเอกสารต่อไป และ วงจร ของการ checkout แปล commit release ก็จะเป็นไปเช่นนี้ จนกว่างานจะสำเร็จ แต่ประกันว่า ด้วยการใช้เครื่องมือ ที่ระบบมีอยู่ เข้ากับงานของท่านเช่นนี้ ก็ทำให้ท่านอุ่นใจได้ว่า สามารถทำงานต่อได้ ตลอดไป แม้ผู้มารับงาน จะไม่ใช่ท่าน ก็ยังพอจะ ทำงานต่อ ได้เลยแทบจะทันที
ขอจบเรื่องราวเอาไว้เพียงเท่านี้ เพราะก็พิจารณาแล้ว เห็นว่า เขียนมาครบทุกประเด็นแล้ว แลหากพอจะมีสาระบ้าง ก็ยกให้เป็น ของขวัญ ให้กับลูกชายคนเล็ก อันเป็นแรงบันดาลใจ ให้เขียนงานชิ้นนี้ออกมา หากมีอันใด ขาดตกบกพร่อง มะฃาม และ มะไฟ ขอน้อมรับไว้แต่ผู้เดียว
ขอได้รับการขอบคุณจาก มะไฟ
ป.ล
ท่านสามารถตรวจดูว่า แต่ละครั้งที่ท่าน commit ไปนั้น ท่านได้ทำอะไรไว้บ้าง ก็ดูจากคำสั่ง
% cvs log book.sgml
ง่ายง่ายครับ
2 comments:
ขอบคุณสำหรับความรู้ด้านการแปลเอกสารดีๆครับ
ขอบคุณมากครับ ที่อุตสาหะอ่านจนจบเรื่องได้
ขอบคุณด้วยเช่นกัน กับ link ที่ให้มา ก็ขอเพิ่มเป็น เพื่อน ของ blog ผมด้วยน่ะ
ผมทำไปเรื่อยๆ ตามกำลังที่มี ผมสงสารประเทศไทย มีของดี ของฟรีให้ใช้ กลับไม่ใช้ ดันไปซื้อ แล้วยกฐานะ ของที่ตนซื้อมาว่า มาตรฐาน ผมก็ไม่รู้ว่าจะทำสำเร็จหรือไม่ เพราะทำคนเดียว
อีกครั้ง ขอบคุณมากครับ
Post a Comment