Chapter 20 Ports and Packages ±`¨£°ÝÃD

Yi-Feng Tzeng
20.1. ¦p¦ó¥u§ì¨ú tarball¡H
20.2. ¦p¦ó¶È°µ¨ì¸Ñ¶} tarballªº¨BÆJ¡H
20.3. ¦p¦ó¶È°µ¨ì¸Ñ¶} tarball ¨Ã¸É¤W©x¤è´£¨Ñªº patch ¡H
20.4. ¦p¦ó¦w¸Ë¤@­Ó·sªº port¡H
20.5. ¦p¦ó¦w¸Ë¤@­Ó·sªº port¡A¨Ã¥´¥](package)°_¨Ó¡H
20.6. ¦p¦ó¥´¥]¤@­Ó port¡A¨Ã±N¨ä©Ò¦³¬Û¨Ìªº ports ¤]¥´¥]°_¨Ó¡H
20.7. ¦p¦ó¹ï¤@­Ó¤w¸g¦w¸Ëªº port ¥´¥]¡H
20.8. ¦p¦ó²M²z ports ½s¿è´Á¶¡©Ò²£¥Íªº¼È¦s¸ê®Æ¡H
20.9. ¦p¦ó²M²z ports ½s¿è´Á¶¡©Ò²£¥Íªº¼È¦s¸ê®Æ¡A¥H¤Î tarball ÀÉ¡H
20.10. ¦p¦ó¦b¦w¸Ë ports «e¬d¸ß©Ò¨Ì¿àªº¬ÛÃö®M¥ó¡H
20.11. ¦p¦ó²¾°£¤w¦w¸Ëªº ports¡H
20.12. ¦p¦ó¤@¨Ö²¾°£©Ò¬Û¨Ìªº ports¡H
20.13. ¦p¦ó­«·s¦w¸Ë¤w¦w¸Ë¹Lªº ports¡H
20.14. ¦p¦ó¥HÃöÁä¦r·j´M ports¡H
20.15. ¦p¦ó¤É¯Å¤w¦w¸Ëªº ports¡H
20.16. ¦p¦ó¬d¸ß¥Ø«e¨t²Î¦w¸Ë¤F­þ¨Ç®M¥ó¡H
20.17. ¦p¦ó¬d¸ß¥Ø«e¨t²Î¦³¨S¦³¦w¸Ë³o­ÓÃöÁä¦rªº®M¥ó¡H
20.18. ¦p¦ó¬d¸ß¬Y­ÓÀɮ׬OÄÝ©ó­þ¨Ç®M¥ó¡H
20.19. ¦p¦ó¬d¸ß¬Y­Ó®M¥ó¦w¸Ë¤F­þ¨ÇÀɮסH
20.20. ¦p¦ó¦w¸Ëª©ªº ports¡H
20.21. ¦p¦ó§ó·s ports Mk¡H
20.22. ¦p¦ó¸Ñ¨M¦w¸Ë ports ®É¥X²{ sed -i ªº¿ù»~¡H
20.23. ¦p¦ó¦C¥X©Ò¦³¥i¥H¤É¯Åªº ports¡H
20.24. ¦p¦ó±oª¾ ports ©Ò´£¨Ñªº½sĶ°Ñ¼Æ¡H
20.25. ¦p¦ó¤â°Ê¥[¤J½sĶ ports ªº°Ñ¼Æ¡H
20.26. ¦p¦ó«ü©w ports ªº¦w¸Ë¸ô®|¡H
20.27. ¦w¸Ë ports ¥X²{ FORCE_PKG_REGISTER ªº¿ù»~°T®§
20.28. ¦w¸Ë ports ¥X²{ Shared object libintl.so.X not found ªº¿ù»~°T®§
20.29. ¦p¦ó¦w¸Ë packages¡H
20.30. ¦p¦ó±j¨î¦w¸Ë packages¡H
20.31. ¦p¦ó¬d¸ß packages »P¨ä¥L packages ¤§¶¡ªº¬Û¨Ì©Ê¡H
20.32. ¦p¦ó¦w¸Ë»·ºÝªº packages¡H
20.33. ¦p¦ó§ó·s INDEX ¹ï·Óªí¡H
20.34. ¦p¦ó§ó·s INDEX HTML¡H
20.35. ¦p¦ó°w¹ï¬Y¨Ç ports ¤£°µ ports update¡H
20.36. make deinstall »P pkg_delete ¦³¤°»ò¤£¦P¡H

20.1. ¦p¦ó¥u§ì¨ú tarball¡H

¦pªG¥u§Æ±æ§ì¨ú tarball ¤U¨Óªº¸Ü¡A¶È»Ý¿é¤J¥H¤U«ü¥O§Y¥i¡G

# make fetch
¦pªG¬O­n§ì¨ú³æ¤@ªº port¡A¥H editors/joe ¬°¨Ò¡G
# cd /usr/ports/editors/joe
# make fetch

¨º»ò¡A¹w³]·|±N editors/joe ªº tarball ¤U¸ü¦Ü /usr/ports/distfiles ¥Ø¿ý¤U¡C

¦pªG¬O§Æ±æ§ì¨ú¦w¸Ë¦¹ ports ©Ò¦³¬ÛÃö¬Û¨Ì ports ªº tarball¡A¥H systuils/portupgrade ¬°¨Òªº¸Ü¡A «h¡G

# cd /usr/ports/systuils/portupgrade
# make fetch-recursive

¹w³]·|±N¦¹ port »P©Ò¦³»Ý­nªº¨ä¥L port ªº tarball¡A¤U¸ü¦Ü /usr/ports/distfiles ¥Ø¿ý¤U¡C

¦pªG¬O§Æ±æ§ì¨ú¥þ³¡©Ò¦³ ports ªº tarball ¡A«h¡G

# cd /usr/ports
# make fetch

«h·|©Ò±N¥þ³¡©Ò¦³ ports ªº tarball ¤U¸ü¦Ü /usr/ports/distfiles ¥Ø¿ý¤U¡C

¦pªG¬O§Æ±æ§ì¨ú ftp ¤ÀÃþ¤U©Ò¦³ ports ªº tarball ¡A«h¡G

# cd /usr/ports/ftp
# make fetch-recursive

«h·|©Ò±N ftp ¤ÀÃþ¤U©Ò¦³ ports ªº tarball ³£¤U¸ü¦Ü /usr/ports/distfiles ¥Ø¿ý¤U¡C

20.2. ¦p¦ó¶È°µ¨ì¸Ñ¶} tarballªº¨BÆJ¡H

¦³®É­Ô²ßºD¦Û¤v patch ­ì©l½Xªº®É­Ô¡A·|«Ü±`¥Î¨ì³o­Ó¥\¯à¡C¥H editors/joe ¬°¨Ò¡G

