คมบจ#44:ทำ .deb ใน 5 นาที มือใหม่ก็ทำได้


Posted in:
TrendyTeddy's picture

อย่าเอาอะไรมากนะครับ พี่ๆ นักพัฒนา
ถ้าวันนี้ผมจะนำเสนอวิธีการทำ .deb ในแนวเถื่อนๆ ไปสักนิด

เปรียบการทำ .deb มันก็เหมือนกับทำสุรา (ผมไม่ดื่มนะครับ)
ถ้าทำสุราชั้นดี V.S.O.P - มันย่อมาจากอะไรช่างเหอะ แต่ก็ต้องพิถีพิถันอย่างดี

หรือในระดับรองๆ แบ่งเกรดกันไป การทำ .deb ก็คล้ายกัน
ตั้งแต่ระดับเนียบแป๊ะ จนถึง "จัสท์เวิร์ค" ยากง่ายจึงต่างกัน

ผมเปรียบการทำ .deb ของผมตอนนี้เหมือน "เหล้าเถื่อน"
ต้มสุราจากชานอ้อย-ข้าวหมัก ก็ง่ายหน่อย พอใช้ดื่มในครัวเรือนได้

.deb ในวันนี้ เราสามารถ DIY ได้-มาทำด้วยกันเลยครับ

.....

ทำ icons pack ไว้ใช้เอง

ที่มา:
ผมรู้สึกว่า icons ที่มากับ repository ของ ubuntu นั้น ทั้งมีน้อยและไม่ถูกใจเสียทีเดียว

เวลาจะติดตั้งแต่ละทีก็ยุ่งยากนิดหน่อย จะถอดถอนก็เหมือนกัน เพราะอยู่ในโฟลเดอร์ /usr/share/icons

ซึ่งต้องใช้สิทธิ์รูท หรือต้องเปิด Interface มานั่ง Browse กันเอง"ถ้าทำเป็น .deb ก็คงดี" นั่นแหล่ะที่มา

ที่เลือกทำ icons pack เป็น .deb น่าจะเป็นการทำ .deb ที่ง่ายที่สุดที่ทุกคนสามารถลองทำได้ (อย่างแน่นอน)

เพราะส่วนประกอบของ icons pack คงจะไม่มีอะไรมากไปกว่า icons และไม่ต้องยุ่งอะไรกับ scripts หรือ binary เลย

นาทีที่ 1. Download Icons ที่ชอบ

ถ้าใช้ Gnome ก็ลองเข้าที่ www.gnome-look.org ในหมวด Icons

ถ้าใช้ KDE ก็ลองเข้าที่ www.kde-look.org ในหมวด Icons

เลือกโหลด icons ที่มี license GPL น่าจะดีที่สุด

ไฟล์ที่ได้จะได้ในรูปแบบ icons.tar.gz หรือ icons.tar.bz2 คือ ไฟล์บีบอัด

เช่น ผมได้ไฟล์ชื่อ osx.tar.gz (ถ้าจะโหลดได้ใน 1 นาที แสดงว่า net ต้องแรงหน่อย)

นาทีที่ 2. สร้างโฟลเดอร์ที่ใช้ทำงาน และแตกไฟล์ที่ดาวน์โหลด ย้ายโฟลเดอร์ไปที่นั่น

2.1 สร้างโฟลเดอร์ที่ใช้ทำงาน ชื่อ debian และ โฟลเดอร์ที่เกี่ยวข้องเช่น ~/teddy/debian โดยที่ ~/teddy/ คือ $HOME folder ของผม ถ้าเป็นของคุณคงต้องต่างจากนี้ เป็น /home/<user>/

เปิด terminal (ขอใช้แต่ terminal นะครับ เพราะสะดวกกว่า และจะได้ฝึกมือใหม่ให้ลองใช้)

$ mkdir -p debian debian/DEBIAN debian/usr/share/icons

2.2 แตกไฟล์ที่ดาวน์โหลดมาสมมุติว่าอยู่ใน home folder ละกัน

