FreeBSD Porter ÊÖ²á

The FreeBSD Documentation Project

FreeBSD ÖÐÎļƻ®

FreeBSDÊÇFreeBSD»ù½ð»áµÄ×¢²áÉ̱ꡣ

UNIXÊÇOpen GroupÔÚÃÀ¹úºÍÆäËü¹ú¼ÒµÄ×¢²áÉ̱ꡣ

Sun, Sun Microsystems, SunOS, Solaris, and JavaÊÇSun Microsystems, Inc. ÔÚÃÀ¹úºÍÆäËü¹ú¼ÒµÄÉ̱ê»ò×¢²áÉ̱ꡣ

Apple and QuickTimeÊÇApple Computer, Inc.µÄÉ̱꣬ ÔÚÃÀ¹úºÍÆäËü¹ú¼Ò×¢²á¡£

Macromedia and FlashÊÇMacromedia, Inc. ÔÚÃÀ¹úºÍ/»òÆäËü¹ú¼ÒµÄÉ̱ê»ò×¢²áÉ̱ꡣ

Microsoft, Windows, and Windows MediaÊÇMicrosoft Corporation ÔÚÃÀ¹úºÍ/»òÆäËü¹ú¼ÒµÄÉ̱ê»ò×¢²áÉ̱ꡣ

PartitionMagicÊÇPowerQuest CorporationÔÚÃÀ¹úºÍ/»òÆäËü¹ú¼ÒµÄ×¢²áÉ̱ꡣ

Ðí¶àÖÆÔìÉ̺;­ÏúÉÌʹÓÃһЩ³ÆÎªÉ̱êµÄͼ°¸»òÎÄ×ÖÉè¼ÆÀ´ÕÃÏÔ×Ô¼ºµÄ²úÆ·¡£ ±¾ÎĵµÖгöÏֵģ¬ Ϊ FreeBSD Project ËùÖªÏþµÄÉ̱꣬ºóÃæ½«ÒÔ '™' »ò '®' ·ûºÅÀ´±ê×¢¡£

ÖØÒª: ±¾ÎÄÖÐÐí¿ÉÖ¤µÄ·Ç¹Ù·½ÖÐÎÄ·­Òë½ö¹©²Î¿¼£¬ ²»×÷ΪÅж¨ÈκÎÔðÈεÄÒÀ¾Ý¡£ÈçÓëÓ¢ÎÄÔ­ÎÄÓгöÈ룬ÔòÒÔÓ¢ÎÄÔ­ÎÄΪ׼¡£

ÔÚÂú×ãÏÂÁÐÐí¿ÉÌõ¼þµÄǰÌáÏ£¬ ÔÊÐíÔÙ·Ö·¢»òÒÔÔ´´úÂë (SGML DocBook) »ò ¡°±àÒ롱 (SGML, HTML, PDF, PostScript, RTF µÈ) µÄ¾­¹ýÐ޸ĻòδÐ޸ĵÄÐÎʽ£º

  1. ÔÙ·Ö·¢Ô´´úÂë (SGML DocBook) ±ØÐë²»¼ÓÐ޸ĵı£ÁôÉÏÊö°æÈ¨¸æÊ¾¡¢ ±¾Ìõ¼þÇåµ¥ºÍÏÂÊöÆúȨÊé×÷Ϊ¸ÃÎļþµÄ×îÏÈÈô¸ÉÐС£

  2. ÔÙ·Ö·¢±àÒëµÄÐÎʽ (ת»»ÎªÆäËüDTD¡¢ PDF¡¢ PostScript¡¢ RTF »òÆäËüÐÎʽ)£¬ ±ØÐ뽫ÉÏÊö°æÈ¨¸æÊ¾¡¢±¾Ìõ¼þÇåµ¥ºÍÏÂÊöÆúȨÊ鏴֯µ½Óë·Ö·¢Æ·Ò»Í¬ÌṩµÄÎļþ£¬ ÒÔ¼°ÆäËü²ÄÁÏÖС£

ÖØÒª: ±¾ÎĵµÓÉ FREEBSD DOCUMENTATION PROJECT ¡°°´ÏÖ×´Ìõ¼þ¡± Ìṩ£¬ ²¢ÔÚ´ËÃ÷ʾ²»ÌṩÈκÎÃ÷ʾ»ò°µÊ¾µÄ±£ÕÏ£¬ °üÀ¨µ«²»ÏÞÓÚ¶ÔÉÌÒµÊÊÏúÐÔ¡¢ ¶ÔÌØ¶¨Ä¿µÄµÄÊÊÓÃÐԵݵʾ±£ÕÏ¡£ ÈκÎÇé¿öÏ£¬ FREEBSD DOCUMENTATION PROJECT ¾ù²»¶ÔÈκÎÖ±½Ó¡¢ ¼ä½Ó¡¢ żȻ¡¢ ÌØÊâ¡¢ ³Í·£ÐԵģ¬ »ò±ØÈ»µÄËðʧ (°üÀ¨µ«²»ÏÞÓÚÌæ´úÉÌÆ·»ò·þÎñµÄ²É¹º¡¢ ʹÓᢠÊý¾Ý»òÀûÒæµÄËðʧ»òÓªÒµÖжÏ) ¸ºÔ𣬠ÎÞÂÛÊÇÈçºÎµ¼ÖµIJ¢ÒÔÈκÎÓÐÔðÈÎÂß¼­µÄ£¬ ÎÞÂÛÊÇ·ñÊÇÔÚ±¾ÎĵµÊ¹ÓÃÒÔÍâÒÔÈκη½Ê½²úÉúµÄÆõÔ¼¡¢ ÑϸñÔðÈλòÊÇÃñÊÂÇÖȨÐÐΪ(°üÀ¨Êèºö»òÆäËü)Öеģ¬ ¼´Ê¹Òѱ»¸æÖª·¢Éú¸ÃËðʧµÄ¿ÉÄÜÐÔ¡£

Redistribution and use in source (SGML DocBook) and 'compiled' forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code (SGML DocBook) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.

  2. Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

ÖØÒª: THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Ŀ¼
µÚ1Õ¡¡½éÉÜ
µÚ2Õ¡¡×ÔÐÐÖÆ×÷ port
µÚ3Õ¡¡¼òµ¥µÄ port
3.1 ±àд Makefile
3.2 ´´½¨ÃèÊöÎļþ
3.2.1 pkg-descr (¹ØÓÚ port µÄÈß³¤ÃèÊöÎļþ)
3.2.2 pkg-plist (port µÄ×°Ïäµ¥)
3.3 ´´½¨Ð£ÑéºÍÎļþ
3.4 ²âÊÔ port
3.5 Óà portlint À´¼ì²é port
3.6 Ìá½» port
µÚ4Õ¡¡¸´Ô Porting
4.1 Õû¸öϵͳÊÇÈçºÎÔËתµÄ?
4.2 »ñȡԴ´úÂë
4.3 ÐÞ¸Ä port
4.4 ´ò²¹¶¡
4.5 ÅäÖÃ
4.6 ´¦ÀíÓû§ÊäÈë
µÚ5Õ¡¡ÅäÖà Makefile
5.1 ×÷Õß·¢²¼µÄ´úÂë
5.2 ̟̞
5.2.1 PORTNAME ºÍ PORTVERSION
5.2.2 PORTREVISION ºÍ PORTEPOCH
5.2.3 PKGNAMEPREFIX ºÍ PKGNAMESUFFIX
5.2.4 °üÃüÃû¹æÔò
5.3 ·ÖÀà
5.3.1 CATEGORIES (ËùÊô·ÖÀà)
5.3.2 ĿǰµÄ·ÖÀà±í
5.3.3 Ñ¡ÔñÕýÈ·µÄ·ÖÀà
5.3.4 ÌáÒ齨Á¢ÐµķÖÀà
5.3.5 ÌáÒé¶Ô·ÖÀà½øÐÐÖØÐÂ×éÖ¯
5.4 Ô´Âë°üÎļþ
5.4.1 DISTVERSION/DISTNAME (Ô´Âë°ü°æ±¾ºÅ/Ãû³Æ)
5.4.2 MASTER_SITES (Ö÷Á÷ÏÂÔØÕ¾µã)
5.4.3 EXTRACT_SUFX (ѹËõ°üËùÓõÄÀ©Õ¹Ãû)
5.4.4 DISTFILES (È«²¿Ô´´úÂë°ü)
5.4.5 EXTRACT_ONLY (Ö»½âѹËõ²¿·ÖÔ´Îļþ)
5.4.6 PATCHFILES (ͨ¹ýÏÂÔØµÃµ½µÄ²¹¶¡Îļþ)
5.4.7 À´×Ô²»Í¬Õ¾µãµÄ¶à¸öÔ´´úÂë°ü»ò²¹¶¡Îļþ (MASTER_SITES:n)
5.4.8 DIST_SUBDIR (¶ÀÁ¢µÄÔ´Âë°ü×ÓĿ¼)
5.4.9 ALWAYS_KEEP_DISTFILES (Ò»Ö±±£´æÔ´Âë°ü)
5.5 MAINTAINER (¼à»¤ÈË)
5.6 COMMENT (Ò»¾ä»°ËµÃ÷)
5.7 ÒÀÀµ¹ØÏµ
5.7.1 LIB_DEPENDS (ÒÀÀµµÄº¯Êý¿â/¹²Ïí¿â)
5.7.2 RUN_DEPENDS (ÒÀÀµµÄÔËÐл·¾³)
5.7.3 BUILD_DEPENDS (ÒÀÀµµÄ¹¹½¨»·¾³)
5.7.4 FETCH_DEPENDS (ÒÀÀµµÄÏÂÔØ»·¾³)
5.7.5 EXTRACT_DEPENDS (ÒÀÀµµÄ½âѹËõ»·¾³)
5.7.6 PATCH_DEPENDS (ÒÀÀµµÄ´ò²¹¶¡»·¾³)
5.7.7 DEPENDS (Ò»°ãÒÀÀµ)
5.7.8 USE_*
5.7.9 ÔÚÒÀÀµ¹ØÏµÖÐÖ¸¶¨×îµÍ°æ±¾
5.7.10 ¹ØÓÚÒÀÀµ¹ØÏµµÄ²¹³ä˵Ã÷
5.7.11 Ñ­»·µÄÒÀÀµ¹ØÏµÊÇÖÂÃüµÄ
5.8 MASTERDIR (Ö÷ port ËùÔÚµÄĿ¼)
5.9 Áª»úÊÖ²á
5.10 Info Îļþ
5.11 Makefile Ñ¡Ïî
5.11.1 ¿ª¹Ø (KNOBS)
5.11.2 OPTIONS (²Ëµ¥Ê½¿ÉÑ¡Ïî)
5.12 Ö¸¶¨¹¤×÷ÁÙʱĿ¼
5.12.1 WRKSRC (¿ªÊ¼¹¹½¨²Ù×÷µÄĿ¼Ãû)
5.12.2 NO_WRKSUBDIR (²»ÐèÒªÁÙʱµÄ¹¹½¨Ä¿Â¼)
5.13 CONFLICTS (ÉèÖÃÓëÆäËü°üµÄ³åÍ»)
µÚ6Õ¡¡ÌØÊâÇé¿ö
6.1 ¹²Ïí¿â
6.2 Ports µÄ·¢ÐÐÏÞÖÆ
6.2.1 NO_PACKAGE (½ûÖ¹±àÒë½á¹û´ò°ü)
6.2.2 NO_CDROM (½ûÖ¹ÒÔ CDROM ·¢ÐÐÔ¤±àÒë°ü)
6.2.3 NOFETCHFILES (²»×Ô¶¯×¥È¡Ö¸¶¨µÄÎļþ)
6.2.4 RESTRICTED (½ûÖ¹ÈκÎÐÎʽµÄÔÙ·Ö·¢)
6.2.5 RESTRICTED_FILES (½ûֹijЩÎļþµÄÔÙ·Ö·¢)
6.3 ¹¹½¨»úÖÆ
6.3.1 make¡¢ gmake£¬ ÒÔ¼° imake
6.3.2 configure ½Å±¾
6.4 ÀûÓÃ GNU autotools
6.4.1 ÈëÃÅ
6.4.2 libtool
6.4.3 libltdl
6.4.4 autoconf ºÍ autoheader
6.4.5 automake ºÍ aclocal
6.5 ʹÓà perl
6.6 ʹÓà X11
6.6.1 ±äÁ¿¶¨Òå
6.6.2 ÐèҪʹÓà Motif µÄ port
6.6.3 X11 ×ÖÌå
6.6.4 ͨ¹ý Xvfb À´»ñµÃÐéÄâµÄ DISPLAY
6.6.5 ×ÀÃæÏî
6.7 ʹÓà GNOME
6.8 ʹÓà KDE
6.9 ʹÓà Java
6.9.1 ±äÁ¿¶¨Òå
6.9.2 ²ÉÓà Ant ½øÐй¹½¨
6.9.3 ×î¼Ñʵ¼ù
6.10 ʹÓà Apache ºÍ PHP
6.10.1 Apache
6.10.2 PHP
6.10.3 PEAR Ä£¿é
6.11 ʹÓà Python
6.12 ʹÓà Emacs
6.13 ʹÓà Ruby
6.14 ʹÓà SDL
6.15 Æô¶¯ºÍÍ£Ö¹·þÎñ (rc ½Å±¾)
µÚ7Õ¡¡¸ß¼¶ pkg-plist Ó÷¨
7.1 ¸ù¾Ý make ±äÁ¿¶Ô pkg-plist ½øÐÐÐÞ¸Ä
7.2 ¿ÕĿ¼
7.2.1 ÇåÀí¿ÕĿ¼
7.2.2 ÈçºÎ½¨Á¢¿ÕĿ¼
7.3 ÅäÖÃÎļþ
7.4 ¶¯Ì¬×°Ïäµ¥Ó뾲̬װÏäµ¥µÄ¶Ô±È
7.5 ×°Ïäµ¥ (package list) µÄ×Ô¶¯»¯ÖÆ×÷
µÚ8Õ¡¡pkg-* Îļþ
8.1 pkg-message (°²×°Ô¤±àÒë°üʱÏÔʾµÄÏûÏ¢Îļþ)
8.2 pkg-install (°²×°Ô¤±àÒë°üʱִÐеĽű¾Îļþ)
8.3 pkg-deinstall (Ð¶ÔØÊ±Ö´ÐеĽű¾Îļþ)
8.4 pkg-req (°²×°Ô¤±àÒë°üʱ¼ì²âÊÇ·ñÓ¦Ö´ÐвÙ×÷µÄ½Å±¾Îļþ)
8.5 ¸Ä±ä pkg-* ÎļþµÄÃû×Ö
8.6 ʹÓà SUB_FILES ºÍ SUB_LIST
µÚ9Õ¡¡²âÊÔÄúµÄ port
9.1 ÔËÐÐ make describe
9.2 Portlint
9.3 PREFIX (°²×°Ê±µÄ¶¥¼¶Ä¿Â¼Ãû)
µÚ10Õ¡¡Éý¼¶
µÚ11Õ¡¡Ports µÄ°²È«
11.1 °²È«ÎªºÎÈç´ËÖØÒª
11.2 ÐÞ¸´°²È«Â©¶´
11.3 ֪ͨÕû¸öÓû§ÈºÌå
11.3.1 VuXML Êý¾Ý¿â
11.3.2 VuXML ¼ò½é
11.3.3 ²âÊÔÄú¶Ô VuXML Êý¾Ý¿âËù×÷µÄÐÞ¸Ä
µÚ12Õ¡¡¸Ã×öʲôºÍ²»¸Ã×öʲô
12.1 ½éÉÜ
12.2 ¶Ô¿ÉÖ´ÐÐÎļþ×öÍÑÄ£ (strip) ²Ù×÷
12.3 INSTALL_* ºê
12.4 WRKDIR (¹¹½¨Ê±Ê¹ÓõÄÁÙʱĿ¼)
12.5 WRKDIRPREFIX (ÓÃÓÚ¹¹½¨µÄÁÙʱĿ¼µÄ¸¸Ä¿Â¼Ãû)
12.6 Çø·Ö²»Í¬µÄ²Ù×÷ϵͳ£¬ ÒÔ¼° OS µÄ°æ±¾
12.7 __FreeBSD_version Öµ
12.8 ÔÚ bsd.port.mk Ö®ºóдһЩÄÚÈÝ
12.9 °²×°¸½¼ÓµÄÎĵµ
12.10 ×ÓĿ¼
12.11 ÔÚ wrapper ½Å±¾ÖÐʹÓà exec Óï¾ä
12.12 UID ºÍ GID
12.13 ÀíÐÔÐÐÊÂ
12.14 ×ñÑ­ CC ºÍ CXX ÉèÖÃ
12.15 ×ñÑ­ CFLAGS
12.16 Ï߳̿â
12.17 ·´À¡
12.18 README.html
12.19 ʹÓà BROKEN¡¢ FORBIDDEN »ò IGNORE ±ê¼Ç²»¿É°²×°µÄ port
12.19.1 ±äÁ¿
12.19.2 ʵÏÖ˵Ã÷
12.20 ¿ÉÒÔÓà DEPRECATED »ò EXPIRATION_DATE ±íʾij¸ö port ½«±»É¾³ý¡£
12.21 ±ÜÃâʹÓà .error ½á¹¹
12.22 һЩ±ØÒªµÄ workaround
12.23 ÔÓ¼Ç
µÚ13Õ¡¡Ê¾·¶µÄ Makefile
µÚ14Õ¡¡±£³Öͬ²½
14.1 FreshPorts
14.2 ´úÂë¿âµÄ Web ·ÃÎʽçÃæ
14.3 FreeBSD Ports ÓʼþÁбí
14.4 λÓÚ pointyhat.FreeBSD.org µÄ FreeBSD Port ¹¹½¨¼¯Èº
14.5 FreeBSD µÄ Port Distfile ÆÕ²é
14.6 FreeBSD µÄ Ports ×·×Ùϵͳ
±í¸ñÇåµ¥
±í5-1. ³£ÓÃµÄ USE_* ±äÁ¿
±í5-2. WITH_* ºÍ WITHOUT_* ±äÁ¿
±í6-1. ÓÃÓÚÓë gmake ÓÐ¹ØµÄ port µÄ±äÁ¿
±í6-2. ÓÃÓÚÓõ½ÁË configure ½Å±¾µÄ port µÄ±äÁ¿
±í6-3. ÓÃÓÚÓõ½ perl µÄ port µÄ±äÁ¿
±í6-4. Óõ½ X µÄ port ¿ÉÒÔʹÓõıäÁ¿
±í6-5. ÓÃÓÚ±íʾ¶Ô X11 ijЩ×é¼þµÄÒÀÀµ¹ØÏµµÄ±äÁ¿
±í6-6. ÓÃÓÚÓõ½ KDE µÄ port µÄ±äÁ¿
±í6-7. Óõ½ Java µÄ port ¿ÉÒÔʹÓõıäÁ¿
±í6-8. ÏòʹÓÃÁË Java µÄ port ÌṩµÄ±äÁ¿
±í6-9. ΪʹÓà Java µÄ port ¶¨ÒåµÄ³£Á¿
±í6-10. Óõ½ Apache µÄ port ¿ÉÒÔʹÓõıäÁ¿
±í6-11. ÔÚÒÆÖ² Apache Ä£¿éʱ±È½ÏÓÐÓõıäÁ¿
±í6-12. Óõ½ PHP µÄ port ÖпÉÒÔʹÓõıäÁ¿
±í6-13. ¶ÔÓõ½ Python µÄ port ×îÓÐÓõÄһЩ±äÁ¿
±í6-14. ʹÓà Ruby µÄ port ¿ÉÒÔʹÓõıäÁ¿
±í6-15. ʹÓà Ruby µÄ port ÖеÄһЩ¿ÉÓõÄÖ»¶Á±äÁ¿
±í12-1. __FreeBSD_version Öµ
·¶ÀýÇåµ¥
Àý5-1. ¼ò»¯µÄ MASTER_SITES:n Ó÷¨£¬ ÿ¸öÎļþÀ´×ÔÒ»¸öÕ¾µã
Àý5-2. ¼ò»¯µÄ MASTER_SITES:n Ó÷¨£¬ ÆäÖÐͬһ¸öÕ¾µãÉÏÌṩÁ˲»Ö¹Ò»¸öÎļþ
Àý5-3. ÔÚ MASTER_SITE_SUBDIR ÖÐ MASTER_SITES:n µÄÏêϸÓ÷¨
Àý5-4. Óõ½¶ººÅ·Ö¸ô·û¡¢ ¶à¸öÎļþ£¬ ¶à¸öÕ¾µãºÍ ²»Í¬×ÓĿ¼µÄ MASTER_SITES:n ÏêϸÓ÷¨
Àý5-5. MASTER_SITE_SOURCEFORGE ÖÐ MASTER_SITES:n µÄÏêϸÓ÷¨
Àý5-6. ¼ò»¯µÄ PATCH_SITES ÖÐµÄ MASTER_SITES:n Ó÷¨¡£
Àý5-7. ÈçºÎʹÓà ALWAYS_KEEP_DISTFILES¡£
Àý5-8. ¼òµ¥µÄ OPTIONS Ó÷¨
Àý6-1. ÔÚ±äÁ¿ÖÐʹÓÃÓë X11 ÓйصıäÁ¿
Àý6-2. ÓÃÓÚ PEAR ÀàµÄ Makefile Àý×Ó
Àý12-1. ÔõÑù±ÜÃâʹÓà .error

µÚ1Õ ¡¡½éÉÜ

¡¡¡¡¼¸ºõÿ¸öÈ˶¼ÊÇͨ¹ý FreeBSD Ports Collection ÔÚ FreeBSD ÉÏÃæ×°Ó¦ÓóÌÐò (¡°ports¡±)µÄ¡£ ¾ÍÏñFreeBSDµÄÆäËü²¿·ÖÒ»Ñù£¬ ËüÖ÷ÒªÀ´×ÔÓÚÖ¾Ô¸ÕßµÄŬÁ¦¡£ ËùÒÔÔÚÔĶÁÕâ·ÝÎĵµµÄʱºòÇëÎñ±Ø¼ÇסÕâЩ¡£

¡¡¡¡ÔÚ FreeBSD µÄÊÀ½çÀ ÈκÎÈ˶¼ÄÜÌá½»Ð嵀 port£¬ »òÖ¾Ô¸µØÎ¬»¤Ò»¸öÒÑÓÐµÄ port£¬ Èç¹ûÄǸö port ûÈËά»¤µÄ»° ©¤©¤ ²»ÐèÒªÈκÎÌØÊâµÄȨÏÞÀ´×öÕâ¼þÊÂÇé¡£


µÚ2Õ ¡¡×ÔÐÐÖÆ×÷ port

¡¡¡¡ÄÇô£¬ ÄúÓÐÐËȤ´´½¨×Ô¼ºµÄ port »òÉý¼¶ÏÖÓÐµÄ port£¿ Ì«ºÃÁË¡£

¡¡¡¡ÏÂÃæµÄÄÚÈݽ«»áÌṩһЩ´´½¨FreeBSD portµÄÖ¸µ¼¡£ Èç¹ûÏëÉý¼¶Ò»¸öÏÖÓÐµÄ port£¬ ÄÇôÄúÓ¦¸ÃÔÚ¿´ÍêÕâЩÄÚÈݲ¢ÔĶÁ µÚ 10 Õ¡£

¡¡¡¡ÒòΪÕâ·ÝÎĵµ²»ÊÇÊ®·ÖÏêϸ£¬ Äú»¹Ó¦¸ÃÔٲο¼Ò»Ï /usr/ports/Mk/bsd.port.mk£¬ ËùÓÐ port µÄ Makefile Îļþ¶¼»á°üº¬Ëü¡£ ¼´Ê¹²»ÊÇÿÌ춼ȥ°ÚŪ Makefile£¬ ÄúÒ²»á´ÓÄǸöÎļþÀïÃæ»ñµÃºÜ¶à֪ʶ£¬ ÀïÃæµÄ×¢Êͷdz£Ïêϸ¡£ »¹ÓÐÒª²¹³äһϣ¬Èç¹ûÄúÓÐÆäËüµÄÎÊÌ⣬ ¿ÉÒÔ¸øFreeBSD ports ÓʼþÁбí Õâ¸ö mailing list ·¢ÐÅ¡£