# cd /usr/ports/editors/joe
# make extract

·|±N tarball¸Ñ¶}¦Ü /usr/ports/editors/joe/work ¥Ø¿ý¤U¡C

20.3. ¦p¦ó¶È°µ¨ì¸Ñ¶} tarball ¨Ã¸É¤W©x¤è´£¨Ñªº patch ¡H

¦¹ªk»P make extract ªº¤èªk¦³¤@¨ÇÃþ¦ü¡A¤£¦P©ó¬O¥ý¸É¤W©x¤è´£¨Ñªº patch¡A¦A¦æ patch ¦Û¤vªº­×¥¿¡C ¦³®É­Ô²ßºD¦Û¤v patch ­ì©l½Xªº®É­Ô¡A «h³o­Ó¤è¦¡¥¿¦n²Å¦X±zªº»Ý¨D¡C ¥H editors/joe ¬°¨Ò¡G

# cd /usr/ports/editors/joe
# make patch

·|±N tarball¸Ñ¶}¦Ü /usr/ports/editors/joe/work ¥Ø¿ý¤U ¡A¨Ã¸É¤W©x¤è´£¨Ñªº patch¡C

20.4. ¦p¦ó¦w¸Ë¤@­Ó·sªº port¡H

¦pªG¨t²Î¤W¥¼¦w¸Ë¦¹³nÅé¡A«h¥i¥H¿ï¾Ü¦w¸Ë¤@­Ó·sªº port¡C ¥H editors/joe ¬°¨Òªº¸Ü¡A«h¡G

# cd /usr/ports/editors/joe
# make install

¦p¦¹·|¦b¨t²Î¤W¦w¸Ë¤@­Ó·sªº joe ³nÅé¡C ¦pªG»Ý­n¦b¦w¸Ë§¹¦¨«á¡A¤@¨Ö²M°£½s¿è®É´Á©Ò¯d¤U¨Óªº¼È¦s¥Ø¿ý¡A«h¥i°t¦X make clean ªº¤èªk¤@°_¨Ï¥Î¡A¦p¡G

# cd /usr/ports/editors/joe
# make clean

¦pªG·Q­n¤@¦¸²M±¼©Ò¦³ ports ²£¥Íªº¼È¦s¸ê®Æ¡A«h¥u­n¦^¨ì ports ªº®Ú¥Ø¿ý°õ¦æ§Y¥i¡G

# cd /usr/ports
# make clean

20.5. ¦p¦ó¦w¸Ë¤@­Ó·sªº port¡A¨Ã¥´¥](package)°_¨Ó¡H

±N¦w¸Ë§¹¦¨ªº³nÅ饴¥]°_¨Ó¡A¦³³\¦h«K§Q©Ê¡G¥]¬A¦bÂO¶°¨t²Î¤¤¡A¥i¨Ñ¨ä¥¦¾÷¾¹¨Ï¥Î¡A ©Î±N¥¼¨Ó¦¹³nÅé¥X°ÝÃD¥i­«·s§Q¥Î¦¹ package ­«·s§Ö³t¦w¸Ë¡C ¥H editors/joe ¬°¨Òªº¸Ü¡A«h¡G

# cd /usr/ports/editors/joe
# make package