$ tar xfvz icons.tar.gz (ถ้าเป็นไฟล์นามสกุล .tar.gz)

หรือ
$ tar xfvj icons.tar.bz2 (ถ้าเป็นไฟล์นามสกุล .tar.bz2)

*ถ้าติดมีข้อความว่า Permission Denied แสดงว่าติดเรื่อง Permissions ต้องใส่ sudo หน้าคำสั่ง

$ sudo tar xfvz icons.tar.gz (ถ้าเป็นไฟล์นามสกุล .tar.gz)

หรือ
$ sudo tar xfvj icons.tar.bz2 (ถ้าเป็นไฟล์นามสกุล .tar.bz2)

จะได้โฟลเดอร์ไอคอนมา เช่น $ tar xfvz osx.tar.gz ผมได้โฟลเดอร์ osx มา

2.3 ย้ายโฟลเดอร์ไปที่ใช้ทำงาน

$ mv -t <ที่ไหน> <โฟลเดอร์ที่ต้องการย้าย>

เช่น $ mv -t debian/usr/share/icons osx

*ที่ต้องย้ายไป debian/usr/share/icons เพราะเวลาติดตั้งจริงโฟลเดอร์ icons จะอยู่ใน /usr/share/icons

นาทีที่ 3. สร้างไฟล์ที่จะเป็นต่อระบบ .deb

จริงๆ แล้วในโครงสร้าง .deb จะมีหลายไฟล์ที่เกี่ยวข้องที่ทำให้ .deb มีมาตรฐานสมบูรณ์
เช่นต้องมี control, changelog, README.debian, copyright, md5sum, postinst, prerm, man pages เป็นต้น

ไม่ต้องกลัวไป วันนี้ผมสอนวิธีลัด แค่นำไปใช้ได้ ไฟล์ที่เกี่ยวข้องจึงมีแค่ control เท่านั้น

3.1 ไปโฟลเดอร์ที่สร้างไว้แล้วที่ชื่อ DEBIAN ตามข้อ 2.1

$ cd ./debian/DEBIAN

3.2 สร้างไฟล์ control

$ nano control

ให้สร้างไฟล์ที่มีเนื้อหาดังต่อไปนี้

Package: <ชื่อ icons pack>
Section: x11
Priority: optional
Maintainer: Yourname <yourmail@site.com>
Architecture: all

Depends:
Description: This is my icons pack.

Use this under GPL license na krub.

จะใส่ Description อย่างไรก็ตามแต่ จากนั้นกด ctl+o เพื่อ save และ ctl+x เพื่อออกจาก nano

**สำคัญ ในตรง Descriptiton บรรทัดแรกใส่ได้ 60 ตัวอักษร และท้ายประโยคต้องใส่ . ด้วยนะีครับ

บรรทัดต่อมาต้อง เคาะหนึ่งทีก่อนจะใส่ description อื่นๆ

นาที่ที่ 4 สำคัญนะจ๊ะ เปลี่ยน User/Group และ Permisions จากนั้นก็ทำ .deb

ในกฎการสร้าง .deb โปรแกรมจะบังคับให้ Folder มี Permisions = rwxr-xr-x หรือตีเป็นเลขได้ว่า 755
จำไว้นะครับ 755 r=4 w=2 x=1 -=0 เช่น rwx = 4+2+1 หรือ r-x = 4+0+1

ตอนนี้เราอยู่ใน Folder DEBIAN อยู่ ถอยหลังตั้งหลักเพื่อพร้อมสร้างโปรแกรม

$ cd ../../
$ sudo chmod 755 debian
$ find ./debian -type d | sudo xargs chmod 755
$ find ./debian -type d | sudo xargs chown root:root
$ find ./debian -type f | sudo xargs chmod 755
$ find ./debian -type f | sudo xargs chown root:root

จากนั้นก็สั่งแพกแพกเกจซะ

$ sudo dpkg-deb --build debian <ชื่อ+เวอร์ชั่น.deb>

เช่น $ sudo dpkg-deb --build debian osx_0.1.deb