×¢Òâ: ÔÚÕâ·ÝÎĵµÀïÌáµ½µÄ´ó²¿·ÖµÄ±äÁ¿ (VAR) ÊDz»ÄÜÐ޸ĵġ£ ´ó¶à (µ«²»ÊÇÈ«²¿) ¶¼ÔÚ /usr/ports/Mk/bsd.port.mk µÄ¿ªÊ¼²¿·Ö½øÐÐÁ˽éÉÜ£» ÆäËüһЩҲӦ¸Ã¿ÉÒÔÔÚÄÇÀïÕÒµ½¡£ ×¢ÒâÕâЩÎļþʹÓÃÁ˷DZê×¼µÄÖÆ±í·û£º Emacs ºÍ Vim Ó¦¸ÃÄÜÔÚ´ò¿ªÎļþµÄʱºò×Ô¶¯Ê¶±ðËü£¬ ¶ø vi(1) ºÍ ex(1) ÔòÐèÒªÔÚ´ò¿ªÎļþµÄʱºòͨ¹ý :set tabstop=4 À´ÐÞÕýĬÈϵÄÉèÖá£


µÚ3Õ ¡¡¼òµ¥µÄ port

¡¡¡¡ÕâÒ»ÕÂÖ÷Òª½éÉÜÈçºÎ¿ìËÙ´´½¨Ò»¸ö¼òµ¥µÄ port¡£ ºÜ¶àʱºò£¬ ÕâµãÄÚÈÝÊDz»¹»µÄ£¬ ÄúÐèÒªÔĶÁÕâ·ÝÎĵµÖиüÉîÈëµÄÄÚÈÝ¡£

¡¡¡¡Ê×ÏÈ£¬ ÐèҪȡµÃ°üº¬Ô´´úÂëµÄ tar°ü£¬ ²¢°ÑËü·Åµ½ DISTDIR±äÁ¿ËùÖ¸µÄµØ·½¡£ ĬÈϵÄÇé¿öÏ£¬ ÕâÓ¦¸ÃÊÇ /usr/ports/distfiles¡£

×¢Òâ: ÏÂÃæµÄÄÚÈݼٶ¨Äú²»ÐèÒªÐÞ¸ÄÈí¼þµÄÔ´´úÂë¾ÍÄÜÔÚ FreeBSD ÉϱàÒëͨ¹ý¡£ Èç¹ûÐèÒªÐ޸ĴúÂ룬 ¾ÍÐèÒª²Î¿¼ÏÂÒ»ÕµÄÄÚÈÝÁË¡£


3.1 ±àд Makefile

¡¡¡¡×î¼òµ¥µÄ Makefile Ó¦¸ÃÊÇÕâ¸öÑù×ӵģº

# New ports collection makefile for:   oneko
# Date created:        5 December 1994
# Whom:                asami
#
# $FreeBSD$
#

PORTNAME=      oneko
PORTVERSION=   1.1b
CATEGORIES=    games
MASTER_SITES=  ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/

MAINTAINER=    asami@FreeBSD.org
COMMENT=       A cat chasing a mouse all over the screen

MAN1=          oneko.1
MANCOMPRESSED= yes
USE_IMAKE=     yes

.include <bsd.port.mk>

¡¡¡¡¿´¿´ÄúÊÇ·ñÄܹ»¿´¶®¡£ ²»±Øµ£ÐÄ $FreeBSD$ ÄÇÒ»ÐУ¬ µ±Õâ¸ö port ±»µ¼Èëµ½ ports Ê÷ÀïµÄʱºò£¬ CVS »á×Ô¶¯ÌîдËü¡£ Äú¿ÉÒÔÔÚ Ê¾·¶µÄ MakefileÄÇÕÂÕÒµ½¸ü¶àµÄϸ½Ú¡£


3.2 ´´½¨ÃèÊöÎļþ

¡¡¡¡ÓÐ 2 ¸öÃèÊöÎļþ¶ÔÓÚÈκÎÒ»¸ö port À´ËµÊDZØÐëµÄ£¬ ²»ÂÛËüÊDz»ÊÇ´òËã³ÉΪ package¡£ ËüÃÇÊÇ pkg-descr ºÍ pkg-plist¡£ ÕâÁ½¸öÎļþʹÓà pkg- ǰ׺ÒÔÇø±ðÓÚÆäËüÎļþ¡£


3.2.1 pkg-descr (¹ØÓÚ port µÄÈß³¤ÃèÊöÎļþ)

¡¡¡¡ÕâÊÇ port ÀïÒ»¸ö½Ï³¤µÄÃèÊöÎļþ¡£ ʹÓÃÒ»¶Î»ò¼¸¶ÎÎļþÎÄ×ÖÀ´¼òÃ÷µÄÃèÊöÕâ¸ö ports ÊÇÓÃÀ´×öʲôµÄ¡£

×¢Òâ: Õâ ²»ÊÇ ÊÖ²á»òÕß¶ÔÈçºÎ ÉîÈëʹÓÃ/±àÒëÕâ¸öportµÄ˵Ã÷£¡ ÒªÊÇÄú´Ó README »òÕßÁª»úÊÖ²áÀïÃæÖи´ÖÆÎÄ×ֵϰ£¬ ÇëÎñ±ØÐ¡ÐÄ£» ͨ³££¬ ËüÃDz»ÊǶÔÕâ¸ö port ¼òÃ÷¶óÒªµÄÃèÊö£¬ »òÕßÓÃÁËÄÑÒÔʹÓõĸñʽ (±ÈÈ磬 Áª»úÊÖ²áÀïÓÐÆÈʹÁ½¶Ë¶ÔÆëµÄ¿Õ¸ñ)¡£ Èç¹ûÒªÒÆÖ²µÄÈí¼þÓйٷ½µÄWWWÍøÒ³£¬ ÄúÓ¦¸ÃÔÚÕâÀïÁгöÀ´¡£ ʹÓà WWW: ×÷Ϊǰ׺À´±íʾ Ò»¸öÍøÕ¾£¬ ÕâÑùÆäËüµÄ×Ô¶¯¹¤¾ß¾ÍÄÜÕý³£¹¤×÷ÁË¡£

¡¡¡¡ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄ pkg-descr Àý×Ó£º

This is a port of oneko, in which a cat chases a poor mouse all over
the screen.
 :
(etc.)

WWW: http://www.oneko.org/

3.2.2 pkg-plist (port µÄ×°Ïäµ¥)

¡¡¡¡Õâ·ÝÎļþÁгöÁË port ËùÒª°²×°µÄËùÓÐÎļþ¡£ ÓÉÓÚ package Ò²ÊǾݴ˽øÐдò°ü£¬ Òò´ËËüÒ²±»³Æ×÷ ¡°×°Ïäµ¥(packing list)¡±. Õâ¸öÎļþÖУ¬ ·¾¶ÊÇÏà¶ÔÓÚ°²×°µÄ·¾¶µÄ (ͨ³£ÊÇ /usr/local »ò /usr/X11R6)¡£ Èç¹ûÄúʹÓà MANn ±äÁ¿µÄ»°£¬ Çë²»ÒªÔÚÕâÀïÁгöÈκÎÁª»úÊֲᡣ ¼ÙÈç port ÔÚ°²×°¹ý³ÌÖлᴴ½¨Ò»Ð©Ä¿Â¼£¬ ÇëÎñ±ØÔö¼Ó¶ÔÓ¦µÄ @dirrm ÐУ¬ ÒÔ±ãÔÚ package ±»Ð¶ÔØÊ±ÓèÒÔ×Ô¶¯É¾³ý¡£

¡¡¡¡ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÀý×Ó£º

bin/oneko
lib/X11/app-defaults/Oneko
lib/X11/oneko/cat1.xpm
lib/X11/oneko/cat2.xpm
lib/X11/oneko/mouse.xpm
@dirrm lib/X11/oneko

¡¡¡¡²Î¿¼ pkg_create(1) µÄÁª»úÊÖ²áÒÔ»ñµÃ¸ü¶àÓйØ×°Ïäµ¥µÄϸ½Ú

×¢Òâ: ½¨ÒéÄú½«Õâ¸öÎļþÀïµÄËùÓеÄÎļþÃû°´×ÖĸÅÅÐò¡£ ÕâÑù£¬ ÔÚÉý¼¶Õâ¸öportµÄʱºò¾ÍÄܹ»¸ü·½±ãµØºËʵËù×öµÄÐ޸ġ£

×¢Òâ: ÊÖ¹¤´´½¨ÕâÑùÒ»·ÝÁбí¿ÉÄÜÊÇÒ»¼þ·Ç³£¿ÝÔïµÄÊÂÇé¡£ Èç¹ûÄúµÄ port ÐèÒª°²×°´óÁ¿µÄÎļþ£¬ ×Ô¶¯´´½¨×°Ïäµ¥ »á°ïÄúʡϲ»ÉÙʱ¼ä¡£

¡¡¡¡Ö»ÓÐÒ»ÖÖÇé¿ö¿ÉÒÔ²»Óà pkg-plistÎļþ¡£ Èç¹ûÕâ¸ö port Ö»°²×°ºÜÉÙÁ¿µÄһЩÎļþ»òĿ¼µÄ»°£¬ ÕâЩÎļþºÍĿ¼¾Í¿ÉÒÔ·Ö±ðÁÐÔÚ Makefile µÄ PLIST_FILESºÍPLIST_DIRS ±äÁ¿Àï¡£ ¾Ù¸öÀý×ÓÀ´Ëµ£¬ ÎÒÃÇ¿ÉÒÔÔÚÉÏÃæÄǸö oneko port ÀïÃæ²»Óà pkg-plist£¬ ¶ø°ÑÏÂÃæµÄÕ⼸Ðмӵ½ Makefile ÀïÃæ£º

PLIST_FILES=    bin/oneko \
                lib/X11/app-defaults/Oneko \
                lib/X11/oneko/cat1.xpm \
                lib/X11/oneko/cat2.xpm \
                lib/X11/oneko/mouse.xpm
PLIST_DIRS=     lib/X11/oneko

¡¡¡¡µ±È»£¬ Èç¹ûÒ»¸ö port ²»ÐèÒª¸øËü×Ô¼º´´½¨Ä¿Â¼µÄ»°£¬ ¾Í²»ÓÃÉèÖà PLIST_DIRS ±äÁ¿ÁË¡£

¡¡¡¡²»¹ý£¬ Èç¹ûÓÃÕâÖÖ·½Ê½À´Áгö port Òª°²×°µÄÎļþºÍĿ¼µÄ»°£¬ Ò²¾ÍÎÞ·¨ÀûÓÃÔÚ pkg_create(1) Àï½éÉܵÄÃüÁîÀ´ÖÆ×÷ package ÁË¡£ Òò´Ë£¬ ÕâÖÖ·½·¨Ö»ÊÊÓÃÓÚÄÇЩ¼òµ¥µÄ port£¬ ʹËüÃǸüΪ¼ò»¯¡£ ͬʱ£¬ ÕâÖÖ×ö·¨Ò²ÓÐÖúÓÚ¼õÉÙ ports collection ÖеÄÎļþÊýÁ¿¡£ ÔÚ²ÉÓà pkg-plist ֮ǰ£¬ Ç뿼ÂÇÒ»ÏÂʹÓÃÕâÖÖ·½·¨¡£

¡¡¡¡ÉÔºóÎÒÃǽ«¿´µ½ pkg-plist ÒÔ¼° PLIST_FILES ÈçºÎ´¦Àí ¸ü¸´ÔÓµÄÈÎÎñ¡£


3.3 ´´½¨Ð£ÑéºÍÎļþ

¡¡¡¡Ö»Òª¼üÈë make makesum£¬ port ±ã»á×Ô¶¯´´½¨ distinfoÎļþ¡£

¡¡¡¡Èç¹ûÏÂÔØµÄÎļþµÄУÑéºÍ¾­³£±ä»¯£¬ ¶øÄúÓÖÄÜÈ·±£ËüÃǵÄÀ´Ô´¿É¿¿ (±ÈÈ磬 À´×ÔÓÚCDÖÆÔìÉÌ£¬ »òÿÌì¹¹½¨Éú³ÉµÄÎĵµÎļþ)£¬ ¾ÍÓ¦¸ÃÔÚ IGNOREFILES ÀïÃæ±êÃ÷ÕâЩÎļþ¡£ ÕâÑù£¬ ÔÙÔËÐÐ make makesum µÄʱºò±ã²»»á°ÑÕâЩ±ê¼Ç IGNORE µÄÎļþ¼ÆËãÔÚÄÚÁË¡£


3.4 ²âÊÔ port

¡¡¡¡Ó¦µ±È·¶¨ÄúµÄ port ȷʵ×öÁËÄúÏ£ÍûËüÃÇ×öµÄÊÂÇ飬 °üÀ¨´ò°ü¡£ÏÂÃæÊÇÐèÒªÖØµã¼ì²éµÄÒ»Ð©ÖØÒªµÄ¹¤×÷¡£

  • pkg-plist ÖÐûÓаüÀ¨Èκβ»Ïë°²×°µÄÎļþ

  • pkg-plist °üº¬ÁËËùÓÐÓ¦¸Ã°²×°µÄÎļþ

  • ÄúµÄ port Äܹ»Ê¹Óà reinstall ¶à´Î°²×°¡£

  • ÄúµÄ port ÄÜÔÚÐ¶ÔØ (deinstall) ʱ£¬ ×Ô¶¯Íê³É ÇåÀí

ÍÆ¼öµÄ²âÊÔ˳Ðò

  1. make install

  2. make package

  3. make deinstall

  4. pkg_add package-name

  5. make deinstall

  6. make reinstall

  7. make package

¡¡¡¡È·ÐÅÔÚ package ºÍ deinstall ½×¶ÎûÓÐÈκξ¯¸æ¡£ µÚÈý²½ÒÔºó£¬ ¼ì²éÊÇ·ñËùÓÐн¨µÄĿ¼¶¼±»Õýȷɾ³ýÁË¡£ ÔÚµÚËIJ½ÒÔºó£¬ ÊÔ×ÅÔËÐÐÒ»ÏÂËù×°µÄÈí¼þ£¬ È·±£µ±ËüÒÔ package ·½Ê½°²×°µÄʱºòÒ²ÄÜÕý³£¹¤×÷¡£


3.5 Óà portlint À´¼ì²é port

¡¡¡¡ÇëʹÓà portlint ÃüÁîÀ´¼ì²éÄúµÄ port ÊÇ·ñ·ûºÏÎÒÃǵĹ淶¡£ devel/portlint ³ÌÐòÊÇ ports collection µÄÒ»²¿·Ö¡£ Õâ¸ö³ÌÐòµÄÖ÷Òª¹¦ÄÜÊǰïÖúÄú¼ì²é Makefile µÄÑùʽÊÇ·ñ·ûºÏ¹æ·¶£¬ ÒÔ¼° package µÄÃüÃûÊÇ·ñµÃÌå¡£


3.6 Ìá½» port

¡¡¡¡Ê×ÏÈ£¬ È·ÐÅÄúÒѾ­ÔĶÁÁË ¸Ã×öʲôºÍ²»¸Ã×öʲô Ò»½Ú¡£

¡¡¡¡¼ÈÈ»ÒѾ­¶ÔËùÖÆ×÷µÄ port Ï൱ÂúÒâÁË£¬ Ê£ÏµĹ¤×÷£¬ ±ãÊǽ«Ëü·Å½ø FreeBSD µÄÖ÷ ports Ê÷£¬ ÒÔ±ãÈøü¶àµÄÈË´ÓÖÐÊÜÒæ¡£ ÎÒÃDz¢²»ÐèÒªÄúµÄ work Ŀ¼ÒÔ¼° pkgname.tgz °ü£¬ Òò´ËÏÖÔÚ¿ÉÒÔɾ³ýËüÃÇÁË¡£ ½ÓÏÂÀ´£¬ Ö»Òª°Ñ shar `find port_dir` µÄÊä³öдµ½Ò»·Ý bug ±¨¸æÖУ¬ ²¢Óà send-pr(1) ³ÌÐò (²Î¼û Bug Reports and General Commentary ÒÔÁË½â¹ØÓÚ send-pr(1) µÄ½øÒ»²½ÏêÇé) ½«ÆäËͳö¡£ ÇëÎñ±Ø½«ÄúµÄ bug ±¨¸æ·ÖÀà (category) Ϊ ports ²¢°Ñ×Ó·ÖÀà (class) ÉèÖÃΪ change-request (²»Òª°Ñ±¨¸æ±í¼°Îª»úÃܵģ¬ ¼´ confidential£¡)¡£ ´ËÍ⣬ ÔÚ PR µÄÃèÊö (¡°Description¡±) Ò»À¸ÖУ¬ Ó¦¸ÃÌîдÄúËùÒÆÖ²µÄÓ¦ÓóÌÐòµÄ¼òµ¥½éÉÜ£¬ ¶ø shar ÔòÓ¦·Åµ½ÐÞÕý (¡°Fix¡±) À¸ÖС£

×¢Òâ: ÔÚÎÊÌⱨ¸æÀïÃæÊ¹ÓÃÁËÒ»¶ÎºÃµÄÃèÊö£¬ ÄÜʹÎÒÃǵŤ×÷±äµÃ¸üÈÝÒס£ ÎÒÃǸüÇãÏòÓÚÕâÑùµÄÃèÊö£º Óà ¡°New port: <category>/<portname> <short description of the port>¡± À´ËµÃ÷ÕâÊÇÒ»¸öÐ嵀 port£¬ ¶øÓà ¡°Update port: <category>/<portname> <short description of the update>¡± À´ËµÃ÷ÕâÊǶÔÒ»¸öÒÑÓÐµÄ port µÄÉý¼¶¡£ Èç¹ûÄú¼á³ÖʹÓÃÕâÑùµÄ·½°¸£¬ ÄÇôÎÒÃǽ«¸üÈÝÒ׸ü·½±ãµØÔĶÁÄúµÄ PR¡£

¡¡¡¡ÔÙ´ÎÉùÃ÷£¬ ²»Òª°üº¬Ô­Ê¼µÄdistfile£¬ workĿ¼£¬ »òÕßÄúÓà make package ÖÆ×÷µÄ°ü¡£

¡¡¡¡ÔÚÄúÌá½»µÄÄúµÄ port ÒÔºóÇëÄÍÐĵȴý¡£ ÓÐʱÔÚÒ»¸ö port Õýʽ¼ÓÈë FreeBSD ֮ǰÐèÒª»¨·ÑºÃ¼¸¸öÔ£¬ ¾¡¹ÜÒ²ÓпÉÄÜÊǼ¸Ìì¡£ Äú¿ÉÒԲ鿴 ÕýµÈ´ý±» commit µ½ FreeBSD µÄ port¡£

¡¡¡¡Ò»µ©ÎÒÃÇ¿´¹ýÁËÄúµÄ±¨¸æ£¬ ÓбØÒªµÄ»°ÎÒÃÇ»áÁªÏµÄú£¬ ²¢°ÑËü·Åµ½ ports Ê÷Àï¡£ ÄúµÄÃû×ÖÒ²»á³öÏÖÔÚ Additional FreeBSD Contributors ºÍÆäËüµÄÎļþ¡£ ²»ÊǺܰôÂð!? :-)


µÚ4Õ ¡¡¸´Ô Porting

¡¡¡¡ºÃÁË£¬ Ò²Ðí¹¤×÷ûÄÇô¼òµ¥£¬ port ÐèÒª×öЩÐ޸IJÅÄܹ»ÔÚ FreeBSD ÉÏÅÜÆðÀ´¡£ ÔÚÕâÒ»ÕÂÀ ÎÒÃǽ«»áÒ»²½²½¾ÙÀýÀ´½éÉÜÓ¦¸ÃÈçºÎÐÞ¸ÄÀ´Ê¹ÄúµÄ port ÄÜÔÚ FreeBSD ÉÏÃæÔËÐС£


4.1 Õû¸öϵͳÊÇÈçºÎÔËתµÄ?

¡¡¡¡Ê×ÏÈ£¬ ÕâһϵÁе͝×÷ÊÇÓÉÓû§ÔÚÄúµÄ port Ŀ¼ÀïÇÃÈë make ºó·¢ÉúµÄ¡£ ÄúÒ²Ðí»á·¢ÏÖÔÚÁíÍâµÄÒ»¸ö´°¿ÚÀïÔĶÁһϠbsd.port.mk ½«»áÓÐÖúÓÚÄúµÄÀí½â¡£

¡¡¡¡ÒªÊÇÄú²»ÊǷdz£Ã÷°× bsd.port.mk ÊÇ×öʲôµÄ»°£¬ Ò²²»ÓÃÌ«µ£ÐÄ£¬ ºÜ¶àÈ˶¼²»ÖªµÀµÄ... :->

  1. fetch »áÊ×Ïȱ»Ö´ÐС£ fetch ½«¼ì²éÔÚ±¾µØµÄ DISTDIR Ŀ¼ÀïÊÇ·ñ´æÔÚ tar °ü¡£ Èç¹û fetch ûÓÐÕÒµ½¾Í»á²éÕÒ Makefile Öж¨ÒåµÄ MASTER_SITES URL£¬ »¹ÓÐÎÒÃǵÄÖ÷ FTP Õ¾µã ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/£¬ ÔÚÄÇÀïÎÒÃDZ¸·ÝÁËËùÓб»ÈÏ¿ÉµÄ distfile¡£ ¼ÙÉèÄǸö MASTER_SITES Õ¾µãÊÇÖ±½ÓÁ¬ÔÚ Internet Éϵģ¬ ¾Í»áÊÔ×ÅÓà FETCH Ö¸¶¨µÄ³ÌÐòÈ¡»Ø distfile¡£ Èç¹û³É¹¦µÄ»°£¬ Îļþ»á±»±£´æÔÚDISTDIR ËùÖ¸¶¨µÄĿ¼ÒÔ±¸ÉÔºóʹÓá£

  2. ½ÓÏÂÀ´»áÖ´ÐÐ extract¡£ Ëü»áÔÚ DISTDIR ÖÐѰÕÒÄúµÄ tar °ü (ͨ³£ÊÇÓà gzip ѹËõµÄ tar °ü)£¬È»ºó½âѹËõµ½ÓÉ WRKDIR ËùÖ¸¶¨µÄÁÙʱĿ¼Àï (ĬÈÏΪworkĿ¼)¡£

  3. ÏÂÒ»²½ÊÇÖ´ÐÐ patch¡£ Ê×ÏÈÈκÎÔÚ PATCHFILES Öж¨ÒåµÄ²¹¶¡¶¼»á±»´òÉÏ¡£ È»ºó£¬ ÔÚÓÉ PATCHDIR Ö¸¶¨µÄĿ¼ (ĬÈÏΪ filesĿ¼) Öз¢ÏÖµÄpatch-*£¬ ËüÃǽ«»áÒÔÎļþÃûµÄ×Öĸ˳Ðò±»ÏȺó´òÉÏ¡£

  4. configure»á±»Ö´ÐС£ ÕâÒ»²½Öè¿ÉÄÜ»áÓÐÒÔϼ¸ÖÖÇéÐΡ£

    1. Èç¹û´æÔÚ scripts/configure£¬ ¾Í»áÖ´ÐÐËü

    2. Èç¹û¶¨ÒåÁË HAS_CONFIGURE »òÕß GNU_CONFIGURE£¬ ¾Í»áÖ´ÐÐ WRKSRC/configure¡£

    3. Èç¹û¶¨ÒåÁËUSE_IMAGE£¬ ¾Í»áÖ´ÐÐ XMKMF (ĬÈÏΪ: xmkmf -a)¡£

  5. build»á±»Ö´ÐС£ ÕâÒ»²½½«»á½øÈëportsµÄ¹¤×÷Ŀ¼ (WRKSRC) È»ºó½øÐбàÒë¡£Èç¹û¶¨ÒåÁËUSE_GMAKE£¬ ¾Í»áʹÓà GNU make£¬ ·´Ö®£¬ Ôò»áʹÓÃϵͳĬÈ쵀 make¡£

¡¡¡¡ÒÔÉ϶¼ÊÇϵͳĬÈϵIJ½Öè¡£ ÄúÒ²¿ÉÒÔ¶¨Òå pre-something »òÕß post-something£¬ »òÕß°ÑÒÔ´ËÃüÃûµÄ½Å±¾·Åµ½ scripts Ŀ¼£¬ ËüÃÇ»áÔÚĬÈϵ͝×÷֮ǰ»òÖ®ºó±»Ö´ÐС£

¡¡¡¡¾Ù¸öÀý×Ó£¬ Èç¹ûÄúÔÚÄúµÄ Makefile ÀﶨÒåÁËpost-extract£¬ ²¢ÔÚ script Ŀ¼Àï·ÅÁËÒ»¸ö pre-build ½Å±¾£¬ ÄÇôÔÚ tar °ü½â¿ªÖ®ºó post-extract ½«±»µ÷Ó㬠pre-build ½Å±¾»áÔÚĬÈϵıàÒë֮ǰ±»Ö´ÐС£ ÎÒÃÇÍÆ¼öÄúÔÚ Makefile ¶¨ÒåËùÓе͝×÷£¬ Èç¹û²»ÊÇÊ®·Ö¸´Ôӵϰ£¬ ÕâÑù£¬ ±ðÈËÄܸüÈÝÒ×Ã÷°×ÄúµÄ port ÐèÒªÖ´ÐÐÄÄЩ·ÇĬÈϵ͝×÷¡£