¦p¦¹·|¦b¨t²Î¤W¦w¸Ë¤@­Ó·sªº joe ³nÅé¡A¨Ã±N¦¹³nÅ饴¥](package)°_¨Ó¡C package ¹w³]·|¦b /usr/ports/editors/joe ¥Ø¿ý¤U¡A¦pªG§Æ±æ¶°¤¤ºÞ²zªº¸Ü¡A«ØÄ³°µ¦p¤Uªº¨BÆJ¡G

# mkdir -p /usr/ports/packages

¥H«á¥´¥]ªº packages ³£·|¦s©ñ¦b¦¹¥Ø¿ý¤U¡A¨Ã¥B¨t²Î·|¦Û°Ê°µ¤ÀÃþ¡A¥H¤è«KºÞ²z¡C ¦pªG»Ý­n¦b¦w¸Ë§¹¦¨«á¡A¤@¨Ö²M°£½s¿è®É´Á©Ò¯d¤U¨Óªº¼È¦s¥Ø¿ý¡A«h¥i°t¦X make clean ¤@°_¨Ï¥Î¡A¦p¡G

# cd /usr/ports/editors/joe
# make package clean

20.6. ¦p¦ó¥´¥]¤@­Ó port¡A¨Ã±N¨ä©Ò¦³¬Û¨Ìªº ports ¤]¥´¥]°_¨Ó¡H