เสร็จเรียบร้อย

นาทีที่ 5 ตรวจสอบและติดตั้ง

$ ls -l จะเห็นว่า package ที่ได้อยู่ในระดับเดียวกับโฟลเดอร์ที่เราอยู่

$ dpkg -f <ชื่อ .deb ที่ได้-พิมพ์ตัวอักษรสองสามตัวแล้วกด tab เพื่อให้ fill in เอง>

เช่น $ dpkg -f osx_0.1.deb จะแสดง control ที่เราสร้างขึ้นมา ใช้คำสั่งนี้กับทุก .deb ได้

ติดตั้งโดยใช้คำสั่ง $ sudo dpkg -i osx_0.1.deb ตรวจสอบการติดตั้ง

$ dpkg -l osx (ไม่ต้องใส่เวอร์ชั่น ใส่แค่ชื่อ ควรตั้งชื่อ .deb ให้สื่อความหมาย)

$ dpkg -L osx | less ตรวจสอบว่า Icons ที่ติดตั้งไปอยู่ path ที่ตั้งใจหรือเปล่า ซึ่งควรอยู่ใน /usr/share/icons

ถ้าไม่พอใจก็ remove ซะ

$ sudo dpkg -r osx

ก็เป็นดังนี้แล ใน 5 นาทีจริงๆ ผมจับเวลาแล้ว...

การประยุกต์ใช้

1. ผมทำ icons pack มี icons หลายชุด ติดตั้งทีเดียว (ประมาณ 8 ชุด แพกลง .deb เดียว)

2. อันนี้ดัดแปลงกับการติดตั้ง font ก็ได้ ลองดูโครงสร้าง .deb ของ font และการเรียกใช้ defomaแต่จะไม่อธิบายนะ

ครับ ทีนี้จะได้มี font ใช้กันว่าเล่นแล้วล่ะ

3. ลองทำกับ Wallpapers ดู วิธีการเหมือนกัน path /usr/share/backgrounds เป็นต้น

ปล. ถ้าเป็น 15 นาที 50 นาที หรือ 5 ชั่วโมง ก็ขึ้นอยู่กับชั่วโมงบินล่ะคร๊าบ

Trendy Teddy

somjate's picture

Very Thank you!

ได้ความรู้ใหม่อีกแล้ว ชอบมากๆครับ WillWill จะมาเสนอแนะเพิ่มเติมก็ดีนะครับ เห็นว่าใช้ checkinstall ทำ deb ลักษณะนี้ได้เหมือนกัน ...

ขอบคุณนะตัวเอง ^^

snappy's picture

เดียวไปลอ

เดียวไปลองทำเล่นๆบางดีกว่า หุหุ
--------------------------
You'll never walk alone!!!
http://snappy.bloggoo.com

บอกได้คำเ

บอกได้คำเดียวว่า เยี่ยม!! ครับ
จะรอคอยตอนต่อไปนะครับ :)

TrendyTeddy's picture

มีแก้ไข

มีส่วนที่ผมแก้ไขเนื้อหาด้วย ถ้าลองทำดู ก็ขอให้อ่านที่ ** ไว้
อีกข้อนะครับ ควรจะ build package ที่พาร์ทิชั่นแบบของ linux (ext2, ext3)
เพราะผมลองบน ntfs แล้วไม่ได้ ย้ายมาทำบน $HOME หรือ /tmp จะดีกว่า

ปล.ทำเยอะๆ แล้วชักคล่อง คราวนี้ 4 นาทีก็ได้แล้ว นี่ถ้าเขียน script เป็น
และใส่ agrument ไปทีเดียว 15 วินาทีก็ได้ ใครลองเขียน script หน่อยได้ไหมครับ

เล่น checkinstall

เล่น checkinstall สิครับ
http://www.ubuntuclub.com/node/693 :P

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <i> <center> <span> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <br> <dt> <dd> <object> <embed> <hr> <img> <blockquote> <b> <u> <del> <div> <p> <table> <tr> <td> <font>

More information about formatting options