¡¡¡¡Ä¬ÈϵÄÐÐΪ¶¼ÊÇÓÉ bsd.port.mk ¶¨ÒåµÄ do-something À´±íʾµÄ¡£ ÀýÈ磬 port ÖÐÓÃÀ´½âѹËõµÄÃüÁîÊÇÓÉ do-extract À´¶¨ÒåµÄ¡£ Èç¹ûÄú¶ÔĬÈϵÄÉèÖò»ÂúÒ⣬ ¿ÉÒÔͨ¹ýÔÚ Makefile ÖØÐ¶¨Òå do-someting À´×öЩ¸Ä±ä¡£

×¢Òâ: ¡°Ö÷¡± ¶¯×÷ (ÀýÈç extract¡¢ configure£¬ µÈµÈ) ½ö½öÊÇÓÃÀ´È·¶¨ËùÓÐÏàÓ¦µÄ½×¶Î¶¼Íê³ÉÁË£¬ ÒÔ¼°µ÷ÓÃÕæÊµµÄ¶¯×÷»ò½Å±¾£¬ ËüÃDz»Ó¦±»Ð޸ġ£ Èç¹ûÄúÏëÒªÐ޸ĽâѹËõÕâ¸ö¶¯×÷£¬ ¿ÉÒÔÐÞ¸Ä do-extract£¬ µ«ÓÀÔ¶¶¼²»Òª¸Ä±ä extract µÄ²Ù×÷£¡

¡¡¡¡ÎÒÃÇÒѾ­½éÉÜÁËÔÚÓû§ÇÃÈë make Ö®ºó»á·¢ÉúÄÄЩÊÂÇéÁË¡£ ½ÓÏÂÀ´ÎÒÃǽ«½øÐнøÒ»²½µÄѧϰ£¬ À´¿´Ò»¿´ÈçºÎ´´½¨Ò»¸öÀíÏëµÄ port¡£


4.2 »ñȡԴ´úÂë

¡¡¡¡»ñȡԴ´úÂëµÄ tar °ü (ͨ³£ÊÇ foo.tar.gz »òÕß foo.tar.Z) ²¢°ÑËüÃǷŽø DISTDIR¡£ ×îºÃʹÓà Ö÷Á÷ µÄ°æ±¾¡£

¡¡¡¡ÄúÐèÒªÉèÖñäÁ¿ MASTER_SITES À´Ö¸Ïòԭʼ tar °üµÄ»ñȡλÖᣠÄú¿ÉÒÔÔÚ bsd.sites.mk ÀïÕÒµ½Ò»Ð©ËٶȽϿìµÄÖ÷Á÷Õ¾µã¡£ ÇëʹÓÃÕâЩվµã ©¤©¤ ºÍÏà¹ØµÄ¶¨Òå ©¤©¤ Èç¹û¿ÉÄܵϰ£¬ Ó¦¾¡Á¿±ÜÃâÔÚͬһ¸öÔ´´úÂëÊ÷Àï³öÏÖ´óÁ¿Öظ´µÄÐÅÏ¢¡£ ÕâЩվµã»áËæ×Åʱ¼ä¶ø±ä»¯£¬ Èç¹ûÿ¸öÈ˶¼ËæÒâ¼ÓÈëµÄ»°»áʹά»¤±äµÃ·Ç³£À§ÄÑ¡£

¡¡¡¡Èç¹ûÄúÕÒ²»µ½Ò»¸öÓкܺÃÍøÂçÁ¬½ÓµÄ FTP/HTTP Õ¾µã£¬ »òÕßËüÃÇʹÓÃÁ˷DZê×¼µÄ¸ñʽ£¬ ÄúÒ²Ðí¾Í»áÏëÔÚÄú×Ô¼ºµÄ FTP »ò HTTP ·þÎñÆ÷ÉÏ·ÅÉÏÒ»·Ý¸±±¾¡£

¡¡¡¡Èç¹ûÄúÕÒ²»µ½¿É¿¿µÄµØ·½·ÅÖà distfiles£¬ ÎÒÃÇÒ²¿ÉÒÔÌṩ¸øÄúһЩ¿Õ¼äÀ´±£´æËü¡£ ÎÒÃÇ×Ô¼ºµÄ ftp.FreeBSD.org£» È»¶øÕâÖ»ÊÇÒ»¸öÕÛÖԵİ취¡£ distfile ±ØÐë·Å½øÄ³ÈËÔÚ freefall É쵀 ~/public_distfiles/ Ŀ¼ÖС£ ¿ÉÒÔÒªÇó°ïÖúÄú commit port µÄÈËÀ´·ÅÕâ¸ö distfile£¬ ¶øÕâ¸öÈËÒ²ÐèÒª°Ñ MASTER_SITES¡¢ MASTER_SITE_LOCAL ÒÔ¼° MASTER_SITE_SUBDIR µÄÉèÖ㬠¸ÄΪÔÚ freefall ÉϵÄÓû§Ãû¡£

¡¡¡¡Èç¹ûÄúµÄ port µÄ distfile Ò»Ö±Ôڱ仯£¬ ¶ø×÷Õ߾ܾø¸Ä±äÆä°æ±¾ºÅ£¬ Äú¿ÉÒÔ¿¼ÂÇ°Ñ distfiles ·ÅÔÚ×Ô¼ºµÄÖ÷Ò³£¬ ²¢ÔÚ MASTER_SITES Àï°ÑÔ­×÷ÕßµÄÁÐΪÊ×ѡλÖᣠÈç¹û¿ÉÄÜ£¬ ÊÔ×ÅÓë port µÄ×÷Õß¹µÍ¨Ò»ÏÂÈÃËû²»ÒªÕâô×ö£¬ Õ⽫ÓÐÖúÓÚ½¨Á¢¶ÔÔ´´úÂëµÄ¿ØÖÆ¡£ ÔÚÄúµÄÖ÷Ò³ÉÏ·ÅÖÃÄú×Ô¼ºµÄ distfile »á±ÜÃâÓû§µÃµ½ ¡°checksum mismatch¡± µÄ´íÎó£¬ ¶øÇÒÄܼõÇáÎÒÃÇ FTP Õ¾µãά»¤ÈËÔ±µÄ¹¤×÷Á¿¡£ Èç¹ûÄúµÄportÖ»ÓÐÒ»¸öÖ÷Õ¾µãµÄ»°£¬ ÎÒÃǽ¨ÒéÄúÔÚ×Ô¼ºµÄÍøÕ¾ÉÏ×öÒ»·Ý±¸·Ý£¬ ²¢ËûÁÐΪ MASTER_SITESµÄµÚ2Ïî¡£

¡¡¡¡Èç¹ûÄúµÄ port ÐèÒªÀ´×ÔÍøÂçÉϵÄһЩ²¹¶¡£¬ Çë°ÑËüÃǷŵ½ DISTDIRÀï¡£ ²»Óõ£ÐÄËüÃǸúÔ´´úÂë²»ÊÇÀ´×Ôͬһվµã¡£ ÎÒÃÇÓа취´¦Àí (²ÎÔÄÏÂÃæµÄ ²¹¶¡Îļþ)¡£


4.3 ÐÞ¸Ä port

¡¡¡¡½â¿ª tar °ü£¬ ¶ÔÔ´´úÂë×ö³öºÏÀíµÄÐÞ¸ÄʹµÃÕâ¸ö port ÄÜÔÚ×îа汾µÄ FreeBSD ÉÏÃæÔËÐС£ Ò»¶¨Òª ×Ðϸ¼Ç¼ ÄúËù×öµÄÿ´¦¸Ä¶¯£¬ °üÀ¨É¾³ý¡¢Ìí¼Ó¡¢Ð޸ĵÄÎļþµÈµÈ£¬ ÕâЩÐÞ¸ÄÒÔºó»áÔÚÄúµÄ port ÖÐÒԽű¾»ò²¹¶¡µÄ·½Ê½³öÏÖ£¬ ²¢ÇÒÄÜͨ¹ýÔËÐÐËüÃÇÀ´×Ô¶¯Íê³ÉÄú¶Ô port µÄ¸Ä¶¯ÒªÇó¡£

¡¡¡¡Èç¹ûÄúµÄ port ÒªÇóÓÃÓëÓû§½»»¥/ÅäÖÃÀ´Íê³É±àÒë»ò°²×°µÄ»°£¬ Äú¿ÉÒÔ¿´Ò»Ï Larry Wall µÄ¾­µäµÄ Configure ½Å±¾£¬ Êʵ±µØÄ£·Âһϡ£ Port collection µÄÄ¿µÄ£¬ ¾ÍÊÇʹÿ¸ö port Õ¼ÓÃ×îÉٵĿռ䣬 ²¢×öµ½Èí¼þµÄ ¡°¼´²å¼´Óᱡ£

×¢Òâ: ³ý·ÇÃ÷È·µØÉùÃ÷£¬ ·ñÔòÄúÌá½»¸ø FreeBSD ports collection µÄ²¹¶¡£¬ ½Å±¾ºÍÆäËüµÄÎļþ¶¼½«±»¼Ù¶¨ÒÔ±ê×¼µÄ BSD °æÈ¨·¢²¼¡£


4.4 ´ò²¹¶¡

¡¡¡¡ÔÚÄú×¼±¸ÖÆ×÷ port µÄ¹ý³ÌÖУ¬ Ôö¼Ó»òÐ޸ĵÄÎļþ£¬ ¶¼¿ÉÒÔͨ¹ý diff(1) À´×ö³É²¹¶¡¡£ Ï£ÍûÓ¦Óõ½Ô´´úÂëÉϵÄÿ¸ö²¹¶¡£¬ ¶¼Ó¦±£´æÎªµ¥¶ÀµÄÎļþ£¬ ²¢ÃüÃûΪ patch-*£¬ ÆäÖÐ * ±íʾ½«ÒªÐ޸ĵÄÎļþµÄÍêÕû·¾¶Ãû£¬ ÀýÈç patch-Imakefile »ò patch-src-config.h¡£ ÕâЩÎļþ£¬ ¶¼Ó¦±£´æÔÚ PATCHDIR (ͨ³£ÊÇ files/)£¬ ÕâÀïµÄ²¹¶¡¶¼»á×Ô¶¯Ó¦Óõ½Ô´´úÂëÉÏ¡£ ËùÓеIJ¹¶¡±ØÐëÊÇÏà¶ÔÓÚ WRKSRC µÄ (Ò»°ã¶øÑÔ£¬ ÄúµÄ port »á½«Æä tarball ½âѹËõÔÚÄÇÀ ²¢Íê³ÉÓàÏµĹ¤×÷)¡£ ΪÁËÈÃÐÞÕýºÍÉý¼¶¸üÈÝÒ×£¬ ÄúÓ¦±ÜÃâʹÓöà¸ö patch È¥ÐÞ¸Äͬһ¸öÎļþ (ÀýÈ磬 patch-file ÒÔ¼° patch-file2 ¶¼ÐÞ¸Ä WRKSRC/foobar.c) ÕâÖÖÇé¿ö¡£

¡¡¡¡Ö»ÓÐ [-+._a-zA-Z0-9] ÕâЩ×Ö·û£¬ ¿ÉÒÔ³öÏÖÔÚ²¹¶¡µÄÎļþÃûÖУ¬ ÇëÎñ±Ø²»ÒªÊ¹ÓóýÕâЩ×Ö·ûÒÔÍâµÄÆäËü×Ö·û¡£ ²»Òª°ÑÄúµÄ²¹¶¡ÃüÃû³É patch-aa »ò patch-ab µÈÕâÑùµÄÃû×Ö£¬ ×îºÃÄÜÔÚ²¹¶¡ÃûÖÐÌᵽ·¾¶ºÍÎļþÃû¡£

¡¡¡¡²»Òª°Ñ RCS ×Ö·û´®·Å½ø²¹¶¡¡£ ÎÒÃǰÑÎļþ·Å½ø ports Ê÷µÄʱºò£¬ CVS »áËð»µËüÃÇ£¬ µ±ÎÒÃÇÔÙ check out ³öÀ´µÄʱºò£¬ ËüÃǾͻáºÍÔ­À´µÄ²»Ò»Ñù£¬ ´Ó¶øµ¼Ö´ò²¹¶¡Ê§°Ü¡£ RCS ×Ö·û´® ÊÇÓÉÃÀÔª·ûºÅ ($) Î§ÈÆµÄ£¬ ͨ³£ÓÉ $Id »ò $RCS ¿ªÍ·¡£

¡¡¡¡Ê¹Óà diff(1) µÄµÝ¹éÑ¡Ïî(-r) ºÜºÃ£¬ µ«ÊÇÇë¼ì²éÒ»ÏÂ×îºóÊä³öµÄ patch£¬ È·±£Ã»ÓÐÈκεÄÀ¬»øÐÅÏ¢¡£ ÌØ±ðµØ£¬ ÓÐ 2 ÖÖÎļþ²»ÐèÒª diff£¬ ²¢ÇÒÓ¦¸Ãɾ³ý£º Ò»ÖÖÊÇ Makefile£¬ µ±ÄúµÄportʹÓÃÁËImake£¬ »òÕß GNU configure µÈµÈµÄ»°¡£ Èç¹ûÄú²»µÃ²»±à¼­configure.in ÒÔʹ autoconf È¥Éú³É configure£¬ ²»ÒªÊ¹Óà configure À´×ö diff (Õâ³£³£»áÓкü¸Ç§Ðг¤!)£» Ç붨Òå USE_AUTOTOOLS=autoconf:253 ²¢¶ÔÓ¦ configure.in À´ÖÆ×÷ diff¡£

¡¡¡¡¼ÙÈçÐèҪɾ³ýÎļþ£¬ ÔòÓ¦ÔÚ post-extract target£¬ ¶ø²»ÊÇ×÷Ϊ²¹¶¡µÄÒ»²¿·ÖÀ´Íê³É¡£

¡¡¡¡³ý´ËÖ®Í⣬ port µÄ Makefile »¹¿ÉÒÔͨ¹ý in-place ģʽµÄ sed(1) À´Ö±½Ó½øÐмòµ¥µÄÌæ»»²Ù×÷¡£ Èç¹û²¹¶¡ÐèҪʹÓñäÁ¿Öµ£¬ Õâ¾Í·Ç³£ÓÐÓÃÁË¡£ ÀýÈ磺

