Ports พระเอก ของ FreeBSD
ตั้งแต่ใช้ FreeBSD มา
ผมก็ติดตั้งโปรแกรม ผ่าน ports มาโดยตลอด ความประทับใจครั้งแรก
ก็คือ การติดตั้งโปรแกรม gimp ครับ หลังจากที่เข้าไปใน ports
ของ gimp ที่ /usr/ports/graphics/gimp
ตามเอกสารเขาก็แนะนำให้สั่ง make install clean
เท่านั้นเอง ผมก็ตะลึง...
เพราะเพียงชั่วครู่
ระบบการติดตั้งของ FreeBSD
เขาก็แสดงข้อความต่างๆ ออกมา ให้พอเดาได้ว่า เขากำลังไป download
ตัว source code จาก internet แล้วก็ดำเนินการ compile ให้ทันที
ทีนี้ก็นั่งดูกันเพลินเลยครับ เพราะอยากจะรู้ว่า
เขาจะทำอะไรให้เราบ้าง ก็รอกันอยู่นานพอสมควรครับ แล้ว
ระบบการติดตั้งก็แจ้งกลับมาว่า ติดตั้งเรียบร้อย ตอนนั้นก็ตื่นเต้นครับ จำได้ว่า reboot เครื่องใหม่
เพราะยังไม่รู้จัก rehash พอเปิดเครื่องมา ก็เปิด terminal
แล้วสั่ง gimp
เท่านั้นเองครับ โปรแกรม gimp ที่ใฝ่ฝันก็ปรากฎอยู่ตรงหน้า สวยงามสมความตั้งใจ
แล้วก็มารู้อีกที เมื่อเห็นว่ามีเมนูเพิ่มมาให้เรียบร้อยแล้ว อยู่ใน
เมนู /Applications/Graphics/The
Gimp ของ gnome
Packages
พระรอง
มีอยู่เพียงบางครั้ง
ที่ผมเคยใช้ Packages
ในการติดตั้ง จำได้ว่าตอนนั้นต้องการใช้งาน openoffice แต่มีปัญหากับการติดตั้ง java หรืออะไรสักอย่าง
ก็ทำให้ติดตั้งจาก ports ไม่สำเร็จ เพราะ ใน ports ของ openoffice เขาต้องให้ติดตั้ง java เสียก่อน (ตอนนั้นก็ยังไม่รู้ว่า เราสามารถกำหนดให้ ไม่เอา java ก็ได้) เลยหาทางออก โดยทดลองติตตั้ง ด้วย Packages แทน
ก็ไปเสาะหา ไฟล์ packages ของ openoffice จนได้มา 1 ไฟล์ ทำการทดลองติดตั้ง
ด้วยคำสั่ง pkg_add
openoffice.xxxxxx ทำนองนี้ ก็ใช้เวลาอยู่พักใหญ่ครับ
ก็เพียงคำสั่งเดียว กับ ไฟล์เพียงไฟล์เดียว ผมก็ได้ โปรแกรม openoffice มาใช้งานทันที
เริ่มต้น...เราจะเอา
ports มาได้จากที่ไหน
ในการติดตั้ง FreeBSD
เราจะถูกถามว่าจะติดตั้ง Ports Collection ด้วยหรือไม่
ถ้าเราตอบ Yes เราก็จะมี ports collection อยู่ที่ /usr/ports เป็นที่เรียบร้อย
แต่ในกรณีที่เราไม่ได้ติดตั้ง Ports Collection มาก่อน ให้ทำตามขึ้นตอน ต่อไปนี้ครับ
1.
su เปลี่ยนเป็น root
2. สั่ง # /stand/sysinstall
3. เลื่อก Configure กด Enter
4. เลือก Distributions กด Enter
5. เลือก ports กด Space bar
6. เลือก Exit กด Enter
7. เลือก CDROM , FTP, หรือ อื่นๆ ตามต้องการ (ปกติ เลือก CDROM ครับ)
8. เลือก Exit กด Enter
=== รอครู่ใหญ่ ===
9. เลือก X กด Enter เพื่อออกจากโปรแกรม /stand/sysinstall
2. สั่ง # /stand/sysinstall
3. เลื่อก Configure กด Enter
4. เลือก Distributions กด Enter
5. เลือก ports กด Space bar
6. เลือก Exit กด Enter
7. เลือก CDROM , FTP, หรือ อื่นๆ ตามต้องการ (ปกติ เลือก CDROM ครับ)
8. เลือก Exit กด Enter
=== รอครู่ใหญ่ ===
9. เลือก X กด Enter เพื่อออกจากโปรแกรม /stand/sysinstall
ภายใน Ports ภายใต้
/usr/ports จะแบ่ง Applications ไว้อย่างเป็นระเบียบ
.cvsignore
|
astro
|
finance
|
mbone
|
textproc
|
CHANGES
|
audio
|
french
|
misc
|
ukrainian
|
INDEX-5
|
benchmarks
|
ftp
|
multimedia
|
vietnamese
|
INDEX.db
|
biology
|
games
|
net
|
www
|
LEGAL
|
cad
|
german
|
net-mgmt
|
x11
|
MOVED
|
chinese
|
graphics
|
news
|
x11-clocks
|
Makefile
|
comms
|
hebrew
|
palm
|
x11-fm
|
Mk
|
converters
|
hungarian
|
polish
|
x11-fonts
|
README
|
databases
|
irc
|
portuguese
|
x11-servers
|
Templates
|
deskutils
|
japanese
|
print
|
x11-themes
|
Tools
|
devel
|
java
|
russian
|
x11-toolkits
|
UPDATING
|
distfiles
|
korean
|
science
|
x11-wm
|
accessibility
|
dns
|
lang
|
security
|
|
arabic
|
editors
|
mail
|
shells
|
|
archivers
|
emulators
|
math
|
sysutils
|
ส่วนประกอบของ
Ports
ภายใน port ของแต่ละ
Application ประกอบไปด้วย
1. ไฟล์ Makefile เป็นไฟล์ ที่จะบอกถึงรายละเอียดการ compile โปรแกรม และ directory ที่ที่จะติดตั้งโปรแกรม
2. ไฟล์ distinfo เป็นไฟล์ที่ แสดง checksums ที่ใช้ตรวจสอบไฟล์ ที่ download มาเพื่อการติดตั้ง
3. files directory เป็น directory ที่ใช้เก็บ patches files
4. ไฟล์ pkg-descr เก็บรายละเอียดคำอธิบาย โปรแกรม
5. ไฟล์ pkg-plist เก็บรายชื่อไฟล์ ที่จะติดตั้ง และ เป็นรายชื่อไฟล์ที่ต้องลบออก หลังการ ยกเลิกการติดตั้งโปรแกรม
6. ในบาง ports อาจจะมีไฟล์อื่นๆ เช่น pkg-message เพื่อให้รายละเอียดบางอย่างหลังเสร็จสิ้นการติดตั้ง
1. ไฟล์ Makefile เป็นไฟล์ ที่จะบอกถึงรายละเอียดการ compile โปรแกรม และ directory ที่ที่จะติดตั้งโปรแกรม
2. ไฟล์ distinfo เป็นไฟล์ที่ แสดง checksums ที่ใช้ตรวจสอบไฟล์ ที่ download มาเพื่อการติดตั้ง
3. files directory เป็น directory ที่ใช้เก็บ patches files
4. ไฟล์ pkg-descr เก็บรายละเอียดคำอธิบาย โปรแกรม
5. ไฟล์ pkg-plist เก็บรายชื่อไฟล์ ที่จะติดตั้ง และ เป็นรายชื่อไฟล์ที่ต้องลบออก หลังการ ยกเลิกการติดตั้งโปรแกรม
6. ในบาง ports อาจจะมีไฟล์อื่นๆ เช่น pkg-message เพื่อให้รายละเอียดบางอย่างหลังเสร็จสิ้นการติดตั้ง
การ
ตรวจสอบ Ports ก่อนการติดตั้ง (พี่มะขามแนะนำมา)
ในกรณีที่เราต้องการ ตรวจสอบด้วยตัวเอง ว่า Ports ที่เราจะติตดั้ง
เขาจะติดตั้งอะไรที่เกี่ยวข้องบ้าง ก็สามารถใช้คำสั่งนี้ตรวจสอบได้ครับ
cd เข้าไปใน ports ที่ต้องการ เช่น
# cd /usr/ports/www/apache2
# make build-depends-list
/usr/ports/converters/libiconv
/usr/ports/devel/autoconf259
/usr/ports/devel/libtool15
/usr/ports/lang/perl5.8
/usr/ports/textproc/expat2
# cd /usr/ports/www/apache2
# make build-depends-list
/usr/ports/converters/libiconv
/usr/ports/devel/autoconf259
/usr/ports/devel/libtool15
/usr/ports/lang/perl5.8
/usr/ports/textproc/expat2
ทั้งนี้ ทั้งนั้น FreeBSD
เขาจะตรวจสอบและติดตั้ง โปรแกรมที่เกี่ยวข้องให้เรา
อย่างอัติโนมัติอยู่แล้วครับ
เริ่มการติดตั้งโปรแกรมด้วย
Ports
เมื่อเราเลือกโปรแกรมที่จะติดตั้งได้แล้ว
su เพื่อเปลี่ยนเป็น root
# cd /usr/ports/www/apache2
# make install clean
#
นอกจากนั้น ก็เพียงนั่งรอ และคอยติดตามตอบคำถามบางอย่าง หรือ แก้ไขปัญหาบางอย่าง เท่านั้น ถ้าไม่ติดขัดอะไร การติดตั้งโปรแกรมทั่วๆไป ก็สั่งเพียงเท่านี้ครับ
source code ของโปรแกรมที่เราติดตั้งด้วย ports จะถูกเก็บไว้ที่ /usr/ports/distfiles ครับ เราสามารถ นำไฟล์นี้ไปใช้กับเครื่องอื่นๆได้ ถ้าต้องติดตั้ง โปรแกรมเดียวกัน โดย copy ไปเก็บไว้ใน /usr/ports/distfiles ของเครื่องนั้นๆ แล้วสั่งติดตั้งจาก ports ตามปกติ จะทำให้การติดตั้งเร็วขึ้น เพราะไม่ต้องไป download source code มาอีก
su เพื่อเปลี่ยนเป็น root
# cd /usr/ports/www/apache2
# make install clean
#
นอกจากนั้น ก็เพียงนั่งรอ และคอยติดตามตอบคำถามบางอย่าง หรือ แก้ไขปัญหาบางอย่าง เท่านั้น ถ้าไม่ติดขัดอะไร การติดตั้งโปรแกรมทั่วๆไป ก็สั่งเพียงเท่านี้ครับ
source code ของโปรแกรมที่เราติดตั้งด้วย ports จะถูกเก็บไว้ที่ /usr/ports/distfiles ครับ เราสามารถ นำไฟล์นี้ไปใช้กับเครื่องอื่นๆได้ ถ้าต้องติดตั้ง โปรแกรมเดียวกัน โดย copy ไปเก็บไว้ใน /usr/ports/distfiles ของเครื่องนั้นๆ แล้วสั่งติดตั้งจาก ports ตามปกติ จะทำให้การติดตั้งเร็วขึ้น เพราะไม่ต้องไป download source code มาอีก
การยกเลิกโปรแกรมที่ติดตั้งด้วย
Ports
su เพื่อเปลี่ยนเป็น root
# cd /usr/ports/www/apache2
# make deinstall clean
#
การยกเลิกมักจะใช้เวลาในการทำงานเร็วกว่าการติดตั้งมาก
# cd /usr/ports/www/apache2
# make deinstall clean
#
การยกเลิกมักจะใช้เวลาในการทำงานเร็วกว่าการติดตั้งมาก
ด้วยระบบการติดตั้งโปรแกรมด้วย Ports นี้ เราจะติดตั้งและยกเลิก
ซะกี่ครั้งก็ทำได้ดังใจปราถนาครับ ระบบจะทำซ้ำให้อย่างเป็นระบบ ดังนั้นจึงปลอดภัย
เหมาะสำหรับมือใหม่ใช้ ทดลองติดตั้งโปรแกรม และเหมาะสำหรับ มือเก่า
ใช้ในการเรียนรู้ การติดตั้งที่หลากหลาย
การค้นหาโปรแกรม
จาก Ports
ในกรณีที่เรารู้ชื่อ Application หรือ ชื่อโปรแกรม
ก็สามารถค้นหาได้ด้วยวิธีง่ายๆ whereis ครับ
#
whereis apache2
apache2: /usr/ports/www/apache2
apache2: /usr/ports/www/apache2
ด้วยคำสั่งนี้เราก็รู้ได้ทันทีว่า apache2 พร้อมติดตั้งได้จาก ports อยู่ใน directory /usr/ports/www/apache2 ครับ
FreeBSD
ยังมีคำสั่งสำหรับค้นหาโปรแกรมที่ต้องการ ที่ทำขึ้นมาใช้กับระบบ ports
โดยเฉพาะครับ
เริ่มจากเข้าไปอยู่ใน directory ports เสียก่อนครับ
# cd /usr/ports
สั่ง ค้นหาโปรแกรมที่ต้องการ เช่น gimp
# make search name=gimp | less
เราก็จะได้ข้อมูลมากมาย
เริ่มจากเข้าไปอยู่ใน directory ports เสียก่อนครับ
# cd /usr/ports
สั่ง ค้นหาโปรแกรมที่ต้องการ เช่น gimp
# make search name=gimp | less
เราก็จะได้ข้อมูลมากมาย
Port:
gimp-1.2.5_1,1
Path: /usr/ports/graphics/gimp1
Info: The GNU Image Manipulation Program
Maint: gnome@FreeBSD.org
B-deps: aalib-1.4.r5_1 expat-1.95.8_3 fontconfig-2.2.3,1 freetype2-2.1.10_1 gettext-0.14.5 gimp-print-4.2.7_1 glib-1.2.10_11 gmake-3.80_2 gtk-1.2.10_13 jpeg-6b_3 libiconv-1.9.2_1 libijs-0.35 libtool-1.3.5_2 perl-5.8.7 pkgconfig-0.17.2 png-1.2.8_2 tiff-3.7.3 xorg-libraries-6.8.2
R-deps: aalib-1.4.r5_1 expat-1.95.8_3 fontconfig-2.2.3,1 freetype2-2.1.10_1 gettext-0.14.5 gimp-print-4.2.7_1 glib-1.2.10_11 gtk-1.2.10_13 jpeg-6b_3 libiconv-1.9.2_1 libijs-0.35 perl-5.8.7 pkgconfig-0.17.2 png-1.2.8_2 tiff-3.7.3 xorg-libraries-6.8.2
WWW: http://www.gimp.org/
Path: /usr/ports/graphics/gimp1
Info: The GNU Image Manipulation Program
Maint: gnome@FreeBSD.org
B-deps: aalib-1.4.r5_1 expat-1.95.8_3 fontconfig-2.2.3,1 freetype2-2.1.10_1 gettext-0.14.5 gimp-print-4.2.7_1 glib-1.2.10_11 gmake-3.80_2 gtk-1.2.10_13 jpeg-6b_3 libiconv-1.9.2_1 libijs-0.35 libtool-1.3.5_2 perl-5.8.7 pkgconfig-0.17.2 png-1.2.8_2 tiff-3.7.3 xorg-libraries-6.8.2
R-deps: aalib-1.4.r5_1 expat-1.95.8_3 fontconfig-2.2.3,1 freetype2-2.1.10_1 gettext-0.14.5 gimp-print-4.2.7_1 glib-1.2.10_11 gtk-1.2.10_13 jpeg-6b_3 libiconv-1.9.2_1 libijs-0.35 perl-5.8.7 pkgconfig-0.17.2 png-1.2.8_2 tiff-3.7.3 xorg-libraries-6.8.2
WWW: http://www.gimp.org/
Port:
gimp-print-4.2.7_1
Path: /usr/ports/print/gimp-print
Info: GIMP Print Printer Driver
Maint: ports@FreeBSD.org
B-deps: gettext-0.14.5 gmake-3.80_2 libiconv-1.9.2_1 libijs-0.35 libtool-1.5.18 pkgconfig-0.17.2
R-deps: gettext-0.14.5 libiconv-1.9.2_1 libijs-0.35 pkgconfig-0.17.2
WWW: http://gimp-print.sourceforge.net/
Path: /usr/ports/print/gimp-print
Info: GIMP Print Printer Driver
Maint: ports@FreeBSD.org
B-deps: gettext-0.14.5 gmake-3.80_2 libiconv-1.9.2_1 libijs-0.35 libtool-1.5.18 pkgconfig-0.17.2
R-deps: gettext-0.14.5 libiconv-1.9.2_1 libijs-0.35 pkgconfig-0.17.2
WWW: http://gimp-print.sourceforge.net/
การ update Ports
FreeBSD
มีทีมงานสำหรับการทำงานกับ Ports โดยเฉพาะครับ
และทีมนี้ก็ทำงานกันตลอดเวลา จึงมีการปรับปรุง และ upgrade โปรแกรมใน
Ports อยู่เสมอ สำหรับผู้ที่ต้องการ Applications
version ใหม่สด เสมอๆ ก็ต้องทำการ update ports ครับ
วิธีที่ผมชอบใช้มาก ก็สั่งเพียง 3 คำสั่ง ดังนี้ครับ
# cvsup /usr/share/examples/cvsup/ports-supfile -h cvsup.freebsd.org
# cd /usr/ports
# make fetchindex
เพียงเท่านี้ ผมก็จะได้ ports ชุด update ล่าสุดไว้ใช้งานแล้วครับ และมีความจำเป็นนะครับ ที่ต้องไปอ่าน ไฟล์ UPDATING ใน /usr/ports ทุกครั้งที่ update ports
# cvsup /usr/share/examples/cvsup/ports-supfile -h cvsup.freebsd.org
# cd /usr/ports
# make fetchindex
เพียงเท่านี้ ผมก็จะได้ ports ชุด update ล่าสุดไว้ใช้งานแล้วครับ และมีความจำเป็นนะครับ ที่ต้องไปอ่าน ไฟล์ UPDATING ใน /usr/ports ทุกครั้งที่ update ports
การตรวจสอบโปรแกรม ที่ติดตั้งไปแล้ว ว่า update หรือไม่
ให้ใช้คำสั่ง pkg_version
-v
.....
|
|
teTeX-3.0
|
= up-to-date with port
|
teTeX-base-3.0_4
|
< needs updating (port has
3.0_5)
|
teTeX-texmf-3.0_3
|
= up-to-date with port
|
tex-texmflocal-1.9
|
= up-to-date with port
|
texi2html-1.76_1,1
|
= up-to-date with port
|
thumbnail_index-1998.08.10_2
|
= up-to-date with port
|
thunderbird-1.0.7_1
|
< needs updating (port has
1.0.7_5)
|
tiff-3.7.4
|
= up-to-date with port
|
totem-gstreamer-1.2.0_1
|
< needs updating (port has
1.2.0_2)
|
transcode-1.0.1
|
< needs updating (port has
1.0.1_1)
|
transfig-3.2.4_1
|
= up-to-date with port
|
twolame-0.3.3
|
= up-to-date with port
|
unzip-5.52_2
|
= up-to-date with port
|
urwfonts-1.0
|
= up-to-date with port
|
vcdimager-0.7.23
|
= up-to-date with port
|
vino-2.12.0_1
|
= up-to-date with port
|
vlc-0.8.2_5
|
< needs updating (port has
0.8.4)
|
vte-0.11.15_2
|
= up-to-date with port
|
vtiger-4.2p2
|
= up-to-date with port
|
.....
|
จากตัวอย่าง จะเห็นว่า โปรแกรม thunderbird , totem-gstreamer และ vlc สามารถ update ใหม่ ได้หากต้องการ เพราะมี version
ใหม่กว่า ที่ได้จากการ update ports
ไม่มีความคิดเห็น:
แสดงความคิดเห็น