การติดตั้งโปรแกรมใน Linux

การติดตั้งโปรแกรมใน Linux

ว่าจะเขียน Review GNOME3 vs. Unity แต่ว่าหลังจากลองใช้ดูแล้วก็ยังไม่ค่อยประทับใจทั้งคู่ เลยพักไว้ก่อนดีกว่า พอดีว่าอาทิตย์นี้ พี่อู๋ (พี่ที่ทำงาน) มาสอนเรื่องการติดตั้งโปรแกรมใน Linux ก็เลยเอามาเขียนลง blog ไว้กันลืม
ใน Linux นี่ เราสามารถเอาโปรแกรมมาใช้งานได้ 3 แบบหลักๆ ด้วยกัน คือติดตั้ง Package สำเร็จรูปจาก Software Center, รันจาก Binary โดยตรง และสุดท้ายคือการ Compile จาก Source มาดูกันดีกว่าว่าแต่ละแบบแตกต่างกันยังไง
1. ติดตั้งจาก Package สำเร็จรูป
อันนี้คือรูปแบบส่วนใหญ่ที่นิยมใช้กัน อย่างเช่นใน Ubuntu ก็จะมี Ubuntu Software Center ซึ่งพอเรากดเข้าไปก็จะมีรายชื่อโปรแกรมพร้อมคำอธิบายปรากฏมาให้เลือกติดตั้ง โดยโปรแกรมที่จะติดตั้งนี้ก็จะมีพวกตัว Binary และ Dependencies มาให้เรียบร้อย
- Binary คือไฟล์โปรแกรมที่ถูก compile เรียบร้อยแล้ว สามารถเรียกใช้งาน (execute) ได้เลย
- Dependencies คือส่วนอื่นๆ เพิ่มเติมที่จำเป็นในการใช้งานโปรแกรม เช่น พวก library ต่างๆ ถ้าไม่มีจะใช้งานโปรแกรมไม่ได้ ถ้าจะให้อธิบายง่ายๆ ก็เหมือนเวลาที่เราลงเกมใน Windows แล้วมันต้องให้ลง Direct X ด้วยน่ะแหละ
การติดตั้งโปรแกรมจาก Package สำเร็จรูป ก็จะมี 2 แบบ คือดาวน์โหลดจากอินเตอร์เนทและติดตั้งจากไฟล์ Package สำหรับติดตั้ง ในการดาวน์โหลดจากอินเตอร์เนทก็จะมีสิ่งที่เรียกว่า Software Repository คือแหล่งรวบรวมไฟล์ Package ของโปรแกรมต่างๆไว้ เวลาเราจะติดตั้งโปรแกรมก็จะไปดาวน์โหลดตัว Package ของโปรแกรมมาจาก Repository ที่โปรแกรมนั้นถูกเก็บอยู่ ส่วนแบบที่ 2 คือการดาวน์โหลดไฟล์ Package สำหรับติดตั้ง ซึ่งก็จะเป็นเหมือนกันพวกไฟล์ Setup ของ Windows แหละ โหลดไฟล์มา ดับเบิ้ลคลิก Nextๆๆ เสร็จ ไฟล์พวกนี้ก็จะมีการแบ่งตาม Distribution ที่ใช้ด้วยนะ เช่นพวกสาย Redhat/Fedora/SUSE จะเป็นไฟล์ .rpm แต่ถ้าเป็นพวกสาย Debian/Ubuntu จะเป็นไฟล์ .deb ใช้ข้ามสายกันไม่ได้
หรือถ้าจะสั่งติดตั้งจาก Command line ก็จะต้องใช้ตัว Package Manager มาช่วยในการติดตั้ง เช่น ใน Ubuntu ใช้ apt-get ใน openSUSE ใช้ zypper ซึ่งวิธีการเรียกใช้คำสั่งก็อาจจะมีความแตกต่างกันอยู่บ้าง
2. Binary สำเร็จรูป
เป็นโปรแกรมที่ถูก compile มาเรียบร้อยแล้ว พร้อมที่จะถูกเรียกใช้งานได้เลย ตัวอย่างเช่น Mozilla Firefox แบบที่ดาวน์โหลดมาจากเว็บ ซึ่งโปรแกรมที่มาในรูปแบบนี้มีข้อดีคือโหลดมาเสร็จก็ใช้ได้เลย ไม่ต้องเสียเวลา compile ใหม่ แต่ข้อเสียก็มีคือมันอาจจะมีการตั้งค่าบางอย่างที่ไม่ตรงกับระบบของเรา ทำให้อาจจะมีปัญหาในตอนใช้งานได้
3. Compile จาก Source
โดยส่วนใหญ่ โปรแกรมที่เป็นแบบ opensource จะมีให้ลิงก์ดาวน์โหลด source code ของโปรแกรมในหน้าดาวน์โหลดเลย ซึ่งก็จะถูกบีบอัดอยู่ในรูปของไฟล์ tarball (.tar.gz, .tar.bz2, …) ก่อนจะใช้ก็ต้องเอามา untar ก่อน ถ้าใช้ GUI ก็คลิกขวาแตกไฟล์ได้เลย แต่ถ้าใช้ command line ก็ต้องใส่ parameter ตามรูปแบบการบีบอัด
  • tar xvzf สำหรับ .tgz หรือ .tar.gz
  • tar xvjf สำหรับ .tbz หรือ .tar.bz2
  • tar xvf สำหรับ .tar