¦]¬° make package ¥u¦³¥´¥]³æ¤@®M¥ó¡A ¤¤¶¡¨Ì¿àªº ports ¨Ã¨S¦³¤@°_¥´¥]¡A³o·|¥X²{¤@­Ó±`¹J¨ìªº°ÝÃD¡G ´N¬O¦pªG¤@­Ó port »Ý­n¨Ì¿à¨ä¥¦ªº ports¡A¨º»ò¥²¶·±N¨ä¥¦ ports ¤]¤@°_¥´¥]¡A§_«h¦w¸Ë packages ·|¦³¬Û¨Ì©Êªº°ÝÃD¡C ¥H sysutils/portupgrade ¬°¨Ò¡G

# cd /usr/ports/sysutils/portupgrade
# make DEPENDS_TARGET=package package

¦p¦¹·|¹ï©Ò¦³ portupgrade ©Ò¬Û¨Ì¿àªº ports ³£¤@¨Ö¥´¥]¡A¤]¥]¬A¦Û¤v¥»¨­¡C

20.7. ¦p¦ó¹ï¤@­Ó¤w¸g¦w¸Ëªº port ¥´¥]¡H

¦pªG¦w¸Ë¦n¤@­Ó®M¥ó¡A¨Æ«e¨Ã¥¼¥´¥]¡A¨Æ«á·Q¥´¥]ªº¸Ü¡A«h¡G ¥H editors/joe ¬°¨Ò¡G

# cd /var/db/pkg
# pkg_create -b joe-{ª©¥»¸¹}

·|±N¤w¦w¸Ëªº port ¥´¥]°_¨Ó¡A©ñ¦b /var/db/pkg ¥Ø¿ý¤U¡C

20.8. ¦p¦ó²M²z ports ½s¿è´Á¶¡©Ò²£¥Íªº¼È¦s¸ê®Æ¡H

¦b¦w¸Ë port ªº®É­Ô¡A·|¦³½sĶ´Á¶¡©Ò»Ý­nªº¤u§@¥Ø¿ý(work)¡A¦]¦¹³q±`¦w¸Ë¦n¤@­Ó®M¥ó«á¡A·|²M°£¦¹¼È¦s¥Ø¿ý¡A¥H¸`¬ÙµwºÐªÅ¶¡¡C ¥H editors/joe ¬°¨Ò¡G

# cd /usr/ports/editors/joe
# make clean

¦pªG¬O§Æ±æ²M°£©Ò¦³ ports ªº¼È¦s¥Ø¿ý¡A«h¡G

# cd /usr/ports
# make clean

¦pªG¬O§Æ±æ²M°£©Ò¦³ ftp ¤ÀÃþªº¼È¦s¥Ø¿ý¡A«h¡G

# cd /usr/ports/ftp
# make clean

20.9. ¦p¦ó²M²z ports ½s¿è´Á¶¡©Ò²£¥Íªº¼È¦s¸ê®Æ¡A¥H¤Î tarball ÀÉ¡H

¦b make clean ¶È¥u¬O²M°£½s¿è´Á¶¡©Ò»Ý­nªº¤u§@¥Ø¿ý(work)¡A¨Ã¨S¦³±N½sĶ ports ®É¤@¨Ö¤U¸üªº tarball §R°£(¬Û¹ïÀ³¤§ tarball ¹w³]·|¦s©ñ¦b /usr/ports/distfiles) ¦pªG·Q§â tarball ¤@¨Ö²M°£ªº¸Ü¡A¥H editors/joe ¬°¨Ò¡G

# cd /usr/ports/editors/joe
# make distclean

make distclean ªº¨BÆJ¥]§t¤F make clean ªº¥\¯à¡A¤]´N¬O»¡°£¤F·|§R°£ tarball ¥~¡AÁÙ·|¤@¨Ö²M°£½sĶ®Éªº¼È¦s work ¥Ø¿ý¡C

¦pªG¬O§Æ±æ²M°£©Ò¦³ ports ªº¼È¦s work ¥Ø¿ý¤Î tarball¡A«h¡G

# cd /usr/ports
# make distclean

¦Ó¦pªG¬O§Æ±æ²M°£©Ò¦³ ftp ¤ÀÃþªº work ¥Ø¿ý¤Î tarball¡A«h¡G

# cd /usr/ports/ftp
# make distclean

20.10. ¦p¦ó¦b¦w¸Ë ports «e¬d¸ß©Ò¨Ì¿àªº¬ÛÃö®M¥ó¡H

¦b¦w¸Ë ports «e¡A¥i¥H¬d¸ß©Ò¨Ì¿àªº¬ÛÃö®M¥ó¡C ¥H mail/p5-Mail-SpamAssassin ¬°¨Ò¡G

# cd /usr/ports/mail/p5-Mail-SpamAssassin
# make all-depends-list

make all-depends-list Åã¥Ü¦¹®M¥ó©Ò¦³¬Û¨Ìªº®M¥ó¡C

# cd /usr/ports/mail/p5-Mail-SpamAssassin
# make pretty-print-build-depends-list

make all-depends-list Åã¥Ü¦¹®M¥ó¦b½sĶ´Á¶¡©Ò»Ý­nªº®M¥ó¡C

# cd /usr/ports/mail/p5-Mail-SpamAssassin
# make pretty-print-run-depends-list

make all-depends-list Åã¥Ü¦¹®M¥ó­n°õ¦æ®É©Ò»Ý­nªº®M¥ó¡C

20.11. ¦p¦ó²¾°£¤w¦w¸Ëªº ports¡H

¥H editors/joe ¬°¨Ò¡G

# cd /usr/ports/editors/joe
# make deinstall

©Î¬O¨Ï¥Î pkg_delete¡G

# pkg_delete joe-{version}

¦³®É­Ô®M¥ó¤§¶¡ªº¬Û¨Ì©Ê·|¾É­PµLªkª½±µ²¾°£¡A¦pªG­n±j¨î²¾°£ªº¸Ü¡A«h¡G

# pkg_delete -f joe-{version}

¦ý½Ðª`·N¡G«Ü¦³¥i¯à·|¾É­P¨ä¥¦¬Û¨Ì¨ì³o³nÅ骺®M¥ó°õ¦æ°_¨Ó¥X²{°ÝÃD¡C

¦Ü©ó¤GªÌªº®t§O¡A½Ð°Ñ¦Ò make deinstall »P pkg_delete ¦³¤°»ò¤£¦P

20.12. ¦p¦ó¤@¨Ö²¾°£©Ò¬Û¨Ìªº ports¡H

¥H sysutils/portupgrade ¬°¨Ò¡G

# cd /usr/ports/sysutils/portupgrade
# make deinstall-depends

°õ¦æ¦¹¨BÆJ«e¡A½Ðª`·N¬O§_·|²¾°£¨ä¥L®M¥ó¤]¦³¦@¦P¬Û¨Ìªº³¡¤À¡C«ØÄ³¥ý°Ñ¦Ò make-depends-list ªº¤èªk¨ÓÀˬd¡C

©Î¬O¨Ï¥Î

pkg_delete

³o¼Ë­Y¤´¦³¬Û¨Ì¸Ó®M¥óªº¸Ü¡A·|¥ýĵ§i¦Ó¤£·|²¾°£¡C°£«D¦³¥t¥~¥[¤F -f °Ñ¼Æ¨Ó±j¨î²¾°£¡C

# pkg_delete -r portupgrade-{version}

¦Ü©ó¤GªÌªº®t§O¡A½Ð°Ñ¦Ò make deinstall »P pkg_delete ¦³¤°»ò¤£¦P

20.13. ¦p¦ó­«·s¦w¸Ë¤w¦w¸Ë¹Lªº ports¡H

­«·s¦w¸Ëªº«e´£¬O¡G¤§«e¦³¦w¸Ë¹L©Î¥Ø«e¤w¦w¸Ë¡C¥H editors/joe ¬°¨Ò¡G

# cd /usr/ports/editors/joe
# make deinstall clean install

©Î¬O

# cd /usr/ports/editors/joe
# make reinstall

20.14. ¦p¦ó¥HÃöÁä¦r·j´M ports¡H

¦pªG­n±q¥þ³¡ªº ports collection ¤¤§ä´M»PÃöÁä¦r "ldap" ¦³Ãöªº ports¡A«h¡G

# cd /usr/ports
# make search key=ldap

¦pªG¥u­n±q»P ftp ¬ÛÃöªº ports ¤U§ä´M»PÃöÁä¦r "ldap" ¦³Ãöªº ports¡A«h¡G

# cd /usr/ports/ftp
# make search key=ldap

ÁÙ¦³¥t¤@­Ó¥Îªk¡A¤èªk¥u¬O±N key ´«¦¨ name¡C¦pªG¤w¸gª¾¹D­n·j´M ports ªº¦WºÙ¡A©Î¥u·Q§ä¦WºÙ¬ÛÃöªºÃöÁä¦r "ldap"¡A «h¡G

# cd /usr/ports
# make search name=ldap

20.15. ¦p¦ó¤É¯Å¤w¦w¸Ëªº ports¡H

¦pªG¤w¸g¦w¸Ë®M¥ó¡A¨Æ«á±ý¤É¯Åªº¸Ü¡A¥²¶·¥ý²¾°£Âª©ªº port¡C¥H editors/joe ¬°¨Ò¡G

# cd /usr/ports/editors/joe
# make clean reinstall

20.16. ¦p¦ó¬d¸ß¥Ø«e¨t²Î¦w¸Ë¤F­þ¨Ç®M¥ó¡H

¬d¸ß¥Ø«e¨t²Î¤w¦w¸Ëªº¥þ³¡®M¥ó¡G

# pkg_info

20.17. ¦p¦ó¬d¸ß¥Ø«e¨t²Î¦³¨S¦³¦w¸Ë³o­ÓÃöÁä¦rªº®M¥ó¡H

°²³]­n§äªºÃöÁä¦r¬O joe ªº¸Ü¡G

# pkg_info | grep joe

20.18. ¦p¦ó¬d¸ß¬Y­ÓÀɮ׬OÄÝ©ó­þ¨Ç®M¥ó¡H

¦pªG·Q¬d¸ß /usr/local/bin/joe ¬OÄÝ©ó­þ­Ó®M¥óªº¸Ü¡A«h¡G

# pkg_info -W /usr/local/bin/joe

¦pªG¨S¦³¦^¶Ç¥ô¦ó¸ê°Tªº¸Ü¡A¥NªíµÛ³o­ÓÀɮ׬O¥Ñ FreeBSD ¤º«Øªº¡C

20.19. ¦p¦ó¬d¸ß¬Y­Ó®M¥ó¦w¸Ë¤F­þ¨ÇÀɮסH

¦pªG·Q¬d¸ß¥Ø«e¨t²Î©Ò¦w¸Ëªº joe ¥]§t¤F­þ¨ÇÀɮסA«h¡G

# pkg_info -L /var/db/pkg/joe-{version}

20.20. ¦p¦ó¦w¸Ëª©ªº ports¡H

¦³®É­Ô·|¦]¬°¬Û¨Ì©Ê¡A©Î¬O·sª©¦³°ÝÃD¡A¦Ó·|·Q¸Ëª©¥»ªº®M¥ó¡C ³o¸Ì¤¶²Ðªº¤èªk¬O§Q¥Î CVS ªº¦n³B¡A¦^Âk¨ì¥H«eª©¥»¦s¦bªº¤é¤l¡A¥H¦w¸Ëª©¥»ªº®M¥ó¡C

­º¥ý¡A­Y§Ú­Ì­n¦^´_¨ì¬Y¤@­Ó®M¥óªºª©¥»®É¡A»Ý­n¥h¬d¸ß FreeBSD ports CVS repository¡C ³Ì±`¨£ªº´N¬O Freshports ºô¯¸¡B FreeBSD ªº Mailing FreeBSD cvs ©Î¬O FreeBSD ports cvsweb¡C

¬d¨ì¸Ó®M¥óª©¥»©Ò¨Ì¦sªº¤é¤l«á¡A´N­×§ï CVS tag¡C¤@¯ë¹w³] ports ªº CVS tag ·|¼g¦b /usr/share/examples/cvsup/ports-supfile ¡A¦p­n¦^·¹¨ì 2002/10/05 ¸¹ªº¸Ü¡A«h¡G

# vi /usr/share/examples/cvsup/ports-supfile
*default date=2002.10.05.00.00.00  #±N date §ï¦¨·í¤é

µM«á«ö·Ó¤@¯ë CVSup ©Î csup ªº®É­Ô¤@¼Ë¡A°õ¦æ CVSup ©Î csup (make update)¡A¦¹®Éªº ports collections ´N·|¦^¨ì·í®Éªº±¡§Î¡A¨º»ò¸Ó®M¥óªºÂª©¤]·|¥X²{¦b ports collections ¤¤¡A¥u­n¦w¸Ë§Y¥i¡C

¦pªG¶È¬O·Q¦^·¹¬Y³¡¥÷ªº ports¡A«h¥²¶·¥[¤WÃB¥~ªº¸ê°T¡A¦p¶È§Æ±æ§â lang/perl5.8 ¦^·¹¡A ¦Ó§Ú­Ì±oª¾¦¹ÄÝ©ó lang ¤¤ªº¤@¤ä¡A«h¡G

# vi /usr/share/examples/cvsup/ports-supfile
#ports-all #±N ports-all ¼Ð¥Ü°_¨Ó
ports-lang #¥[¤J³o¦æ

³Ì«á¡A°õ¦æ CVSup ©Î csup ¡A¨Ã¦w¸Ë§Y¥i¡C¥Ø«e­Y§Æ±æ³æ¿W¦^·¹³æ¤@ªº port¡A«h¤ñ¸û³Â·Ð¡C

20.21. ¦p¦ó§ó·s ports Mk¡H

Mk (/usr/ports/Mk) ¬O½sĶ ports ®É©Ò°Ñ¦Òªº³]©w¡A¦³®É­Yµo¥Í ports collections ¤Ó·s¡A¦Ó¾É­P Mk ªº¤º®e¤£²Å¡A¦¹®É´N¬OÀ³¸Ó§ó·s Mk ªº®É­Ô¤F¡C

# cd /usr/src
# make update
# cd /usr/src/share/mk
# make install

20.22. ¦p¦ó¸Ñ¨M¦w¸Ë ports ®É¥X²{ sed -i ªº¿ù»~¡H

¦]¬° BSD style ªº sed ¡A¤]´N¬O BSD ¥»¨­¦Û¦³ªº sed ¡A»P¤@¨Ç ports ½sĶ´Á¶¡©Ò°õ¦æªº sed ¤£¤@­P¡A©Ò¥H·|¾É­P¤@¨Ç»yªk¿ù»~¡C¦¹®É¥ý¦w¸Ë sed_inplace (textproc/sed_inplace)¡AµM«á¦A¦w¸Ë­ì¥»µLªk¦w¸Ëªº ports¡G

