การติดตั้ง Cafe grader/กรุ

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

บทความนี้จะอธิบายการติดตั้ง Cafe grader ขั้นตอนการติดตั้งจะแบ่งออกเป็นสองส่วน คือส่วนเว็บ และส่วนตัวตรวจ อย่างไรก็ตาม ทั้งสองส่วนยังมีการใช้ซอฟต์แวร์หลายอย่างร่วมกัน โดยจะเรียกรวม ๆ ว่าเป็นซอฟต์แวร์ที่จำเป็น เราจะเน้นการติดตั้งบน Ubuntu/Debian เป็นหลัก

เอกสารนี้เขียนสำหรับการติดตั้งบน Rails 2.3.4 (ถ้ามีรุ่นใหม่กว่านี้จะทยอยปรับปรุงต่อไป)

ในการเขียนบางจุดอาจมีรายละเอียดมากไป สำหรับผู้เชี่ยวชาญสามารถอ่านข้ามไปได้

การติดตั้งซอฟต์แวร์ที่จำเป็น

เราจะติดตั้ง Ruby, Rails (เป็นเว็บเฟรมเวิร์คที่ใช้ในการพัฒนา cafe grader), และ Subversion ซึ่งเป็นระบบจัดการเวอร์ชันของซอฟต์แวร์ (ใช้ในการโหลดระบบ cafe grader)

ติดตั้งระบบฐานข้อมูล MySQL, ระบบจัดการเวอร์ชัน Subversion

ติดตั้ง MySQL โดยสั่ง

 sudo apt-get install mysql-server mysql-client

ระหว่างติดตั้ง ระบบจะถาม password ของ root ของ mysql server ให้เลือกและจดไว้ (จะต้องใช้ต่อไปในการสร้าง user ของระบบฐานข้อมูล)

เราจะใช้ subversion ในการโหลดรุ่นล่าสุดของ Cafe grader มาติดตั้ง ดังนั้นสั่งติดตั้ง subversion ดังนี้

 sudo apt-get install subversion

ติดตั้ง Ruby, ระบบจัดการแพกเกจ Ruby Gem, และ Rails

Cafe grader พัฒนาด้วยภาษา Ruby ดังนั้นเราจะต้องติดตั้ง Ruby พร้อมทั้งระบบต่าง ๆ ก่อน

เริ่มติดตั้ง ruby และระบบจัดการ document rdoc โดยสั่ง

 sudo apt-get install ruby rdoc

จากนั้นให้ติดตั้ง Ruby gems ซึ่งเป็นระบบจัดการไลบรารีและซอฟต์แวร์ต่าง ๆ ของ Ruby แม้ว่าใน Ubuntu จะสามารถเรียกติดตั้งได้ด้วย apt-get แต่มักพบว่าการติดตั้งด้วยวิธีนี้มักพบปัญหา ดังนั้นเราจะติดตั้งโดยตรง ตามขั้นตอนต่อไปนี้

  • ดาวน์โหลด Ruby gems จาก RubyForge
  • จากนั้นให้ขยายไฟล์ใส่ในไดเร็กทอรีชั่วคราว แล้วสั่ง
 sudo ruby setup.rb

เราจะได้ ruby gem ที่เรียกให้ทำงานได้โดยคำสั่ง gem1.8 อย่างไรก็ตามเพื่อความสะดวก เราทำให้เรียกด้วยคำสั่ง gem ได้ด้วย โดยสั่ง

 sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

(ไม่ต้องทำในขั้นตอนนี้ก็ได้ แต่ในลำดับต่อไปให้เรียก gem1.8 แทน gem)

เมื่อได้ Ruby และ Ruby gems แล้ว เราจะติดตั้ง software ต่าง ๆ ที่ต้องการ ต่อไปนี้

  • Rails (เว็บเฟรมเวิร์ค), ติดตั้งโดยสั่ง
 sudo gem install rails --no-rdoc --no-ri
  • Rspec (ระบบทดสอบการทำงาน), ติดตั้งโดยสั่ง
 sudo gem install rspec --no-rdoc --no-ri
  • ไลบรารีของ ruby ในการติดต่อกับ mysql, ติดตั้งโดยสั่ง
 sudo apt-get install libmysql-ruby
  • ไลบรารีในการเชื่อมต่อแบบปลอดภัยของ ruby
 sudo apt-get install libopenssl-ruby