รูปแบบของ tarball จะเป็นการบีบอัดไฟล์รูปแบบนึง ซึ่งปกติแล้วใน directory นึงจะมีไฟล์หลายๆ ไฟล์อยู่ เราก็เอามา tar เพื่อให้มันเป็นก้อนเดียวกัน หลังจากนั้นก็เอามาบีบอัดเพื่อลดขนาดไฟล์ ซึ่งเทคนิคการบีบอัดก็แล้วแต่ว่าจะใช้แบบไหน เช่น gzip, bzip …
ในตัวอย่างนี้ผมจะลอง compile และติดตั้งโปรแกรม desmume 0.9.7 ซึ่งเป็นโปรแกรม emulator ของเครื่อง Nintendo DS
หลังจากแตกไฟล์เสร็จก็ถึงเวลาของการ compile โปรแกรม ซึ่งก่อนอื่นก็ต้องลงเครื่องมือสำหรับใช้ในการ compile ก่อน โดยถ้าเราใช้ Ubuntu จะมี package ที่ชื่อว่า build-essential ให้เราติดตั้ง
sudo apt-get install build-esential
โดยส่วนใหญ่แล้วโปรแกรมที่ใช้ใน Linux จะถูกเขียนโดยใช้ภาษา C หรือ C++ ซึ่งตัว build-essential นี้ก็จะรวมพวก C กับ C++ Compiler มาให้ด้วยอยู่แล้ว การ Compile โปรแกรมจาก Source หลังจากแตกไฟล์เสร็จ เราจะเจอไฟล์หลักๆ ที่อยู่ใน directory ของโปรแกรม คือ README กับ INSTALL
ไฟล์ README ควรที่จะเปิดอ่านทุกครั้ง ก่อนที่จะเริ่มทำอะไร เพราะในไฟล์นี้จะอธิบายรายละเอียดต่างๆ ของโปรแกรม, library ที่ต้องมี, หรือขั้นตอนวิธีการ compile จากนั้นก็มาดูที่ไฟล์ INSTALL ซึ่งจะบอกขั้นตอนวิธีการใช้คำสั่งต่างๆ เพื่อ compile และติดตั้งโปรแกรม หลังจากที่อ่านไฟล์ทั้ง 2 แล้ว ก็มาเริ่ม compile กันได้เลย
เปิด Terminal ขึ้นมา เข้าไปที่ path ที่เก็บไฟล์ source ไว้ แนะนำให้ใช้คำสั่ง sudo -i เพื่อเปลี่ยนเป็น root ก่อนจะดีกว่า เพราะอาจจะมีบางโปรแกรมที่ต้องใช้สิทธิ์ของ root ในการ compile และติดตั้ง จากนั้นพิมพ์คำสั่ง
./configure
คำสั่งนี้จะเป็นการปรับแต่งค่าต่างๆ สำหรับเตรียมการ compile โปรแกรม โดยจะเช็คการตั้งค่าต่างๆ ในเครื่องเรา ว่ามี library ที่ต้องการครบมั้ย ถ้ามีมันถูกเก็บอยู่ที่ไหน หรือถ้าไม่มีก็จะแสดงรายชื่อ library ที่ต้องการออกมา เพื่อให้เราติดตั้ง library ดังกล่าวให้เสร็จก่อนที่จะไปขั้นตอนถัดไป
ในขั้นตอนของการสั่ง configure นี้ เราสามารถที่จะใส่ parameter เพื่อกำหนดการตั้งค่าเพิ่มเติมนอกเหนือจากค่าเริ่มต้นที่โปรแกรมกำหนดมาได้ เช่น เปลี่ยน path การติดตั้งของโปรแกรมให้ไปลงในที่ๆ เรากำหนด หรือไป link กับ library ที่เราเก็บไว้ในที่อื่นที่ต่างจากค่าเริ่มต้นของโปรแกรม ถ้าสั่ง configure เสร็จแล้วพบว่าไม่มีปัญหาอะไร คำสั่งต่อไปที่ต้องทำคือ
make
เป็นการ compile โปรแกรมเพื่อสร้างไฟล์ binary ขึ้นมา ซึ่งถ้าสั่ง make เสร็จแล้วไม่มีปัญหาอะไร เราก็จะได้ไฟล์ binary ของโปรแกรมอยู่ใน directory เดียวกับ source ดังนั้นเราเลยต้องสั่งให้โปรแกรมไปอยู่ในที่ๆ ควรจะอยู่โดยใช้คำสั่ง
make install
เพื่อเอาไฟล์ binary ของโปรแกรมไปไว้ในระบบ เพื่อให้สามารถเรียกใช้งานได้เหมือนโปรแกรมอื่นๆ
เสร็จแล้วก็ลองสั่งรันโปรแกรมดูว่าได้ผลมั้ย ถ้าได้ก็ยินดีด้วย คุณทำสำเร็จแล้ว ;)
 

Copyright © ictoutsource Design by Free CSS Templates | Blogger Theme by BTDesigner | Powered by Blogger