AGMS#1: ทำ .deb ใน 2 นาที.part1
เห็นคุณสมเจตน์อยากให้เขียน เลยเปิด series บ้างครับ "A geek man story :P" ลอกเขามาเลยครับง่ายดี
นำเสนอเรื่่อง geek นิดๆครับ
ตอนนี้คิดว่าจะว่าด้วยเรื่องการทำ deb เช่นเดียวกันครับ แต่ผมจะใช้วิธีง่ายกว่าคือ checkinstall ลงมันซะก่อน
$ sudo apt-get install checkinstall
ทีนี้หาอะไรมาลอง build ครับ คิดว่า fluxbox เขาออกรุ่นใหม่แล้ว ubuntu ไม่ได้อัป(ตอนนี้เขาอัปแล้วนี่นา เพิ่งเช็คเมื่อสักครู่ครับ) ลองเอามาทำ deb เองดีกว่า(จริงๆแล้วผมทำ php script จิ้มจากเว็บได้โดยใช้ checkinstall นี่แหละครับ)
$ sudo apt-get build-dep fluxbox
ไอ้คำสั่ง build-dep เนี่ยครับ มันต้องใส่ source ไว้ใน sources.list ด้วยนะครับไม่งั้นมันจะบอกให้เราใส่ ถ้าใส่อยู่แล้ว มันจะไปดึงเอาอะไรต่อมิอะไรที่จะใช้ build fluxbox มาทั้งหมด แบบว่าไม่น่าจะมีปัญหา dependencies เลยแหละครับ
หลังจากเครื่องมือพร้อมแล้วผมไปโหลด fluxbox มาดีกว่าครับที่ fluxbox.sf.net (sf.net เป็นเว็บย่อของ sourceforge.net นั่นแหละครับ) ก็จะได้ source code มาเป็น .tar.{gz,bz2} ครับ แตกมันซะเลย
$ tar xf fluxbox-1.0.0.tar.*
จากนั้นก็เข้าไป folder ที่แตกออกมาครับ
$ cd fluxbox* #(เล่น wildcard ดีกว่าขี้เกียจจำชื่อ folder ครับ)
แล้วก็ compile ตามปกติครับ
$ ./configure && make #(รวบคำสั่งเลยครับ)
สังเกตนะครับว่าผมไม่ได้รวบ make install ไว้ เพราะว่าเราไม่ใช้ครับ หลัง compile ตามคำสั่งข้างบนเสร็จแล้ว ก็ได้เวลา checkinstall ครับ
$ sudo checkinstall #(อันนี้จริงๆแล้วน่าจะใช้ fakeroot($ sudo apt-get install fakeroot) แทน sudo ได้ แต่รู้สึกว่าใช้ sudo จะ error น้อยกว่าครับ)
มันก็จะถามว่าจะสร้าง doc-pak ไหมก็ enter ผ่านครับ(เหมือนกด y แล้ว enter) จากนั้นก็จะมีให้ตั้งค่าครับ โดยกดหมายเลขหน้าข้อเพื่อแก้ข้อนั้น
0. ชื่อผู้ดูแลแพคเกจ(ปกติแล้วจะใส่แบบนี้ครับ ชื่อ สกุล <อีเมล์> โดยไม่ต้องไปเปลี่ยน @, . ใดๆทั้งสิ้น แต่ถ้ากลัวสแปมจริงๆใส่แค่ชื่อก็พอครับ)
1. รายละเอียด ตรงนี้จะเป็นรายละเอียดของแพคเกจครับ ซึ่งถ้าใช้ gdebi-gtk ก็คือบรรทัดตัวหนาครับ
2. ชื่อ ตรงนี้เป็นชื่อแพคเกจเลยครับ ต้องเป็นไปตามข้อกำหนด deb นะครับ ถ้าแพคเกจไม่ออกลองตรวจดูครับว่าชื่อถูกรูปแบบหรือเปล่า
3. รุ่น อันนี้ก็เป็นรุ่น ซึ่งก็ต้องเป็นไปตามข้อกำหนด deb นะครับ(ไม่งั้นแพคเกจไม่ออก)
4. release อันนี้ไม่แน่ใจว่าคืออะไร อาจจะเป็นค่าของฝั่ง rpm, pkg(solaris) หรือ tgz(slackware) ก็ได้ครับ เพราะว่า checkinstall รองรับ deb,rpm,pkg,tgz ครับ
5. License อันนี้จะต้องมีไฟล์ license ในระบบซึ่งผมก็ไม่รู้วิธีใส่ ปกติก็ใช้แต่ gpl นี่แหละครับ
6. Group อันนี้เป็นหมวดของแพคเกจ ควรจะใส่ตามหมวดเดิมของ ubuntu ครับ(อันนี้บางทีผมทำแพคเกจเองจะเติม whs/ หน้าหมวดเดิมเพื่อให้รู้ว่าผมเป็นคนทำ เหมือนแพคเกจใน universe ที่จะมี universe/ แต่ตรงนี้ไม่ได้กำหนดไว้ว่าต้องใส่เสมอนะครับ))
7. Architecture สถาปัตยกรรม ที่ใช้บ่อย i386, i686, x64(อันนี้ผมไม่แน่ใจว่าเขาใช้อะไร น่าจะเป็นตัวนี้ครับ), all(ใช้กับพวกไอคอน ฟอนต์เพื่อให้รู้ว่ารันได้ทั้งหมดครับ)
8-9. Source location อันนี้ผมก็ไม่แน่ใจว่าคืออะไร ปกติก็ปล่อยข้ามไปครับ
10. Requires ก็คือ dependencies นั่นแหละครับ แต่ลองใส่ดู checkinstall จะไม่ยอม จากที่ผมตรวจพบว่ามันจะยอมแค่ทำ rpm เท่าันั้นครับ ไว้ในตอนหน้าผมจะมาบอกวิธี "แฮค" เอาตรงนี้ออกครับ(ลองแล้วได้ผลครับ)
หลังจากกรอกครบแล้วก็กด enter แล้วมันจะ make install และจะติดตั้งแพคเกจที่ทำเสร็จแล้วให้เลยครับ โดยแพคเกจจะอยู่ใน folder เดียวกับที่สั่ง checkinstall นะครับ
ปล. ถ้าแพคเกจไม่ได้ใช้ make install สมมุติว่าเป็น ./setup install นะครับ ให้เรียก checkinstall แบบนี้ครับ sudo checkinstall "./setup install"
Comments
TrendyTeddy
24. February 2008 - 21:16
Permalink
เหอะๆ
TrendyTeddy
24. February 2008 - 21:24
Permalink
checkinstall
willwill
24. February 2008 - 22:44
Permalink
เรื่องการ
//man ... เข้ามาดู
GreenApple
24. February 2008 - 23:15
Permalink
โอ้ว
willwill
25. February 2008 - 8:09
Permalink
น่าจะเปลี
//man ... เข้ามาดู
snappy
25. February 2008 - 1:00
Permalink
read only
--------------------------
You'll never walk alone!!!
http://snappytux.com
GreenApple
25. February 2008 - 15:07
Permalink
งั้นขอจอง
p008 (not verified)
26. February 2008 - 17:35
Permalink
หง่าาา
peatbuntu
26. February 2008 - 21:57
Permalink
ชปดป ของผมเองครับ
JForJoe
27. February 2008 - 17:13
Permalink
เช็คแพคเก็จด้วย linda
willwill
27. February 2008 - 19:03
Permalink
เขียนเ็ป็
//man ... เข้ามาดู