# make -DUSE_REINPLACE install

20.23. ¦p¦ó¦C¥X©Ò¦³¥i¥H¤É¯Åªº ports¡H

ports collection ªº§ó·s³t«×«Ü§Ö¡A¦b¨C¦¸§ó·s ports collections «á¡A©¹©¹·|¥X²{¤ñ¥Ø«e²{ ¦b¦w¸Ëªº®M¥óÁÙ·sªºª©¥»¡A¥i¥H¥O¨t²Î¦Û¦æ¾ã²z¨Ã´£¨Ñ¥i¤É¯Å®M¥óªº¦Cªí¡G

# pkg_version -c

20.24. ¦p¦ó±oª¾ ports ©Ò´£¨Ñªº½sĶ°Ñ¼Æ¡H

©Ò¦³ªº ports collections ¤¤©Ò´£¨Ñªº½sĶ°Ñ¼Æ³£·|¦b¹ïÀ³ªº Makefile Àɮפº¸Ô­z¡A ¦p sysutils/portupgrade ªº¸Ü¡A«h¬O¦ì¦b /usr/ports/sysutils/portupgrade/Makefile ÀɮפU¡C

# cd /usr/ports/sysutils/portupgrade
# make -DNOPORTDOCS install

¨º»ò¦w¸Ë¦¹ ports ®É¡A·|±N NOPORTDOCS ©Ò¹ïÀ³ªº¬ÛÃö°Ñ¼Æ«ü©w¶i¥h¡C

¦³®É­Ô³]©w¸û¤H©Ê¤Æªº ports ·|¦b¦w¸Ë«e´£¨Ñ°Ñ¼Æ¨Ñ¿ï¾Ü¡A¦ý¬O¨ä¹ê¤j³¡¥÷ªº ports ³£¨S¦³´£ ¨Ñ¡A¦]¦¹¥²¶·¦Û¦æ¥h·j´M¥i½sĶªº°Ñ¼Æ¡A¦b¦¹§Ú´£¨Ñªº¤è¦¡¦p¤U¡G