post-patch:
    @${REINPLACE_CMD} -e 's|for Linux|for FreeBSD|g' ${WRKSRC}/README
    @${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|' ${WRKSRC}/configure

¡¡¡¡ÍùÍùÔÚÒÆÖ²Ä³Ð©Èí¼þµÄʱºò»áÓöµ½ÕâÑùÒ»ÖÖÇé¿ö£¬ ÌØ±ðÊÇÕâ¸öÈí¼þÊÇÔÚ Windows® ÉÏ¿ª·¢µÄʱºò£¬ ´ó¶àÊýµÄÔ´´úÂë¶¼ÐèÒª½øÐÐCR/LFµÄת»»¡£ ÕâºÜ¿ÉÄÜ»á¸øÒÔºó´ò²¹¶¡´øÀ´ÎÊÌ⣬ »¹¿ÉÄÜ´¥·¢±àÒ뾯¸æ£¬ ²¢¸ø½Å±¾µÄÖ´ÐдøÀ´Âé·³ (/bin/sh^M not found)£¬ µÈµÈ¡£ ҪѸËÙ½«ËùÓÐÎļþÖÐµÄ CR/LF ¸ÄΪֻÓà LF£¬ ¿ÉÒÔÔÚ port µÄ Makefile ÖмÓÈë USE_DOS2UNIX=yes¡£ ³ý´ËÖ®Í⣬ »¹¿ÉÒÔÖ¸¶¨Ò»¸öÐèÒªÖ´ÐÐÕâÖÖת»»²Ù×÷µÄÎļþÁÐ±í£º

USE_DOS2UNIX=  util.c util.h

4.5 ÅäÖÃ

¡¡¡¡°ÑÈκθ½¼ÓµÄÅäÖÃÃüÁî¼Ó½øÄúµÄ configure ½Å±¾²¢°ÑËü±£´æµ½ scripts ×ÓĿ¼¡£ ÈçÇ°ÃæÌáµ½µÄÄÇÑù£¬ ÄúÒ²ÄÜÔÚ Makefile ºÍ/»ò ʹÓà pre-configure »ò post-configure µÄ½Å±¾À´×öͬÑùµÄÊÂÇé¡£


4.6 ´¦ÀíÓû§ÊäÈë

¡¡¡¡Èç¹ûÄúµÄ port ÒªÇóÓû§µÄÊäÈëÒÔ±ãÅäÖñàÒë¡¢ »ò°²×°ÅäÖùý³Ì£¬ ¾Í±ØÐëÔÚ Makefile ÀïÉèÖà IS_INTERACTIVE ±äÁ¿¡£ Èç¹ûÓû§ÉèÖÃÁË BATCH µÄ»°£¬ Õ⽫ÈÃÓû§ÄÜÌø¹ýÄúµÄ port À´Íê³É ¡°Í¨Ïü±àÒ롱 (Èç¹ûÓû§ÉèÖÃÁË INTERACTIVEµÄ»°£¬ ÄÇô Ö»ÓÐ ÄÇЩҪÇ󻥶¯µÄ port ²Å»á±»±àÒë) Õ⽫¸øÄÇЩ²»Í£±àÒë ports µÄ»úÆ÷ʡϺܶàʱ¼ä¡£

¡¡¡¡Í¨³£ÎÒÃÇ»¹½¨Ò飬 Èç¹û¶ÔÓÚÄÇЩÎÊÌâÄÜÓкÏÀíµÄȱʡ´ð°¸µÄ»°£¬ Ó¦¼ì²éһϠPACKAGE_BUILDING ±äÁ¿£¬ ²¢¸ù¾ÝÆäÉèÖþö¶¨ÊÇ·ñÖ´Ðйرս»»¥½Å±¾¡£ Õ⽫ÔÊÐíÎÒÃÇΪ CDROM ºÍ FTP À´±àÒë package¡£


µÚ5ÕÂ ¡¡ÅäÖÃ Makefile

¡¡¡¡ÅäÖà Makefile ÊÇÏ൱¼òµ¥µÄ£¬ ÎÒÃÇÔڴ˽¨ÒéÄúÔÚ¿ªÊ¼Ö®Ç°¿´Ò»ÏÂÏÖÓеÄÀý×Ó¡£ ÔÚÕâ·ÝÊÖ²áÀïÒ²ÓÐÒ»¸ö MakefileÀý×Ó£¬ ÕÕ×ÅÀïÃæ±äÁ¿µÄ˳ÐòÀ´Ð´ÄÜʹµÃÄúµÄ port ¸üÈÝÒ׵ر»ÆäËüÈË¿´¶®¡£

¡¡¡¡ÏÖÔÚ£¬ µ±Äú¿ªÊ¼±àдÄúеÄMakefile µÄʱºò£¬ ¿ÉÒÔÒÀ´Î˼¿¼Ò»ÏÂÒÔϵÄÎÊÌ⣺


5.1 ×÷Õß·¢²¼µÄ´úÂë

¡¡¡¡·ÅÔÚ DISTDIR ÖеÄÊDz»ÊDZê×¼µÄÓà gzip ѹËõµÄ tar °ü£¬ ÀýÈç foozolix-1.2.tar.gz£¿ Èç¹ûÊÇ£¬ ¿ÉÒÔÏÈÂÔ¹ýÕâÒ»½Ú¡£ Èç¹û²»ÊÇ£¬ ÄúÓ¦µ±¿´¿´ÊDz»ÊÇÒª¸²¸ÇÕâЩ±äÁ¿£º DISTVERSION¡¢ DISTNAME¡¢ EXTRACT_CMD¡¢ EXTRACT_BEFORE_ARGS¡¢ EXTRACT_AFTER_ARGS¡¢ EXTRACT_SUFX£¬ DISTFILES£¬È¡¾öÓÚÄú port µÄ distfile ¸ñʽÓжàô¹ÖÒì¡£ (×î³£¼ûµÄÒ»¸öÀý×Ó±ãÊÇ EXTRACT_SUFX=.tar.Z£¬ Ò»°ãÕâÊÇÒòΪ tar °üÊÇÓà compress ¶ø²»ÊÇ gzip ѹËõµÄʱºò¡£)

¡¡¡¡×îÔãµÄÇé¿öÊÇ£¬ ÄúÐèÒª×Ô¼º±àд do-extract À´¸²¸ÇĬÈϵ͍Ò壬 ¾¡¹ÜÕâ²»³£¼û£¬ µ«Èç¹ûÓöµ½ÁË£¬ »¹ÊÇÐèÒªÕâô×ö¡£


5.2 ̟̞

¡¡¡¡Makefile µÄµÚÒ»²¿·Ö±ãÊÇ port µÄÃû×Ö¡¢ °æ±¾ºÅ£¬ ÒÔ¼°ËüËùÊôµÄ·ÖÀà¡£


5.2.1 PORTNAME ºÍ PORTVERSION

¡¡¡¡ÄúÓ¦¸Ã°Ñ PORTNAME ÉèÖÃΪÄú port µÄÃû×Ö£¬ PORTVERSION ÔòÊÇ port µÄ°æ±¾ºÅ¡£


5.2.2 PORTREVISION ºÍ PORTEPOCH

5.2.2.1 PORTREVISION (port µÄÐÞ¶©°æ±¾ºÅ)

¡¡¡¡PORTERVISION ±äÁ¿ÊÇÒ»¸öµ¥µ÷µÝÔöµÄÖµ£¬ Èç¹û²»Îª 0£¬ ¾Í»á±»¼Óµ½°üÃûµÄºóÃæ£¬ µ± PORTVERSION Ôö¼Ó µÄʱºòÓ¦±»Öà 0 (Ò²¾ÍÊǵ±¹Ù·½ÓÐа汾·¢²¼µÄʱºò)¡£ PORTREVISION »á±»×Ô¶¯»¯¹¤¾ß (±ÈÈç pkg_version(1)) ÓÃÀ´¼ì²âÊÇ·ñ´æÔÚ¿ÉÓõÄа汾¡£

¡¡¡¡Ã¿µ± port ·¢Éú±ä»¯²¢¶ÔÉú³ÉµÄ package µÄÄÚÈÝ»ò½á¹¹ÓÐÏÔÖøÓ°Ïìʱ£¬ ¶¼Ó¦Ôö¼Ó PORTREVISION Öµ¡£

¡¡¡¡ÏÂÃæÊÇһЩӦµ±ÐÞ¸Ä PORTREVISION µÄÇé¿ö£º

  • ÓÐеIJ¹¶¡ÓÃÀ´ÐÞÕý°²È«Â©¶´¡¢ ´íÎó£¬ »ò¸ø port Ìí¼ÓÁËÐµĹ¦ÄÜ¡£

  • ÐÞ¸ÄÁË Makefile Àï±àÒëʱ¿ªÆô»ò½ûÓõÄÑ¡Ïî¡£

  • ÐÞ¸ÄÁËÒª°²×°ÎļþµÄÁбí»ò°²×°Ê±µÄÐÐΪ (ÀýÈ磬 ÐÞ¸ÄÁËÒ»¸öÓÃÀ´¸ø package ³õʼ»¯Êý¾ÝµÄ½Å±¾£¬ Èç ssh host keys)¡£

  • Ò»¸öportÒÀÀµµÄ¹²Ïí¿â°æ±¾¸Ä±ä (ÔÚÕâÖÖÇé¿öÏ£¬ µ±°²×°ÁËа汾µÄ¹²Ïí¿â£¬ ºóÔÙÈ¥°²×°½ÏÔçµÄÈí¼þ¾Í»á³ö´í£¬ ÒòΪËüÃÇÒªÒÀÀµÀ쵀 libfoo.x ¶ø²»ÊÇlibfoo.(x+1))¡£

  • Ô­×÷ÕßÐÞ¸ÄÁË port distfile£¬ ²¢ÇÒ distfile µÄÐÂÀϰ汾֮¼äÓà diff -ru Ö»ÄÜ·¢ÏÖһЩϸ΢µÄ±ä»¯£¬ ÕâʱÎÒÃÇÖ»ÐèÒª¶Ô distinfo ×öÏàÓ¦µÄÐÞÕý£¬ ¶ø²»ÐèÒªÐÞ¸Ä PORTVERSION¡£

¡¡¡¡²»ÐèÒªÐÞ¸Ä PORTREVISION µÄÀý×Ó£º

  • port ½á¹¹·ç¸ñµÄ¸Ä±ä£¬ µ«¶ÔÓÚ´ò³ÉµÄ°üûÓй¦ÄܵÄÉϵı仯¡£

  • MASTER_SITES ·¢Éú±ä»¯£¬ »ò½øÐÐÁË¶Ô port ¹¦ÄܵÄÐ޸ģ¬ µ«²»ÖÂÓ°Ïì×îºó´ò³ÉµÄ°ü¡£

  • ¶Ô distfiles ÖîÈçÐÞÕýƴд´íÎóÖ®ÀàµÄ²¹¶¡£¬ ¶ÔÓû§¶øÑÔûÓÐÉý¼¶ÉϵÄÂé·³¡£

  • ¶ÔÒ»¸öÔ­±¾±àÒëʧ°ÜµÄ°üµÄÐ޸ģ¬ ʹÆä¿É±àÒ룬 ¶øÃ»ÓмÓÈëй¦ÄÜ¡£ ÒòΪ PORTREVISION ±íʾ°üµÄÄÚÈÝ·¢ÉúÁ˱仯£¬ Èç¹ûÏÈǰûÓпɱàÒëµÄ°ü£¬ Ò²¾Í²»ÐèÒªÐÞ¸Ä PORTREVISION À´±íʾ±ä»¯¡£

¡¡¡¡Ò»¸öÐ޸IJ¢Ìá½» port µÄÔ­ÔòÊÇ£º ʹµÃ±ðÈËÄÜ´ÓÖÐÊÜÒæ (¸Ä½ø¡¢ ÐÞ¸ÄÒÑÓдíÎó£¬ »òʹÐ嵀 package Äܹ»ÔËÐÐ)£¬ Äú»¹ÒªÈ¨ºâÒ»ÏÂÕâÊÇ·ñÓ¦ÈÃÄÇЩ¾­³£¸üРports Ê÷µÄÈËÉý¼¶£¬ Èç¹û»Ø´ðÊÇ ¡°ÊÇ¡± µÄ»°£¬ PORTREVISION ¾ÍÓ¦¸ÃÐÞ¸ÄÁË¡£


5.2.2.2 PORTEPOCH (port µÄ¼ÓȨ°æ±¾ºÅ)

¡¡¡¡ÓÐʱÈí¼þÉÌ»ò FreeBSD µÄ porter »áʹÓñȾɰæµÄ°æ±¾ºÅСµÄÊý×Ö×öΪа汾ºÅµÄÇé¿ö¡£ ¾ÙÀýÀ´Ëµ£¬ ´Ó foo-20000801 µ½ foo-1.0 (´ÓÐÎʽÉÏÀ´ËµÕâÊDz»¶ÔµÄ£¬ ÒòΪ 20000801 ÔÚÊýÖµÉϱÈ1´óºÜ¶à)¡£

¡¡¡¡ÔÚÕâÖÖÇé¿öÏ£¬ PORTEPOCH Ó¦µ±Ôö¼Ó¡£ Èç¹û PORTEPOCH ·Ç 0£¬ ¾ÍÓ¦µ±¼Óµ½°üÃû×ֵĺóÃæ¡£ PORTEPOCH ÓÀÔ¶²»Äܱ»¼õÉÙ»òÇåÁ㣬 ÒòΪÄÇÑù»áµ¼ÖÂÓëǰһʱÆÚµÄ package ±È½Ï°æ±¾Ê±²úÉú²»ÕýÈ·µÄ½á¹û¡£ (¾ÍÊÇ˵£¬ ÄǸö package ¾Í²»»á±»¼ì²âµ½ÒѾ­¹ýʱÁË¡£) еİ汾ºÅ (±ÈÈçÇ°ÃæÔÚÇ°ÃæÄǸöÀý×ÓÖÐµÄ 1.0,1) ÔÚÊýÖµÉϱÈǰһ¸ö°æ±¾ (20000801) С£¬ µ«¶àÊý×Ô¶¯»¯µÄ¹¤¾ß»áÈÏΪ ,1 ºó׺Òâζ×űÈǰһ¸ö°üµÄºó׺ ,0 ´ó¡£

¡¡¡¡´íÎóµÄÈ¥³ý»òÖØÖà PORTEPOCH »áµ¼Öºܶ಻ÐÒ·¢Éú£» Èç¹ûÄú»¹²»Ã÷°×Ç°ÃæµÄÌÖÂÛ£¬ Çë¶àÔĶÁ¼¸´ÎÖ±ÖÁÃ÷°×Ϊֹ£¬ »òµ½ÓʼþÁбíÉÏÀ´ÌáÎÊ¡£

¡¡¡¡´ó¶àÊý port ¶¼²»»áÓõ½ PORTEPOCH£¬ ²¢ÇÒÈç¹ûij¸öÈí¼þµÄÏÂÒ»¸ö°æ±¾¸Ä±äÁ˰汾ºÅ½á¹¹µÄ»°£¬ ÓÃÇÉÃîµÄ·½·¨À´É趨 PORTVERSION Ò²ÄܱÜÃâʹÓà PORTEPOCH¡£ È»¶ø£¬ FreeBSD porter Ò²ÐèҪעÒ⣬ µ±ÓÐа汾µÄÈí¼þ·¢²¼£¬ µ«²¢·ÇÕýʽ°æ±¾Ê± ©¤©¤ ±ÈÈç ¡°snapshot¡± °æ±¾£¬ Ô­×÷Õß¿ÉÄÜ»áʹÓõ±Ê±µÄÈÕÆÚÀ´ÃüÃû£¬ ÕâÔÚÐ嵀 ¡°¹Ù·½¡± °æ±¾·¢²¼µÄʱºò£¬ ¾ÍºÜÈÝÒ×ÒýÆðÇ°ÃæÌáµ½µÄÎÊÌâ¡£

¡¡¡¡¾Ù¸öÀý×Ó£¬ Èç¹û snapshot °æ±¾µÄ·¢²¼ÈÕÆÚÊÇ 20000917£¬ Õâ¸öÈí¼þµÄÉÏÒ»¸ö°æ±¾ÊÇ1.2£¬ ÄÇôÕâ¸ö°æ±¾µÄ PORTVERSIN Ó¦¸ÃÉèΪ 1.2.20000917 »òÀàËÆµÄÑù×Ó£¬ ¶ø²»ÊÇ20000917£¬ ÕâÑùÔÚ 1.3 ·¢²¼ÒÔºó£¬ Ð°汾¾Í¿ÉÒÔÔÚÊýÖµÉÏ´óÓھɵİ汾ÁË¡£


5.2.2.3 ¹ØÓÚ PORTREVISION ºÍ PORTEPOCH µÄÓÃÀý

¡¡¡¡gtkmumble port£¬°æ±¾ºÅ 0.10£¬ ±»Ìá½»µ½ ports collection:

PORTNAME=       gtkmumble
PORTVERSION=    0.10

¡¡¡¡PKGNAME ±ä³É gtkmumble-0.10¡£

¡¡¡¡È»ºóÓÐÈË·¢ÏÖÁËÒ»¸ö°²È«Â©¶´£¬ ÐèÒªÓÃÒ»¸öFreeBSDµÄ²¹¶¡¡£ PORTREVISION ¾ÍÒªÏàÓ¦µÄÔö¼Ó¡£

PORTNAME=       gtkmumble
PORTVERSION=    0.10
PORTREVISION=   1

¡¡¡¡PKGNAME±ä³ÉÁË gtkmumble-0.10_1

¡¡¡¡Èí¼þµÄ×÷Õß·¢²¼ÁËеİ汾£¬ °æ±¾Îª 0.2 (×÷Õß±¾À´µÄÒâ˼ÊÇ£¬ Óà 0.10 ±íʾ 0.1.0£¬¡°¶ø²»ÊÇÖ¸ 0.9 Ö®ºóµÄÄǸö°æ±¾¡± - µ«ÊÇÏÖÔÚÌ«³ÙÁË)¡£ ÒòΪÏÖÔڵĴΰ汾ºÅ 2 ÔÚÊýÖµÉϱÈÉÏÒ»¸ö°æ±¾ 10 С£¬ PORTEPOCH ±ØÐëÔö¼Ó£¬ ÒÔʹÐ嵀 package ±»ÈÏΪÊÇ ¡°¸üеġ±¡£ ÓÉÓÚÄÇÊÇ×÷Õß·¢²¼µÄÒ»¸öа汾£¬ Òò´Ë PORTREVISION Ó¦±»ÖÃ0 (»òÕß´Ó Makefile ÀïÃæÉ¾³ýËü)¡£

PORTNAME=       gtkmumble
PORTVERSION=    0.2
PORTEPOCH=      1

¡¡¡¡PKGNAME ±ä³ÉÁË gtkmumble-0.2,1

¡¡¡¡ÏÂÒ»¸ö°æ±¾½«»áÊÇ 0.3¡£ ÓÉÓÚ PORTEPOCH ´Ó²»¼õÉÙ£¬ ÄÇô¾ÍÎÞÐë¸Ä¶¯£º

PORTNAME=       gtkmumble
PORTVERSION=    0.3
PORTEPOCH=      1

¡¡¡¡PKGNAME ±ä³É gtkmumble-0.3,1

×¢Òâ: Èç¹ûÔÚÕâ´ÎÉý¼¶ÖÐ PORTEPOCH ±»ÖÃΪÁË0£¬ ÄÇôÔÚ×°ÁË gtkmumble-0.10_1 °üµÄ»úÆ÷ÉϾÍÎÞ·¨¼ì²âµ½ gtkmumble-0.3 °üµÄ¸üУ¬ ÒòΪ 3 ÔÚÊýÖµÉÏ±È 10 С¡£ ¼Çס£¬ ÕâÊÇ PORTEPOCH ×îÖØÒªµÄµØ·½¡£


5.2.3 PKGNAMEPREFIX ºÍ PKGNAMESUFFIX

¡¡¡¡2 ¸ö¿ÉÑ¡µÄ±äÁ¿£¬ PKGNAMEPREFIX ºÍ PKGNAMESUFFIX ¿ÉÒÔºÍ PORTNAME »¹ÓÐ PORTVERSION ÅäºÏʹÓ㬠ÐγÉÏñÕâÑùµÄ PKGNAME£º ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}¡£ ÇëÈ·¶¨·ûºÏÎÒÃÇµÄ °üÃüÃû¹æÔò¡£ µ±È»£¬ ²» ÔÊÐíÔÚ PORTVERSION ÖÐʹÓÃÁ¬×Ö·û (-)¡£ Èç¹û°üÃûÓÐ language- »ò -compiled.specifics ²¿·Ö (¼ûÏÂÎÄ)£¬ Çë·Ö±ðÓà PKGNAMEPREFIX ºÍ PKGNAMESUFFIX£¬ ²»ÒªÖ±½Ó¼Óµ½ PORTNAME ÖС£


5.2.4 °üÃüÃû¹æÔò

¡¡¡¡ÒÔÏÂÊÇÄúÔÚÃüÃûÄúµÄ°üʱӦµ±×ñÊØµÄ¹æÔò¡£ Õ⽫ʹµÃÎÒÃǷŰüµÄĿ¼¸üÀûÓÚä¯ÀÀ£¬ ÒòΪÎÒÃÇÒѾ­ÓÐÊýÒÔÍò¼ÆµÄ°üÁË£¬ Èç¹ûÓû§¾õµÃ²é¿´°üÃûºÜÀ§Äѵϰ£¬ ËûÃÇ»áºÜ¿ì×ß¿ªµÄ¡£

¡¡¡¡Ò»¸ö°üµÄÃû×ÖÓ¦¸Ã¿´ÆðÀ´ÏñÕâÑù£º [language[_region]]-name[[-]compiled.specifics]-version.numbers¡£

¡¡¡¡ÒªÏñÕâÑùÀ´¶¨Òå°üµÄÃû×Ö£º ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}¡£ È·±£ËùÓеıäÁ¿·ûºÏÉÏÃæµÄ¸ñʽ¡£

  1. FreeBSD »á¾¡Á¦È¥Ö§³ÖÓû§µ±µØµÄÓïÑÔ¡£ Èç¹ûÕâ¸ö port ÊÇijÖÖÓïÑÔרÓõģ¬ ÄÇô language- ²¿·ÖÓ¦¸ÃÊÇ ÓÉ ISO-639 ¶¨ÒåµÄ×ÔÈ»ÓïÑ﵀ 2 ¸ö×ÖĸËõд¡£ ±ÈÈ磬 jaÊDZíʾÈÕ±¾£¬ ru ÊDZíʾ¶íÂÞ˹£¬ vi ±íʾԽÄÏ£¬ zh ±íʾÖйú£¬ ko ±íʾº«¹ú£¬ de ±íʾµÂ¹ú¡£

    Èç¹ûÊÇÕë¶ÔijÖÖÓïÑÔµÄijһµØÇøµÄ»°£¬ ÔÙÒª¼ÓÉÏ2¸ö×ÖĸµÄ¹ú¼Ò´úÂë¡£ ÀýÈ磬 en_US ±íʾÃÀ¹úÓ¢Ó fr_CH ±íʾÈðÊ¿·¨Óï¡£

    language- ²¿·ÖÓ¦¸ÃÔÚ PKGNAMEPREFIX ±äÁ¿ÀïÉèÖá£

  2. name ²¿·ÖµÄÊ××ÖĸӦ¸Ã Сд¡£ (ÓàϵIJ¿·ÖÄܰüº¬´óд×Öĸ£¬ ËùÒÔµ±Äú Ҫת»»Ò»¸ö°üº¬´óд×ÖĸÈí¼þµÄÃû×Öʱ£¬ ÄúÐèÒª ×Ô¼º×ö³öÅжϡ£) ¶ÔÓÚperl 5 Ä£¿éµÄÃüÃû£¬ Óиö´«Í³µÄ¹æÔòÊÇ£¬ ÔÚÇ°Ãæ ¼ÓÉÏ p5- ²¢°ÑÁ½¸öðºÅµÄ²¿·Ö¸ÄΪÁ¬×ֺţ¬ È磺 Data::Dumper Ä£¿é±ä³É p5-Data-Dumper¡£ Èç¹ûÈí¼þµÄÃû×ÖÀﻹÓÐÊý×Ö¡¢ Á¬×ֺš¢ Ï»®Ïߣ¬ ÄúÒ²¿ÉÒÔ°ÑÕâЩ°üÀ¨½øÀ´ (ÀýÈç kinput2)¡£

  3. Èç¹û port ¿ÉÒÔʹÓò»Í¬µÄ Ó²±àÂëĬÈÏÅäÖà ½øÐй¹½¨ (ͨ³£ÊÇһϵÁÐ port µÄÒ»²¿·ÖĿ¼Ãû)£¬ Ôò -compiled.specifics ²¿·Ö¾ÍÓ¦¸ÃÃ÷ʾ±àÒë½øÈ¥µÄĬÈÏÖµ (´Ë´¦Á¬×ÖºÅÊÇ¿ÉÑ¡µÄ)¡£ ͨ³£µÄÓÃÀý°üÀ¨Ö½ÐͺͲ»Í¬µÄ×ÖÌå³ß´ç¡£

    -compiled.specifics ²¿·ÖÓ¦¸Ãͨ¹ý PKGNAMESUFFIX ±äÁ¿À´ÉèÖá£

  4. °æ±¾ºÅÓ¦¸Ã½ôËæÔÚÁ¬×ֺŠ(-) ºóÃæ²¢ÓÉÊý×ÖºÍ×Öĸ×é³É¡£ ÌØ±ðÖ¸³ö£¬ ÁíÍâµÄÁ¬×ÖºÅÊDz»ÔÊÐí³öÏÖÔÚ°æ±¾ºÅÀïµÄ¡£ ΨһÀýÍâµÄÊÇ×Ö·û´® pl (±íʾ ¡°patchlevel¡±)£¬ Ö»ÄÜ ÓÃÔÚÈí¼þûÓÐÖ÷°æ±¾ºÅºÍ´Î°æ±¾ºÅµÄÇé¿öÏ¡£ Èç¹ûÈí¼þµÄ°æ±¾ºÅÀï³öÏÖÁËÏñ ¡°alpha¡±£¬ ¡°beta¡±£¬ ¡°rc¡±£¬ ¡°pre¡±£¬ È¡µÚÒ»¸ö×Öĸ°ÑËü·ÅÔÚСÊýµãµÄºóÃæ¡£ Èç¹ûÔÚ°æ±¾ºÅÀïÒ»Ö±³öÏÖÄÇЩÃû×Ö£¬ ÄÇôÔÚÊý×ÖºÍ×Öĸ֮¼ä²»Ó¦ÓжàÓàµÄСÊýµã¡£

    Õâ¸ö·½·¨ÊÇΪÁ˸üÈÝÒ×µÃÆ¾°æ±¾ºÅÀ´ÅÅÐò port¡£ ÌØ±ð×¢ÒâµÄÊÇ£¬ È·±£°æ±¾ºÅÖ®¼äµÄÿ²¿·Ö¶¼ÓÉСÊýµãÀ´·Ö¸ô£¬ Èç¹ûÈÕÆÚÒ²Êǰ汾ºÅµÄÒ»²¿·Ö£¬ ¾ÍÓÃÕâÑùµÄ¸ñʽ£¬ yyyy.mm.dd »òÕß dd.mm.yyyy ÕâÑùµÄ¸ñʽ£¬ ¶ø·Ç yy.mm.dd£¬ ÒòΪºóÕß²»ÊʺϱíʾǧÄêµÄ¸ñʽ¡£

¡¡¡¡ÕâÀïÊÇÒ»Ð©ÕæÊµµÄÀý×Ó£¬ ÎÒÃǽå´Ë˵Ã÷ÈçºÎ°ÑÈí¼þ×÷Õß¶ÔÈí¼þµÄÃüÃû£¬ ת»»ÎªÊʺÏÎÒÃǰüµÄÃüÃû·½Ê½£º

·¢ÐаæµÄÃû×Ö PKGNAMEPREFIX PORTNAME PKGNAMESUFFIX PORTVERSION ˵Ã÷
mule-2.2.2 (¿Õ) mule (¿Õ) 2.2.2 ûʲôÐèÒªÐ޸ĵÄ
XFree86-3.3.6 (¿Õ) XFree86 (¿Õ) 3.3.6 ûʲôÐèÒªÐ޸ĵÄ
EmiClock-1.0.2 (¿Õ) emiclock (¿Õ) 1.0.2 ³ÌÐòµÄÃû×Ö²»ÄÜʹÓôóд×Öĸ
rdist-1.3alpha (¿Õ) rdist (¿Õ) 1.3.a Ïñ alpha ÕâÑùµÄ×Ö·û´®ÊDz»ÔÊÐí³öÏÖµÄ
es-0.9-beta1 (¿Õ) es (¿Õ) 0.9.b1 Ïñ beta ÕâÑùµÄ×Ö·û´®ÊDz»ÔÊÐí³öÏÖµÄ
mailman-2.0rc3 (¿Õ) mailman (¿Õ) 2.0.r3 Ïñ rc ÕâÑùµÄ×Ö·û´®ÊDz»ÔÊÐí³öÏÖµÄ
v3.3beta021.src (¿Õ) tiff (¿Õ) 3.3 ÄǸöÊÇɶ¹í¶«Î÷£¿
tvtwm (¿Õ) tvtwm (¿Õ) pl11 ×ÜÐèÒªÓиö°æ±¾ºÅ°É
piewm (¿Õ) piewm (¿Õ) 1.0 ×ÜÐèÒªÓиö°æ±¾ºÅ°É
xvgr-2.10pl1 (¿Õ) xvgr (¿Õ) 2.10.1 pl Ö»ÔÊÐíÔÚûÓÐ Ö÷/´Î °æ±¾ºÅµÄÇé¿öϲÅÄܳöÏÖ
gawk-2.15.6 ja- gawk (¿Õ) 2.15.6 ÈÕÎİæ
psutils-1.13 (¿Õ) psutils -letter 1.13 Ö½ÕÅ´óСÒѾ­ÔÚ±àÒëµÄʱºò±»Ó²±àÂëµ½³ÌÐòÀïÁË
pkfonts (¿Õ) pkfonts 300 1.0 300dpi ×ÖÌåµÄ°ü

¡¡¡¡Èç¹ûÔÚԭʼµÄ´úÂëÀïûÓа汾ºÅ£¬ »òÕßÔ­×÷Õß²¢²»´òË㿪·¢ÁíÍâµÄ°æ±¾£¬ ¾ÍÓ¦°Ñ°æ±¾ºÅÉè³É 1.0 (¾ÍÏñÇ°Ãæ piewm µÄÀý×ÓÄÇÑù)¡£ ·ñÔò£¬ ÒªÇóԭʼµÄ×÷Õß¼ÓÉϰ汾ºÅ»òʹÓÃÈÕÆÚ (yyyy.mm.dd) À´×÷Ϊ°æ±¾ºÅ¡£


5.3 ·ÖÀà

5.3.1 CATEGORIES (ËùÊô·ÖÀà)

¡¡¡¡ÔÚ°üÖÆ×÷Íê³ÉÖ®ºó£¬ Ëü»á±»·ÅÔÚ /usr/ports/packages/All£¬ ²¢½¨Á¢Ò»ÏµÁÐÀ´×Ô /usr/ports/packages ÏÂ×ÓĿ¼µÄ·ûºÅÁ¬½Ó¡£ ÕâЩ×ÓĿ¼µÄÃû³ÆÊÇÓÉ CATEGORIES Ö¸¶¨µÄ¡£ Õ⽫·½±ãÓÚÄÇЩÓû§ÔÚ FTP Õ¾µã»ò CDROM µÄÒ»´ó¶Ñ°üÀïÃæÑ°ÕÒ×Ô¼ºÏëÒªµÄ°ü¡£ Çë²é¿´Ò»Ï ĿǰµÄ·ÖÀà±í£¬ ²¢ÕÒ³öÒ»¸öÊʺÏÄú port µÄ·ÖÀà¡£

¡¡¡¡´ËÁбíÒ²»á¾ö¶¨ÄúµÄ port ÔÚ port Ŀ¼ÖеÄλÖᣠÈç¹ûÄúÔÚÕâÀïÉ趨ÁË 1 ¸öÒÔÉϵķÖÀ࣬ ÔòÈÏΪÄú port ÎļþÓ¦·Åµ½ÒÔµÚÒ»¸ö·ÖÀàÃüÃûµÄ×ÓĿ¼ÖС£ Çë²ÎÔÄ ºóÃæ ¹ØÓÚÈçºÎÑ¡ÔñÕýÈ··ÖÀàµÄ¸ü¶àÌÖÂÛ¡£


5.3.2 ĿǰµÄ·ÖÀà±í

¡¡¡¡ÕâÊÇĿǰ port ÖеķÖÀà¡£ ÄÇЩÓÃÐǺŠ(*) ±ê¼ÇµÄÊÇ ÐéÄâ·ÖÀà ©¤©¤ ËüÃÇÔÚportsÊ÷ÀïûÓÐÏàÓ¦µÄ×ÓĿ¼£¬ Òò¶øÖ»ÓÃÀ´×öΪ´ÎÒªµÄ·ÖÀ࣬ ÓÃÒÔ·½±ãËÑË÷¡£

×¢Òâ: ¶ÔÓÚ·ÇÐéÄâµÄ·ÖÀàÀ´Ëµ£¬ Äú»á¿´µ½ÔÚÏà¶ÔÓ¦×ÓĿ¼ÖÐµÄ Makefile ÀïÓÐдÔÚ COMMENT ÀïµÄµ¥ÐÐÃèÊö¡£