การติดตั้งส่วนติดต่อทางเว็บ

เราจะเริ่มโดยการสร้าง user บน mysql และ database

สร้างฐานข้อมูลบน MySQL

เราจะสร้างผู้ใช้และฐานข้อมูลบน Mysql เข้าใช้ mysql โดยสั่ง

 mysql -u root -p

และป้อนรหัสผ่านที่ได้กำหนดไว้ในขั้นแรก

เมื่อเข้ามาใน mysql แล้ว สั่งให้สร้าง user ในตัวอย่างนี้จะใช้ชื่อว่า cafe อย่าลืมเปลี่ยน mypassword ด้านล่างให้เป็นรหัสผ่านที่ต้องการ

 create user 'cafe'@'localhost' identified by 'mypassword';

สร้างฐานข้อมูลชื่อ grader

 create database grader;

ให้สิทธิผู้ใช้ cafe ในการทำทุกอย่างในฐานข้อมูล grader

 grant all on grader.* to 'cafe'@'localhost';

เมื่อเรียบร้อยแล้วให้ออกจาก mysql โดยสั่ง quit

Check out cafe grader และปรับแต่ง

เราจะติดตั้งส่วนติดต่อทางเว็บที่ ~/grader/web ถ้าต้องการติดตั้งที่อื่นให้แก้ขั้นตอนต่อไปตามเหมาะสม

ก่อนอื่นสร้างไดเร็กทอรี ~/grader ก่อน

 mkdir grader

จากนั้น check out cafe grader จาก google code

 svn co http://cafe-grader.googlecode.com/svn/web/trunk grader/web

โปรแกรมส่วนติดต่อกับผู้ใช้ทางเว็บจะถูกดาวน์โหลดมาที่ ~/grader/web

เราจะเข้าไปปรับแก้แฟ้มต่าง ๆ โดยแฟ้มเหล่านี้อยู่ในไดเร็กทอรี ~/grader/web/config

  • ให้คัดลอกแฟ้ม database.yml.SAMPLE เป็น database.yml แฟ้มดังกล่าวจะเก็บข้อมูลเกี่ยวกับการเชื่อมต่อกับฐานข้อมูล เราจะแก้ไข โดยใส่ชื่อฐานข้อมูล, ชื่อผู้ใช้, และรหัสผ่าน ให้ใส่ทั้งส่วน development และส่วน production ดังตัวอย่างด้านล่างนี้ (ส่วน production ให้ใส่ลักษณะเดียวกัน)
 development:
   adapter: mysql
   database: grader
   username: cafe
   password: mypassword
   host: localhost

ส่วน development เราจะใช้เพื่อทดสอบว่าระบบทำงานได้ เมื่อใช้งานจริง เราจะใช้ในส่วน production

  • ให้คัดลอกแฟ้ม environment.rb.SAMPLE เป็น environment.rb แฟ้มดังกล่าวจะเก็บการตั้งค่าต่าง ๆ ในเบื้องต้นนี้เราจะยังไม่แก้ไขอะไร อย่างไรก็ตาม หากต้องการ web interface ภาษาไทย ให้แก้ส่วน locales เป็น ภาษาไทยดังด้านล้าง
 # Setting locales
 config.i18n.default_locale = 'th'

จากนั้นเราจะติดตั้งไลบรารีอื่น ๆ ของ ruby ที่ cafe grader ต้องการ โดยสั่ง (สั่งที่ไดเร็กทอรีที่ติดตั้งส่วน web ของ cafe grader --- ในตัวอย่างนี้คือ ~/grader/web)

 sudo rake gems:install

ใส่ข้อมูลเบื้องต้นลงในฐานข้อมูล

การติดตั้งส่วนตัวตรวจ