# cd /usr/ports/sysutils/portupgrade
# grep defined Makefile

¦p¦¹´X¥G¥i¥Hª¾¹D©Ò¦³´£¨Ñªº¥i½sĶ°Ñ¼Æ¡AÁöµM¦³®É·|¦h¥X¨ä¥¦ªº¸ê®Æ¡A¤£·|³o­Ó½T¹ê¬O¤@­Ó¤£ ¿ù¥i°Ñ¦Òªº¤è¦¡¡C

20.25. ¦p¦ó¤â°Ê¥[¤J½sĶ ports ªº°Ñ¼Æ¡H

¦b «e­±©Ò­z ªº¤èªk¡A¬O ports collections ¦³´£¨Ñªº«e´£¤§¤U¡A¦³®É­Ô¨Ã¤£¬O©Ò¦³¸Ó³nÅé©Ò¤ä´©ªº°Ñ¼Æ³£·|¦¬¯Ç¦b ports collections ¤¤¡A¦]¦¹¦³®É­Ô·|»Ý­n¤â°Ê¥[¤J½sĶªº°Ñ¼Æ¡C

¦p ftp/pure-ftpd ¤¤¡A¦pªG¤£·Q§â inetd ªº¤ä´©½s¤Jªº¿ï¶µ¡A¨Ã¨S¦³³Q ports collections ©Ò¯Ç¤J¡A¦]¦¹¥²¶·¤â°Ê¥[¤W³o­Ó½sĶ°Ñ¼Æ¡A¦p¤U¡G

# cd /usr/ports/ftp/pure-ftpd
# make CONFIGURE_ARGS+="--without-inetd" install

20.26. ¦p¦ó«ü©w ports ªº¦w¸Ë¸ô®|¡H

¹w³] ports collecions ¤w¦w±Æ¦w¸Ëªº¸ô®| (/usr/local/)¡A¦pªG¤£·Q±N®M¥ó¦w¸Ë¦b¹w³]¸ô®|ªº¸Ü¡A¥i¥H¤â°Ê«ü©w¦w¸Ë¸ô®|¡C¥H editors/joe ¬°¨Ò¡A«h¡G