·ÖÀà ÃèÊö ×¢ÒâÊÂÏî
accessibility °ïÖú²ÐÕÏÈËÊ¿µÄ port¡£  
afterstep* ¶ÔÓÚ AfterStep ´°¿Ú¹ÜÀíÆ÷µÄÖ§³Ö¡£  
arabic °¢À­²®ÓïÑÔÖ§³Ö¡£  
archivers ѹËõÓ뱸·Ý¹¤¾ß¡£  
astro ÓйØÌìÎÄѧµÄ port¡£  
audio ÉùÒôÖ§³Ö¡£  
benchmarks ²âÆÀ³ÌÐò¡£  
biology ÉúÎïѧÏà¹ØµÄÈí¼þ¡£  
cad ¼ÆËã»ú¸¨ÖúÉè¼Æ¹¤¾ß¡£  
chinese ÖÐÎÄÓïÑÔÖ§³Ö¡£  
comms ͨѶÈí¼þ¡£ ´ó²¿·ÖÊÇÓÃÓÚ´®¿ÚͨѶµÄ¡£
converters ×Ö·û±àÂëת»»¡£  
databases Êý¾Ý¿â¡£  
deskutils ÔÚ·¢Ã÷¼ÆËã»úÒÔǰ¾ÍÒѾ­ÔÚ×ÀÃæÉÏʹÓõĶ«Î÷¡£  
devel ³ÌÐò¿ª·¢¹¤¾ß¡£ ²»Òª°Ñ¿ª·¢¿â·ÅÔÚÕâÀï ©¤©¤ ³ý·ÇÄúÔÙÒ²ÕÒ²»µ½¸üºÏÊʵķÖÀ࣬ ·ñÔò¾Í²»¸Ã·ÅÔÚÕâ¸ö·ÖÀàÀï¡£
dns DNS Ïà¹ØµÄÈí¼þ¡£  
editors ͨÓñ༭Æ÷¡£ ÓÐÌØÊâÓÃ;µÄ±à¼­Æ÷Ó¦¸Ã±»ÖÃÓÚÏàÓ¦µÄ·ÖÀàÖÐ (±ÈÈ磬 Êýѧ-·½³Ìʽ ±à¼­Æ÷Ó¦¸Ã·ÅÔÚ math ·ÖÀàÀï¡£
elisp* Emacs-lispÏà¹ØµÄport¡£  
emulators ÆäËü²Ù×÷ϵͳµÄÄ£ÄâÆ÷¡£ ÖÕ¶ËÄ£ÄâÆ÷ ²»Ó¦¸Ã ÊôÓÚÕâ¸ö·ÖÀà ©¤©¤ »ùÓÚ X µÄÓ¦¸Ã·ÅÔÚ x11 ¶ø»ùÓÚÎı¾Ä£Ê½µÄÓ¦¸Ã·Åµ½ comms »ò misc ÖÐÈ¥£¬ È¡¾öÓÚ¾ßÌåµÄ¹¦ÄÜ¡£
finance »õ±Ò¡¢ ½ðÈÚÒÔ¼°Ïà¹ØµÄÓ¦ÓóÌÐò¡£  
french ·¨ÓïÓïÑÔÖ§³Ö¡£  
ftp FTP ¿Í»§¶ËºÍ·þÎñÆ÷¶ËµÄ³ÌÐò¡£ Èç¹ûÄúµÄ port ͬʱ֧³Ö FTP ºÍ HTTP µÄ»°£¬ °ÑËü·Å½ø ftp ²¢°Ñ www ×öΪµÚ¶þ·ÖÀà¡£
games ÓÎÏ·¡£  
german µÂÓïÓïÑÔÖ§³Ö¡£  
gnome* ¹ØÓÚ GNOME ÏîÄ¿µÄÖ§³Ö¡£  
graphics ͼÐÎͼÏó³ÌÐò¡£  
hamradio* ÒµÓàÎÞÏߵ簮ºÃÕßʹÓõÄÈí¼þ¡£  
haskell* ÓÐ¹Ø Haskell ±à³ÌÓïÑÔµÄÈí¼þ¡£  
hebrew Ï£²®À´ÓïÓïÑÔÖ§³Ö¡£  
hungarian ÐÙÑÀÀûÓïÓïÑÔÖ§³Ö¡£  
ipv6* IPv6 Ïà¹ØÈí¼þ¡£  
irc IRC Ïà¹Ø³ÌÐò  
japanese ÈÕÓïÓïÑÔÖ§³Ö¡£  
java ÓÐ¹Ø Java ±à³ÌÓïÑÔµÄÈí¼þ¡£ java ·ÖÀà¶ÔÓÚÒ»¸ö port À´Ëµ²¢²»ÊÇΨһµÄ·ÖÀà¡£ ×îºÃÓÃÀ´·ÅºÍ Java ÓïÑÔÏà¹ØµÄ port£¬ ¶øÇÒÎÒÃǹÄÀø²»Òª°Ñ java ×öΪһ¸ö port µÄÖ÷·ÖÀà¡£
kde* K ×ÀÃæ»·¾³ (KDE) Ïà¹ØµÄÈí¼þ¡£  
korean º«ÓïÓïÑÔÖ§³Ö¡£  
lang ±à³ÌÓïÑÔ¡£  
linux* Linux Ïà¹ØµÄÓ¦ÓóÌÐò¡£  
lisp* ºÍ Lisp ±à³ÌÓïÑÔÓйصÄÈí¼þ¡£  
mail µç×ÓÓʼþÈí¼þ¡£  
math ÊýÖµ¼ÆËãºÍÆäËüÊýѧÏà¹ØµÄÈí¼þ¡£  
mbone MBone Ó¦ÓóÌÐò¡£  
misc ¸÷ʽ¸÷ÑùµÄʵÓóÌÐò¡£ ͨ³£²»ÊôÓÚÆäËüµÄÈκηÖÀ࣬ Èç¹û¿ÉÄܵϰ£¬ ¾¡Á¿ÎªÄúµÄ port Ñ¡Ôñ misc ÒÔÍâµÄ·ÖÀ࣬ ÒòΪÔÚÕâÀïµÄ port ±È½ÏÈÝÒ×±»È˺öÂÔ¡£
multimedia ¶àýÌåÈí¼þ¡£  
net ¸÷ÖÖÍøÂçÏà¹ØµÄÈí¼þ¡£  
net-im ¼´Ê±ÏûÏ¢Èí¼þ¡£  
net-mgmt ÍøÂç¹ÜÀíÈí¼þ¡£  
net-p2p ¶ÔµÈÍø (Peer to peer network) Ó¦ÓóÌÐò¡£  
news USENETÐÂÎÅ×éÏà¹ØÈí¼þ¡£  
palm Palm™ ϵÁÐÏà¹ØÈí¼þ¡£  
parallel* ²¢ÐмÆËãÏà¹ØÈí¼þ¡£  
pear* Pear PHP ¼Ü¹¹Ïà¹ØÈí¼þ¡£  
perl5* Perl5 Ïà¹ØµÄÈí¼þ¡£  
plan9* Plan9 Ïà¹Ø³ÌÐò¡£  
polish ²¨À¼ÓïÓïÑÔÓïÑÔÖ§³Ö¡£  
portuguese ÆÏÌÑÑÀÓïÓïÑÔÖ§³Ö¡£  
print ´òÓ¡Ïà¹ØµÄÈí¼þ¡£ ×ÀÃæ³ö°æ¹¤¾ß (´òÓ¡Ô¤ÀÀ¹¤¾ßµÈµÈ) Ò²¿ÉÒÔ·ÅÔÚ´Ë·ÖÀàÀï¡£
python* Python ±à³ÌÓïÑÔÏà¹ØµÄÈí¼þ¡£  
ruby* Ruby ±à³ÌÓïÑÔÏà¹ØµÄÈí¼þ¡£  
rubygems* ÒÆÖ²°æ±¾µÄ RubyGems Èí¼þ°ü¡£  
russian ¶íÓïÓïÑÔÖ§³Ö¡£  
scheme* Óë Scheme ÓïÑÔÓÐ¹ØµÄ port¡£  
science ¿ÆÑ§Ïà¹Øµ«²»ÊʺϷÅÔÚ astro¡¢ biology£¬ ÒÔ¼° math ·ÖÀàµÄ port¡£  
security °²È«Ïà¹ØµÄʵÓóÌÐò¡£  
shells ÃüÁîÐÐ shell¡£  
sysutils ϵͳÏà¹ØµÄʵÓóÌÐò¡£  
tcl80* ÒÀÀµÓÚ Tcl 8.0 °æÔËÐÐµÄ port¡£  
tcl81* ÒÀÀµÓÚ Tcl 8.1 °æÔËÐÐµÄ port¡£  
tcl82* ÒÀÀµÓÚ Tcl 8.2 °æÔËÐÐµÄ port¡£  
tcl83* ÒÀÀµÓÚ Tcl 8.3 °æÔËÐÐµÄ port¡£  
tcl84* ÐèÒªÒÀÀµ Tcl 8.4 °æÔËÐÐµÄ port¡£  
textproc Îı¾´¦ÀíµÄʵÓóÌÐò¡£ Õâ¸ö·ÖÀಢ²»ÊʺÏÓÚÄÇЩӦ¸Ã·Åµ½ print µÄ×ÀÃæ³ö°æ¹¤¾ß¡£
tk80* ÒÀÀµÓÚ Tk 8.0 °æÔËÐÐµÄ port¡£  
tk82* ÒÀÀµÓÚ Tk 8.2 °æÔËÐÐµÄ port¡£  
tk83* ÒÀÀµÓÚ Tk 8.3 °æÔËÐÐµÄ port¡£  
tk84* ÒÀÀµÓÚ Tk 8.4 °æÔËÐÐµÄ port¡£  
tkstep80* ÐèÒª TkSTEP 8.0 À´ÔËÐÐµÄ port¡£  
ukrainian ÎÚ¿ËÀ¼ÓïÓïÑÔÖ§³Ö¡£  
vietnamese Ô½ÄÏÓïÓïÑÔÖ§³Ö¡£  
windowmaker* WindowMaker ´°¿Ú¹ÜÀíÆ÷µÄÏà¹ØÖ§³Ö¡£  
www Word Wide WebµÄÏà¹ØÈí¼þ¡£ HTMLÓïÑÔÏà¹ØµÄÖ§³ÖÒ²¿ÉÒÔ·ÅÔÚÕâ¸ö·ÖÀàÀï¡£
x11 X Window SystemÒÔ¼°Ïà¹ØÈí¼þ¡£ Õâ¸ö·ÖÀàÊǸøÄÇЩֱ½ÓÖ§³ÖX Window System µÄÈí¼þµÄ¡£ ²»Òª°Ñ³£¹æµÄ X Ó¦ÓóÌÐòÒ²·Å½øÕâÀ ËüÃÇÖеĴó¶àÊý¶¼Ó¦±»¹éÀൽ x11-* (²Î¼ûÏÂÎÄ)¡£ Èç¹ûÄúµÄ port ÊÇ X Ó¦ÓóÌÐò£¬ Ó¦¶¨Òå USE_XLIB (ʹÓà USER_IMAKE Òþº¬°üÀ¨Ëü)£¬ È»ºó°ÑËü·Åµ½ºÏÊʵķÖÀàÀï¡£  
x11-clocks X11 ϵÄʱÖÓ³ÌÐò¡£  
x11-fm X11 ϵÄÎļþ¹ÜÀíÆ÷¡£  
x11-fonts X11 ϵÄ×ÖÌåÒÔ¼°Ïà¹Ø¹¤¾ß¡£  
x11-servers X11 ·þÎñÆ÷¡£  
x11-themes X11 Ö÷Ìâ¡£  
x11-toolkits X11 ¹¤¾ß°ü¡£  
x11-wm X11 ´°¿Ú¹ÜÀíÆ÷¡£  
xfce* Óë Xfce ×ÀÃæ»·¾³ÓÐ¹ØµÄ port¡£  
zope* Zope Ïà¹ØµÄÖ§³Ö¡£  

5.3.3 Ñ¡ÔñÕýÈ·µÄ·ÖÀà

¡¡¡¡ÓÉÓÚ²»ÉÙ·ÖÀàÊÇÖØ¸´µÄ£¬ Äúͨ³£ÔÚÓÃÄĸö·ÖÀà×÷ΪÄú port µÄÖ÷·ÖÀàÉÏ×ö³öÑ¡Ôñ¡£ ÏÂÃæÓм¸Ìõ¹æÔòÄܰïÄú½â¾öÕâ¸öÎÊÌâ¡£ ÕâÊÇÒ»¸ö´øÓÅÏȼ¶µÄ±í£¬ °´ÓÅÏȼ¶½µÐòÂÞÁУº

  • µÚÒ»¸ö·ÖÀà±ØÐëÊǸöÎïÀíµÄ·ÖÀà (²ÎÔÄ Ç°Ãæ)¡£ Õâ¶ÔÓÚÖÆ×÷°üÊDZØÒªµÄ¡£ ÐéÄâ·ÖÀàºÍÎïÀí·ÖÀà¿ÉÄÜÔÚ°üÖÆ×÷Íê³Éºó»ìºÏÔÚÒ»Æð¡£

  • ¶ÔÓÚÌØ¶¨ÓïÑԵķÖÀàͨ³£·ÅÔÚµÚһλ¡£ ÀýÈ磬 Èç¹ûÄúµÄ port »á°²×°Ò»Ð© X11 µÄÈÕÎÄ×ÖÌ壬 ÄÇô CATEGORIESÄÇÐÐ ¾ÍÓ¦¸ÃÊÇ japanese x11-fonts¡£

  • ÓÐÌØ¶¨ÒâÒåµÄ·ÖÀàÓ¦µ±±»ÁÐÔÚÎÞÌØ¶¨ÒâÒåµÄÇ°Ãæ¡£ ÀýÈ磬 HTML ±à¼­Æ÷Ó¦¸ÃÊÇÕâÑùµÄ www editors£¬ ¶ø²»ÊÇÆäËüµÄʲô¡£ ͬÑùµØ£¬ Äú²»Ó¦¸ÃÁгö net£¬ Èç¹û port ÊôÓÚ irc¡¢ mail¡¢ mbone¡¢ news¡¢ security£¬ »òÊÇ www£¬ ÒòΪ net ¿ÉÒÔ±íʾËüÃǵij¬¼¯¡£

  • Ö»Óе±Ö÷ÒªµÄ·ÖÀàÊÇÒ»ÃÅ×ÔÈ»ÓïÑÔµÄʱºò£¬ x11 Äܱ»×öΪµÚ¶þ·ÖÀà¡£ ÐèÒªÌØ±ðÖ¸³öµÄÊÇ£¬ Äú²»Ó¦°Ñ X µÄÓ¦ÓóÌÐòÒ²¹éÀàΪ x11¡£

  • Emacs ģʽӦµ±ÓÚÏàÓ¦µÄÓ¦ÓóÌÐò·ÅÔÚͬһ¸ö·ÖÀàÀ ¶ø²»ÊÇ editors ·ÖÀà¡£ ¾ÙÀýÀ´Ëµ£¬ Ò»¸öÓÃÓڱ༭ijÖÖ±à³ÌÓïÑÔÔ´´úÂëµÄ Emacs ģʽӦ¸Ã±»¹éΪ lang Ò»Àà¡£

  • misc ·ÖÀàµÄ port ²»ÄÜÓÐÆäËü·ÇÐéÄâµÄ·ÖÀà¡£ Èç¹ûÄúÔÚÄúµÄ CATEGORIES ÀïÉèÁË misc ºÍÁíÍâµÄ·ÖÀ࣬ ÄÇÒâζ×Å¿ÉÒÔ°²È«µØÉ¾³ý misc ²¢°Ñ port ·Åµ½ÆäËüµÄ×ÓĿ¼ÖÐÁË£¡

  • Èç¹ûÄúµÄ port ȷʵ²»ÊôÓÚÏÖÓеķÖÀ࣬ ²Å°ÑËü·Åµ½ misc¡£

¡¡¡¡Èç¹ûÄú²»ÄÜÈ·¶¨Ê¹ÓÃÄĸö·ÖÀ࣬ ÇëÔÚÄúÌá½»µÄ send-pr(1) Àï¼ÓÉÏÒ»ÐÐ×¢ÊÍ£¬ ÕâÑùÎÒÃǾÍÄÜÔÚµ¼Èë½ø port Ê÷֮ǰÌÖÂÛһϡ£ Èç¹ûÄúÊÇ committer£¬ ·¢Ò»·Ý±¸Íüµ½ FreeBSD ports ÓʼþÁбí ÏÈÌÖÂÛһϡ£ ºÜ¶àÇé¿öÊÇÐ嵀 port ±»¼Óµ½´íÎóµÄ·ÖÀàÀ È»ºóÓÖÁ¢¼´±»ÒÆ×ß¡£Õâ»áÔì³ÉÔ´´úÂë¿â²»±ØÒªºÍ²»Á¼µÄÅòÕÍ¡£


5.3.4 ÌáÒ齨Á¢ÐµķÖÀà

¡¡¡¡ÓÉÓÚ Ports Collection ÔÚ³ÖÐøÔö³¤£¬ ÒѾ­ÒýÈëÁËÐí¶àеķÖÀà¡£ еķÖÀà¼È¿ÉÒÔÊÇ ÐéÄâµÄ ·ÖÀà ©¤©¤ ÕâЩ·ÖÀàÔÚÕû¸ö ports Ŀ¼ÖÐûÓÐÊôÓÚ×Ô¼ºµÄ×ÓĿ¼ ©¤©¤ »ò ÎïÀíµÄ ·ÖÀà ©¤©¤ ËüÃÇÓÐ×Ô¼ºµÄ×ÓĿ¼¡£ ½ÓÏÂÀ´ÎÒÃǽ«ÌÖÂÛÓ뽨Á¢ÐµÄÎïÀí·ÖÀàÓйصÄÊÂÏ ÒÔ±ã°ïÖúÄúÀí½âÈçºÎÌáÒ齨Á¢ÐµķÖÀà¡£

¡¡¡¡ÎÒÃÇĿǰµÄ×ö·¨ÊDZÜÃ⽨Á¢ÐµÄÎïÀí·ÖÀ࣬ ³ý·ÇÓзdz£¶àµÄ port Ó¦±»¹éÈëÕâÒ»·ÖÀ࣬ »òÕß port ÊôÓÚÄ³Ò»ÌØ¶¨µÄСÍÅÌå (ÀýÈ磬 ÓëijÖÖÈËÀàÓïÑÔÏà¹Ø)£¬ »òÁ½Õß½ÔÊÇ¡£

¡¡¡¡ÕâÑù×öµÄÔ­ÒòÊÇÕâÀàÐ޸ĻáÈà committer ºÍÓû§¶¼²»µÃ²»½øÐÐ Ðí¶à¹¤×÷ À´ÔÚ Ports Collection ½øÐлò×·×ÙÐ޸ġ£ ´ËÍ⣬ ÌáÒéеķÖÀàͨ³£¶¼»áÒýÆðÕùÂÛ¡£ (¿ÉÄÜÕâÊÇÒòΪ¹ØÓÚij¸ö·ÖÀàÊÇ·ñ ¡°Ì«´ó¡± һֱûÓзdz£Ò»ÖµÄÒâ¼ûµÄÔµ¹Ê£¬ ÁíÒ»·½Ã棬 ·ÖÀàÊÇ·ñÄܹ»Äܹ»ÓÐÖúÓÚä¯ÀÀ (ÒÔ¼°¶àÉÙ¸ö·ÖÀàÊǺÏÊʵÄ)£¬ µÈµÈ£¬ Ò²¶¼ÊÇÎÊÌâ¡£)

¡¡¡¡ÏÂÃæÊǾßÌåµÄ²½Ö裺

  1. ÔÚ FreeBSD ports ÓʼþÁбí ÌáÒéеķÖÀà¡£ ÄúÓ¦Ìṩ½¨Á¢Ð·ÖÀàµÄÏêϸÒÀ¾Ý£¬ °üÀ¨ÎªÊ²Ã´ÈÏΪÏÖÓеķÖÀ಻¹»£¬ ÒÔ¼°Ï£ÍûÒÆ¶¯Î»ÖõÄһϵÁÐ port µÄÃû×Ö¡£ (Èç¹ûÓÐÉÐÔÚ GNATS ¶øÎ´ commit µÄ port£¬ Ò²Ó¦Ò»Ò»Áгö¡£) Èç¹ûÄúÊÇÏà¹Ø port µÄ¼à»¤ÈË»òÌá½»Õߣ¬ ˵Ã÷ÕâÒ»Çé¿ö¿ÉÄÜÓÐÖúÓÚÄúµÄÌáÒéµÃµ½Í¨¹ý¡£

  2. ²ÎÓëÌÖÂÛ¡£

  3. Èç¹ûÓÐÈËÖ§³ÖÄúµÄ½¨Ò飬 Ó¦¼°Ê±Ìá½»Ò»¸ö PR£¬ ÆäÖаüÀ¨ÌáÒé PR µÄÀíÓÉ£¬ ÒÔ¼°ÐèÒªÒÆ¶¯µÄ port µÄÁÐ±í¡£ ÀíÏëÇé¿öÏ£¬ Õâ¸ö PR Ò²Ó¦°üº¬Õë¶ÔÏÂÁÐÎļþµÄ²¹¶¡£º

    • ½øÐÐ repocopy Ö®ºó¶Ô Makefile ½øÐеÄÐÞ¸Ä

    • зÖÀàµÄ Makefile

    • ¾É·ÖÀàµÄ Makefile

    • ÒÀÀµÓÚ¾É port µÄ port µÄ Makefile

    • (´ËÍ⣬ ×÷ΪһÏî¼Ó·ÖÒòËØ£¬ Äú»¹¿ÉÒÔ°´ÕÕ Committer Ö¸ÄÏËù½éÉܵÄÁ÷³Ì£¬ ÌṩһЩÆäËüÐèÒªÐ޸ĵÄÎļþ¡£)

  4. ÓÉÓÚÕâÊÇÒ»ÏîÓ°Ïì ports »ù´¡ÉèÊ©µÄ±ä¶¯£¬ Ëü²»½öÉæ¼° repo-copy µÄʹÓ㬠¶øÇÒÒ²¿ÉÄÜ»áÓ°Ïì¹¹½¨¼¯ÈºµÄË¥Í˲âÊÔ²Ù×÷£¬ Òò´ËÕâÀà PR Ó¦·ÖÅɸø Ports ¹ÜÀíÍÅ¶Ó ¡£

  5. Èç¹ûÕâÒ» PR µÃµ½Åú×¼£¬ ij¸ö committer ½«°´ÕÕÔÚ Committer Ö¸ÄÏ ÖÐËù½éÉܵIJ½ÖèÀ´Íê³ÉÓàÏµĹ¤×÷¡£

¡¡¡¡ÌáÒéеÄÐéÄâ·ÖÀàºÍÉÏÊö¹ý³ÌÀàËÆ£¬ µ«»áÈÝÒ×Ðí¶à£¬ ÒòΪ²»ÐèҪʵ¼ÊµØÒƶ¯ÈκΠport¡£ ÕâÖÖÇé¿öÏ£¬ PR Ó¦¸½´øµÄ²¹¶¡£¬ ¾ÍÖ»ÐèÒªÐÞ¸ÄÓ°Ïìµ½µÄ port µÄ Makefile£¬ ÒÔ±ãÔÚÆäÖÐµÄ CATEGORIES ÖмÓÈëеķÖÀàÁË¡£


5.3.5 ÌáÒé¶Ô·ÖÀà½øÐÐÖØÐÂ×éÖ¯

¡¡¡¡ÓÐЩʱºò»áÓÐһЩÈËÌáÒéÖØÐ½«·ÖÀà×é֯Ϊ 2-²ã »òijÖÖ»ùÓڹؼü×ֵĽṹ¡£ ĿǰΪֹ£¬ »¹Ã»ÓнøÐÐÈκÎÏà¹ØµÄ¸Ä±ä£¬ ÒòΪ¾¡¹ÜÕâЩÐ޸ıȽÏÈÝÒ×Íê³É£¬ µ«ÐÞ¸ÄÕû¸ö Ports Collection ËùÐèÒª½øÐеŤ×÷£¬ ÖÁÉÙÒ²ÊÇÁîÈËÉúηµÄ¡£ ÔÚ·¢±íÄúµÄ¹Ûµã֮ǰ£¬ ÇëÔĶÁÔÚÓʼþÁÐ±í´æµµÖÐÀúÊ·ÉÏËù½øÐйýµÄÌáÒ飻 ´ËÍ⣬ ÄúÒ²»á±»ÒªÇóÌṩһ¸ö¿ÉÓõÄÔ­ÐΡ£


5.4 Ô´Âë°üÎļþ

¡¡¡¡ÔÚ Makefile Öеĵڶþ²¿·ÖÊÇÃèÊöÓÃÓÚ¹¹½¨ port Ëù±ØÐèÏÂÔØµÄÎļþ£¬ ÒÔ¼°µ½Ê²Ã´µØ·½È¥ÏÂÔØËüÃÇ¡£


5.4.1 DISTVERSION/DISTNAME (Ô´Âë°ü°æ±¾ºÅ/Ãû³Æ)

¡¡¡¡DISTNAME ÊÇ×÷Õ߳ƺôÄúËù port Èí¼þµÄÃû×Ö¡£ DISTNAME µÄĬÈÏÖµÊÇ ${PORTNAME}-${PORTVERSION}£¬ Òò´ËÖ»ÓÐÔÚÐèҪʱ²ÅÓ¦ÊÖ¹¤Ö¸¶¨¡£ DISTNAME Ö»ÔÚÁ½¸öµØ·½Óõ½¡£ µÚÒ»´¦ÊÇÔ´Âë°üÎļþÁбí (DISTFILES)£¬ ÆäĬÈÏÖµÊÇ ${DISTNAME}${EXTRACT_SUFX}¡£ µÚ¶þ´¦ÊÇÔ´Âë°üÓ¦±»Õ¹¿ªµ½µÄĿ¼Ãû£¬ ¼´ WRKSRC ËùÖ¸¶¨µÄĿ¼£¬ ÆäĬÈÏÖµÊÇ work/${DISTNAME}¡£

¡¡¡¡Ä³Ð©Èí¼þ×÷Õß·¢²¼Ô´Âë°üµÄʱºò²¢²»²ÉÈ¡ ${PORTNAME}-${PORTVERSION} ÕâÑùµÄģʽ£¬ Õâ¿ÉÒÔͨ¹ýÉèÖà DISTVERSION À´×Ô¶¯´¦Àí¡£ PORTVERSION ºÍ DISTNAME »á×Ô¶¯µØÕ¹¿ª£¬ µ±È»£¬ Ò²¿ÉÒԸĵôËü¡£ ÏÂ±í¸ø³öÁËһЩÀý×Ó£º

DISTVERSION PORTVERSION
0.7.1d 0.7.1.d
10Alpha3 10.a3
3Beta7-pre2 3.b7.p2
8:f_17 8f.17

×¢Òâ: PKGNAMEPREFIX ºÍ PKGNAMESUFFIX ²¢²»Ó°Ïì DISTNAME¡£ ´ËÍ⻹ӦעÒâ WRKSRC µÈÓÚ work/${PORTNAME}-${PORTVERSION}£¬ ¶øÔ´´úÂëµÄѹËõ°üÔò¿ÉÄÜÊÇ ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX} ÒÔÍâµÄÆäËüÃû×Ö¡£ Ò»°ãÇé¿öÏÂÓ¦¸Ã±£³Ö DISTNAME ²»±ä ©¤©¤ ¸üºÃµÄ·½·¨ÊǶ¨Òå DISTFILES ¶ø²»ÊÇͬʱÉèÖà DISTNAME ºÍ WRKSRC (¿ÉÄÜ»¹ÓÐ EXTRACT_SUFX)¡£


