°æÈ¨ © 2000, 2001, 2002, 2003, 2004, 2005, 2006 The FreeBSD Documentation Project
°æÈ¨ © 2005, 2006 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 µÈ) µÄ¾¹ýÐ޸ĻòδÐ޸ĵÄÐÎʽ£º
ÔÙ·Ö·¢Ô´´úÂë (SGML DocBook) ±ØÐë²»¼ÓÐ޸ĵı£ÁôÉÏÊö°æÈ¨¸æÊ¾¡¢ ±¾Ìõ¼þÇåµ¥ºÍÏÂÊöÆúȨÊé×÷Ϊ¸ÃÎļþµÄ×îÏÈÈô¸ÉÐС£
ÔÙ·Ö·¢±àÒëµÄÐÎʽ (ת»»ÎªÆäËü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:
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.
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.
exec Óï¾ä¡¡¡¡¼¸ºõÿ¸öÈ˶¼ÊÇͨ¹ý FreeBSD Ports Collection ÔÚ FreeBSD ÉÏÃæ×°Ó¦ÓóÌÐò (¡°ports¡±)µÄ¡£ ¾ÍÏñFreeBSDµÄÆäËü²¿·ÖÒ»Ñù£¬ ËüÖ÷ÒªÀ´×ÔÓÚÖ¾Ô¸ÕßµÄŬÁ¦¡£ ËùÒÔÔÚÔĶÁÕâ·ÝÎĵµµÄʱºòÇëÎñ±Ø¼ÇסÕâЩ¡£
¡¡¡¡ÔÚ FreeBSD µÄÊÀ½çÀ ÈκÎÈ˶¼ÄÜÌá½»Ð嵀 port£¬ »òÖ¾Ô¸µØÎ¬»¤Ò»¸öÒÑÓÐµÄ port£¬ Èç¹ûÄǸö 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 À´ÐÞÕýĬÈϵÄÉèÖá£
¡¡¡¡ÕâÒ»ÕÂÖ÷Òª½éÉÜÈçºÎ¿ìËÙ´´½¨Ò»¸ö¼òµ¥µÄ port¡£ ºÜ¶àʱºò£¬ ÕâµãÄÚÈÝÊDz»¹»µÄ£¬ ÄúÐèÒªÔĶÁÕâ·ÝÎĵµÖиüÉîÈëµÄÄÚÈÝ¡£
¡¡¡¡Ê×ÏÈ£¬ ÐèҪȡµÃ°üº¬Ô´´úÂëµÄ tar°ü£¬ ²¢°ÑËü·Åµ½ DISTDIR±äÁ¿ËùÖ¸µÄµØ·½¡£ ĬÈϵÄÇé¿öÏ£¬ ÕâÓ¦¸ÃÊÇ /usr/ports/distfiles¡£
×¢Òâ: ÏÂÃæµÄÄÚÈݼٶ¨Äú²»ÐèÒªÐÞ¸ÄÈí¼þµÄÔ´´úÂë¾ÍÄÜÔÚ FreeBSD ÉϱàÒëͨ¹ý¡£ Èç¹ûÐèÒªÐ޸ĴúÂ룬 ¾ÍÐèÒª²Î¿¼ÏÂÒ»ÕµÄÄÚÈÝÁË¡£
¡¡¡¡×î¼òµ¥µÄ 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ÄÇÕÂÕÒµ½¸ü¶àµÄϸ½Ú¡£
¡¡¡¡ÓÐ 2 ¸öÃèÊöÎļþ¶ÔÓÚÈκÎÒ»¸ö port À´ËµÊDZØÐëµÄ£¬ ²»ÂÛËüÊDz»ÊÇ´òËã³ÉΪ package¡£ ËüÃÇÊÇ pkg-descr ºÍ pkg-plist¡£ ÕâÁ½¸öÎļþʹÓà pkg- ǰ׺ÒÔÇø±ðÓÚÆäËüÎļþ¡£
¡¡¡¡ÕâÊÇ 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/
¡¡¡¡Õâ·ÝÎļþÁгöÁË 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 ÈçºÎ´¦Àí ¸ü¸´ÔÓµÄÈÎÎñ¡£
¡¡¡¡Ö»Òª¼üÈë make makesum£¬ port ±ã»á×Ô¶¯´´½¨ distinfoÎļþ¡£
¡¡¡¡Èç¹ûÏÂÔØµÄÎļþµÄУÑéºÍ¾³£±ä»¯£¬ ¶øÄúÓÖÄÜÈ·±£ËüÃǵÄÀ´Ô´¿É¿¿ (±ÈÈ磬 À´×ÔÓÚCDÖÆÔìÉÌ£¬ »òÿÌì¹¹½¨Éú³ÉµÄÎĵµÎļþ)£¬ ¾ÍÓ¦¸ÃÔÚ IGNOREFILES ÀïÃæ±êÃ÷ÕâЩÎļþ¡£ ÕâÑù£¬ ÔÙÔËÐÐ make makesum µÄʱºò±ã²»»á°ÑÕâЩ±ê¼Ç IGNORE µÄÎļþ¼ÆËãÔÚÄÚÁË¡£
¡¡¡¡Ó¦µ±È·¶¨ÄúµÄ port ȷʵ×öÁËÄúÏ£ÍûËüÃÇ×öµÄÊÂÇ飬 °üÀ¨´ò°ü¡£ÏÂÃæÊÇÐèÒªÖØµã¼ì²éµÄÒ»Ð©ÖØÒªµÄ¹¤×÷¡£
pkg-plist ÖÐûÓаüÀ¨Èκβ»Ïë°²×°µÄÎļþ
pkg-plist °üº¬ÁËËùÓÐÓ¦¸Ã°²×°µÄÎļþ
ÄúµÄ port Äܹ»Ê¹Óà reinstall ¶à´Î°²×°¡£
ÄúµÄ port ÄÜÔÚÐ¶ÔØ (deinstall) ʱ£¬ ×Ô¶¯Íê³É ÇåÀí
ÍÆ¼öµÄ²âÊÔ˳Ðò
make install
make package
make deinstall
pkg_add package-name
make deinstall
make reinstall
make package
¡¡¡¡È·ÐÅÔÚ package ºÍ deinstall ½×¶ÎûÓÐÈκξ¯¸æ¡£ µÚÈý²½ÒÔºó£¬ ¼ì²éÊÇ·ñËùÓÐн¨µÄĿ¼¶¼±»Õýȷɾ³ýÁË¡£ ÔÚµÚËIJ½ÒÔºó£¬ ÊÔ×ÅÔËÐÐÒ»ÏÂËù×°µÄÈí¼þ£¬ È·±£µ±ËüÒÔ package ·½Ê½°²×°µÄʱºòÒ²ÄÜÕý³£¹¤×÷¡£
¡¡¡¡ÇëʹÓà portlint ÃüÁîÀ´¼ì²éÄúµÄ port ÊÇ·ñ·ûºÏÎÒÃǵĹ淶¡£ devel/portlint ³ÌÐòÊÇ ports collection µÄÒ»²¿·Ö¡£ Õâ¸ö³ÌÐòµÄÖ÷Òª¹¦ÄÜÊǰïÖúÄú¼ì²é Makefile µÄÑùʽÊÇ·ñ·ûºÏ¹æ·¶£¬ ÒÔ¼° package µÄÃüÃûÊÇ·ñµÃÌå¡£
¡¡¡¡Ê×ÏÈ£¬ È·ÐÅÄúÒѾÔĶÁÁË ¸Ã×öʲôºÍ²»¸Ã×öʲô Ò»½Ú¡£
¡¡¡¡¼ÈÈ»ÒѾ¶ÔËùÖÆ×÷µÄ 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 ºÍÆäËüµÄÎļþ¡£ ²»ÊǺܰôÂð!? :-)
¡¡¡¡ºÃÁË£¬ Ò²Ðí¹¤×÷ûÄÇô¼òµ¥£¬ port ÐèÒª×öЩÐ޸IJÅÄܹ»ÔÚ FreeBSD ÉÏÅÜÆðÀ´¡£ ÔÚÕâÒ»ÕÂÀ ÎÒÃǽ«»áÒ»²½²½¾ÙÀýÀ´½éÉÜÓ¦¸ÃÈçºÎÐÞ¸ÄÀ´Ê¹ÄúµÄ port ÄÜÔÚ FreeBSD ÉÏÃæÔËÐС£
¡¡¡¡Ê×ÏÈ£¬ ÕâһϵÁе͝×÷ÊÇÓÉÓû§ÔÚÄúµÄ port Ŀ¼ÀïÇÃÈë make ºó·¢ÉúµÄ¡£ ÄúÒ²Ðí»á·¢ÏÖÔÚÁíÍâµÄÒ»¸ö´°¿ÚÀïÔĶÁһϠbsd.port.mk ½«»áÓÐÖúÓÚÄúµÄÀí½â¡£
¡¡¡¡ÒªÊÇÄú²»ÊǷdz£Ã÷°× bsd.port.mk ÊÇ×öʲôµÄ»°£¬ Ò²²»ÓÃÌ«µ£ÐÄ£¬ ºÜ¶àÈ˶¼²»ÖªµÀµÄ... :->
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 ËùÖ¸¶¨µÄĿ¼ÒÔ±¸ÉÔºóʹÓá£
½ÓÏÂÀ´»áÖ´ÐÐ extract¡£ Ëü»áÔÚ DISTDIR ÖÐѰÕÒÄúµÄ tar °ü (ͨ³£ÊÇÓà gzip ѹËõµÄ tar °ü)£¬È»ºó½âѹËõµ½ÓÉ WRKDIR ËùÖ¸¶¨µÄÁÙʱĿ¼Àï (ĬÈÏΪworkĿ¼)¡£
ÏÂÒ»²½ÊÇÖ´ÐÐ patch¡£ Ê×ÏÈÈκÎÔÚ PATCHFILES Öж¨ÒåµÄ²¹¶¡¶¼»á±»´òÉÏ¡£ È»ºó£¬ ÔÚÓÉ PATCHDIR Ö¸¶¨µÄĿ¼ (ĬÈÏΪ filesĿ¼) Öз¢ÏÖµÄpatch-*£¬ ËüÃǽ«»áÒÔÎļþÃûµÄ×Öĸ˳Ðò±»ÏȺó´òÉÏ¡£
configure»á±»Ö´ÐС£ ÕâÒ»²½Öè¿ÉÄÜ»áÓÐÒÔϼ¸ÖÖÇéÐΡ£
Èç¹û´æÔÚ scripts/configure£¬ ¾Í»áÖ´ÐÐËü
Èç¹û¶¨ÒåÁË HAS_CONFIGURE »òÕß GNU_CONFIGURE£¬ ¾Í»áÖ´ÐÐ WRKSRC/configure¡£
Èç¹û¶¨ÒåÁËUSE_IMAGE£¬ ¾Í»áÖ´ÐÐ XMKMF (ĬÈÏΪ: xmkmf -a)¡£
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¡£
¡¡¡¡»ñȡԴ´úÂëµÄ 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Àï¡£ ²»Óõ£ÐÄËüÃǸúÔ´´úÂë²»ÊÇÀ´×Ôͬһվµã¡£ ÎÒÃÇÓа취´¦Àí (²ÎÔÄÏÂÃæµÄ ²¹¶¡Îļþ)¡£
¡¡¡¡½â¿ª tar °ü£¬ ¶ÔÔ´´úÂë×ö³öºÏÀíµÄÐÞ¸ÄʹµÃÕâ¸ö port ÄÜÔÚ×îа汾µÄ FreeBSD ÉÏÃæÔËÐС£ Ò»¶¨Òª ×Ðϸ¼Ç¼ ÄúËù×öµÄÿ´¦¸Ä¶¯£¬ °üÀ¨É¾³ý¡¢Ìí¼Ó¡¢Ð޸ĵÄÎļþµÈµÈ£¬ ÕâЩÐÞ¸ÄÒÔºó»áÔÚÄúµÄ port ÖÐÒԽű¾»ò²¹¶¡µÄ·½Ê½³öÏÖ£¬ ²¢ÇÒÄÜͨ¹ýÔËÐÐËüÃÇÀ´×Ô¶¯Íê³ÉÄú¶Ô port µÄ¸Ä¶¯ÒªÇó¡£
¡¡¡¡Èç¹ûÄúµÄ port ÒªÇóÓÃÓëÓû§½»»¥/ÅäÖÃÀ´Íê³É±àÒë»ò°²×°µÄ»°£¬ Äú¿ÉÒÔ¿´Ò»Ï Larry Wall µÄ¾µäµÄ Configure ½Å±¾£¬ Êʵ±µØÄ£·Âһϡ£ Port collection µÄÄ¿µÄ£¬ ¾ÍÊÇʹÿ¸ö port Õ¼ÓÃ×îÉٵĿռ䣬 ²¢×öµ½Èí¼þµÄ ¡°¼´²å¼´Óᱡ£
×¢Òâ: ³ý·ÇÃ÷È·µØÉùÃ÷£¬ ·ñÔòÄúÌá½»¸ø FreeBSD ports collection µÄ²¹¶¡£¬ ½Å±¾ºÍÆäËüµÄÎļþ¶¼½«±»¼Ù¶¨ÒÔ±ê×¼µÄ BSD °æÈ¨·¢²¼¡£
¡¡¡¡ÔÚÄú×¼±¸ÖÆ×÷ 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
¡¡¡¡°ÑÈκθ½¼ÓµÄÅäÖÃÃüÁî¼Ó½øÄúµÄ configure ½Å±¾²¢°ÑËü±£´æµ½ scripts ×ÓĿ¼¡£ ÈçÇ°ÃæÌáµ½µÄÄÇÑù£¬ ÄúÒ²ÄÜÔÚ Makefile ºÍ/»ò ʹÓà pre-configure »ò post-configure µÄ½Å±¾À´×öͬÑùµÄÊÂÇé¡£
¡¡¡¡Èç¹ûÄúµÄ port ÒªÇóÓû§µÄÊäÈëÒÔ±ãÅäÖñàÒë¡¢ »ò°²×°ÅäÖùý³Ì£¬ ¾Í±ØÐëÔÚ Makefile ÀïÉèÖà IS_INTERACTIVE ±äÁ¿¡£ Èç¹ûÓû§ÉèÖÃÁË BATCH µÄ»°£¬ Õ⽫ÈÃÓû§ÄÜÌø¹ýÄúµÄ port À´Íê³É ¡°Í¨Ïü±àÒ롱 (Èç¹ûÓû§ÉèÖÃÁË INTERACTIVEµÄ»°£¬ ÄÇô Ö»ÓÐ ÄÇЩҪÇ󻥶¯µÄ port ²Å»á±»±àÒë) Õ⽫¸øÄÇЩ²»Í£±àÒë ports µÄ»úÆ÷ʡϺܶàʱ¼ä¡£
¡¡¡¡Í¨³£ÎÒÃÇ»¹½¨Ò飬 Èç¹û¶ÔÓÚÄÇЩÎÊÌâÄÜÓкÏÀíµÄȱʡ´ð°¸µÄ»°£¬ Ó¦¼ì²éһϠPACKAGE_BUILDING ±äÁ¿£¬ ²¢¸ù¾ÝÆäÉèÖþö¶¨ÊÇ·ñÖ´Ðйرս»»¥½Å±¾¡£ Õ⽫ÔÊÐíÎÒÃÇΪ CDROM ºÍ FTP À´±àÒë package¡£
¡¡¡¡ÅäÖà Makefile ÊÇÏ൱¼òµ¥µÄ£¬ ÎÒÃÇÔڴ˽¨ÒéÄúÔÚ¿ªÊ¼Ö®Ç°¿´Ò»ÏÂÏÖÓеÄÀý×Ó¡£ ÔÚÕâ·ÝÊÖ²áÀïÒ²ÓÐÒ»¸ö MakefileÀý×Ó£¬ ÕÕ×ÅÀïÃæ±äÁ¿µÄ˳ÐòÀ´Ð´ÄÜʹµÃÄúµÄ port ¸üÈÝÒ׵ر»ÆäËüÈË¿´¶®¡£
¡¡¡¡ÏÖÔÚ£¬ µ±Äú¿ªÊ¼±àдÄúеÄMakefile µÄʱºò£¬ ¿ÉÒÔÒÀ´Î˼¿¼Ò»ÏÂÒÔϵÄÎÊÌ⣺
¡¡¡¡·ÅÔÚ 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 À´¸²¸ÇĬÈϵ͍Ò壬 ¾¡¹ÜÕâ²»³£¼û£¬ µ«Èç¹ûÓöµ½ÁË£¬ »¹ÊÇÐèÒªÕâô×ö¡£
¡¡¡¡Makefile µÄµÚÒ»²¿·Ö±ãÊÇ port µÄÃû×Ö¡¢ °æ±¾ºÅ£¬ ÒÔ¼°ËüËùÊôµÄ·ÖÀà¡£
¡¡¡¡ÄúÓ¦¸Ã°Ñ PORTNAME ÉèÖÃΪÄú port µÄÃû×Ö£¬ PORTVERSION ÔòÊÇ 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 ¾ÍÓ¦¸ÃÐÞ¸ÄÁË¡£
¡¡¡¡ÓÐʱÈí¼þÉÌ»ò 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 ·¢²¼ÒÔºó£¬ Ð°汾¾Í¿ÉÒÔÔÚÊýÖµÉÏ´óÓھɵİ汾ÁË¡£
¡¡¡¡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 ×îÖØÒªµÄµØ·½¡£
¡¡¡¡2 ¸ö¿ÉÑ¡µÄ±äÁ¿£¬ PKGNAMEPREFIX ºÍ PKGNAMESUFFIX ¿ÉÒÔºÍ PORTNAME »¹ÓÐ PORTVERSION ÅäºÏʹÓ㬠ÐγÉÏñÕâÑùµÄ PKGNAME£º ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}¡£ ÇëÈ·¶¨·ûºÏÎÒÃÇµÄ °üÃüÃû¹æÔò¡£ µ±È»£¬ ²» ÔÊÐíÔÚ PORTVERSION ÖÐʹÓÃÁ¬×Ö·û (-)¡£ Èç¹û°üÃûÓÐ language- »ò -compiled.specifics ²¿·Ö (¼ûÏÂÎÄ)£¬ Çë·Ö±ðÓà PKGNAMEPREFIX ºÍ PKGNAMESUFFIX£¬ ²»ÒªÖ±½Ó¼Óµ½ PORTNAME ÖС£
¡¡¡¡ÒÔÏÂÊÇÄúÔÚÃüÃûÄúµÄ°üʱӦµ±×ñÊØµÄ¹æÔò¡£ Õ⽫ʹµÃÎÒÃǷŰüµÄĿ¼¸üÀûÓÚä¯ÀÀ£¬ ÒòΪÎÒÃÇÒѾÓÐÊýÒÔÍò¼ÆµÄ°üÁË£¬ Èç¹ûÓû§¾õµÃ²é¿´°üÃûºÜÀ§Äѵϰ£¬ ËûÃÇ»áºÜ¿ì×ß¿ªµÄ¡£
¡¡¡¡Ò»¸ö°üµÄÃû×ÖÓ¦¸Ã¿´ÆðÀ´ÏñÕâÑù£º [language[_region]]-name[[-]compiled.specifics]-version.numbers¡£
¡¡¡¡ÒªÏñÕâÑùÀ´¶¨Òå°üµÄÃû×Ö£º ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}¡£ È·±£ËùÓеıäÁ¿·ûºÏÉÏÃæµÄ¸ñʽ¡£
FreeBSD »á¾¡Á¦È¥Ö§³ÖÓû§µ±µØµÄÓïÑÔ¡£ Èç¹ûÕâ¸ö port ÊÇijÖÖÓïÑÔרÓõģ¬ ÄÇô language- ²¿·ÖÓ¦¸ÃÊÇ ÓÉ ISO-639 ¶¨ÒåµÄ×ÔÈ»ÓïÑ﵀ 2 ¸ö×ÖĸËõд¡£ ±ÈÈ磬 jaÊDZíʾÈÕ±¾£¬ ru ÊDZíʾ¶íÂÞ˹£¬ vi ±íʾԽÄÏ£¬ zh ±íʾÖйú£¬ ko ±íʾº«¹ú£¬ de ±íʾµÂ¹ú¡£
Èç¹ûÊÇÕë¶ÔijÖÖÓïÑÔµÄijһµØÇøµÄ»°£¬ ÔÙÒª¼ÓÉÏ2¸ö×ÖĸµÄ¹ú¼Ò´úÂë¡£ ÀýÈ磬 en_US ±íʾÃÀ¹úÓ¢Ó fr_CH ±íʾÈðÊ¿·¨Óï¡£
language- ²¿·ÖÓ¦¸ÃÔÚ PKGNAMEPREFIX ±äÁ¿ÀïÉèÖá£
name ²¿·ÖµÄÊ××ÖĸӦ¸Ã Сд¡£ (ÓàϵIJ¿·ÖÄܰüº¬´óд×Öĸ£¬ ËùÒÔµ±Äú Ҫת»»Ò»¸ö°üº¬´óд×ÖĸÈí¼þµÄÃû×Öʱ£¬ ÄúÐèÒª ×Ô¼º×ö³öÅжϡ£) ¶ÔÓÚperl 5 Ä£¿éµÄÃüÃû£¬ Óиö´«Í³µÄ¹æÔòÊÇ£¬ ÔÚÇ°Ãæ ¼ÓÉÏ p5- ²¢°ÑÁ½¸öðºÅµÄ²¿·Ö¸ÄΪÁ¬×ֺţ¬ È磺 Data::Dumper Ä£¿é±ä³É p5-Data-Dumper¡£ Èç¹ûÈí¼þµÄÃû×ÖÀﻹÓÐÊý×Ö¡¢ Á¬×ֺš¢ Ï»®Ïߣ¬ ÄúÒ²¿ÉÒÔ°ÑÕâЩ°üÀ¨½øÀ´ (ÀýÈç kinput2)¡£
Èç¹û port ¿ÉÒÔʹÓò»Í¬µÄ Ó²±àÂëĬÈÏÅäÖà ½øÐй¹½¨ (ͨ³£ÊÇһϵÁÐ port µÄÒ»²¿·ÖĿ¼Ãû)£¬ Ôò -compiled.specifics ²¿·Ö¾ÍÓ¦¸ÃÃ÷ʾ±àÒë½øÈ¥µÄĬÈÏÖµ (´Ë´¦Á¬×ÖºÅÊÇ¿ÉÑ¡µÄ)¡£ ͨ³£µÄÓÃÀý°üÀ¨Ö½ÐͺͲ»Í¬µÄ×ÖÌå³ß´ç¡£
-compiled.specifics ²¿·ÖÓ¦¸Ãͨ¹ý PKGNAMESUFFIX ±äÁ¿À´ÉèÖá£
°æ±¾ºÅÓ¦¸Ã½ôËæÔÚÁ¬×ֺŠ(-) ºóÃæ²¢ÓÉÊý×ÖºÍ×Öĸ×é³É¡£ ÌØ±ðÖ¸³ö£¬ ÁíÍâµÄÁ¬×ÖºÅÊ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) À´×÷Ϊ°æ±¾ºÅ¡£
¡¡¡¡ÔÚ°üÖÆ×÷Íê³ÉÖ®ºó£¬ Ëü»á±»·ÅÔÚ /usr/ports/packages/All£¬ ²¢½¨Á¢Ò»ÏµÁÐÀ´×Ô /usr/ports/packages ÏÂ×ÓĿ¼µÄ·ûºÅÁ¬½Ó¡£ ÕâЩ×ÓĿ¼µÄÃû³ÆÊÇÓÉ CATEGORIES Ö¸¶¨µÄ¡£ Õ⽫·½±ãÓÚÄÇЩÓû§ÔÚ FTP Õ¾µã»ò CDROM µÄÒ»´ó¶Ñ°üÀïÃæÑ°ÕÒ×Ô¼ºÏëÒªµÄ°ü¡£ Çë²é¿´Ò»Ï ĿǰµÄ·ÖÀà±í£¬ ²¢ÕÒ³öÒ»¸öÊʺÏÄú port µÄ·ÖÀà¡£
¡¡¡¡´ËÁбíÒ²»á¾ö¶¨ÄúµÄ port ÔÚ port Ŀ¼ÖеÄλÖᣠÈç¹ûÄúÔÚÕâÀïÉ趨ÁË 1 ¸öÒÔÉϵķÖÀ࣬ ÔòÈÏΪÄú port ÎļþÓ¦·Åµ½ÒÔµÚÒ»¸ö·ÖÀàÃüÃûµÄ×ÓĿ¼ÖС£ Çë²ÎÔÄ ºóÃæ ¹ØÓÚÈçºÎÑ¡ÔñÕýÈ··ÖÀàµÄ¸ü¶àÌÖÂÛ¡£
¡¡¡¡ÕâÊÇĿǰ 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 ±à³ÌÓïÑÔÓйصÄÈí¼þ¡£ | ||
| µç×ÓÓʼþÈí¼þ¡£ | |||
| 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 | ÆÏÌÑÑÀÓïÓïÑÔÖ§³Ö¡£ | ||
| ´òÓ¡Ïà¹ØµÄÈí¼þ¡£ | ×ÀÃæ³ö°æ¹¤¾ß (´òÓ¡Ô¤ÀÀ¹¤¾ßµÈµÈ) Ò²¿ÉÒÔ·ÅÔÚ´Ë·ÖÀàÀï¡£ | ||
| 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 Ïà¹ØµÄÖ§³Ö¡£ |
¡¡¡¡ÓÉÓÚ²»ÉÙ·ÖÀàÊÇÖØ¸´µÄ£¬ Äúͨ³£ÔÚÓÃÄĸö·ÖÀà×÷ΪÄú 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 ·ÖÀà¡£ ¾ÙÀýÀ´Ëµ£¬ Ò»¸öÓÃÓÚ±à¼Ä³ÖÖ±à³ÌÓïÑÔÔ´´úÂëµÄ Emacs ģʽӦ¸Ã±»¹éΪ lang Ò»Àà¡£
misc ·ÖÀàµÄ port ²»ÄÜÓÐÆäËü·ÇÐéÄâµÄ·ÖÀà¡£ Èç¹ûÄúÔÚÄúµÄ CATEGORIES ÀïÉèÁË misc ºÍÁíÍâµÄ·ÖÀ࣬ ÄÇÒâζ×Å¿ÉÒÔ°²È«µØÉ¾³ý misc ²¢°Ñ port ·Åµ½ÆäËüµÄ×ÓĿ¼ÖÐÁË£¡
Èç¹ûÄúµÄ port ȷʵ²»ÊôÓÚÏÖÓеķÖÀ࣬ ²Å°ÑËü·Åµ½ misc¡£
¡¡¡¡Èç¹ûÄú²»ÄÜÈ·¶¨Ê¹ÓÃÄĸö·ÖÀ࣬ ÇëÔÚÄúÌá½»µÄ send-pr(1) Àï¼ÓÉÏÒ»ÐÐ×¢ÊÍ£¬ ÕâÑùÎÒÃǾÍÄÜÔÚµ¼Èë½ø port Ê÷֮ǰÌÖÂÛһϡ£ Èç¹ûÄúÊÇ committer£¬ ·¢Ò»·Ý±¸Íüµ½ FreeBSD ports ÓʼþÁбí ÏÈÌÖÂÛһϡ£ ºÜ¶àÇé¿öÊÇÐ嵀 port ±»¼Óµ½´íÎóµÄ·ÖÀàÀ È»ºóÓÖÁ¢¼´±»ÒÆ×ß¡£Õâ»áÔì³ÉÔ´´úÂë¿â²»±ØÒªºÍ²»Á¼µÄÅòÕÍ¡£
¡¡¡¡ÓÉÓÚ Ports Collection ÔÚ³ÖÐøÔö³¤£¬ ÒѾÒýÈëÁËÐí¶àеķÖÀà¡£ еķÖÀà¼È¿ÉÒÔÊÇ ÐéÄâµÄ ·ÖÀà ©¤©¤ ÕâЩ·ÖÀàÔÚÕû¸ö ports Ŀ¼ÖÐûÓÐÊôÓÚ×Ô¼ºµÄ×ÓĿ¼ ©¤©¤ »ò ÎïÀíµÄ ·ÖÀà ©¤©¤ ËüÃÇÓÐ×Ô¼ºµÄ×ÓĿ¼¡£ ½ÓÏÂÀ´ÎÒÃǽ«ÌÖÂÛÓ뽨Á¢ÐµÄÎïÀí·ÖÀàÓйصÄÊÂÏ ÒÔ±ã°ïÖúÄúÀí½âÈçºÎÌáÒ齨Á¢ÐµķÖÀà¡£
¡¡¡¡ÎÒÃÇĿǰµÄ×ö·¨ÊDZÜÃ⽨Á¢ÐµÄÎïÀí·ÖÀ࣬ ³ý·ÇÓзdz£¶àµÄ port Ó¦±»¹éÈëÕâÒ»·ÖÀ࣬ »òÕß port ÊôÓÚÄ³Ò»ÌØ¶¨µÄСÍÅÌå (ÀýÈ磬 ÓëijÖÖÈËÀàÓïÑÔÏà¹Ø)£¬ »òÁ½Õß½ÔÊÇ¡£
¡¡¡¡ÕâÑù×öµÄÔÒòÊÇÕâÀàÐ޸ĻáÈà committer ºÍÓû§¶¼²»µÃ²»½øÐÐ Ðí¶à¹¤×÷ À´ÔÚ Ports Collection ½øÐлò×·×ÙÐ޸ġ£ ´ËÍ⣬ ÌáÒéеķÖÀàͨ³£¶¼»áÒýÆðÕùÂÛ¡£ (¿ÉÄÜÕâÊÇÒòΪ¹ØÓÚij¸ö·ÖÀàÊÇ·ñ ¡°Ì«´ó¡± һֱûÓзdz£Ò»ÖµÄÒâ¼ûµÄÔµ¹Ê£¬ ÁíÒ»·½Ã棬 ·ÖÀàÊÇ·ñÄܹ»Äܹ»ÓÐÖúÓÚä¯ÀÀ (ÒÔ¼°¶àÉÙ¸ö·ÖÀàÊǺÏÊʵÄ)£¬ µÈµÈ£¬ Ò²¶¼ÊÇÎÊÌâ¡£)
¡¡¡¡ÏÂÃæÊǾßÌåµÄ²½Ö裺
ÔÚ FreeBSD ports ÓʼþÁбí ÌáÒéеķÖÀà¡£ ÄúÓ¦Ìṩ½¨Á¢Ð·ÖÀàµÄÏêϸÒÀ¾Ý£¬ °üÀ¨ÎªÊ²Ã´ÈÏΪÏÖÓеķÖÀ಻¹»£¬ ÒÔ¼°Ï£ÍûÒÆ¶¯Î»ÖõÄһϵÁÐ port µÄÃû×Ö¡£ (Èç¹ûÓÐÉÐÔÚ GNATS ¶øÎ´ commit µÄ port£¬ Ò²Ó¦Ò»Ò»Áгö¡£) Èç¹ûÄúÊÇÏà¹Ø port µÄ¼à»¤ÈË»òÌá½»Õߣ¬ ˵Ã÷ÕâÒ»Çé¿ö¿ÉÄÜÓÐÖúÓÚÄúµÄÌáÒéµÃµ½Í¨¹ý¡£
²ÎÓëÌÖÂÛ¡£
Èç¹ûÓÐÈËÖ§³ÖÄúµÄ½¨Ò飬 Ó¦¼°Ê±Ìá½»Ò»¸ö PR£¬ ÆäÖаüÀ¨ÌáÒé PR µÄÀíÓÉ£¬ ÒÔ¼°ÐèÒªÒÆ¶¯µÄ port µÄÁÐ±í¡£ ÀíÏëÇé¿öÏ£¬ Õâ¸ö PR Ò²Ó¦°üº¬Õë¶ÔÏÂÁÐÎļþµÄ²¹¶¡£º
½øÐÐ repocopy Ö®ºó¶Ô Makefile ½øÐеÄÐÞ¸Ä
зÖÀàµÄ Makefile
¾É·ÖÀàµÄ Makefile
ÒÀÀµÓÚ¾É port µÄ port µÄ Makefile
(´ËÍ⣬ ×÷ΪһÏî¼Ó·ÖÒòËØ£¬ Äú»¹¿ÉÒÔ°´ÕÕ Committer Ö¸ÄÏËù½éÉܵÄÁ÷³Ì£¬ ÌṩһЩÆäËüÐèÒªÐ޸ĵÄÎļþ¡£)
ÓÉÓÚÕâÊÇÒ»ÏîÓ°Ïì ports »ù´¡ÉèÊ©µÄ±ä¶¯£¬ Ëü²»½öÉæ¼° repo-copy µÄʹÓã¬
¶øÇÒÒ²¿ÉÄÜ»áÓ°Ïì¹¹½¨¼¯ÈºµÄË¥Í˲âÊÔ²Ù×÷£¬ Òò´ËÕâÀà PR Ó¦·ÖÅɸø Ports ¹ÜÀíÍÅ¶Ó <portmgr@FreeBSD.org>¡£
Èç¹ûÕâÒ» PR µÃµ½Åú×¼£¬ ij¸ö committer ½«°´ÕÕÔÚ Committer Ö¸ÄÏ ÖÐËù½éÉܵIJ½ÖèÀ´Íê³ÉÓàÏµĹ¤×÷¡£
¡¡¡¡ÌáÒéеÄÐéÄâ·ÖÀàºÍÉÏÊö¹ý³ÌÀàËÆ£¬ µ«»áÈÝÒ×Ðí¶à£¬ ÒòΪ²»ÐèҪʵ¼ÊµØÒƶ¯ÈκΠport¡£ ÕâÖÖÇé¿öÏ£¬ PR Ó¦¸½´øµÄ²¹¶¡£¬ ¾ÍÖ»ÐèÒªÐÞ¸ÄÓ°Ïìµ½µÄ port µÄ Makefile£¬ ÒÔ±ãÔÚÆäÖÐµÄ CATEGORIES ÖмÓÈëеķÖÀàÁË¡£
¡¡¡¡ÓÐЩʱºò»áÓÐһЩÈËÌáÒéÖØÐ½«·ÖÀà×é֯Ϊ 2-²ã »òijÖÖ»ùÓڹؼü×ֵĽṹ¡£ ĿǰΪֹ£¬ »¹Ã»ÓнøÐÐÈκÎÏà¹ØµÄ¸Ä±ä£¬ ÒòΪ¾¡¹ÜÕâЩÐ޸ıȽÏÈÝÒ×Íê³É£¬ µ«ÐÞ¸ÄÕû¸ö Ports Collection ËùÐèÒª½øÐеŤ×÷£¬ ÖÁÉÙÒ²ÊÇÁîÈËÉúηµÄ¡£ ÔÚ·¢±íÄúµÄ¹Ûµã֮ǰ£¬ ÇëÔĶÁÔÚÓʼþÁÐ±í´æµµÖÐÀúÊ·ÉÏËù½øÐйýµÄÌáÒ飻 ´ËÍ⣬ ÄúÒ²»á±»ÒªÇóÌṩһ¸ö¿ÉÓõÄÔÐΡ£
¡¡¡¡ÔÚ Makefile Öеĵڶþ²¿·ÖÊÇÃèÊöÓÃÓÚ¹¹½¨ port Ëù±ØÐèÏÂÔØµÄÎļþ£¬ ÒÔ¼°µ½Ê²Ã´µØ·½È¥ÏÂÔØËüÃÇ¡£
¡¡¡¡DISTNAME ÊÇ×÷Õ߳ƺôÄúËù port Èí¼þµÄÃû×Ö¡£ DISTNAME µÄĬÈÏÖµÊÇ ${PORTNAME}-${PORTVERSION}£¬ Òò´ËÖ»ÓÐÔÚÐèҪʱ²ÅÓ¦ÊÖ¹¤Ö¸¶¨¡£ DISTNAME Ö»ÔÚÁ½¸öµØ·½Óõ½¡£ µÚÒ»´¦ÊÇÔ´Âë°üÎļþÁбí (DISTFILES)£¬ ÆäĬÈÏÖµÊÇ ${DISTNAME}${EXTRACT_SUFX}¡£ µÚ¶þ´¦ÊÇÔ´Âë°üÓ¦±»Õ¹¿ªµ½µÄĿ¼Ãû£¬ ¼´ WRKSRC ËùÖ¸¶¨µÄĿ¼£¬ ÆäĬÈÏÖµÊÇ work/${DISTNAME}¡£
¡¡¡¡Ä³Ð©Èí¼þ×÷Õß·¢²¼Ô´Âë°üµÄʱºò²¢²»²ÉÈ¡ ${PORTNAME}-${PORTVERSION} ÕâÑùµÄģʽ£¬ Õâ¿ÉÒÔͨ¹ýÉèÖà DISTVERSION À´×Ô¶¯´¦Àí¡£ PORTVERSION ºÍ DISTNAME »á×Ô¶¯µØÕ¹¿ª£¬ µ±È»£¬ Ò²¿ÉÒԸĵôËü¡£ ÏÂ±í¸ø³öÁËһЩÀý×Ó£º
×¢Òâ: PKGNAMEPREFIX ºÍ PKGNAMESUFFIX ²¢²»Ó°Ïì DISTNAME¡£ ´ËÍ⻹ӦעÒâ WRKSRC µÈÓÚ work/${PORTNAME}-${PORTVERSION}£¬ ¶øÔ´´úÂëµÄѹËõ°üÔò¿ÉÄÜÊÇ ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX} ÒÔÍâµÄÆäËüÃû×Ö¡£ Ò»°ãÇé¿öÏÂÓ¦¸Ã±£³Ö DISTNAME ²»±ä ©¤©¤ ¸üºÃµÄ·½·¨ÊǶ¨Òå DISTFILES ¶ø²»ÊÇͬʱÉèÖà DISTNAME ºÍ WRKSRC (¿ÉÄÜ»¹ÓÐ EXTRACT_SUFX)¡£
¡¡¡¡¼Ç¼ 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_* ±äÁ¿£¬ ÒÔ±ãÈÃϵͳʹÓÃËûÃǵÄÑ¡Ôñ£¬ ´ÓËûÃÇϲ»¶µÄ¾µÏñÕ¾µã½øÐÐÏÂÔØ¡£
¡¡¡¡Èç¹ûÄúÓÐÒ»¸öÔ´Âë°üÎļþ£¬ ¶øËüʹÓÃÁË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.
¡¡¡¡ÓÐЩʱºòËùÏÂÔØµÄÎļþÃû×ÖºÍ port µÄÃû×ÖûÓÐÈκÎÁªÏµ¡£ ÀýÈ磬 ¿ÉÄÜÊÇ source.tar.gz£¬ »òÕßÓë´ËÀàËÆµÄÆäËüÃû×Ö¡£ Ò²ÓÐһЩÆäËüµÄÓ¦ÓÃÈí¼þ£¬ ËüÃǵÄÔ´´úÂë¿ÉÄܱ»´æ·Åµ½Á˲»Í¬µÄѹËõ°üÖУ¬ ¶øÇÒÈ«¶¼ÐèÒªÏÂÔØ¡£
¡¡¡¡Èç¹ûÓöµ½ÕâÖÖÇé¿ö£¬ ¿ÉÒÔ½« DISTFILES ÉèÖÃΪÒÔ¿Õ¸ñ·Ö¸ôµÄÒ»×éÐèÒªÏÂÔØµÄÎļþÁÐ±í¡£
DISTFILES= source1.tar.gz source2.tar.gz
¡¡¡¡Èç¹ûûÓÐÓèÒÔÃ÷È·µÄÉèÖ㬠DISTFILES µÄĬÈÏÖµ½«ÊÇ ${DISTNAME}${EXTRACT_SUFX}¡£
¡¡¡¡Èç¹ûÖ»ÓÐÒ»²¿·Ö DISTFILES ÐèÒª½âѹËõ ©¤©¤ ÀýÈ磬 ÆäÖеÄÒ»¸öÊÇÔ´´úÂ룬 ¶øÆäËüÔòÊÇδѹËõµÄÎĵµ ©¤©¤ ´ËʱӦ°ÑÄÇЩÐèÒª½âѹËõµÄÎļþ¼Óµ½ EXTRACT_ONLY ÖС£
DISTFILES= source.tar.gz manual.html EXTRACT_ONLY= source.tar.gz
¡¡¡¡Èç¹û DISTFILES ÖРûÓÐ ÐèÒª½âѹËõµÄÎļþ£¬ ÔòÓ¦½« EXTRACT_ONLY ÉèΪ¿Õ´®¡£
EXTRACT_ONLY=
¡¡¡¡Èç¹ûÄúµÄ 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 ÖÐɾ³ýÕâЩ¸´ÖƳöÀ´µÄÎļþ¡£
¡¡¡¡(ÕâÒ»½ÚÔÚ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 ËùÌá³öµÄ¸ÅÄî½øÐÐÁËһЩ¸Ä½ø¡£
¡¡¡¡ÕâÒ»½Ú½«½éÉÜÈçºÎѸËٵضԴӲ»Í¬µÄÕ¾µãÒÔ¼°×ÓĿ¼ÏÂÔØ¶à¸öÔ´Âë°üºÍ²¹¶¡½øÐо«È·µÄ¿ØÖÆ¡£ ÕâÀ ÎÒÃǽ«ÃèÊö 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 µÄÑù×Ó¡£
¡¡¡¡Ç°ÃæµÄÀý×ÓÎÞ·¨Âú×ãÄúµÄÐèÇó£¿ ÕâÒ»½Ú£¬ ÎÒÃǽ«Ïêϸ½éÉÜ MASTER_SITES:n µÄ¾«Ï¸¿ØÖÆÊÇÈçºÎ¹¤×÷µÄ£¬ ÒÔ¼°ÈçºÎÐÞ¸ÄÄúµÄ port À´Ê¹ÓÃËüÃÇ¡£
ÔªËØ¿ÉÒÔ°üº¬ :n ÕâÑùµÄºó׺£¬ ÆäÖÐ n ÊÇ [^:,]+£¬ ¸ÅÄîÉϼ´ n ¿ÉÒÔÈ¡ÈÎÒâÊý×Ö»ò×Öĸ£¬ µ«ÎÒÃÇĿǰ½«ÆäÏÞ¶¨Îª [a-zA-Z_][0-9a-zA-Z_]+¡£
´ËÍ⣬ ×Ö·û´®Æ¥Åäʱ¶Ô´óСдÊÇÃô¸ÐµÄ£» »»ÑÔÖ®£¬ n Óë N ²»Í¬¡£
µ«ÊÇ£¬ ÓÉÓÚ±í´ïÌØÊâµÄÒâÒ壬 ÏÂÁе¥´Ê²»ÄÜÓÃÓÚºó׺£º default¡¢ all ºÍ ALL (ËüÃÇ»áÔÚ ii ÖнéÉܵIJ¿·ÖÓõ½)¡£ ´ËÍ⣬ DEFAULT ÊÇÒ»¸öÓÐÌØÊâÓÃ;µÄ´Ê (Çë²Î¼û 3)¡£
ºó׺Ϊ :n µÄÏîÄ¿ÊôÓÚ n ×飬 ¶ø :m ÊôÓÚ m ×飬 ÒÀ´ËÀàÍÆ¡£
ûÓкó׺µÄÔªËØÊÇÎÞ×éµÄ£¬ Ò²¾ÍÊÇËüÃǶ¼ÊôÓÚÄǸöÌØÊâµÄ DEFAULT ×é¡£ ¸øÔªËؼÓÈë DEFAULT ºó׺ͨ³£ÊǶàÓàµÄ£¬ ³ý·ÇÄúÓÐͬʱÊôÓÚ DEFAULT ºÍÆäËü×éµÄÔªËØ (²Î¼û 5)¡£
ÏÂÃæµÄÀý×ÓÊǵȼ۵ģ¬ µ«Í¨³£Ó¦ÊÊÓõÚÒ»¸ö£º
MASTER_SITES= alpha MASTER_SITES= alpha:DEFAULT
×éÖ®¼ä²»ÊÇ»¥³âµÄ£¬ Í¬Ò»ÔªËØ¿ÉÒÔͬʱÁ¥ÊôÓÚ¶à¸ö×飬 ¶ø×éÔò¿ÉÒÔΪ¿Õ»òÕßÓÐÈÎÒâ¶à¸öÔªËØ¡£ ͬһ×éÖеÄÖØ¸´ÔªËØ£¬ ²¢²»»á±»×Ô¶¯ÏûÈ¥¡£
Èç¹ûÏ£ÍûÍ¬Ò»ÔªËØÍ¬Ê±ÊôÓÚ¶à¸ö×飬 ¿ÉÒÔÓöººÅ (,) ·Ö¿ª¡£
ÕâÖÖ°ì·¨¿ÉÒÔ±ÜÃâ½öΪָ¶¨²»Í¬µÄ×é¶ø¶à´ÎÖØ¸´Í¬Ò»ÔªËØ¡£ ÀýÈç :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
ͬһ×éÖеÄËùÓÐÕ¾µã£¬ »á¸ù¾Ý MASTER_SORT_AWK ÅÅÐò¡£ ÔÚ MASTER_SITES ºÍ PATCH_SITES ÖеÄ×éÒ²»á½øÐÐÅÅÐò¡£
ÔÚ MASTER_SITES¡¢ PATCH_SITES¡¢ MASTER_SITE_SUBDIR¡¢ PATCH_SITE_SUBDIR¡¢ DISTFILES£¬ ÒÔ¼° PATCHFILES ÖУ¬ ¶¼¿ÉÒÔʹÓÃ×飬 ÆäÓ﷨Ϊ£º
ËùÓÐ 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
ÏÂÔØ¡£
ÈçºÎ¶ÔÀ´×Ô 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 ÖеÄÕ¾µãÏÂÔØ¡£
ÈçºÎÓë PATCH* ±äÁ¿Á¬Óã¿
Ç°ÃæµÄÀý×Ó½éÉܵͼÊÇ MASTER* ±äÁ¿£¬ µ«¶ÔÓÚ PATCH* Ò²ÊÇÍêȫһÑùµÄ£¬ ËüÃÇÔÚ Àý 5-6 ÓÐËù½éÉÜ¡£
ËùÓÐÆÕͨµÄ ports µÄÐÐΪ¶¼»á±£³Ö²»±ä¡£ MASTER_SITES:n ¹¦ÄܵĴúÂ룬 Ö»ÓÐÔÚÄ³Ð©ÔªËØ°üº¬ÁËǰÊö£¬ ÌØ±ðÊÇ 7 ÖÐËùÌá¼°Óï·¨µÄ :n ºó׺ʱ£¬ ²Å»áÆôÓá£
²»ÊÜÓ°ÏìµÄ 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 µÄ¸ü¶à¼¼Êõϸ½Ú¡£
port ÖеÄРtarget
һϵÁÐ 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 ×éµÄÄÚÈÝ£¬ µÈµÈ¡£
ÐÂÔöµÄ 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¡£
¡¡¡¡±ÜÃâÈÃÄúµÄ 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¡£
¡¡¡¡Èç¹ûÄúµÄ 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£¬ Õâ¿ÉÄܵ¼ÖÂһЩ²»Ï£ÍûµÄ¸±×÷Ó㬠Òò¶øÐèÒª½øÐÐÌØ±ðµÄ´¦Àí¡£
¡¡¡¡ÇëÔÚ´Ë´¦Ð´ÉÏÄúµÄµç×ÓÓʼþµØÖ·¡£ :-)
¡¡¡¡ÐèҪעÒâÒ»µã£¬ MAINTAINER ±äÁ¿µÄÖµÖ»ÄÜÊÇÒ»¸ö²»°üÀ¨×¢ÊͲ¿·ÖµÄµç×ÓÓʼþµØÖ·£¬ Æä¸ñʽӦΪ user@hostname.domain¡£ Çë²»ÒªÔÚ´Ë´¦Ð´ÈκÎ˵Ã÷ÐÔµÄÎÄ×Ö£¬ ÀýÈçÄúµÄÕæÊµÐÕÃû ©¤©¤ Õâ»á¸ø bsd.port.mk ´øÀ´Âé·³¡£
¡¡¡¡¼à»¤ÈËÓÐÔðÈα£³Ö port ËæÊ±¸üУ¬ ²¢È·±£ÆäÄܹ»ÕýÈ·µØÔËÐС£ ÏêϸµÄ port ¼à»¤ÈËÖ°Ôð˵Ã÷£¬ Çë²Î¼û port ¼à»¤ÈËÃæÁÙµÄÌôÕ½ Ò»½Ú¡£
¡¡¡¡¶ÔÓÚ port µÄÐ޸ģ¬ Ó¦±»·¢¸ø port µÄ¼à»¤È˽øÐи´Éó£¬ ÇÒÔÚ commit
֮ǰÐèÒª»ñµÃÆä¼à»¤È˵ÄͬÒâ¡£ ¼ÙÈçijһ port µÄ¼à»¤ÈËûÓÐÔÚÁ½ÖÜÖ®ÄÚ (²»°üÀ¨Ö÷ÒªµÄ¹«¹²¼ÙÈÕ)
ÏìÓ¦À´×ÔÓû§µÄ¸üÐÂÇëÇó£¬ Ôò¿ÉÊÓΪ¼à»¤È˳¬Ê±£¬
ÔÚÕâÖÖÇé¿öÏ¿ÉÒÔÔÚûÓм໤ÈËÃ÷ȷͬÒâµÄÇéÐÎϽøÐиüС£
Èç¹û¼à»¤ÈËÔÚ¶à´ïÈý¸öÔµÄʱ¼äÄÚûÓнøÐÐÈκÎÏìÓ¦£¬ Ôò¿ÉÒÔÈÏΪ¸Ã¼à»¤È˲»´Ç¶ø±ð£¬
ÔÊÐí¶Ô³öÏÖ´ËÀàÎÊÌâµÄ port ½øÐм໤È˱ä¸ü¡£ ¾¡¹ÜÈç´Ë£¬ ¼à»¤ÈËΪ Ports ¹ÜÀíÍÅ¶Ó <portmgr@FreeBSD.org> »òÕß Security
Officer ÍÅ¶Ó <security-officer@FreeBSD.org>
µÄ port ²»ÊÜ´ËÏÞ¡£ ¶Ô¼à»¤ÈËΪÕâЩС×éµÄ port ½øÐÐδ¾Ðí¿ÉµÄ commit ÊDz»ÔÊÐíµÄ¡£
¡¡¡¡ÎÒÃDZ£Áô¶Ô¼à»¤ÈËËùÌá½»ÐÞÕý°¸½øÐи͝µÄȨÁ¦£¬ ÒÔ±ãʹÆä¸ü·ûºÏÏÖÐÐµÄ Ports Collection ¹æ·¶£¬ ¶øÎÞÐèÌá½»²¹¶¡µÄÈËÃ÷È·Åú×¼¡£ ´ËÍ⣬ ´ó¹æÄ£µÄ»ù´¡ÐÔÐ޸ģ¬ Ò²¿ÉÄÜʹ port ÔÚûÓеõ½¼à»¤ÈËͬÒâµÄÇéÐÎϽøÐÐÐ޸ġ£ µ«ÕâÀàÐ޸ͼ²»»áÓ°Ïì port ±¾ÉíµÄ¹¦ÄÜ¡£
¡¡¡¡Ports ¹ÜÀíÍÅ¶Ó <portmgr@FreeBSD.org>
±£ÁôÒÔÈκÎÔÒòÊջػòÈÆ¹ýÈκÎÈ˼໤ȨµÄȨÁ¦£¬ ¶ø Security Officer ÍÅ¶Ó <security-officer@FreeBSD.org>
Ôò±£ÁôÒÔ°²È«ÔÒòÊջػòÈÆ¹ý¼à»¤È¨µÄȨÁ¦¡£
¡¡¡¡ÕâÒ»±äÁ¿ÓÃÓÚÖ¸¶¨ port µÄÒ»¾ä»°ËµÃ÷¡£ Çë Î𽫠package µÄÃû×Ö (»òÈí¼þµÄ°æ±¾) ·ÅÔÚ˵Ã÷ÖС£ Õâһ˵Ã÷µÄµÚÒ»¸ö×ÖĸӦ´óд£¬ ½áβ²»Óþäµã¡£ ÏÂÃæÊÇÒ»¸öÀý×Ó£º
COMMENT= A cat chasing a mouse all over the screen
¡¡¡¡Makefile ÖÐµÄ COMMENT ±äÁ¿Ó¦¸Ã½ô½Ó×Å MAINTAINER ±äÁ¿³öÏÖ¡£
¡¡¡¡ÇëÎñ±Ø½« COMMENT ÕâÐÐÏÞÖÆÔÚ 70 ¸ö×Ö·ûÖ®ÄÚ£¬ ÒòΪËüµÄÖ÷ҪĿµÄÊÇÏòÓû§Õ¹Ê¾ port µÄÒ»¾ä»°¼ò½é¡£
¡¡¡¡Ðí¶à port »áÒÀÀµÆäËü port¡£ ÓÐÆß¸ö±äÁ¿ÓÃÓÚ°ïÖúÄúÈ·±£ËùÐèµÄÎļþ¶¼´æÔÚÓÚÓû§µÄ»úÆ÷ÉÏ¡£ ´ËÍ⣬ Ò²ÌṩÁËÓÃÓÚÖ§³Ö³£¼ûÇéÐεÄÒÀÀµ¹ØÏµ±äÁ¿£¬ ÒÔ¼°¶ÔÒÀÀµ¹ØÏµÐÐΪµÄ¸ü¶à¿ØÖÆ¡£
¡¡¡¡Õâ¸ö±äÁ¿ÓÃÓÚÖ¸¶¨ 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¡£
¡¡¡¡Õâ¸ö±äÁ¿¿ÉÒÔÓÃÀ´Ö¸¶¨ 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 Ïàͬ£¬ Ôò¿ÉÒÔÂÔÈ¥²»Ð´¡£
¡¡¡¡´Ë±äÁ¿ÓÃÓÚÖ¸¶¨ÓÃÀ´¹¹½¨ port µÄ¿ÉÖ´ÐÐÎļþ»ò×ÊÔ´Îļþ¡£ Óë RUN_DEPENDS ÀàËÆ£¬ ËüÊÇÒ»¸ö path:dir[:target] Ôª×éµÄÁÐ±í¡£ ÀýÈ磬
BUILD_DEPENDS=
unzip:${PORTSDIR}/archivers/unzip
½«¼ì²âÃûΪ unzip µÄ¿ÉÖ´ÐÐÎļþÊÇ·ñ´æÔÚ£¬ Èç¹û²»´æÔÚ£¬
Ôò»á½øÈëµ½ÄúµÄ ports Ŀ¼ÖÐµÄ archivers/unzip
²¢Íê³É¹¹½¨ºÍ°²×°¹¤×÷¡£×¢Òâ: ÕâÀïµÄ ¡°build¡± ±íʾ´Ó½âѹËõµ½±àÒëµÄÈ«²¿¹ý³Ì¡£ ÒÀÀµ¹ØÏµÊÇÔÚ extract target µÄ¹ý³ÌÖмì²âµÄ¡£ ¼ÙÈçÄúÒªÖ¸¶¨µÄ target ºÍ DEPENDS_TARGET Ïàͬ£¬ Ôò¿ÉÒÔÂÔÈ¥²»Ð´¡£
¡¡¡¡ÕâÒ»±äÁ¿ÓÃÓÚÖ¸¶¨ port ÔÚÏÂÔØÊ±ËùÐèµÄ¿ÉÖ´ÐÐÎļþ»ò×ÊÔ´Îļþ¡£ ºÍǰÁ½¸öÀàËÆ£¬ ËüÊÇÒ»×é path:dir[:target] Ôª×é¡£ ÀýÈ磬
FETCH_DEPENDS=
ncftp2:${PORTSDIR}/net/ncftp2
½«¼ì²âÃûΪ ncftp2 µÄ¿ÉÖ´ÐÐÎļþÊÇ·ñ´æÔÚ£¬ Èç¹ûÕÒ²»µ½£¬
Ôò½«½øÈëµ½Äú ports Ŀ¼ÖÐµÄ net/ncftp2
×ÓĿ¼²¢¼ÓÒÔ¹¹½¨ºÍ°²×°¡£¡¡¡¡Õâ¸öÒÀÀµ¹ØÏµÊÇÔÚ fetch target ¹ý³ÌÖмì²éµÄ¡£ Èç¹ûÓë DEPENDS_TARGET Ïàͬ£¬ Ôò¿ÉÒÔÊ¡ÂÔ target ²¿·Ö¡£
¡¡¡¡´Ë±äÁ¿ÓÃÓÚÖ¸¶¨ 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 ¶¼²»ÄÜ´ïµ½ÐèҪʱ£¬ ²ÅӦʹÓÃÕâ¸ö±äÁ¿¡£
¡¡¡¡Õâ¸ö±äÁ¿ÓÃÓÚÖ¸¶¨ port ÔÚ½øÐÐ patch ²Ù×÷ʱËùÐèµÄ¿ÉÖ´ÐÐÎļþ»òÆäËü×ÊÔ´Îļþ¡£ ºÍǰһ¸ö±äÁ¿ÀàËÆ£¬ ËüÊÇÒ»×é path:dir[:target] Ôª×éµÄ±í¡£ ÀýÈ磬
PATCH_DEPENDS=
${NONEXISTENT}:${PORTSDIR}/java/jfc:extract
±íʾ½øÈëµ½ÄúµÄ ports Ŀ¼ÖÐµÄ java/jfc ×ÓĿ¼£¬
²¢½«Æä½âѹËõ¡£¡¡¡¡Õâ¸öÒÀÀµ¹ØÏµÊÇÔÚ patch target µÄ¹ý³ÌÖмì²éµÄ¡£ target ²¿·ÖÈç¹ûºÍ DEPENDS_TARGET Ïàͬ£¬ ¾Í¿ÉÂÔÈ¥²»Ð´¡£
¡¡¡¡Èç¹ûÓÐÎÞ·¨¹éÀàÓÚÉÏÊöÀà±ðµÄÒÀÀµ¹ØÏµ£¬ »òÕßÄúµÄ port ÐèÒª½âѹËõÆäËü port µÄÔ´´úÂë²ÅÄܹ»Íê³É¹¹½¨»ò°²×°£¬ ÔòӦʹÓÃËüÀ´±í´ï¡£ Õâ¸ö±äÁ¿ÊÇÒ»×é¸ñʽΪ dir[:target] µÄÔª×é±í£¬ ÓëǰËĸö²»Í¬£¬ Ëü²¢²»ÊµÊ©¼ì²é¡£ ÕâÀïµÄ target ²¿·Ö£¬ Èç¹ûÓë DEPENDS_TARGET Ïàͬ£¬ ¾Í¿ÉÒÔÂÔÈ¥²»Ð´¡£
¡¡¡¡ÌṩÁËһϵÁбäÁ¿£¬ ÓÃÒÔ·â×°´óÁ¿ 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 Ó¦ÓóÌÐòµÄ±äÁ¿½éÉÜ¡£
¡¡¡¡ÔÚÒÀÀµÄ³¸öÆäËû port ʱ£¬ ¿ÉÒÔÒÔÏÂÃæµÄ¾ä·¨ÔÚ *_DEPENDS ±äÁ¿ÖÐÖ¸¶¨×îµÍ°æ±¾£º
p5-Spiffy>=0.26:${PORTSDIR}/devel/p5-Spiffy
¡¡¡¡µÚÒ»¸ö×Ö¶ÎÖ¸Ã÷ÁËËùÒÀÀµ package µÄÃû×Ö£¬ ÓÃÒÔÓë package Êý¾Ý¿âÖеÄijÏîÆ¥Å䣬 È»ºóÊDZȽÏËã·û£¬ ÒÔ¼° package µÄ°æ±¾ºÅ¡£ Ç°ÃæµÄÀý×ÓÖУ¬ Èç¹ûϵͳÖа²×°ÁË p5-Spiffy-0.26 ÔòÈÏΪÂú×ãÁËÒÀÀµÌõ¼þ¡£
¡¡¡¡ÈçÇ°ÃæËùÌáµ½µÄÄÇÑù£¬ ÔÚÐèҪ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 ¿ÉÄܸüºÏÊÊһЩ ©¤©¤ ÖÁÉÙËüµÄ±í´ï¸üΪÃ÷È·¡£
ÖØÒª: ²»ÒªÔÚ ports tree ÖÐÒýÈëÈκÎÑ»·ÒÀÀµ¹ØÏµ!
¡¡¡¡ports ¹¹½¨¼¼Êõ²»Äܹ»ÈÝÈÌÑ»·ÒÀÀµ¹ØÏµ¡£ Èç¹ûÄúÒýÈëÁËÕâÑùµÄ¹ØÏµ£¬ ¾ÍÒ»¶¨»áÓÐÈ˰²×°µÄ FreeBSD »áÒò´Ë¶øË𻵣¬ ¶øÇÒÕâÖÖÏÖÏó»áÔ½À´Ô½¶à¡£ ÕâЩÇéÐκÜÄѼì²â£» Èç¹ûÓÐÒÉÂÇ£¬ ÔÚ½øÐÐÕâÑùµÄÐÞ¸Ä֮ǰ£¬ Îñ±ØÖ´ÐУº cd /usr/ports; make index¡£ Õâ¸ö¹ý³ÌÔھɵĻúÆ÷ÉÏ»áºÜÂý£¬ µ«Äܹ»ÈôóÁ¿µÄÓû§ ©¤©¤ Ò²°üÀ¨Äú×Ô¼º ©¤©¤ Õü¾ÈÓÚÓÉÕâÖÖÎÊÌâËùÔì³ÉµÄÀ§»óÖ®ÖС£
¡¡¡¡Èç¹û port ÐèÒªÒÀijЩ±äÁ¿µÄÉèÖà (¾ÙÀýÀ´Ëµ£¬ ·Ö±æÂÊ»òÖ½ÐÍ) À´¹¹½¨ÂÔÓв»Í¬µÄÔ¤±àÒë°ü£¬ Ôò¿ÉÒÔΪÿһ¸öÕâÑùµÄ°ü½¨Á¢²»Í¬µÄĿ¼£¬ ÕâÑù¿ÉÒÔÈÃÓû§¸üÈÝÒ׵ؿ´µ½ËûÃÇÏëÒª°²×°µÄ°æ±¾£¬ µ«ÓÖÄÜÔÚÕâЩ port Ö®¼ä¹²Óþ¡¿ÉÄܶàµÄÎļþ¡£ Ò»°ãÇé¿öÏ£¬ Èç¹ûÔËÓõõ±£¬ ³ýÖ÷Ŀ¼֮Íâ¶¼Ö»ÐèÒªºÜ¶ÌµÄ Makefile¡£ ÕâЩ Makefile ÖУ¬ ¿ÉÒÔÓà MASTERDIR À´Ö¸¶¨ÆäËüÎļþËùÔÚµÄĿ¼¡£ ÁíÍ⣬ »¹Ó¦Ê¹ÓÃÒ»¸ö±äÁ¿×÷Ϊ PKGNAMESUFFIX µÄÒ»²¿·Ö£¬ ÒÔ±ãΪ²»Í¬µÄ°ü¸ø³ö²»Í¬µÄÃüÃû¡£
¡¡¡