# cd /usr/ports/editors/joe
# make PREFIX=/usr install

¨º»ò joe ´N·|±NÀÉ®×¹ïÀ³¦b /usr ¥Ø¿ý¤U¡A¦Ó¤£¬O¹w³]ªº /usr/local ¥Ø¿ý¤U¡C

20.27. ¦w¸Ë ports ¥X²{ FORCE_PKG_REGISTER ªº¿ù»~°T®§

½Ð°Ñ¦Ò Ohaha ªº FAQ¡C

20.28. ¦w¸Ë ports ¥X²{ Shared object libintl.so.X not found ªº¿ù»~°T®§

½Ð°Ñ¦Ò Ohaha ªº FAQ¡C

20.29. ¦p¦ó¦w¸Ë packages¡H

¥Ø«e FreeBSD ªº packages ¬O¥Ñ .tgz ©Ò¥´¥]¡C¦pªG·Q¦w¸Ë¤@­Ó packages ¡A¥i¨Ï¥Î pkg_add¡A¦p¦w¸Ë¤@­Ó joe ªº tgz¡G

# pkg_add joe-{version}.tgz

20.30. ¦p¦ó±j¨î¦w¸Ë packages¡H

¥Ñ©ó¦³¨Ç packages ·|¦³»P¨ä¥L packages ¬Û¨Ì©ÊªºÃö«Y¡A©Ò¥H¥²¶·¥ý¦æ¦w¸Ë¨º¨Ç packages ¤~ ¯à¥¿±`¦w¸Ë¡C

¦pªG¶·­n±j¨î¦w¸Ë packages ¡A¥i¥H¤£¶·¦w¸Ë¨º¨Ç¦³¬Û¨Ì©Ê packages ¡A¦ý­nª`·Nªº¬O±j¨î¦w¸Ë ªºµ²ªG¥i¯à·|¾É­P°õ¦æ©Î¹B§@ªº¤£¥¿±`¡C±j¨î¦w¸Ë packages ªº«ü¥O¦p¤U¡A¦p±j¨î¦w¸Ë¤@­Ó joe ªº tgz¡G

# pkg_add -f joe-{version}.tgz

20.31. ¦p¦ó¬d¸ß packages »P¨ä¥L packages ¤§¶¡ªº¬Û¨Ì©Ê¡H

¥Ñ©ó¦³¨Ç packages ·|¦³»P¨ä¥L packages ¬Û¨Ì©ÊªºÃö«Y¡A©Ò¥H¥²¶·¥ý¦æ¦w¸Ë¨º¨Ç packages ¤~ ¯à¥¿±`¦w¸Ë¡C

¬d¸ß packages »P¨ä¥L packages ¤§¶¡ªº¬Û¨Ì©Êªº«ü¥O¦p¤U¡A¦p¬d¸ß»P portupgrade ¬Û¨Ìªº¨ä¥L packages¡G

# pkg_info -r portupgrade-{version}.tgz

20.32. ¦p¦ó¦w¸Ë»·ºÝªº packages¡H

¦³¨âºØ³]©w¤è¦¡¡A­º¥ý¬O PACKAGEROOT¡A¦p¡G

# setenv PACKAGEROOT ftp://ftp.tw.freebsd.org

¥t¤@ºØ¤è¦¡¬O³]©w PACKAGESITE¡A¦n³B¬O­Y¸Ó¯¸¥xªº packages ­ÜÀx¨Ã¤£¬O²Å¦X©x¤èªº³]©w©Î§A ·Q¦Û¤v«ü©w¤@­Ó¸ô®|¡C

¥H ftp.tw.freebsd.org i386 ªº current pakcages ¬°¨Ò¡G

# setenv PACKAGESITE ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/i386/packages-current/Latest/

¨âºØ¤è¦¡¿ï¾Ü¨ä¤¤¤@ºØ¬Ò¥i¡A±µ¤U¨Óªº¨BÆJ³£¤@¼Ë¡C

©¹«á­n¦w¸Ë packages ªº®É­Ô¡A¦p portupgrade ªº¸Ü¡A«h¡G

# pkg_add -r portupgrade

«h¨t²Î·|¦Û°Ê©ó ftp.tw.freebsd.org §ì¨ú©Ò¦³»P portupgrade ¬Û¨Ìªº packages ¨Ã¦w¸Ë¡C

20.33. ¦p¦ó§ó·s INDEX ¹ï·Óªí¡H

4.x ªº INDEX ¦ì©ó /usr/ports/INDEX¡A5.x ¦ì©ó /usr/ports/INDEX-5¡A¥H¦¹Ãþ±À¡C