5.4.2 MASTER_SITES (Ö÷Á÷ÏÂÔØÕ¾µã)

¡¡¡¡¼Ç¼ FTP/HTTP-URL Ö¸Ïò MASTER_SITES ÖÐԭʼѹËõµµµÄĿ¼²¿·Ö¡£ ²»ÒªÍüÁ˽áβµÄбÏß (/)£¡

¡¡¡¡make ºê½«³¢ÊÔʹÓà FETCH À´×¥È¡ËùÖ¸¶¨µÄÔ´Âë°üÎļþ£¬ Èç¹ûÎÞ·¨ÔÚ±¾µØÏµÍ³ÖÐÕÒµ½ÕâЩÎļþµÄ»°¡£

¡¡¡¡½¨ÒéÄúÖ¸¶¨¶à¸ö¾µÏñÕ¾µã£¬ ×îºÃÊÇÔÚ²»Í¬µÄ´óÖÞÉϵġ£ ÕâÑù½«ÓÐЧµØ·ÀÖ¹ÓÉÓÚ´ó·¶Î§ÍøÂçÎÊÌâËùµ¼ÖÂÎÞ·¨ÏÂÔØµÄÎÊÌâ¡£ ÎÒÃÇÉõÖÁ´òËãÔö¼Ó×Ô¶¯¼ì²â¾àÀë×î½üµÄÕ¾µã²¢´ÓÄÇÀïÏÂÔØµÄ¹¦ÄÜ£» ʹÓöà¸öÕ¾µãÊÇÕâÑù×öµÄÖØÒªÒ»²½¡£

¡¡¡¡Èç¹ûԭʼµÄÔ´Âë°üÊÇÁ÷ÐеÄÈí¼þ£¬ ÀýÈç X-contrib¡¢ GNU£¬ »ò Perl CPAN µÈµÈÖ®Ò»£¬ Äú¿ÉÄÜ»áÏ£ÍûʹÓà MASTER_SITE_* (ÀýÈç MASTER_SITE_XCONTRIB ºÍ MASTER_SITE_PERL_GNU) À´¼ò»¯×«Ð´¡£ ¼òµ¥µØ½« MASTER_SITES ÉèÖÃΪÕâЩ±äÁ¿Ö®Ò»£¬ ²¢Ê¹Óà MASTER_SITE_SUBDIR À´Ö¸¶¨Â·¾¶¾Í¿ÉÒԴﵽĿµÄ¡£ ÏÂÃæÊÇÒ»¸öÀý×Ó£º

MASTER_SITES=         ${MASTER_SITE_XCONTRIB}
MASTER_SITE_SUBDIR=   applications

¡¡¡¡ÕâЩ±äÁ¿ÊÇÔÚ /usr/ports/Mk/bsd.sites.mk Öж¨ÒåµÄ¡£ ÐÂÏîÄ¿»áËæÊ±Ôö¼Ó£¬ Òò´ËÔÚÄúÌá½» port ֮ǰ£¬ Ó¦ÏÈ¿´Ò»¿´Õâ¸öÎļþµÄ×îа汾¡£

¡¡¡¡Óû§Ò²¿ÉÒÔÔÚËûÃÇµÄ /etc/make.conf ÎļþÖÐ×ÔÐÐÉèÖà MASTER_SITE_* ±äÁ¿£¬ ÒÔ±ãÈÃϵͳʹÓÃËûÃǵÄÑ¡Ôñ£¬ ´ÓËûÃÇϲ»¶µÄ¾µÏñÕ¾µã½øÐÐÏÂÔØ¡£


5.4.3 EXTRACT_SUFX (ѹËõ°üËùÓõÄÀ©Õ¹Ãû)

¡¡¡¡Èç¹ûÄúÓÐÒ»¸öÔ´Âë°üÎļþ£¬ ¶øËüʹÓÃÁËijÖÖ¹ÖÒìµÄÀ©Õ¹ÃûÀ´±í´ïѹËõ·½·¨£¬ Ó¦ÉèÖà EXTRACT_SUFX¡£

¡¡¡¡ÀýÈ磬 Èç¹ûÔ´Âë°üÎļþµÄÃû×ÖÊÇ foo.tgz ¶ø·Ç¸üΪһ°ãµÄ foo.tar.gz£¬ ÄúӦдÉÏ£º

DISTNAME=      foo
EXTRACT_SUFX=  .tgz

¡¡¡¡USE_BZIP2 ºÍ USE_ZIP ±äÁ¿»á×Ô¶¯¸ù¾ÝÐèÒª½« EXTRACT_SUFX ÉèÖÃΪ .tar.bz2 »ò .zip¡£ Èç¹ûÕâÁ½¸ö¶¼Ã»ÉèÖ㬠Ôò EXTRACT_SUFX µÄ ĬÈÏÖµ½«ÊÇ .tar.gz¡£

×¢Òâ: ÈκÎʱºò¶¼²»ÐèҪͬʱÉèÖà EXTRACT_SUFX ºÍ DISTFILES.


5.4.4 DISTFILES (È«²¿Ô´´úÂë°ü)

¡¡¡¡ÓÐЩʱºòËùÏÂÔØµÄÎļþÃû×ÖºÍ port µÄÃû×ÖûÓÐÈκÎÁªÏµ¡£ ÀýÈ磬 ¿ÉÄÜÊÇ source.tar.gz£¬ »òÕßÓë´ËÀàËÆµÄÆäËüÃû×Ö¡£ Ò²ÓÐһЩÆäËüµÄÓ¦ÓÃÈí¼þ£¬ ËüÃǵÄÔ´´úÂë¿ÉÄܱ»´æ·Åµ½Á˲»Í¬µÄѹËõ°üÖУ¬ ¶øÇÒÈ«¶¼ÐèÒªÏÂÔØ¡£

¡¡¡¡Èç¹ûÓöµ½ÕâÖÖÇé¿ö£¬ ¿ÉÒÔ½« DISTFILES ÉèÖÃΪÒÔ¿Õ¸ñ·Ö¸ôµÄÒ»×éÐèÒªÏÂÔØµÄÎļþÁÐ±í¡£

DISTFILES=     source1.tar.gz source2.tar.gz

¡¡¡¡Èç¹ûûÓÐÓèÒÔÃ÷È·µÄÉèÖ㬠DISTFILES µÄĬÈÏÖµ½«ÊÇ ${DISTNAME}${EXTRACT_SUFX}¡£


5.4.5 EXTRACT_ONLY (Ö»½âѹËõ²¿·ÖÔ´Îļþ)

¡¡¡¡Èç¹ûÖ»ÓÐÒ»²¿·Ö DISTFILES ÐèÒª½âѹËõ ©¤©¤ ÀýÈ磬 ÆäÖеÄÒ»¸öÊÇÔ´´úÂ룬 ¶øÆäËüÔòÊÇδѹËõµÄÎĵµ ©¤©¤ ´ËʱӦ°ÑÄÇЩÐèÒª½âѹËõµÄÎļþ¼Óµ½ EXTRACT_ONLY ÖС£

DISTFILES=     source.tar.gz manual.html
EXTRACT_ONLY=  source.tar.gz

¡¡¡¡Èç¹û DISTFILES ÖРûÓÐ ÐèÒª½âѹËõµÄÎļþ£¬ ÔòÓ¦½« EXTRACT_ONLY ÉèΪ¿Õ´®¡£

EXTRACT_ONLY=

5.4.6 PATCHFILES (ͨ¹ýÏÂÔØµÃµ½µÄ²¹¶¡Îļþ)

¡¡¡¡Èç¹ûÄúµÄ port ÐèÒªÀ´×Ô FTP »ò HTTP µÄһЩ¶îÍâµÄ²¹¶¡£¬ Ó¦½« PATCHFILES ÉèÖÃΪÕâЩÎļþµÄÃû×Ö£¬ ²¢½« PATCH_SITES Ö¸Ïò°üº¬ÕâЩÎļþµÄĿ¼µÄ URL (¸ñʽÓë MASTER_SITES Ïàͬ)¡£

¡¡¡¡Èç¹ûÕâЩ²¹¶¡£¬ ÓÉÓÚ°üº¬ÁËÆäËüµÄĿ¼Ãû£¬ ¶øµ¼ÖÂËüÃDz»ÊÇÏà¶ÔÓÚÔ´´úÂëĿ¼µÄ¶¥¼¶Ä¿Â¼ (Ò²¾ÍÊÇ WRKSRC) µÄ»°£¬ ¾ÍÐèÒªÏàÓ¦µØÉèÖà PATCH_DIST_STRIP ÁË¡£ ÀýÈ磬 Èç¹û²¹¶¡ÖÐËùÓеÄĿ¼ÃûÇ°Ãæ¶¼ÓÐÒ»¸ö¶àÓàµÄ foozolix-1.0/£¬ ¾ÍÓ¦ÉèÖà PATCH_DIST_STRIP=-p1¡£

¡¡¡¡²»ÐèÒªµ£ÐIJ¹¶¡Îļþ±¾ÉíÊÇ·ñÊÇѹËõµÄ£» Èç¹ûÎļþÃûÒÔ .gz or .Z ½á⣬ ϵͳ»á×Ô¶¯½âѹËõ¡£

¡¡¡¡Èç¹û²¹¶¡ÊÇͬijЩÆäËüÎļþ£¬ ÀýÈçÎĵµ£¬ һͬÒÔ gzip ѹËõµÄ tar ¸ñʽ·¢²¼µÄ£¬ ¾Í²»Äܼòµ¥µØÊ¹Óà PATCHFILES ÁË¡£ ÕâÖÖÇé¿öÏ£¬ ÄúÓ¦½«ÕâЩ²¹¶¡°üµÄÎļþºÍλÖüÓÈëµ½ DISTFILES ºÍ MASTER_SITES ÖС£ È»ºó£¬ Óà EXTRA_PATCHES ±äÁ¿À´Ö¸³öÕâЩÎļþ£¬ ÕâÑù bsd.port.mk ¾Í»á×Ô¶¯µØÎªÄúÓ¦ÓÃÕâЩ²¹¶¡ÁË¡£ ÐèÒªÌØ±ð×¢ÒâµÄÊÇ£¬ ²»Òª ½«²¹¶¡Îļþ¸´ÖƵ½ PATCHDIR Ŀ¼ÖÐ ©¤©¤ Õâ¸öĿ¼¿ÉÄÜÊDz»¿ÉдµÄ¡£

×¢Òâ: ѹËõ°ü»áÒÔͬԴ´úÂëÒ»ÑùµÄ·½Ê½½âѹËõ£¬ Òò´Ë²»ÐèÒª×ÔÐÐÍê³É½âѹËõ²Ù×÷£¬ ²¢¸´ÖƲ¹¶¡Îļþ¡£ Èç¹ûÄúÒ»¶¨ÒªÕâÑù×ö£¬ ¾ÍҪעÒ⣬ ²»ÒªÈýâѹËõ³öÀ´µÄÎļþ¸²¸ÇÏÈǰÒѾ­´æÔÚµÄÎļþ¡£ ´ËÍ⣬ Õâô×ö»¹ÐèÒªÊÖ¹¤Ôö¼ÓÃüÁ ÒÔ±ãÔÚ pre-clean target ÖÐɾ³ýÕâЩ¸´ÖƳöÀ´µÄÎļþ¡£


5.4.7 À´×Ô²»Í¬Õ¾µãµÄ¶à¸öÔ´´úÂë°ü»ò²¹¶¡Îļþ (MASTER_SITES:n)

¡¡¡¡(ÕâÒ»½ÚÔÚijÖ̶ֳÈÉÏÓ¦±»ÊÓ×÷ ¡°½ø½×»°Ì⡱£» ¸Õ¿ªÊ¼ÔĶÁÕâ·ÝÎĵµµÄ¶ÁÕß¿ÉÄÜ»áÏ£ÍûÏÈÌø¹ýÕâÒ»²¿·Ö)¡£

¡¡¡¡ÕâÒ»½ÚÌṩÁ˱»³Æ×÷ MASTER_SITES:n ºÍ MASTER_SITES_NN µÄÏÂÔØ¿ØÖÆ»úÖÆ¡£ ÕâÀïÎÒÃǰÑËüÃdzÆÎª MASTER_SITES:n¡£

¡¡¡¡Ê×Ïȸø³öһЩ±³¾°¡£ OpenBSD ÔÚÆä DISTFILES ºÍ PATCHFILES ±äÁ¿ÖÐÌṩÁËÒ»¸öºÜ°ôµÄ¹¦ÄÜ£¬ ¼´£¬ ÔÊÐíÕâЩÎļþºÍ²¹¶¡ÓµÓÐ :n ºó׺£¬ ÆäÖÐ n ¿ÉÒÔʹÓà [0-9]£¬ À´±í´ï×é¡£ ÀýÈ磺

DISTFILES=      alpha:0 beta:1

¡¡¡¡ÔÚ OpenBSD ÖУ¬ Ô´Âë°üÎļþ alpha Ó¦±»¹ØÁªµ½±äÁ¿ MASTER_SITES0 ¶ø²»Êǹ«¹²µÄ MASTER_SITES ±äÁ¿ÉÏ£» ¶ø beta ÔòÓ¦¹ØÁªµ½ MASTER_SITES1 ÉÏ¡£

¡¡¡¡ÕâÊÇÒ»¸öºÜÓÐÒâ˼µÄ¹¦ÄÜ£¬ Ëü¿ÉÒÔ±ÜÃâÎÞÐÝÖ¹µØËÑË÷ÕýÈ·µÄÏÂÔØÕ¾µãµÄ¹ý³Ì¡£

¡¡¡¡ÏëÏó DISTFILES ÖÐÖ¸¶¨ÁË 2 ¸öÎļþ£¬ ¶ø MASTER_SITES °üº¬ÁË 20 ¸öÕ¾µãµÄÇéÐΣ¬ ÕâÆäÖÐÐí¶àÕ¾µãÂýÈçÎÏÅ££¬ ¶ø beta ¿ÉÒÔÔÚ MASTER_SITES µÄËùÓÐÕ¾µãÕÒµ½£¬ ¶ø alpha Ö»ÄÜÔÚµÚ 20 ¸öÉÏÃæÕÒµ½¡£ Èç¹û¼à»¤ÈËÁ˽âÕâÒ»µã£¬ ÄÇô¼ì²éËùÓеÄÕ¾µãÎÞÒÉÊÇÔÚÀË·Ñʱ¼ä£¬ ²»ÊÇÂ𣿠ÕâÏÔÈ»²»ÊÇ¿ªÊ¼Ò»¸öÓä¿ìÖÜÄ©µÄºÃ°ì·¨£¡

¡¡¡¡ÏÖÔÚÄúÓÐÁËÒ»¸ö¸ÐÐÔµÄÈÏʶÁË£¬ ÏëÏóһϠDISTFILES ºÍ¸ü¶àµÄ MASTER_SITES¡£ ÏÔÈ»£¬ ÎÒÃÇµÄ ¡°distfiles µ÷²éÔ±ÏÈÉú¡± »á¸ÐлÄú¼õÉÙËûÀË·ÑÔڵȴýÏÂÔØÉÏËùºÄ·ÑµÄʱ¼ä¡£

¡¡¡¡ÏÂÒ»½ÚÖУ¬ ½«°´ÕÕ FreeBSD ¶ÔÉÏÊöÏë·¨µÄʵÏÖÀ´¼ÓÒÔ²ûÊÍ¡£ ÎÒÃÇ¶Ô OpenBSD ËùÌá³öµÄ¸ÅÄî½øÐÐÁËһЩ¸Ä½ø¡£


5.4.7.1 ¼ò»¯ÐÅÏ¢

¡¡¡¡ÕâÒ»½Ú½«½éÉÜÈçºÎѸËٵضԴӲ»Í¬µÄÕ¾µãÒÔ¼°×ÓĿ¼ÏÂÔØ¶à¸öÔ´Âë°üºÍ²¹¶¡½øÐо«È·µÄ¿ØÖÆ¡£ ÕâÀ ÎÒÃǽ«ÃèÊö MASTER_SITES:n µÄÒ»ÖÖ¼ò»¯Ó÷¨¡£ ¶ÔÓÚ¶àÊýÇé¿ö¶øÑÔÕâÑù×öÊÇ×ã¹»µÄ¡£ È»¶ø£¬ Èç¹ûÄúÐèÒª¸ü¶àÐÅÏ¢£¬ »¹ÐèÒª²Î¿¼ÏÂÃæµÄ¼¸½Ú¡£

¡¡¡¡Ò»Ð©Ó¦ÓóÌÐòÐèÒª´Ó¶à¸öÕ¾µãÏÂÔØ²»Í¬µÄÔ´Âë°ü¡£ ÀýÈ磬 Ghostscript °üÀ¨Á˳ÌÐòºËÐı¾Éí£¬ ÒÔ¼°´óÁ¿µÄÇý¶¯Îļþ£¬ ÒÔ¼°ÔòÈ¡¾öÓÚÓû§µÄ´òÓ¡»úÆ·ÅÆºÍÐͺŵÄÇý¶¯³ÌÐò¡£ ijЩÇý¶¯ÎļþÒѾ­Ëæ³ÌÐòºËÐĸ½´ø£¬ µ«Ò²ÓкܶàÐèÒª´ÓÆäËüÕ¾µãÏÂÔØ¡£

¡¡¡¡ÎªÁËÊÊÓ¦ÕâÖÖÐèÒª£¬ ÿһ¸ö DISTFILES ÏîÓ¦¸úËæÒ»¸öðºÅ£¬ ÒÔ¼°Ò»¸ö ¡°±êÇ©Ãû¡±¡£ ÔÚ MASTER_SITES µÄÿ¸öÕ¾µãÒ²Ó¦¸úËæÃ°ºÅºÍ±êÇ©Ãû£¬ ÒÔ±ãÖ¸¶¨´ÓÄĸöÍøÕ¾ÏÂÔØÔ´Âë°üÎļþ¡£

¡¡¡¡ÀýÈ磬 ¿¼ÂÇÒ»¸ö½«Ô´´úÂë°ü·ÖΪÁ½²¿·Ö£¬ ¼´ source1.tar.gz ºÍ source2.tar.gz µÄÈí¼þ£¬ Ëü±ØÐë´ÓÁ½¸ö²»Í¬µÄÕ¾µãÏÂÔØ¡£ port µÄ Makefile Ó¦°üÀ¨ÀàËÆ Àý 5-1 µÄÅäÖá£

Àý 5-1. ¼ò»¯µÄ MASTER_SITES:n Ó÷¨£¬ ÿ¸öÎļþÀ´×ÔÒ»¸öÕ¾µã

MASTER_SITES=   ftp://ftp.example1.com/:source1 \
        ftp://ftp.example2.com/:source2
DISTFILES=      source1.tar.gz:source1 \
        source2.tar.gz:source2

¡¡¡¡¶à¸öÔ´Âë°ü¿ÉÒÔʹÓÃͬһ¸ö±êÇ©¡£ ¼ÌÐøÇ°ÃæµÄÀý×Ó£¬ ¼Ù¶¨Ôö¼ÓÁ˵ÚÈý¸öÔ´Âë°ü£¬ source3.tar.gz£¬ Ó¦´Ó ftp.example2.com ÏÂÔØ¡£ Makefile µÄÕⲿ·ÖӦд³É Àý 5-2 µÄÑù×Ó¡£

Àý 5-2. ¼ò»¯µÄ MASTER_SITES:n Ó÷¨£¬ ÆäÖÐͬһ¸öÕ¾µãÉÏÌṩÁ˲»Ö¹Ò»¸öÎļþ

MASTER_SITES=   ftp://ftp.example1.com/:source1 \
        ftp://ftp.example2.com/:source2
DISTFILES=      source1.tar.gz:source1 \
        source2.tar.gz:source2 \
        source3.tar.gz:source2

5.4.7.2 ÉîÈë½éÉÜ