INDEX ¬O¹ï·Ó ports ©Ò¦³¬Û¨Ìµ¥¸ê°Tªº¹ï·Óªí¡A­Yªø´Á¥¼§ó·sªº¸Ü¡A·|¾É­P ports ¹ï·Ó¥¢±Ñ¡C ©x¤è¦³©w´Á§ó·s INDEX¡A¦pªG·Q¦Û¦æ§ó·sªº¸Ü¡A«h¡G

# cd /usr/ports
# make index

¦pªG·Qª½±µ¤U¸ü©x¤è³Ì·sªº INDEX¡A«h¡G

# cd /usr/ports
# make fetchindex

20.34. ¦p¦ó§ó·s INDEX HTML¡H

FreeBSD ´£¨Ñ¤F¥Îºô­¶ªº¤è¦¡¨ÓÆ[¬Ý ports collection¡A§Y¥i¨Ï¥Î lynx, w3m, links ©Î¨ä¥¦¥iÂsÄýºô­¶ªºµ{¦¡¨Ó¬d¾\¡C»s§@¥þ³¡ ports collection ªº¤è¦¡¦p¤U¡G

# cd /usr/ports
# make readmes

¦pªG¬O¶È¶·­n°µ¥Ø«e¥Ø¿ý¤Uªº¸ê°T¡A©Î³æ¤@§ó·s¬Y¤@¤ÀÃþ¤Uªº¸ê°T¡A¦p /usr/ports/ftp ªº¸Ü¡A«h¡G

# cd /usr/ports/ftp
# make readme

«h¶È·|§ó·s /usr/ports/ftp ³o­Ó¥Ø¿ýªº¸ê°T¡A¨ä¤W»P¨ä¤Uªº¥Ø¿ý¬Ò¤£·|§ó°Ê¨ì¡C°õ¦æ¦¨¥\«á¡A·|¦b¬Û¹ïÀ³ªº¥Ø¿ý¤U²£¥Í README.html ªºÀɮסC

20.35. ¦p¦ó°w¹ï¬Y¨Ç ports ¤£°µ ports update¡H

­Y ports ©³¤Uªº¬Y¨Ç¤ÀÃþ§¹¥þ¥Î¤£¨ì¡A«h¥i¥H¦b ports update ®É¡A¤£°µ§ó·s¡A¥H¸`¬Ùºô¸ôÀW¼e»P®É¶¡¡C¥u­n­×§ï /usr/sup/refuse ³o­ÓÀÉ¡C

# ports/french
# ports/german
# ports/lang/perl5.8

«h¤W¦C¥Ø¿ý±N¤£·|§ó·s¡C

20.36. make deinstall »P pkg_delete ¦³¤°»ò¤£¦P¡H

²³æ¨Ó»¡¡Amake deinstall ·|²¾°£¸Ó port¡A¨Ã¥B¤£·|°Ñ·Ó¨ä¬Û¨Ìªº¬ÛÃö®M¥ó¡C

pkg_delete ¦b²¾°£¸Ó port «e¡A·|°Ñ·Ó¨ä¬Û¨Ìªº¬ÛÃö®M¥ó¡A¨Ã¥B pkg_delete ¦³¤ä´© wild card ¡A¦p­n²¾°£©Ò¦³ p ¶}ÀYªº ports¡A«h¡G

# cd /var/db/pkg
# pkg_delete p*

­nª`·Nªº¬O¡A¦pªG¨Ï¥Î make deinstall¡A«h³Ì¦n½T©w¨t²Î¥Ø«e©Ò¦w¸Ëªºª©¥»¡A»P ports collection ¤¤Åã¥Üªºª©¥»²Å¦X¡A§_«h¦³¥i¯à·|¥X²{«D¹w´Á©Ê¿ù»~¡F¦Ó pkg_delete ¬O¦]¬°ª½±µ §R°£¨t²Î¤¤©Ò¦w¸Ëªºª©¥»¡A©Ò¥H¨S¦³¦¹°ÝÃD¡C

¦]¦¹¡A´«¥y¸Ü»¡¡A·í¨t²Î©Ò¦w¸Ëªºª©¥»²Å¦X ports collections ¤¤ªºª©¥»¡A«h¥i¥H¨Ï¥Î make deinstall ©Î pkg_delete¡A§_«hªº¸Ü³Ì¦n¥Î pkg_delete¡C

¥»¤å¤Î¨ä¥L¤å¥ó¡A¥i¥Ñ¦¹¤U¸ü¡Gftp://ftp.FreeBSD.org/pub/FreeBSD/doc/¡C

­Y¦³ FreeBSD ¤è­±ºÃ°Ý¡A½Ð¥ý¾\Ū FreeBSD ¬ÛÃö¤å¥ó¡A¦p¤£¯à¸Ñ¨Mªº¸Ü¡A¦A¬¢¸ß <questions@FreeBSD.org>¡C
Ãö©ó¥»¤å¥óªº°ÝÃD¡A½Ð¬¢¸ß <doc@FreeBSD.org>¡C