¡¡¡¡Ç°ÃæµÄÀý×ÓÎÞ·¨Âú×ãÄúµÄÐèÇó£¿ ÕâÒ»½Ú£¬ ÎÒÃǽ«Ïêϸ½éÉÜ MASTER_SITES:n µÄ¾«Ï¸¿ØÖÆÊÇÈçºÎ¹¤×÷µÄ£¬ ÒÔ¼°ÈçºÎÐÞ¸ÄÄúµÄ port À´Ê¹ÓÃËüÃÇ¡£

  1. ÔªËØ¿ÉÒÔ°üº¬ :n ÕâÑùµÄºó׺£¬ ÆäÖÐ n ÊÇ [^:,]+£¬ ¸ÅÄîÉϼ´ n ¿ÉÒÔÈ¡ÈÎÒâÊý×Ö»ò×Öĸ£¬ µ«ÎÒÃÇĿǰ½«ÆäÏÞ¶¨Îª [a-zA-Z_][0-9a-zA-Z_]+¡£

    ´ËÍ⣬ ×Ö·û´®Æ¥Åäʱ¶Ô´óСдÊÇÃô¸ÐµÄ£» »»ÑÔÖ®£¬ n Óë N ²»Í¬¡£

    µ«ÊÇ£¬ ÓÉÓÚ±í´ïÌØÊâµÄÒâÒ壬 ÏÂÁе¥´Ê²»ÄÜÓÃÓÚºó׺£º default¡¢ all ºÍ ALL (ËüÃÇ»áÔÚ ii ÖнéÉܵIJ¿·ÖÓõ½)¡£ ´ËÍ⣬ DEFAULT ÊÇÒ»¸öÓÐÌØÊâÓÃ;µÄ´Ê (Çë²Î¼û 3)¡£

  2. ºó׺Ϊ :n µÄÏîÄ¿ÊôÓÚ n ×飬 ¶ø :m ÊôÓÚ m ×飬 ÒÀ´ËÀàÍÆ¡£

  3. ûÓкó׺µÄÔªËØÊÇÎÞ×éµÄ£¬ Ò²¾ÍÊÇËüÃǶ¼ÊôÓÚÄǸöÌØÊâµÄ DEFAULT ×é¡£ ¸øÔªËؼÓÈë DEFAULT ºó׺ͨ³£ÊǶàÓàµÄ£¬ ³ý·ÇÄúÓÐͬʱÊôÓÚ DEFAULT ºÍÆäËü×éµÄÔªËØ (²Î¼û 5)¡£

    ÏÂÃæµÄÀý×ÓÊǵȼ۵ģ¬ µ«Í¨³£Ó¦ÊÊÓõÚÒ»¸ö£º

    MASTER_SITES=   alpha
    
    MASTER_SITES=   alpha:DEFAULT
    
  4. ×éÖ®¼ä²»ÊÇ»¥³âµÄ£¬ Í¬Ò»ÔªËØ¿ÉÒÔͬʱÁ¥ÊôÓÚ¶à¸ö×飬 ¶ø×éÔò¿ÉÒÔΪ¿Õ»òÕßÓÐÈÎÒâ¶à¸öÔªËØ¡£ ͬһ×éÖеÄÖØ¸´ÔªËØ£¬ ²¢²»»á±»×Ô¶¯ÏûÈ¥¡£

  5. Èç¹ûÏ£ÍûÍ¬Ò»ÔªËØÍ¬Ê±ÊôÓÚ¶à¸ö×飬 ¿ÉÒÔÓöººÅ (,) ·Ö¿ª¡£

    ÕâÖÖ°ì·¨¿ÉÒÔ±ÜÃâ½öΪָ¶¨²»Í¬µÄ×é¶ø¶à´ÎÖØ¸´Í¬Ò»ÔªËØ¡£ ÀýÈç :m,n,o ±íʾÕâ¸öÔªËØÍ¬Ê±ÊôÓÚ m¡¢ n ºÍ o ÕâÈý×é¡£

    ÏÂÃæÕâЩд·¨¶¼Êǵȼ۵ģ¬ µ«Ö»ÍƼöʹÓÃ×îºóÒ»ÖÖ£º

    MASTER_SITES=   alpha alpha:SOME_SITE
    
    MASTER_SITES=   alpha:DEFAULT alpha:SOME_SITE
    
    MASTER_SITES=   alpha:SOME_SITE,DEFAULT
    
    MASTER_SITES=   alpha:DEFAULT,SOME_SITE
    
  6. ͬһ×éÖеÄËùÓÐÕ¾µã£¬ »á¸ù¾Ý MASTER_SORT_AWK ÅÅÐò¡£ ÔÚ MASTER_SITES ºÍ PATCH_SITES ÖеÄ×éÒ²»á½øÐÐÅÅÐò¡£

  7. ÔÚ MASTER_SITES¡¢ PATCH_SITES¡¢ MASTER_SITE_SUBDIR¡¢ PATCH_SITE_SUBDIR¡¢ DISTFILES£¬ ÒÔ¼° PATCHFILES ÖУ¬ ¶¼¿ÉÒÔʹÓÃ×飬 ÆäÓ﷨Ϊ£º

    1. ËùÓÐ MASTER_SITES¡¢ PATCH_SITES¡¢ MASTER_SITE_SUBDIR ÒÔ¼° PATCH_SITE_SUBDIR µÄÔªËØ£¬ ¶¼±ØÐëÒÔ / ×Ö·û½áβ¡£ Èç¹ûÓÐÔªËØÊôÓÚijЩ×飬 Ôò×éºó׺ :n ±ØÐë³öÏÖÔÚÖÕ½á·û / Ö®ºó¡£ MASTER_SITES:n »úÖÆÒÀÀµÓÚ / µÄ´æÔÚ£¬ ÒÔ±ÜÃâÔÚ :n ÊÇÔªËØÒ»²¿·Ö£¬ ¶ø :n ͬʱÓÖ±íʾ×é n ʱ·¢Éú»ìÏý¡£ ΪÁ˼æÈÝÐԵĿ¼ÂÇ£¬ ÒòΪ֮ǰ / ÖÕ½á·ûÔÚ MASTER_SITE_SUBDIR ºÍ PATCH_SITE_SUBDIR ÔªËØÖж¼²»ÊDZØÐèµÄ£¬ Èç¹ûºó׺Ëù½ô¸úµÄ×Ö·û²»ÊÇ /£¬ Ôò :n ½«±»ÈÏΪÊÇÔªËØµÄÒ»²¿·Ö£¬ ¶ø²»±»µ±×÷×éºó׺£¬ ¼´Ê¹ÔªËØÓµÓÐ :n ºó׺¡£ Çë²Î¼û Àý 5-3 ºÍ Àý 5-4 ÒÔÁË½â½øÒ»²½µÄϸ½Ú¡£

      Àý 5-3. ÔÚ MASTER_SITE_SUBDIR ÖÐ MASTER_SITES:n µÄÏêϸÓ÷¨

      MASTER_SITE_SUBDIR=     old:n new/:NEW
      
      • ×é DEFAULT ÖеÄĿ¼ -> old:n

      • ×é NEW ÖеÄĿ¼ -> new

      Àý 5-4. Óõ½¶ººÅ·Ö¸ô·û¡¢ ¶à¸öÎļþ£¬ ¶à¸öÕ¾µãºÍ ²»Í¬×ÓĿ¼µÄ MASTER_SITES:n ÏêϸÓ÷¨

      MASTER_SITES=   http://site1/%SUBDIR%/ http://site2/:DEFAULT \
              http://site3/:group3 http://site4/:group4 \
              http://site5/:group5 http://site6/:group6 \
              http://site7/:DEFAULT,group6 \
              http://site8/%SUBDIR%/:group6,group7 \
              http://site9/:group8
      DISTFILES=      file1 file2:DEFAULT file3:group3 \
              file4:group4,group5,group6 file5:grouping \
              file6:group7
      MASTER_SITE_SUBDIR=     directory-trial:1 directory-n/:groupn \
                  directory-one/:group6,DEFAULT \
                  directory
      

      ǰÊöµÄÀý×ӵĽá¹ûÊÇÏÂÊöµÄ¶ÔÓÚÏÂÔØÐÐΪµÄ¾«Ï¸¿ØÖÆ¡£ Õ¾µãµÄÁÐ±í°´ÕÕʹÓõÄ˳Ðò¸ø³ö¡£

      • file1 ½«´Ó

        • MASTER_SITE_OVERRIDE

        • http://site1/directory-trial:1/

        • http://site1/directory-one/

        • http://site1/directory/

        • http://site2/

        • http://site7/

        • MASTER_SITE_BACKUP

        ÏÂÔØ¡£

      • file2 ½«ºÍ file1 ÒÔͬÑùµÄ·½Ê½ÏÂÔØ£¬ ÒòΪËüÃÇÊôÓÚͬһ×é

        • MASTER_SITE_OVERRIDE

        • http://site1/directory-trial:1/

        • http://site1/directory-one/

        • http://site1/directory/

        • http://site2/

        • http://site7/

        • MASTER_SITE_BACKUP

      • file3 ½«´Ó

        • MASTER_SITE_OVERRIDE

        • http://site3/

        • MASTER_SITE_BACKUP

        ÏÂÔØ¡£

      • file4 ½«´Ó

        • MASTER_SITE_OVERRIDE

        • http://site4/

        • http://site5/

        • http://site6/

        • http://site7/

        • http://site8/directory-one/

        • MASTER_SITE_BACKUP

        ÏÂÔØ¡£

      • file5 ½«´Ó

        • MASTER_SITE_OVERRIDE

        • MASTER_SITE_BACKUP

        ÏÂÔØ¡£

      • file6 ½«´Ó

        • MASTER_SITE_OVERRIDE

        • http://site8/

        • MASTER_SITE_BACKUP

        ÏÂÔØ¡£

  8. ÈçºÎ¶ÔÀ´×Ô bsd.sites.mk µÄÌØÊâ±äÁ¿£¬ ÀýÈç MASTER_SITE_SOURCEFORGE ½øÐзÖ×飿

    ²Î¼û Àý 5-5¡£

    Àý 5-5. MASTER_SITE_SOURCEFORGE ÖÐ MASTER_SITES:n µÄÏêϸÓ÷¨

    MASTER_SITES=   http://site1/ ${MASTER_SITE_SOURCEFORGE:S/$/:sourceforge,TEST/}
    DISTFILES=      something.tar.gz:sourceforge
    

    something.tar.gz ½«´ÓËùÓÐ MASTER_SITE_SOURCEFORGE ÖеÄÕ¾µãÏÂÔØ¡£

  9. ÈçºÎÓë PATCH* ±äÁ¿Á¬Óã¿

    Ç°ÃæµÄÀý×Ó½éÉܵͼÊÇ MASTER* ±äÁ¿£¬ µ«¶ÔÓÚ PATCH* Ò²ÊÇÍêȫһÑùµÄ£¬ ËüÃÇÔÚ Àý 5-6 ÓÐËù½éÉÜ¡£

    Àý 5-6. ¼ò»¯µÄ PATCH_SITES ÖÐµÄ MASTER_SITES:n Ó÷¨¡£

    PATCH_SITES=    http://site1/ http://site2/:test
    PATCHFILES=     patch1:test
    

5.4.7.3 »á¸Ä±ä ports µÄÄÄЩÐÐΪ£¿ ÄÄЩ²»»á£¿

  1. ËùÓÐÆÕͨµÄ ports µÄÐÐΪ¶¼»á±£³Ö²»±ä¡£ MASTER_SITES:n ¹¦ÄܵĴúÂ룬 Ö»ÓÐÔÚÄ³Ð©ÔªËØ°üº¬ÁËǰÊö£¬ ÌØ±ðÊÇ 7 ÖÐËùÌá¼°Óï·¨µÄ :n ºó׺ʱ£¬ ²Å»áÆôÓá£

  2. ²»ÊÜÓ°ÏìµÄ port target£º checksum¡¢ makesum¡¢ patch¡¢ configure¡¢ build£¬ µÈµÈ¡£ ÏÔÈ»£¬ do-fetch¡¢ fetch-list¡¢ master-sites ºÍ patch-sites µÄÐÐΪ»á·¢Éú±ä»¯¡£

    • do-fetch£º »á°´ÕÕеġ¢ ´øÓÐ×éºó׺µÄ DISTFILES ºÍ PATCHFILES ÔÚ MASTER_SITES ºÍ PATCH_SITES ËùÆ¥ÅäµÄ×éÔªËØ£¬ ÒÔ¼° MASTER_SITE_SUBDIR ºÍ PATCH_SITE_SUBDIR À´½øÐС£ Çë²Î¼û Àý 5-4¡£

    • fetch-list£º ºÍ¾ÉʽµÄ fetch-list ÀàËÆ£¬ µ«ÒÔͬ do-fetch ÏàËÆµÄ·½Ê½´¦Àí×é¡£

    • master-sites ºÍ patch-sites£º (Óë¾É°æ±¾²»¼æÈÝ) ½ö·µ»Ø×é DEFAULT µÄÔªËØ£» ÊÂʵÉÏ£¬ ËüÃÇ»áÖ´ÐÐ master-sites-default ºÍ patch-sites-default ÕâÁ½¸ö target¡£

      ¸ü½øÒ»²½£¬ ʹÓà master-sites-all »ò patch-sites-all ÕâÁ½¸ö target Ö®Ò»£¬ Òª±ÈÖ±½Ó¼ì²é MASTER_SITES »ò PATCH_SITES ¸üºÃ¡£ ´ËÍ⣬ δÀ´°æ±¾¿ÉÄܲ»ÔÙ±£Ö¤Ö±½Ó¼ì²éÄܹ»ÕýÈ·¹¤×÷¡£ Çë²Î¼û iii.ii ÒÔÁË½â¹ØÓÚÕâЩРtarget µÄ¸ü¶à¼¼Êõϸ½Ú¡£

  3. port ÖеÄРtarget

    1. һϵÁÐ master-sites-n ºÍ patch-sites-n target ¿ÉÒÔ·Ö±ðÓÃÀ´Áгö MASTER_SITES ºÍ PATCH_SITES ÖÐµÄ n ×éµÄÄÚÈÝ¡£ ÀýÈ磬 master-sites-DEFAULT ºÍ patch-sites-DEFAULT ¶¼»á·µ»Ø DEFAULT ×éµÄÄÚÈÝ£¬ ¶ø master-sites-test ºÍ patch-sites-test Ôò·µ»Ø test ×éµÄÄÚÈÝ£¬ µÈµÈ¡£

    2. ÐÂÔöµÄ master-sites-all ºÍ patch-sites-all ÕâÁ½¸ö target£¬ »áÍê³ÉÏÈǰ master-sites ºÍ patch-sites Ëù×öµÄ¹¤×÷¡£ ËüÃǻ᷵»ØËùÓÐ×éµÄÔªËØ£¬ ¾ÍÏñÕâÐ©ÔªËØ¶¼ÊôÓÚͬһ×éÒ»Ñù£¬ ²¢ÇÒ»áÁгöÓë MASTER_SITE_BACKUP »ò MASTER_SITE_OVERRIDE ÖÐÔÚ DISTFILES »ò PATCHFILES ÖÐÖ¸¶¨µÄͬÑù¶à¸ö£» ·Ö±ð¶ÔÓÚ master-sites-all ºÍ patch-sites-all¡£


5.4.8 DIST_SUBDIR (¶ÀÁ¢µÄÔ´Âë°ü×ÓĿ¼)

¡¡¡¡±ÜÃâÈÃÄúµÄ port ʹ /usr/ports/distfiles ÏÝÈë»ìÂÒ¡£ Èç¹ûÄúµÄ port ÐèÒªÏÂÔØºÜ¶àÎļþ£¬ »òÕßÐèÒªÏÂÔØ¿ÉÄÜÓëÆäËü port µÄÔ´ÎļþÃû³åÍ»µÄÎļþ (ÀýÈ磬 Makefile)£¬ ÔòÓ¦½« DIST_SUBDIR ÉèÖÃΪ port µÄÃû×Ö (ͨ³£¿ÉÒÔÓà ${PORTNAME} »ò ${PKGNAMEPREFIX}${PORTNAME})¡£ Õ⽫°Ñ DISTDIR ´ÓĬÈ쵀 /usr/ports/distfiles ¸ÄΪ /usr/ports/distfiles/DIST_SUBDIR£¬ ²¢½«ÓëÄúµÄ port ÓйصÄÎļþ·Åµ½ÄǸöĿ¼ÖС£

¡¡¡¡´ËÍ⣬ ËüÒ²»áÔÚ±¸·ÝÎļþÖ÷·þÎñÆ÷ ftp.FreeBSD.org ÉϲéÕÒͬһ×ÓĿ¼ÏµÄÎļþ (Ö±½ÓÔÚÄúµÄ Makefile ÖÐÉèÖà DISTDIR Ôò²»»áÓÐÕâÑùµÄЧ¹û£¬ Òò´ËÄúӦʹÓà DIST_SUBDIR¡£)

×¢Òâ: ÕâÒ»ÉèÖò¢²»Ó°ÏìÄúÔÚ Makefile Öж¨ÒåµÄ MASTER_SITES¡£


5.4.9 ALWAYS_KEEP_DISTFILES (Ò»Ö±±£´æÔ´Âë°ü)

¡¡¡¡Èç¹ûÄúµÄ port ²ÉÓõÄÊÇÔ¤±àÒëµÄ°ü£¬ µ«È´²ÉÓÃÁËijÖÖÒªÇóÔ´´úÂë±ØÐëÓëÔ¤±àÒë°æ±¾Ò»Í¬ÌṩµÄÊÚȨ£¬ ÀýÈç GPL£¬ ÔòӦʹÓà ALWAYS_KEEP_DISTFILES À´¸æËß FreeBSD ¹¹½¨¼¯Èº±£ÁôÒ»·ÝÔÚ DISTFILES ÖÐÎļþµÄ¸±±¾¡£ Ò»°ãÀ´ËµÕâЩ port µÄÓû§²¢²»ÐèÒªÕâЩÎļþ£¬ Òò´Ë£¬ Ö»ÔÚ¶¨ÒåÁË PACKAGE_BUILDING ·ûµÄʱºò£¬ ²Å½«Ô´´úÂë°üÎļþ¼ÓÈë DISTFILES ÊǸöºÃÖ÷Òâ¡£

Àý 5-7. ÈçºÎʹÓà ALWAYS_KEEP_DISTFILES¡£

.if defined(PACKAGE_BUILDING)
DISTFILES+=             foo.tar.gz
ALWAYS_KEEP_DISTFILES=  yes
.endif

¡¡¡¡µ±ÄúÔÚ DISTFILES ¼ÓÈëÆäËüÎļþʱ£¬ ÇëÎñ±ØÈ·±£ÕâЩÎļþÒ²³öÏÖÔÚÁË distinfo ÖС£ ´ËÍ⣬ ÕâЩ¶îÍâµÄÎļþͨ³£Ò²»áÕ¹¿ªµ½ WRKDIR ÖУ¬ ¶ÔÓÚijЩ ports£¬ Õâ¿ÉÄܵ¼ÖÂһЩ²»Ï£ÍûµÄ¸±×÷Ó㬠Òò¶øÐèÒª½øÐÐÌØ±ðµÄ´¦Àí¡£


5.5 MAINTAINER (¼à»¤ÈË)

¡¡¡¡ÇëÔÚ´Ë´¦Ð´ÉÏÄúµÄµç×ÓÓʼþµØÖ·¡£ :-)

¡¡¡¡ÐèҪעÒâÒ»µã£¬ MAINTAINER ±äÁ¿µÄÖµÖ»ÄÜÊÇÒ»¸ö²»°üÀ¨×¢ÊͲ¿·ÖµÄµç×ÓÓʼþµØÖ·£¬ Æä¸ñʽӦΪ user@hostname.domain¡£ Çë²»ÒªÔÚ´Ë´¦Ð´ÈκÎ˵Ã÷ÐÔµÄÎÄ×Ö£¬ ÀýÈçÄúµÄÕæÊµÐÕÃû ©¤©¤ Õâ»á¸ø bsd.port.mk ´øÀ´Âé·³¡£

¡¡¡¡¼à»¤ÈËÓÐÔðÈα£³Ö port ËæÊ±¸üУ¬ ²¢È·±£ÆäÄܹ»ÕýÈ·µØÔËÐС£ ÏêϸµÄ port ¼à»¤ÈËÖ°Ôð˵Ã÷£¬ Çë²Î¼û port ¼à»¤ÈËÃæÁÙµÄÌôÕ½ Ò»½Ú¡£

¡¡¡¡¶ÔÓÚ port µÄÐ޸ģ¬ Ó¦±»·¢¸ø port µÄ¼à»¤È˽øÐи´Éó£¬ ÇÒÔÚ commit ֮ǰÐèÒª»ñµÃÆä¼à»¤È˵ÄͬÒâ¡£ ¼ÙÈçijһ port µÄ¼à»¤ÈËûÓÐÔÚÁ½ÖÜÖ®ÄÚ (²»°üÀ¨Ö÷ÒªµÄ¹«¹²¼ÙÈÕ) ÏìÓ¦À´×ÔÓû§µÄ¸üÐÂÇëÇó£¬ Ôò¿ÉÊÓΪ¼à»¤È˳¬Ê±£¬ ÔÚÕâÖÖÇé¿öÏ¿ÉÒÔÔÚûÓм໤ÈËÃ÷ȷͬÒâµÄÇéÐÎϽøÐиüС£ Èç¹û¼à»¤ÈËÔÚ¶à´ïÈý¸öÔµÄʱ¼äÄÚûÓнøÐÐÈκÎÏìÓ¦£¬ Ôò¿ÉÒÔÈÏΪ¸Ã¼à»¤È˲»´Ç¶ø±ð£¬ ÔÊÐí¶Ô³öÏÖ´ËÀàÎÊÌâµÄ port ½øÐм໤È˱ä¸ü¡£ ¾¡¹ÜÈç´Ë£¬ ¼à»¤ÈËΪ Ports ¹ÜÀíÍÅ¶Ó »òÕß Security Officer ÍÅ¶Ó µÄ port ²»ÊÜ´ËÏÞ¡£ ¶Ô¼à»¤ÈËΪÕâЩС×éµÄ port ½øÐÐδ¾­Ðí¿ÉµÄ commit ÊDz»ÔÊÐíµÄ¡£

¡¡¡¡ÎÒÃDZ£Áô¶Ô¼à»¤ÈËËùÌá½»ÐÞÕý°¸½øÐи͝µÄȨÁ¦£¬ ÒÔ±ãʹÆä¸ü·ûºÏÏÖÐÐµÄ Ports Collection ¹æ·¶£¬ ¶øÎÞÐèÌá½»²¹¶¡µÄÈËÃ÷È·Åú×¼¡£ ´ËÍ⣬ ´ó¹æÄ£µÄ»ù´¡ÐÔÐ޸ģ¬ Ò²¿ÉÄÜʹ port ÔÚûÓеõ½¼à»¤ÈËͬÒâµÄÇéÐÎϽøÐÐÐ޸ġ£ µ«ÕâÀàÐ޸ͼ²»»áÓ°Ïì port ±¾ÉíµÄ¹¦ÄÜ¡£

¡¡¡¡Ports ¹ÜÀíÍÅ¶Ó ±£ÁôÒÔÈκÎÔ­ÒòÊջػòÈÆ¹ýÈκÎÈ˼໤ȨµÄȨÁ¦£¬ ¶ø Security Officer ÍÅ¶Ó Ôò±£ÁôÒÔ°²È«Ô­ÒòÊջػòÈÆ¹ý¼à»¤È¨µÄȨÁ¦¡£


5.6 COMMENT (Ò»¾ä»°ËµÃ÷)

¡¡¡¡ÕâÒ»±äÁ¿ÓÃÓÚÖ¸¶¨ port µÄÒ»¾ä»°ËµÃ÷¡£ Çë Î𽫠package µÄÃû×Ö (»òÈí¼þµÄ°æ±¾) ·ÅÔÚ˵Ã÷ÖС£ Õâһ˵Ã÷µÄµÚÒ»¸ö×ÖĸӦ´óд£¬ ½áβ²»Óþäµã¡£ ÏÂÃæÊÇÒ»¸öÀý×Ó£º

COMMENT=       A cat chasing a mouse all over the screen

¡¡¡¡Makefile ÖÐµÄ COMMENT ±äÁ¿Ó¦¸Ã½ô½Ó×Å MAINTAINER ±äÁ¿³öÏÖ¡£

¡¡¡¡ÇëÎñ±Ø½« COMMENT ÕâÐÐÏÞÖÆÔÚ 70 ¸ö×Ö·ûÖ®ÄÚ£¬ ÒòΪËüµÄÖ÷ҪĿµÄÊÇÏòÓû§Õ¹Ê¾ port µÄÒ»¾ä»°¼ò½é¡£


5.7 ÒÀÀµ¹ØÏµ

¡¡¡¡Ðí¶à port »áÒÀÀµÆäËü port¡£ ÓÐÆß¸ö±äÁ¿ÓÃÓÚ°ïÖúÄúÈ·±£ËùÐèµÄÎļþ¶¼´æÔÚÓÚÓû§µÄ»úÆ÷ÉÏ¡£ ´ËÍ⣬ Ò²ÌṩÁËÓÃÓÚÖ§³Ö³£¼ûÇéÐεÄÒÀÀµ¹ØÏµ±äÁ¿£¬ ÒÔ¼°¶ÔÒÀÀµ¹ØÏµÐÐΪµÄ¸ü¶à¿ØÖÆ¡£


5.7.1 LIB_DEPENDS (ÒÀÀµµÄº¯Êý¿â/¹²Ïí¿â)

¡¡¡¡Õâ¸ö±äÁ¿ÓÃÓÚÖ¸¶¨ port ËùÒÀÀµµÄ¹²Ïí¿â¡£ ÆäÄÚÈÝÊÇÓÉһϵÁÐ lib:dir[:target] Ôª×é¹¹³ÉµÄ±í£¬ ÆäÖÐ lib Êǹ²Ïí¿âµÄÃû×Ö£¬ ¶ø dir ÔòÊÇÔÚÕÒ²»µ½Ê±Ó¦¸Ã´ÓÄÄÀï¹¹½¨ºÍ°²×°£¬ ×îºó£¬ target ÓÃÓÚÖ¸¶¨ÔÚÄǸöĿ¼Öе÷ÓÃµÄ target¡£ ÀýÈ磬

LIB_DEPENDS=   jpeg.9:${PORTSDIR}/graphics/jpeg
»á¼ì²âÖ÷°æ±¾ºÅΪ 9 µÄ jpeg ¹²Ïí¿â£¬ Èç¹ûËü²»´æÔÚ£¬ Ôò»á½øÈëµ½ÄúµÄ ports Ŀ¼ÖÐµÄ graphics/jpeg ×ÓĿ¼£¬ ²¢¹¹½¨ºÍ°²×°Ëü¡£ Èç¹ûÄúÖ¸¶¨µÄ target ¾ÍÊÇ DEPENDS_TARGET (ĬÈÏÊÇ install)£¬ Ôò¿ÉÒÔÂÔÈ¥²»Ð´¡£

×¢Òâ: lib ²¿·ÖÊÇÒ»¸öÕýÔò±í´ïʽ£¬ ÓÃÓÚÔÚ ldconfig -r µÄÊä³öÖнøÐвéÕÒ¡£ ¿ÉÒÔʹÓÃÀàËÆ intl.[5-7] ºÍ intl ÕâÑùµÄÖµ¡£ ǰһÖÖģʽ£¬ ¼´ intl.[5-7]£¬ Äܹ»Æ¥Åä intl.5¡¢ intl.6 ºÍ intl.7 ÖеÄÈÎÒâÒ»¸ö¡£ µÚ¶þÖÖģʽ£¬ ¼´ intl Ôò¿ÉÒÔÆ¥ÅäÈÎÒâ°æ±¾µÄ intl ¿â¡£

¡¡¡¡ÒÀÀµ¹ØÏµ»á±»¼ì²âÁ½´Î£¬ Ò»´ÎÊÇÔÚ extract target ÖУ¬ ¶øÁíÒ»´ÎÔòÊÇÔÚ install target¡£ ÁíÍ⣬ ÒÀÀµ¹ØÏµµÄÃû×Ö»á·Åµ½ package ÖУ¬ ÒÔ±ãÈà pkg_add(1) Äܹ»×Ô¶¯µØÔÚÓû§ÏµÍ³Éϰ²×°ËùÐèµÄδ°²×°µÄÆäËü package¡£


5.7.2 RUN_DEPENDS (ÒÀÀµµÄÔËÐл·¾³)

¡¡¡¡Õâ¸ö±äÁ¿¿ÉÒÔÓÃÀ´Ö¸¶¨ port ÔÚÔËÐÐʱËùÐèÒªµÄ¿ÉÖ´ÐÐÎļþ£¬ ÒÔ¼°×ÊÔ´Îļþ¡£ ËüÊÇһϵÁÐ path:dir[:target] Ôª×éµÄÁÐ±í£¬ ÕâÀ path ʱËùÐèµÄ¿ÉÖ´ÐУ¬ »òÕß×ÊÔ´ÎļþµÄÃû×Ö£¬ dir ÊÇÔÚÎÞ·¨ÕÒµ½ÕâЩÎļþ»òĿ¼ʱ£¬ ȥʲôµØ·½Íê³É¹¹½¨ºÍ°²×°ÒÔ±ã»ñµÃÕâЩÎļþ£» ¶ø target ÔòÓÃÀ´Ö¸¶¨ÔÚÕâ¸öĿ¼ÖÐËùµ÷ÓÃµÄ target µÄÃû×Ö¡£ ¼ÙÈç path ÒÔбÏß (/) ¿ªÊ¼£¬ Ôò»áµ±×÷ÆÕͨÎļþ£¬ ʹÓà test -e À´²âÊÔ£» ·´Ö®£¬ Ôòϵͳ»á¼Ù¶¨ÕâÊÇÒ»¸ö¿ÉÖ´ÐÐÎļþ£¬ ²¢ÇÒÓà which -s À´¼ì²â³ÌÐòÊÇ·ñ´æÔÚÓÚËÑË÷·¾¶ÖС£

¡¡¡¡ÀýÈ磬

RUN_DEPENDS=   ${LOCALBASE}/etc/innd:${PORTSDIR}/news/inn \
           wish8.0:${PORTSDIR}/x11-toolkits/tk80

¡¡¡¡½«¼ì²éÎļþ£¬ »òÕßĿ¼ /usr/local/etc/innd ÊÇ·ñ´æÔÚ£¬ Èç¹ûÕÒ²»µ½£¬ Ôò½«´Ó port Ŀ¼µÄ news/inn ×ÓĿ¼¼ÓÒÔ°²×°¡£ ϵͳҲ»á¼ì²éÊÇ·ñÄܹ»ÔÚËÑË÷·¾¶ÖÐÕÒµ½ÃûΪ wish8.0 µÄÎļþ£¬ Èç¹ûÕÒ²»µ½µÄ»°£¬ Ôò»á½øÈë ports Ŀ¼ÖÐµÄ x11-toolkits/tk80 ×ÓĿ¼£¬ ²¢½øÐй¹½¨ºÍ°²×°µÄ²Ù×÷¡£

×¢Òâ: ÕâÖÖÇé¿öÏ£¬ innd ʵ¼ÊÉÏÊÇÒ»¸ö¿ÉÖ´ÐÐÎļþ£» Èç¹û¿ÉÖ´ÐÐÎļþ²»»á³öÏÖÔÚËÑË÷·¾¶ÖУ¬ Äú¾ÍÐèÒªÖ¸¶¨ÍêÕû·¾¶ÁË¡£

×¢Òâ: ports ¹¹½¨¼¯ÈºÉϹٷ½µÄËÑË÷ PATH ÊÇ

/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin

¡¡¡¡Õâ¸öÒÀÀµ¹ØÏµ»áÔÚ install target µÄ¹ý³ÌÖнøÐмì²é¡£ ´ËÍ⣬ ÒÀÀµ¹ØÏµµÄÃû×ֻᱻ·Åµ½ package ÖУ¬ ÒÔ±ã pkg_add(1) Äܹ»ÔÚÓû§µÄϵͳÖÐÉÐδ°²×°Ïà¹ØÈí¼þʱ×Ô¶¯µØ°²×°ÄÇЩ package¡£ Èç¹ûÄúÏ£ÍûÖ¸¶¨Ò»¸öµÄ target ºÍĬÈ쵀 DEPENDS_TARGET Ïàͬ£¬ Ôò¿ÉÒÔÂÔÈ¥²»Ð´¡£


5.7.3 BUILD_DEPENDS (ÒÀÀµµÄ¹¹½¨»·¾³)

¡¡¡¡´Ë±äÁ¿ÓÃÓÚÖ¸¶¨ÓÃÀ´¹¹½¨ port µÄ¿ÉÖ´ÐÐÎļþ»ò×ÊÔ´Îļþ¡£ Óë RUN_DEPENDS ÀàËÆ£¬ ËüÊÇÒ»¸ö path:dir[:target] Ôª×éµÄÁÐ±í¡£ ÀýÈ磬

 BUILD_DEPENDS=
          unzip:${PORTSDIR}/archivers/unzip
½«¼ì²âÃûΪ unzip µÄ¿ÉÖ´ÐÐÎļþÊÇ·ñ´æÔÚ£¬ Èç¹û²»´æÔÚ£¬ Ôò»á½øÈëµ½ÄúµÄ ports Ŀ¼ÖÐµÄ archivers/unzip ²¢Íê³É¹¹½¨ºÍ°²×°¹¤×÷¡£

×¢Òâ: ÕâÀïµÄ ¡°build¡± ±íʾ´Ó½âѹËõµ½±àÒëµÄÈ«²¿¹ý³Ì¡£ ÒÀÀµ¹ØÏµÊÇÔÚ extract target µÄ¹ý³ÌÖмì²âµÄ¡£ ¼ÙÈçÄúÒªÖ¸¶¨µÄ target ºÍ DEPENDS_TARGET Ïàͬ£¬ Ôò¿ÉÒÔÂÔÈ¥²»Ð´¡£


5.7.4 FETCH_DEPENDS (ÒÀÀµµÄÏÂÔØ»·¾³)

¡¡¡¡ÕâÒ»±äÁ¿ÓÃÓÚÖ¸¶¨ port ÔÚÏÂÔØÊ±ËùÐèµÄ¿ÉÖ´ÐÐÎļþ»ò×ÊÔ´Îļþ¡£ ºÍǰÁ½¸öÀàËÆ£¬ ËüÊÇÒ»×é path:dir[:target] Ôª×é¡£ ÀýÈ磬

 FETCH_DEPENDS=
          ncftp2:${PORTSDIR}/net/ncftp2
½«¼ì²âÃûΪ ncftp2 µÄ¿ÉÖ´ÐÐÎļþÊÇ·ñ´æÔÚ£¬ Èç¹ûÕÒ²»µ½£¬ Ôò½«½øÈëµ½Äú ports Ŀ¼ÖÐµÄ net/ncftp2 ×ÓĿ¼²¢¼ÓÒÔ¹¹½¨ºÍ°²×°¡£

¡¡¡¡Õâ¸öÒÀÀµ¹ØÏµÊÇÔÚ fetch target ¹ý³ÌÖмì²éµÄ¡£ Èç¹ûÓë DEPENDS_TARGET Ïàͬ£¬ Ôò¿ÉÒÔÊ¡ÂÔ target ²¿·Ö¡£


5.7.5 EXTRACT_DEPENDS (ÒÀÀµµÄ½âѹËõ»·¾³)

¡¡¡¡´Ë±äÁ¿ÓÃÓÚÖ¸¶¨ port ÔÚ½âѹËõʱËùÐèµÄ¿ÉÖ´ÐÐÎļþ»òÆäËü×ÊÔ´Îļþ¡£ ºÍǰһ¸ö±äÁ¿ÀàËÆ£¬ ËüÊÇһϵÁÐ path:dir[:target] Ôª×éµÄÁÐ±í¡£ ÀýÈ磬

EXTRACT_DEPENDS=
          unzip:${PORTSDIR}/archivers/unzip
½«¼ì²éÃûΪ unzip µÄ¿ÉÖ´ÐÐÎļþÊÇ·ñ´æÔÚ£¬ Èç¹û²»´æÔÚ£¬ Ôò»á½øÈëµ½ÄúµÄ ports Ŀ¼ÖÐµÄ archivers/unzip ×ÓĿ¼£¬ ÓèÒÔ¹¹½¨ºÍ°²×°¡£

¡¡¡¡Õâ¸öÒÀÀµ¹ØÏµÊÇÔÚ extract target µÄ¹ý³ÌÖмì²éµÄ¡£ Èç¹ûÓë DEPENDS_TARGET Ïàͬ£¬ Ôò¿ÉÒÔÂÔÈ¥ target ²¿·Ö¡£

×¢Òâ: Ö»ÓÐÔÚÆäËü·½Ê½¶¼²»¿ÉÓà (ĬÈÏÊÇ gzip) ¶øÇÒÎÞ·¨Í¨¹ý µÚ 5.7.8 ½Ú Ëù½éÉÜµÄ USE_ZIP »ò USE_BZIP2 ¶¼²»ÄÜ´ïµ½ÐèҪʱ£¬ ²ÅӦʹÓÃÕâ¸ö±äÁ¿¡£


5.7.6 PATCH_DEPENDS (ÒÀÀµµÄ´ò²¹¶¡»·¾³)

¡¡¡¡Õâ¸ö±äÁ¿ÓÃÓÚÖ¸¶¨ port ÔÚ½øÐÐ patch ²Ù×÷ʱËùÐèµÄ¿ÉÖ´ÐÐÎļþ»òÆäËü×ÊÔ´Îļþ¡£ ºÍǰһ¸ö±äÁ¿ÀàËÆ£¬ ËüÊÇÒ»×é path:dir[:target] Ôª×éµÄ±í¡£ ÀýÈ磬

 PATCH_DEPENDS=
          ${NONEXISTENT}:${PORTSDIR}/java/jfc:extract
       
±íʾ½øÈëµ½ÄúµÄ ports Ŀ¼ÖÐµÄ java/jfc ×ÓĿ¼£¬ ²¢½«Æä½âѹËõ¡£

¡¡¡¡Õâ¸öÒÀÀµ¹ØÏµÊÇÔÚ patch target µÄ¹ý³ÌÖмì²éµÄ¡£ target ²¿·ÖÈç¹ûºÍ DEPENDS_TARGET Ïàͬ£¬ ¾Í¿ÉÂÔÈ¥²»Ð´¡£


5.7.7 DEPENDS (Ò»°ãÒÀÀµ)

¡¡¡¡Èç¹ûÓÐÎÞ·¨¹éÀàÓÚÉÏÊöÀà±ðµÄÒÀÀµ¹ØÏµ£¬ »òÕßÄúµÄ port ÐèÒª½âѹËõÆäËü port µÄÔ´´úÂë²ÅÄܹ»Íê³É¹¹½¨»ò°²×°£¬ ÔòӦʹÓÃËüÀ´±í´ï¡£ Õâ¸ö±äÁ¿ÊÇÒ»×é¸ñʽΪ dir[:target] µÄÔª×é±í£¬ ÓëǰËĸö²»Í¬£¬ Ëü²¢²»ÊµÊ©¼ì²é¡£ ÕâÀïµÄ target ²¿·Ö£¬ Èç¹ûÓë DEPENDS_TARGET Ïàͬ£¬ ¾Í¿ÉÒÔÂÔÈ¥²»Ð´¡£


5.7.8 USE_*

¡¡¡¡ÌṩÁËһϵÁбäÁ¿£¬ ÓÃÒÔ·â×°´óÁ¿ port ¶¼Óõ½µÄÒÀÀµ¹ØÏµ¡£ ËäȻʹÓÃÕâЩ±äÁ¿ÊÇ¿ÉÑ¡µÄ£¬ µ«ËüÃÇÄÜÏÔÖø¼õÉÙ port µÄ Makefile ¸´ÔÓÐÔ¡£ ÕâЩ±äÁ¿µÄ¹²Í¬ÌØÕ÷ÔÚÓÚ£¬ ËüÃǵÄÃû×Ö¶¼ÊÇ USE_* ÕâÑùµÄÐÎʽ¡£ ÕâЩ±äÁ¿µÄʹÓ㬠ӦÑϸñÏÞÖÆÓÚ port µÄ Makefile ÒÔ¼° ports/Mk/bsd.*.mk£¬ ¶ø¾ø²»Ó¦ÓÃÓÚ±í´ïÓû§Äܹ»ÉèÖõÄÑ¡Ïî ©¤©¤ ÕâÖÖÇé¿öÏÂÓ¦²ÉÓà WITH_* ºÍ WITHOUT_* ÕâÑùµÄ±äÁ¿¡£

×¢Òâ: ÈκΠÇé¿öÏ£¬ ¶¼²»Ó¦ÔÚ /etc/make.conf ÖÐÅäÖà USE_*¡£ ÀýÈ磬 ÉèÖÃ

USE_GCC=3.2
½«µ¼ÖÂÿһ¸ö port ¶¼ÒÀÀµÓÚ gcc32£¬ ÉõÖÁ°üÀ¨ gcc32 ±¾Éí£¡

±í 5-1. ³£ÓÃµÄ USE_* ±äÁ¿

±äÁ¿ º¬Òå
USE_BZIP2 ´Ë port µÄÔ´Âë°üÊÇʹÓà bzip2 ѹËõµÄ¡£
USE_ZIP ´Ë port µÄÔ´Âë°üÊÇÓà zip ѹËõµÄ¡£
USE_BISON ´Ë port ÔÚ¹¹½¨Ê±Ê¹Óà bison¡£
USE_GCC ´Ë port ÐèҪʹÓÃÄ³Ò»ÌØ¶¨°æ±¾µÄ gcc ²ÅÄÜÍê³É±àÒë¡£ ¿ÉÒÔʹÓÃÀàËÆ 3.2 ÕâÑùµÄÖµÀ´¾«È·Ö¸¶¨°æ±¾¡£ Èç¹ûÏ£ÍûʹÓò»µÍÓÚijһ°æ±¾µÄ±àÒëÆ÷£¬ Ôò¿ÉÒÔÓà 3.2+ ÕâÑùµÄÐÎʽ¡£ Èç¹ûÓëËùÏ£ÍûµÄ°æ±¾ÎǺϣ¬ Ôò½«Ê¹Óûù±¾ÏµÍ³ÖÐËùÌṩµÄ gcc£¬ ·´Ö®£¬ ϵͳ»á´Ó ports Öа²×°ËùÏ£Íû°æ±¾µÄ gcc£¬ ²¢µ÷Õû CC ÒÔ¼° CXX ±äÁ¿µÄÉèÖá£

¡¡¡¡Óë gmake ºÍ configure ½Å±¾ÓйصıäÁ¿ÔÚ µÚ 6.3 ½Ú ÖнøÐÐÁ˽éÉÜ£¬ ¶ø autoconf¡¢ automake ÒÔ¼° libtool µÄ½éÉÜÔò¿ÉÒÔÔÚ µÚ 6.4 ½Ú ÕÒµ½¡£ µÚ 6.5 ½Ú ½éÉÜÁËÓë Perl ÓйصĵıäÁ¿¡£ µÚ 6.6 ½Ú ÖÐÁгöÁ˹ØÓÚ X11 µÄ±äÁ¿¡£ ¹ØÓÚ GNOME µÄ±äÁ¿ÔÚ µÚ 6.7 ½Ú£¬ ¶ø¹ØÓÚ KDE µÄÔòÔÚ µÚ 6.8 ½Ú¡£ µÚ 6.9 ½Ú ½²ÊöÁËºÍ Java ÓйصıäÁ¿£¬ ¶ø µÚ 6.10 ½Ú Ôò°üº¬Á˹ØÓÚ Apache¡¢ PHP ÒÔ¼° PEAR µÄ½éÉÜÐÔÐÅÏ¢¡£ ¹ØÓÚ Python£¬ ÔÚ µÚ 6.11 ½Ú ½øÐÐÁËÌÖÂÛ£¬ ¶ø¹ØÓÚ Ruby µÄ½éÉÜ£¬ Ôò¿ÉÒÔÔÚ µÚ 6.13 ½Ú ÖÐÕÒµ½¡£ ×îºó£¬ µÚ 6.14 ½Ú ÌṩÁËÓÃÓÚ SDL Ó¦ÓóÌÐòµÄ±äÁ¿½éÉÜ¡£


5.7.9 ÔÚÒÀÀµ¹ØÏµÖÐÖ¸¶¨×îµÍ°æ±¾

¡¡¡¡ÔÚÒÀÀµÄ³¸öÆäËû port ʱ£¬ ¿ÉÒÔÒÔÏÂÃæµÄ¾ä·¨ÔÚ *_DEPENDS ±äÁ¿ÖÐÖ¸¶¨×îµÍ°æ±¾£º

p5-Spiffy>=0.26:${PORTSDIR}/devel/p5-Spiffy

¡¡¡¡µÚÒ»¸ö×Ö¶ÎÖ¸Ã÷ÁËËùÒÀÀµ package µÄÃû×Ö£¬ ÓÃÒÔÓë package Êý¾Ý¿âÖеÄijÏîÆ¥Å䣬 È»ºóÊDZȽÏËã·û£¬ ÒÔ¼° package µÄ°æ±¾ºÅ¡£ Ç°ÃæµÄÀý×ÓÖУ¬ Èç¹ûϵͳÖа²×°ÁË p5-Spiffy-0.26 ÔòÈÏΪÂú×ãÁËÒÀÀµÌõ¼þ¡£


5.7.10 ¹ØÓÚÒÀÀµ¹ØÏµµÄ²¹³ä˵Ã÷

¡¡¡¡ÈçÇ°ÃæËùÌáµ½µÄÄÇÑù£¬ ÔÚÐèҪijһÒÀÀµµÄ port ʱ£¬ ½«µ÷Óà DEPENDS_TARGET ËùÖ¸¶¨µÄ target¡£ ÕâÒ»±äÁ¿µÄĬÈÏÖµÊÇ install¡£ Õâ²»ÊÇÒ»¸öÓû§±äÁ¿£¬ Ëü²»Ó¦ÔÚ port µÄ Makefile ÖÐÓèÒÔ¶¨Òå¡£ Èç¹ûÄúµÄ port ÐèҪʹÓÃÌØÊâµÄ target À´´¦ÀíÒÀÀµ¹ØÏµ£¬ ӦʹÓà *_DEPENDS µÄ :target ²¿·Ö£¬ ¶ø²»ÊÇÖØ¶¨Òå DEPENDS_TARGET À´Íê³É¡£

¡¡¡¡µ±ÄúÊäÈë make clean ʱ£¬ ÆäÒÀÀµµÄ port Ò²»á×Ô¶¯½øÐÐÇåÀí¡£ Èç¹ûÄú²»Ï£ÍûÈç´Ë£¬ Ó¦¶¨Òå»·¾³±äÁ¿ NOCLEANDEPENDS¡£ Èç¹û port ÒÀÀµÒ»Ð©ÖØÐ¹¹½¨ÐèÒª»¨·ÑºÜ³¤Ê±¼äµÄ port ʱ£¬ ÀýÈç KDE£¬ GNOME »ò Mozilla ʱ£¬ ÕâÒ»·½·¨»á·Ç³£ÓÐÓá£

¡¡¡¡ÒªÎÞÌõ¼þµØÒÀÀµÄ³¸ö port£¬ ¿ÉÒÔʹÓà ${NONEXISTENT} ×÷Ϊ BUILD_DEPENDS »ò RUN_DEPENDS µÄµÚÒ»²¿·Ö¡£ Ö»ÓÐÔÚÄúÐèҪʹÓÃÆäËü port ÌṩµÄÔ´´úÂëʱ²ÅÓ¦ÕâÑù×ö¡£ ͨ³£Ò²¿ÉÒÔͨ¹ýÕâÑùÖ¸¶¨À´Ëõ¶Ì±àÒëËùÐèµÄʱ¼ä¡£ ÀýÈç

BUILD_DEPENDS=   ${NONEXISTENT}:${PORTSDIR}/graphics/jpeg:extract
±íʾÒÀÀµ jpeg port ²¢½«Æä½âѹËõ¡£

¡¡¡¡³ý·ÇÆäËü·½Ê½¶¼²»Êʺϣ¬ ·ñÔò²»ÒªÊ¹Óà DEPENDS¡£ ÕâÑùÖ¸¶¨½«ÔÚÈκÎÇé¿ö϶¼¹¹½¨ (ĬÈÏÇé¿öÏ»¹»á°²×°) ÆäËü port£¬ ¶øÇÒÕâÒÀÀµ¹ØÏµ»¹»á½øÈë package¡£ Èç¹ûÕæµÄÐèÒªÕâÑù£¬ д³É BUILD_DEPENDS ºÍ RUN_DEPENDS ¿ÉÄܸüºÏÊÊһЩ ©¤©¤ ÖÁÉÙËüµÄ±í´ï¸üΪÃ÷È·¡£


5.7.11 Ñ­»·µÄÒÀÀµ¹ØÏµÊÇÖÂÃüµÄ

ÖØÒª: ²»ÒªÔÚ ports tree ÖÐÒýÈëÈκÎÑ­»·ÒÀÀµ¹ØÏµ!

¡¡¡¡ports ¹¹½¨¼¼Êõ²»Äܹ»ÈÝÈÌÑ­»·ÒÀÀµ¹ØÏµ¡£ Èç¹ûÄúÒýÈëÁËÕâÑùµÄ¹ØÏµ£¬ ¾ÍÒ»¶¨»áÓÐÈ˰²×°µÄ FreeBSD »áÒò´Ë¶øË𻵣¬ ¶øÇÒÕâÖÖÏÖÏó»áÔ½À´Ô½¶à¡£ ÕâЩÇéÐκÜÄѼì²â£» Èç¹ûÓÐÒÉÂÇ£¬ ÔÚ½øÐÐÕâÑùµÄÐÞ¸Ä֮ǰ£¬ Îñ±ØÖ´ÐУº cd /usr/ports; make index¡£ Õâ¸ö¹ý³ÌÔھɵĻúÆ÷ÉÏ»áºÜÂý£¬ µ«Äܹ»ÈôóÁ¿µÄÓû§ ©¤©¤ Ò²°üÀ¨Äú×Ô¼º ©¤©¤ Õü¾ÈÓÚÓÉÕâÖÖÎÊÌâËùÔì³ÉµÄÀ§»óÖ®ÖС£


5.8 MASTERDIR (Ö÷ port ËùÔÚµÄĿ¼)

¡¡¡¡Èç¹û port ÐèÒªÒÀijЩ±äÁ¿µÄÉèÖà (¾ÙÀýÀ´Ëµ£¬ ·Ö±æÂÊ»òÖ½ÐÍ) À´¹¹½¨ÂÔÓв»Í¬µÄÔ¤±àÒë°ü£¬ Ôò¿ÉÒÔΪÿһ¸öÕâÑùµÄ°ü½¨Á¢²»Í¬µÄĿ¼£¬ ÕâÑù¿ÉÒÔÈÃÓû§¸üÈÝÒ׵ؿ´µ½ËûÃÇÏëÒª°²×°µÄ°æ±¾£¬ µ«ÓÖÄÜÔÚÕâЩ port Ö®¼ä¹²Óþ¡¿ÉÄܶàµÄÎļþ¡£ Ò»°ãÇé¿öÏ£¬ Èç¹ûÔËÓõõ±£¬ ³ýÖ÷Ŀ¼֮Íâ¶¼Ö»ÐèÒªºÜ¶ÌµÄ Makefile¡£ ÕâЩ Makefile ÖУ¬ ¿ÉÒÔÓà MASTERDIR À´Ö¸¶¨ÆäËüÎļþËùÔÚµÄĿ¼¡£ ÁíÍ⣬ »¹Ó¦Ê¹ÓÃÒ»¸ö±äÁ¿×÷Ϊ PKGNAMESUFFIX µÄÒ»²¿·Ö£¬ ÒÔ±ãΪ²»Í¬µÄ°ü¸ø³ö²»Í¬µÄÃüÃû¡£

¡¡¡