°æÈ¨ © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The FreeBSD Documentation Project
°æÈ¨ © 2005, 2006, 2007, 2008, 2009, 2010 FreeBSD ÖÐÎļƻ®
FreeBSDÊÇFreeBSD»ù½ð»áµÄ×¢²áÉ̱ꡣ
UNIXÊÇOpen GroupÔÚÃÀ¹úºÍÆäËü¹ú¼ÒµÄ×¢²áÉ̱ꡣ
Sun, Sun Microsystems, SunOS, Solaris, Java, JDK, ÒÔ¼° OpenJDK ÊÇ 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 ·½Ê½°²×°µÄʱºòÒ²ÄÜÕý³£¹¤×÷¡£
¡¡¡¡×Ô¶¯»¯ÕâЩ²½Öè×î¼òµ¥µÄ·½·¨ÊÇͨ¹ý ports tinderbox À´½øÐвâÊÔ¡£ Ëü¿ÉÒÔά»¤ jails ²¢ÔÚÆäÖÐÍê³ÉÈ«²¿²âÊÔ¹¤×÷£¬ ¶ø²»»áÆÆ»µÕýÔÚÔËÐеÄϵͳµÄ״̬¡£ Çë²Î¼û ports/ports-mgmt/tinderbox ÒÔÁ˽â¸ü¶àµÄÐÅÏ¢¡£
¡¡¡¡ÇëʹÓà portlint ÃüÁîÀ´¼ì²éÄúµÄ port ÊÇ·ñ·ûºÏÎÒÃǵĹ淶¡£ ports-mgmt/portlint ³ÌÐòÊÇ ports Ì×¼þµÄÒ»²¿·Ö¡£ Õâ¸ö³ÌÐòµÄÖ÷Òª¹¦ÄÜÊǰïÖúÄú¼ì²é Makefile µÄÑùʽÊÇ·ñ·ûºÏ¹æ·¶£¬ ÒÔ¼° package µÄÃüÃûÊÇ·ñµÃÌå¡£
¡¡¡¡ÔÚÌύРport ֮ǰ£¬ Ó¦ÏÈÔĶÁ ¸Ã×öʲôºÍ²»¸Ã×öʲô Ò»½Ú¡£
¡¡¡¡¼ÈÈ»ÒѾ¶ÔËùÖÆ×÷µÄ port Ï൱ÂúÒâÁË£¬ Ê£ÏµĹ¤×÷£¬ ±ãÊǽ«Ëü·Å½ø FreeBSD µÄÖ÷ ports Ê÷£¬ ÒÔ±ãÈøü¶àµÄÈË´ÓÖÐÊÜÒæ¡£ ÎÒÃDz¢²»ÐèÒªÄúµÄ work Ŀ¼ÒÔ¼° pkgname.tgz °ü£¬ Òò´ËÏÖÔÚ¿ÉÒÔɾ³ýËüÃÇÁË¡£ ¼Ù¶¨ÄúµÄ port µÄÃû×ÖÊÇ oneko£¬ ½ÓÏÂÀ´Òª×öµÄÊÇ cd µ½ oneko ËùÔÚµÄĿ¼£¬ È»ºóÊäÈëÃüÁ shar `find oneko` > oneko.shar
¡¡¡¡½«Õâ¸ö oneko.shar Îļþ×÷Ϊ¸½¼þ£¬ ʹÓà send-pr(1) ³ÌÐòÌá½» (Çë²ÎÔÄ Bug Reports and General Commentary ÒÔÁË½â¹ØÓÚ send-pr(1) µÄ½øÒ»²½ÏêÇé) ½«ÆäËͳö¡£ ÇëÎñ±Ø½«ÄúµÄ bug ±¨¸æ·ÖÀà (category) Ϊ ports ²¢°Ñ×Ó·ÖÀà (class) ÉèÖÃΪ change-request (²»Òª°Ñ±¨¸æ±í¼°Îª»úÃܵģ¬ ¼´ confidential£¡)¡£ ´ËÍ⣬ ÔÚ PR µÄÃèÊö (¡°Description¡±) Ò»À¸ÖеÄÄÚÈÝÓ¦¸ÃÊÇ port µÄ¼òÒª½éÉÜ (ÀýÈç COMMENT ÄÚÈݵļò»¯°æ±¾)£¬ ¶ø shar ÎļþÔòÓ¦ÌîÈëÐÞÕý (¡°Fix¡±) À¸ÖС£
×¢Òâ: ÔÚÎÊÌⱨ¸æÀïÃæÊ¹ÓÃÁËÒ»¶ÎºÃµÄÃèÊö£¬ ÄÜʹÎÒÃǵŤ×÷±äµÃ¸üÈÝÒס£ ϰ¹ßÉÏ£¬ ÎÒÃÇ»áʹÓÃÀàËÆ£º ¡°New port: <category>/<portname> <short description of the port>¡± ÕâÑùµÄ±êÌâÀ´ËµÃ÷ÕâÊÇÐ嵀 port¡£ Èç¹ûÄúҲʹÓÃÕâÑùµÄϰ¹ß£¬ ÄÇôÎÒÃǽ«¸üÈÝÒ׸ü·½±ãµØÔĶÁÄúµÄ PR£¬ ´Ó¶ø¼Ó¿ì´¦ÀíËÙ¶È¡£
¡¡¡¡ÔÙ´ÎÉùÃ÷£¬ ²»Òª°üº¬ÔʼµÄdistfile£¬ workĿ¼£¬ »òÕßÄúÓà make package ÖÆ×÷µÄ°ü£» ´ËÍ⣬ ¶ÔÓÚÐ嵀 port ÇëÎñ±ØÊ¹Óà shar(1) ¶ø²»ÊÇ diff(1)¡£
¡¡¡¡ÔÚÄúÌá½»µÄÄúµÄ port ÒÔºóÇëÄÍÐĵȴý¡£ ÓÐʱÔÚÒ»¸ö port Õýʽ¼ÓÈë FreeBSD ֮ǰÐèÒª»¨·ÑºÃ¼¸¸öÔ£¬ ¾¡¹ÜÒ²ÓпÉÄÜÊǼ¸Ìì¡£ Äú¿ÉÒԲ鿴 ÕýµÈ´ý±» commit µ½ FreeBSD µÄ port PR¡£
¡¡¡¡Ò»µ©ÎÒÃÇ¿´¹ýÁËÄúµÄ±¨¸æ£¬ ÓбØÒªµÄ»°ÎÒÃÇ»áÁªÏµÄú£¬ ²¢°ÑËü·Åµ½ 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) ÕâÖÖÇé¿ö¡£ ÐèҪעÒâµÄÊÇ£¬ Èç¹ûÐ޸ĵÄÎļþµÄ·¾¶Öаüº¬Ï»®Ïß (_) ×Ö·û£¬ ÔòÔÚ²¹¶¡ÎļþÃûÖÐӦʹÓÃÁ½¸öÏ»®ÏßÀ´´úÌæ¡£ ÀýÈ磬 Èç¹ûÐèÒªÐÞ¸ÄÃûΪ src/freeglut_joystick.c µÄÎļþ£¬ ²¹¶¡ÎļþµÄÃû×ÖӦΪ patch-src-freeglut__joystick.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:261
²¢¶ÔÓ¦ configure.in À´ÖÆ×÷ diff¡£
¡¡¡¡ÁíÍ⣬ Äú»¹Ó¦¾¡Á¿¼õÉÙ²¹¶¡Öзǹ¦ÄÜÐԵĿոñ¼°¿Õ°×±ä¶¯¡£ ÔÚ¿ªÔ´ÊÀ½çÖУ¬ ×ñѲ»Í¬µÄ±àÂë¹æ·¶µÄÏîÄ¿¹²Ïí´óÁ¿´úÂëÊǺܳ£¼ûµÄÊÂÇé¡£ Èç¹ûÄú´Óij¸öÏîÄ¿ÖÐÌáȡһ²¿·Ö¹¦ÄÜÓÃÀ´ÐÞÕýÁíÒ»¸ö³ÌÐòÖеÄÎÊÌâʱ£¬ ÇëÎñ±ØÐ¡ÐÄ£º ²¹¶¡ÖкܿÉÄܵ½´¦¶¼ÊǷǹ¦ÄÜÐԵı䶯ÐС£ Õâ²»½ö»áµ¼Ö CVS ¿âµÄÅòÕÍ£¬ ¶øÇÒÒ²»áÈõ¼ÖÂÎÊÌâµÄ¹ÊÕϵ㣬 ÒÔ¼°Äúµ½µ×ÐÞ¸ÄÁËʲô±äµÃ²»ÉõÇåÎú¡£
¡¡¡¡¼ÙÈçÐèҪɾ³ýÎļþ£¬ ÔòÓ¦ÔÚ 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
¡¡¡¡Èç¹ûÏ£Íûת»»Ò»ÏµÁÐĿ¼ÖеÄÒ»×éÎļþ£¬ Ò²¿ÉÒÔʹÓà DOS2UNIX_REGEX¡£ ËüµÄ²ÎÊýÊÇÓë find ¼æÈݵÄÕýÔò±í´ïʽ¡£ ¹ØÓÚÕâÖÖ¸ñʽµÄ˵Ã÷£¬ Çë²ÎÔÄ re_format(7)¡£ Õâ¸öÑ¡Ïî¶Ôת»»ËùÓÐÖ¸¶¨À©Õ¹ÃûµÄÎļþ£¬ ÀýÈçֻת»»Ô´´úÂëÎļþÕâÑùµÄÓ¦Ó÷dz£ÓÐÓãº
USE_DOS2UNIX= yes DOS2UNIX_REGEX= .*\.(c|cpp|h)
¡¡¡¡Èç¹ûÄúÏ£Íû»ùÓÚÏÖ´æµÄÎļþ´´½¨²¹¶¡£¬ ¿ÉÒÔ°ÑÎļþ¸´ÖÆÎª´ø .orig À©Õ¹ÃûµÄÃû×Ö£¬ È»ºóÐÞ¸ÄÔÎļþ¡£ È»ºóʹÓà makepatch Ä¿±ê¸ù¾ÝÐÞ¸ÄÔÚ port µÄ files Ŀ¼ÖÐÉú³É²¹¶¡Îļþ¡£
¡¡¡¡°ÑÈκθ½¼ÓµÄÅäÖÃÃüÁî¼Ó½øÄúµÄ 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 µÄ°æ±¾ºÅ¡£
¡¡¡¡PORTEREVISION ±äÁ¿ÊÇÒ»¸öµ¥µ÷µÝÔöµÄÖµ£¬ Èç¹û²»Îª 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 ÖС£
¡¡¡¡ÓÐʱ£¬ ÔÚ ports Ì×¼þÖпÉÄÜ»á´æÔÚͬһ³ÌÐòµÄ¶à¸ö°æ±¾¡£ Ë÷ÒýºÍÔ¤±àÒë°üµÄÁª±àϵͳ¶¼ÐèÒªÄܹ»½«ËüÃÇÊÓΪ²»Í¬µÄÈí¼þ°ü£¬ ¾¡¹ÜÆä PORTNAME¡¢ PKGNAMEPREFIX£¬ ÒÔ¼° even PKGNAMESUFFIX ¿ÉÄÜÊÇһģһÑùµÄ¡£ Óöµ½ÕâÖÖÇé¿öʱ£¬ ¾ÍÐèÒª½«³ýÁË ¡°Ö÷¡± port Ö®ÍâµÄÆäËû port ÖÐµÄ LATEST_LINK ±äÁ¿ÉèΪ²»Í¬µÄÖµ ©¤©¤ Çë²Î¼û editors/vim5 ºÍ editors/vim port£¬ ÒÔ¼° www/apache* ϵÁУ¬ ÒÔÁ˽âËüµÄÓ÷¨¡£ ÐèҪעÒâµÄÊÇ£¬ ÈçºÎÈ·¶¨ ¡°Ö÷¡± °æ±¾ ©¤©¤ ¡°×îÁ÷ÐС±¡¢ ¡°ÊÜÖ§³Ö×îºÃ¡±£¬ ¡°±ä¶¯×îÉÙ¡±£¬ µÈµÈ ©¤©¤ ÒѾ³¬¹ýÁ˱¾ÊéÄܹ»¸ø³öµÄ½¨Ò鷶Χ£» ÕâÀïÖ»ÊÇÏòÄú½éÉÜÔÚÑ¡¶¨ÁËÒ»¸ö ¡°Ö÷¡± port Ö®ºóÈçºÎÖ¸¶¨ÆäËû port µÄ°æ±¾¡£
¡¡¡¡ÒÔÏÂÊÇÄúÔÚÃüÃûÄúµÄ°üʱӦµ±×ñÊØµÄ¹æÔò¡£ Õ⽫ʹµÃÎÒÃǷŰüµÄĿ¼¸üÀûÓÚä¯ÀÀ£¬ ÒòΪÎÒÃÇÒѾÓÐÊýÒÔÍò¼ÆµÄ°üÁË£¬ Èç¹ûÓû§¾õµÃ²é¿´°üÃûºÜÀ§Äѵϰ£¬ ËûÃÇ»áºÜ¿ì×ß¿ªµÄ¡£
¡¡¡¡Ò»¸ö°üµÄÃû×ÖÓ¦¸Ã¿´ÆðÀ´ÏñÕâÑù£º [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¡£
È·ÈÏ port µÄÃû×ֺͰ汾֮¼äÓÐÇåÎúµÄ·Ö¸ô£¬ ²¢·ÅÈë PORTNAME ºÍ PORTVERSION ±äÁ¿¡£ ÔÚ PORTNAME Öаüº¬°æ±¾²¿·ÖµÄΨһÀíÓÉÊÇÉÏÓÎÈí¼þ°üÕæµÄ²ÉÓÃÕâÑùµÄÃüÃû·½Ê½£¬ ÀàËÆ textproc/libxml2 »ò japanese/kinput2-freewnn port ÕâÑù¡£ ·ñÔò£¬ ÔÚ PORTNAME ÖоͲ»Ó¦°üº¬Èκΰ汾ÐÅÏ¢¡£ Ðí¶à port ²ÉÓÃͬÑùµÄ PORTNAME Ãû×ÖÊǺÜÕý³£µÄ£¬ www/apache* port ±ãÊÇÈç´Ë£» ÔÚÕâÖÖÇé¿öÏ£¬ ²»Í¬µÄ°æ±¾ (ÒÔ¼°²»Í¬µÄË÷ÒýÏî) ÊÇÓÉ PKGNAMEPREFIX¡¢ PKGNAMESUFFIX£¬ ÒÔ¼° LATEST_LINK µÄÖµµÄ²»Í¬¶øÓÐËùÇø±ðµÄ¡£
Èç¹û 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 | ûʲôÐèÒªÐÞ¸ÄµÄ |
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 Ïà¹ØµÄÈí¼þ¡£ | ||
docs* | ÓÐ¹Ø FreeBSD ÎĵµµÄ Meta-ports¡£ | ||
editors | ͨÓÃ±à¼Æ÷¡£ | ÓÐÌØÊâÓÃ;µÄ±à¼Æ÷Ó¦¸Ã±»ÖÃÓÚÏàÓ¦µÄ·ÖÀàÖÐ (±ÈÈ磬 Êýѧ-·½³Ìʽ ±à¼Æ÷Ó¦¸Ã·ÅÔÚ math ·ÖÀàÀï¡£ | |
elisp* | Emacs-lispÏà¹ØµÄport¡£ | ||
emulators | ÆäËü²Ù×÷ϵͳµÄÄ£ÄâÆ÷¡£ | ÖÕ¶ËÄ£ÄâÆ÷ ²»Ó¦¸Ã ÊôÓÚÕâ¸ö·ÖÀà ©¤©¤ »ùÓÚ X µÄÓ¦¸Ã·ÅÔÚ x11 ¶ø»ùÓÚÎı¾Ä£Ê½µÄÓ¦¸Ã·Åµ½ comms »ò misc ÖÐÈ¥£¬ È¡¾öÓÚ¾ßÌåµÄ¹¦ÄÜ¡£ | |
finance | »õ±Ò¡¢ ½ðÈÚÒÔ¼°Ïà¹ØµÄÓ¦ÓóÌÐò¡£ | ||
french | ·¨ÓïÓïÑÔÖ§³Ö¡£ | ||
ftp | FTP ¿Í»§¶ËºÍ·þÎñÆ÷¶ËµÄ³ÌÐò¡£ | Èç¹ûÄúµÄ port ͬʱ֧³Ö FTP ºÍ HTTP µÄ»°£¬ °ÑËü·Å½ø ftp ²¢°Ñ www ×öΪµÚ¶þ·ÖÀà¡£ | |
games | ÓÎÏ·¡£ | ||
geography* | ÓëµØÀíѧÓйصÄÈí¼þ¡£ | ||
german | µÂÓïÓïÑÔÖ§³Ö¡£ | ||
gnome* | ¹ØÓÚ GNOME ÏîÄ¿µÄÖ§³Ö¡£ | ||
gnustep* | Óë GNUstep ×ÀÃæ»·¾³ÓйصÄÈí¼þ¡£ | ||
graphics | ͼÐÎͼÏó³ÌÐò¡£ | ||
hamradio* | ÒµÓàÎÞÏߵ簮ºÃÕßʹÓõÄÈí¼þ¡£ | ||
haskell* | ÓÐ¹Ø Haskell ±à³ÌÓïÑÔµÄÈí¼þ¡£ | ||
hebrew | Ï£²®À´ÓïÓïÑÔÖ§³Ö¡£ | ||
hungarian | ÐÙÑÀÀûÓïÓïÑÔÖ§³Ö¡£ | ||
ipv6* | IPv6 Ïà¹ØÈí¼þ¡£ | ||
irc | IRC Ïà¹Ø³ÌÐò | ||
japanese | ÈÕÓïÓïÑÔÖ§³Ö¡£ | ||
java | Óë Java" ±à³ÌÓïÑÔÓйصÄÈí¼þ¡£ | java ·ÖÀà¶Ô port ¶øÑÔ²»Ó¦ÊÇÆäΨһµÄ·ÖÀà¡£ ³ýÁËÖ±½ÓÓë Java ÓïÑÔÏà¹ØµÄ port Ö®Í⣬ ¿ª·¢ÈËÔ±Ó¦¾¡Á¿±ÜÃâʹÓà java ×÷Ϊ port µÄÖ÷·ÖÀà¡£ | |
kde* | K ×ÀÃæ»·¾³ (KDE) Ïà¹ØµÄÈí¼þ¡£ | ||
kld* | ¿É¼ÓÔØÄÚºËÄ£¿é¡£ | ||
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 | ²¨À¼ÓïÓïÑÔÓïÑÔÖ§³Ö¡£ | ||
ports-mgmt | ÓÃÓÚ¹ÜÀí¡¢ °²×°ºÍ¿ª·¢ FreeBSD ports ºÍÔ¤±àÒë°üµÄ port¡£ | ||
portuguese | ÆÏÌÑÑÀÓïÓïÑÔÖ§³Ö¡£ | ||
´òÓ¡Ïà¹ØµÄÈí¼þ¡£ | ×ÀÃæ³ö°æ¹¤¾ß (´òÓ¡Ô¤ÀÀ¹¤¾ßµÈµÈ) Ò²¿ÉÒÔ·ÅÔÚ´Ë·ÖÀàÀï¡£ | ||
python* | Python ±à³ÌÓïÑÔÏà¹ØµÄÈí¼þ¡£ | ||
ruby* | Ruby ±à³ÌÓïÑÔÏà¹ØµÄÈí¼þ¡£ | ||
rubygems* | ÒÆÖ²°æ±¾µÄ RubyGems Èí¼þ°ü¡£ | ||
russian | ¶íÓïÓïÑÔÖ§³Ö¡£ | ||
scheme* | Óë Scheme ÓïÑÔÓÐ¹ØµÄ port¡£ | ||
science | ¿ÆÑ§Ïà¹Øµ«²»ÊʺϷÅÔÚ astro¡¢ biology£¬ ÒÔ¼° math ·ÖÀàµÄ port¡£ | ||
security | °²È«Ïà¹ØµÄʵÓóÌÐò¡£ | ||
shells | ÃüÁîÐÐ shell¡£ | ||
spanish* | Î÷°àÑÀÓïÖ§³Ö | ||
sysutils | ϵͳÏà¹ØµÄʵÓóÌÐò¡£ | ||
tcl* | ÒÀÀµÓÚ Tcl ÔËÐÐµÄ port¡£ | ||
textproc | Îı¾´¦ÀíµÄʵÓóÌÐò¡£ | Õâ¸ö·ÖÀಢ²»ÊʺÏÓÚÄÇЩӦ¸Ã·Åµ½ print µÄ×ÀÃæ³ö°æ¹¤¾ß¡£ | |
tk* | ÒÀÀµÓÚ Tk ÔËÐÐµÄ 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-drivers | 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 Ò»Àà¡£
ÐèÒª°²×°¿É¼ÓÔØÄÚºËÄ£¿éµÄ port Ó¦ÔÚÆä CATEGORIES ÖйéÈëÐéÄâ·ÖÀà kld¡£
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 À´×¥È¡ËùÖ¸¶¨µÄÔ´Âë°üÎļþ£¬ Èç¹ûÎÞ·¨ÔÚ±¾µØÏµÍ³ÖÐÕÒµ½ÕâЩÎļþµÄ»°¡£
¡¡¡¡½¨ÒéÄúÖ¸¶¨¶à¸ö¾µÏñÕ¾µã£¬ ×îºÃÊÇÔÚ²»Í¬µÄ´óÖÞÉϵġ£ ÕâÑù½«ÓÐЧµØ·ÀÖ¹ÓÉÓÚ´ó·¶Î§ÍøÂçÎÊÌâËùµ¼ÖÂÎÞ·¨ÏÂÔØµÄÎÊÌâ¡£ ÎÒÃÇÉõÖÁ´òËãÔö¼Ó×Ô¶¯¼ì²â¾àÀë×î½üµÄÕ¾µã²¢´ÓÄÇÀïÏÂÔØµÄ¹¦ÄÜ£» ʹÓöà¸öÕ¾µãÊÇÕâÑù×öµÄÖØÒªÒ»²½¡£
¡¡¡¡Èç¹ûÔʼµÄÔ´Âë°ü¿ÉÒԴӱȽÏÁ÷ÐеÄÈí¼þÏÂÔØÕ¾µã£¬ ÀýÈç SourceForge¡¢ GNU »òÊÇ Perl CPAN µÈµÈÀ´»ñµÃ£¬ Äú¿ÉÄÜ»áÏ£ÍûʹÓÃÀàËÆ MASTER_SITE_* ÕâÑùµÄËõдÀ´±íʾËüÃÇ (ÀýÈç MASTER_SITE_SOURCEFORGE¡¢ MASTER_SITE_GNU ÒÔ¼° MASTER_SITE_PERL_CPAN)¡£ Ö»Ð轫 MASTER_SITES ÉèΪÕâЩ±äÁ¿£¬ ²¢Ê¹Óà MASTER_SITE_SUBDIR À´Ö¸¶¨Â·¾¶¾Í¿ÉÒÔÁË¡£ ÏÂÃæÊÇÒ»¸öÀý×Ó£º
MASTER_SITES= ${MASTER_SITE_GNU} MASTER_SITE_SUBDIR= make
¡¡¡¡´ËÍ⣬ Äú»¹¿ÉÒÔÓøüΪ¼òÂԵĸñʽ£º
MASTER_SITES= GNU/make
¡¡¡¡ÕâЩ±äÁ¿ÊÇÔÚ /usr/ports/Mk/bsd.sites.mk Öж¨ÒåµÄ¡£ ÐÂÏîÄ¿»áËæÊ±Ôö¼Ó£¬ Òò´ËÔÚÄúÌá½» port ֮ǰ£¬ Ó¦ÏÈ¿´Ò»¿´Õâ¸öÎļþµÄ×îа汾¡£
¡¡¡¡Õë¶Ô³£ÓÃÈí¼þÏÂÔØÕ¾µÄÐí¶à °µºÚħ·¨ ºê£¬ »¹Äܹ»×Ô¶¯ÅжÏĿ¼µÄ½á¹¹¡£ ¶ÔÓÚÕâЩվµã£¬ ֻҪʹÓÃÓëÖ®¶ÔÓ¦µÄËõд£¬ ϵͳ±ã»á×Ô¶¯ÎªÄúÉú³ÉÏà¹ØµÄ×ÓĿ¼ÅäÖá£
MASTER_SITES= SF
¡¡¡¡Èç¹ûϵͳ²Â²âµÄ·¾¶²»¶Ô£¬ Ôò¿ÉÒÔʹÓÃÏÂÃæÕâÑùµÄÅäÖÃÀ´Ìæ»»¡£
MASTER_SITES= SF/stardict/WyabdcRealPeopleTTS/${PORTVERSION}
±í 5-1. ³£ÓõÄħÊõ MASTER_SITES ºê
ºê | ×Ô¶¯²Â²âµÄ×ÓĿ¼ |
---|---|
APACHE_JAKARTA | /dist/jakarta/${PORTNAME:S,-,,/,}/source |
BERLIOS | /${PORTNAME:L} |
CHEESESHOP | /packages/source/source/${DISTNAME:C/(.).*/\1/}/${DISTNAME:C/(.*)-[0-9].*/\1/} |
DEBIAN | /debian/pool/main/${PORTNAME:C/^((lib)?.).*$/\1/}/${PORTNAME} |
GCC | /pub/gcc/releases/${DISTNAME} |
GNOME | /pub/GNOME/sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/} |
GNU | /gnu/${PORTNAME} |
MOZDEV | /pub/mozdev/${PORTNAME:L} |
PERL_CPAN | /pub/CPAN/modules/by-module/${PORTNAME:C/-.*//} |
PYTHON | /ftp/python/${PYTHON_PORTVERSION:C/rc[0-9]//} |
RUBYFORGE | /${PORTNAME:L} |
SAVANNAH | /${PORTNAME:L} |
SF | /project/${PORTNAME:L}/${PORTNAME:L}/${PORTVERSION} |
¡¡¡¡Èç¹ûÄúÓÐÒ»¸öÔ´Âë°üÎļþ£¬ ¶øËüʹÓÃÁË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 ÕâÐÐÏÞÖÆÔÚ 60 ¸ö×Ö·ûÖ®ÄÚ£¬ ÒòΪÕâÐÐÄÚÈÝ»á³ÉΪ pkg_info(1) ³ÊÏÖ¸øÓû§µÄ port µÄÒ»¾ä»°¼ò½é¡£
¡¡¡¡Ðí¶à ports »áÒÀÀµÆäËü port¡£ ÕâÊǰüÀ¨ FreeBSD ÔÚÄڵĶàÊý Àà-Unix ϵͳµÄºÜ·½±ãµÄ¹¦ÄÜ¡£ ÕâÏÄÜ£¬ ¿ÉÒÔ±ÜÃâÔÚÿ¸ö 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 \ xmlcatmgr:${PORTSDIR}/textproc/xmlcatmgr
¡¡¡¡½«¼ì²éÎļþ£¬ »òÕßĿ¼ /usr/local/etc/innd ÊÇ·ñ´æÔÚ£¬ Èç¹ûÕÒ²»µ½£¬ Ôò½«´Ó port Ŀ¼µÄ news/inn ×ÓĿ¼¼ÓÒÔ°²×°¡£ ϵͳҲ»á¼ì²éÊÇ·ñÄܹ»ÔÚËÑË÷·¾¶ÖÐÕÒµ½ÃûΪ xmlcatmgr µÄÎļþ£¬ Èç¹ûÕÒ²»µ½µÄ»°£¬ Ôò»á½øÈë ports Ŀ¼ÖÐµÄ textproc/xmlcatmgr ×ÓĿ¼£¬ ²¢½øÐÐÁª±àºÍ°²×°µÄ²Ù×÷¡£
×¢Òâ: ÕâÖÖÇé¿öÏ£¬ 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 Ïàͬ£¬ Ôò¿ÉÒÔÂÔÈ¥²»Ð´¡£
¡¡¡¡Ò»ÖֱȽϳ£¼ûµÄÇéÐÎÊÇ RUN_DEPENDS ºÍ BUILD_DEPENDS ÍêȫһÑù£¬ ÕâÖÖÇé¿öÔÚÒÆÖ²µÄÈí¼þÊDzÉÓýű¾ÓïÑÔÊéд£¬ »òÁª±à»·¾³ÓëÔËÐл·¾³ÐèÇóÏàͬʱÓÈÆäÆÕ±é¡£ ÕâÖÖÇé¿ö¿ÉÒÔÓÃÏÂÃæ¼òµ¥Ã÷Á˵ķ½Ê½Ö±½Ó½«ÆäÖÐÒ»¸ö±äÁ¿¸³Öµ¸øÁíÒ»¸ö±äÁ¿£º
RUN_DEPENDS= ${BUILD_DEPENDS}
¡¡¡¡²»¹ý£¬ ÕâÖÖ¸³ÖµÓпÉÄÜ»áÁîÔËÐл·¾³±»Ä³Ð©Ã»ÓÐÔÚ port Ô±¾µÄ BUILD_DEPENDS Ã÷È·¶¨ÒåµÄÒÀÀµ¹ØÏµÎÛȾ¡£ µ¼ÖÂÕâÖÖÇé¿öµÄÔÒòÊÇ make(1) ¼ÆËã±äÁ¿¸³ÖµÊ±Ä¬ÈϲÉÓõÄÊÇÑÓºó¼ÆËã (lazy evaluation)¡£ ÀýÈ磬 Èç¹ûÔÚ Makefile ÖÐʹÓÃÁË USE_* ±äÁ¿£¬ ÕâЩ±äÁ¿¾Í»áÓÉ ports/Mk/bsd.*.mk ´¦Àí£¬ ²¢ÌîдÓëÖ®¶ÔÓ¦µÄÁª±àÒÀÀµ¹ØÏµ¡£ ÀýÈ磬 USE_GMAKE=yes »á°Ñ devel/gmake ¼ÓÈëµ½ BUILD_DEPENDS¡£ Èç¹ûÏ£Íû±ÜÃâÕâЩ¸½¼ÓµÄÒÀÀµ¹ØÏµÎÛȾ RUN_DEPENDS£¬ ÔÚʹÓø³ÖµµÄʱºò¾ÍÐèҪСÐÄ¿¼ÂÇÕâÀàÀ©Õ¹µÄÇé¿ö£¬ ÀýÈ磬 ¿ÉÒÔÔÚ¸³ÖµÕ¹¿ªÖ®Ç°¸´ÖƱäÁ¿µÄÖµ£º
RUN_DEPENDS:= ${BUILD_DEPENDS}
¡¡¡¡´Ë±äÁ¿ÓÃÓÚÖ¸¶¨ÓÃÀ´Áª±à 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.7 ½Ú Ëù½éÉÜµÄ 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 µÄ Makefile ¸´ÔÓÐÔ¡£ ÕâЩ±äÁ¿µÄ¹²Í¬ÌØÕ÷ÔÚÓÚ£¬ ËüÃǵÄÃû×Ö¶¼ÊÇ USE_* ÕâÑùµÄÐÎʽ¡£ ÕâЩ±äÁ¿µÄʹÓ㬠ӦÑϸñÏÞÖÆÓÚ port µÄ Makefile ÒÔ¼° ports/Mk/bsd.*.mk£¬ ¶ø¾ø²»Ó¦ÓÃÓÚ±í´ïÓû§Äܹ»ÉèÖõÄÑ¡Ïî ©¤©¤ ÕâÖÖÇé¿öÏÂÓ¦²ÉÓà WITH_* ºÍ WITHOUT_* ÕâÑùµÄ±äÁ¿¡£
×¢Òâ: ÔÚ ÈκΠÇé¿öÏ£¬ ¶¼²»Ó¦ÔÚ /etc/make.conf ÖÐÅäÖÃÈκΠUSE_*¡£ ÀýÈ磬 ÉèÖÃ
USE_GCC=3.4½«µ¼ÖÂÿ¸ö port ¶¼ÒÀÀµ gcc34£¬ ÉõÖÁ°üÀ¨ gcc34 ±¾Éí£¡
±í 5-2. ³£ÓÃµÄ USE_* ±äÁ¿
±äÁ¿ | º¬Òå |
---|---|
USE_BZIP2 | ´Ë port µÄÔ´Âë°üÊÇʹÓà bzip2 ѹËõµÄ¡£ |
USE_ZIP | ´Ë port µÄÔ´Âë°üÊÇÓà zip ѹËõµÄ¡£ |
USE_BISON | ´Ë port ÔÚÁª±àʱʹÓà bison¡£ |
USE_CDRTOOLS | ´Ë port ÐèҪʹÓà cdrecord£¬ ¸ù¾ÝÓû§µÄϲºÃ£¬ ¿ÉÄÜÊÇ sysutils/cdrtools »ò sysutils/cdrtools-cjk¡£ |
USE_GCC | ´Ë port ÐèҪʹÓÃÄ³Ò»ÌØ¶¨°æ±¾µÄ gcc ²ÅÄÜÍê³É±àÒë¡£ ¿ÉÒÔʹÓÃÀàËÆ 3.4 ÕâÑùµÄÖµÀ´¾«È·Ö¸¶¨°æ±¾¡£ Èç¹ûÏ£ÍûʹÓò»µÍÓÚijһ°æ±¾µÄ±àÒëÆ÷£¬ Ôò¿ÉÒÔÓà 3.4+ ÕâÑùµÄÐÎʽ¡£ Èç¹ûÓëËùÏ£ÍûµÄ°æ±¾ÎǺϣ¬ Ôò½«Ê¹Óûù±¾ÏµÍ³ÖÐËùÌṩµÄ gcc£¬ ·´Ö®£¬ ϵͳ»á´Ó ports Öа²×°ËùÏ£Íû°æ±¾µÄ gcc£¬ ²¢µ÷Õû CC ÒÔ¼° CXX ±äÁ¿µÄÉèÖᣠ|
¡¡¡¡Óë gmake ºÍ configure ½Å±¾ÓйصıäÁ¿ÔÚ µÚ 6.3 ½Ú ÖнøÐÐÁ˽éÉÜ£¬ ¶ø autoconf¡¢ automake ÒÔ¼° libtool µÄ½éÉÜÔò¿ÉÒÔÔÚ µÚ 6.4 ½Ú ÕÒµ½¡£ µÚ 6.6 ½Ú ½éÉÜÁËÓë Perl ÓйصĵıäÁ¿¡£ µÚ 6.7 ½Ú ÖÐÁгöÁ˹ØÓÚ X11 µÄ±äÁ¿¡£ ¹ØÓÚ GNOME µÄ±äÁ¿ÔÚ µÚ 6.8 ½Ú£¬ ¶ø¹ØÓÚ KDE µÄÔòÔÚ µÚ 6.10 ½Ú¡£ µÚ 6.11 ½Ú ½²ÊöÁËºÍ Java ÓйصıäÁ¿£¬ ¶ø µÚ 6.12 ½Ú Ôò°üº¬Á˹ØÓÚ Apache¡¢ PHP ÒÔ¼° PEAR µÄ½éÉÜÐÔÐÅÏ¢¡£ ¹ØÓÚ Python£¬ ÔÚ µÚ 6.13 ½Ú ½øÐÐÁËÌÖÂÛ£¬ ¶ø¹ØÓÚ Ruby µÄ½éÉÜ£¬ Ôò¿ÉÒÔÔÚ µÚ 6.16 ½Ú ÖÐÕÒµ½¡£ µÚ 6.17 ½Ú ÌṩÁËÓÃÓÚ SDL Ó¦ÓóÌÐòµÄ±äÁ¿½éÉÜ£¬ ×îºó£¬ µÚ 6.20 ½Ú °üº¬Á˹ØÓÚ Xfce µÄÐÅÏ¢¡£
¡¡¡¡ÔÚÒÀÀµÄ³¸öÆäËû port ʱ£¬ ¿ÉÒÔ²ÉÓÃÏÂÃæµÄ¾ä·¨£¬ ͨ¹ý³ý LIB_DEPENDS Ö®ÍâµÄ *_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 ²¢½«Æä½âѹËõ¡£
ÖØÒª: ²»ÒªÔÚ ports tree ÖÐÒýÈëÈκÎÑ»·ÒÀÀµ¹ØÏµ!
¡¡¡¡ports Áª±à¼¼Êõ²»Äܹ»ÈÝÈÌÑ»·ÒÀÀµ¹ØÏµ¡£ Èç¹ûÄúÒýÈëÁËÕâÑùµÄ¹ØÏµ£¬ ¾ÍÒ»¶¨»áÓÐÈ˰²×°µÄ FreeBSD »áÒò´Ë¶øË𻵣¬ ¶øÇÒÕâÖÖÏÖÏó»áÔ½À´Ô½¶à¡£ ÕâЩÇéÐκÜÄѼì²â£» Èç¹ûÓÐÒÉÂÇ£¬ ÔÚ½øÐÐÕâÑùµÄÐÞ¸Ä֮ǰ£¬ Îñ±ØÖ´ÐУº cd /usr/ports; make index¡£ Õâ¸ö¹ý³ÌÔھɵĻúÆ÷ÉÏ»áºÜÂý£¬ µ«Äܹ»ÈôóÁ¿µÄÓû§ ©¤©¤ Ò²°üÀ¨Äú×Ô¼º ©¤©¤ Õü¾ÈÓÚÓÉÕâÖÖÎÊÌâËùÔì³ÉµÄÀ§»óÖ®ÖС£
¡¡¡¡Èç¹û port ÐèÒªÒÀijЩ±äÁ¿µÄÉèÖà (¾ÙÀýÀ´Ëµ£¬ ·Ö±æÂÊ»òÖ½ÐÍ) À´Áª±àÂÔÓв»Í¬µÄÔ¤±àÒë°ü£¬ Ôò¿ÉÒÔΪÿһ¸öÕâÑùµÄ°ü½¨Á¢²»Í¬µÄĿ¼£¬ ÕâÑù¿ÉÒÔÈÃÓû§¸üÈÝÒ׵ؿ´µ½ËûÃÇÏëÒª°²×°µÄ°æ±¾£¬ µ«ÓÖÄÜÔÚÕâЩ port Ö®¼ä¹²Óþ¡¿ÉÄܶàµÄÎļþ¡£ Ò»°ãÇé¿öÏ£¬ Èç¹ûÔËÓõõ±£¬ ³ýÖ÷Ŀ¼֮Íâ¶¼Ö»ÐèÒªºÜ¶ÌµÄ Makefile¡£ ÕâЩ Makefile ÖУ¬ ¿ÉÒÔÓà MASTERDIR À´Ö¸¶¨ÆäËüÎļþËùÔÚµÄĿ¼¡£ ÁíÍ⣬ »¹Ó¦Ê¹ÓÃÒ»¸ö±äÁ¿×÷Ϊ PKGNAMESUFFIX µÄÒ»²¿·Ö£¬ ÒÔ±ãΪ²»Í¬µÄ°ü¸ø³ö²»Í¬µÄÃüÃû¡£
¡¡¡¡ÓÃÀý×ÓÀ´²ûÊöÕâЩ»á¸üΪÃ÷Îú¡£ ÒÔÏÂÊÇ japanese/xdvi300/Makefile µÄ²¿·Ö´úÂ룺
PORTNAME= xdvi PORTVERSION= 17 PKGNAMEPREFIX= ja- PKGNAMESUFFIX= ${RESOLUTION} : # default RESOLUTION?= 300 .if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \ ${RESOLUTION} != 300 && ${RESOLUTION} != 400 @${ECHO_MSG} "Error: invalid value for RESOLUTION: \"${RESOLUTION}\"" @${ECHO_MSG} "Possible values are: 118, 240, 300 (default) and 400." @${FALSE} .endif
¡¡¡¡japanese/xdvi300 Ò²ÌṩÁËÈ«²¿³£¹æµÄ²¹¶¡£¬ ÒÔ¼°´ò°üÓõ½µÄÎļþµÈµÈÄÚÈÝ¡£ Èç¹ûÄúÔÚÄÇÀïÊäÈë make£¬ Ëü½«Ê¹ÓÃĬÈϵķֱæÂÊÖµ (300) ²¢Õý³£µØÁª±à port¡£
¡¡¡¡¶ÔÓÚÆäËü·Ö±æÂʶøÑÔ£¬ ÒÔÏÂÊÇ ÍêÕûµÄ xdvi118/Makefile£º
RESOLUTION= 118 MASTERDIR= ${.CURDIR}/../xdvi300 .include "${MASTERDIR}/Makefile"
¡¡¡¡(xdvi240/Makefile ºÍ xdvi400/Makefile ÊÇÏàËÆµÄ)¡£ MASTERDIR ¶¨Òå»á¸æËß bsd.port.mk ³£¹æµÄĿ¼£¬ ÀýÈç FILESDIR ÒÔ¼° SCRIPTDIR Ó¦ÔÚ xdvi300 ÖвéÕÒ¡£ RESOLUTION=118 ÕâÐн«¸²¸ÇÔÚ xdvi300/Makefile ÖÐËù×÷µÄ RESOLUTION=300 ÉèÖ㬠´Ó¶ø port ½«ÒÔ·Ö±æÂÊΪ 118 µÄÉèÖÃÀ´Áª±à¡£
¡¡¡¡MAN[1-9LN] ÕâЩ±äÁ¿£¬ »á×Ô¶¯µØ½«Áª»úÊÖ²á¼Óµ½ pkg-plist (ÕâÒ²Òâζ×Å ²»ÄÜ ÔÚ pkg-plist ÖÐÁгöÁª»úÊÖ²á ©¤©¤ ²Î¼û PLIST µÄÉú³É À´Á˽â¸ü¶àϸ½Ú)¡£ ´ËÍ⣬ ÕâÒ²»áÈð²×°½×¶Î×Ô¶¯µØ¸ù¾ÝÔÚ /etc/make.conf ÖÐËù×÷µÄ NO_MANCOMPRESS ÉèÖÃÀ´×Ô¶¯¶ÔÁª»úÊÖ²áÎļþÖ´ÐÐѹËõ»ò½âѹËõ²Ù×÷¡£
¡¡¡¡Èç¹û port ³¢ÊÔͨ¹ýʹÓ÷ûºÅÁ¬½Ó»òÓ²Á¬½Ó½«Áª»úÊֲᰲװΪ¶à¸öÃû×Ö£¬ ¾Í±ØÐëʹÓà MLINKS ±äÁ¿À´ÓèÒÔÃ÷ʾ¡£ ÓÉ port ´´½¨µÄÁ¬½Ó£¬ ½«ÓÉ bsd.port.mk ɾ³ýºÍÖØ½¨£¬ ÒÔÈ·ÈÏËüÃÇÖ¸ÏòÁËÕýÈ·µÄÎļþ¡£ ÈκÎÔÚ MLINKS ÖÐÁгöµÄÎļþ¶¼²»Ó¦ÔÚ pkg-plist ÖÐÔÙ³öÏÖ¡£
¡¡¡¡ÒªÖ¸¶¨ÊÇ·ñÔÚ°²×°Ê±¶ÔÁª»úÊÖ²á½øÐÐѹËõ£¬ ¿ÉÒÔʹÓà MANCOMPRESSED ±äÁ¿¡£ ÕâÒ»±äÁ¿¿ÉÒÔÈ¡ÈýÖÖÖµ£¬ yes¡¢ no ºÍ maybe Ö®Ò»¡£ yes ±íʾÁª»úÊÖ²áÒѾÒÔѹËõµÄÐÎʽ°²×°£¬ no ±íʾ»¹Ã»ÓУ¬ ¶ø maybe Ôò±íʾËù°²×°µÄÈí¼þ»á×ðÖØ NO_MANCOMPRESS µÄÉèÖÃÖµ£¬ Òò´Ë bsd.port.mk ²»ÐèÒªÌØ±ð×öʲôÊÂÇé¡£
¡¡¡¡Èç¹ûÉèÖÃÁË USE_IMAKE ¶øÎ´¶¨Òå NO_INSTALL_MANPAGES£¬ MANCOMPRESSED »á×Ô¶¯ÉèΪ yes£¬ ·´Ö®ÔòÊÇ no¡£ ³ý·ÇĬÈÏÖµ²»ºÏÊÊ£¬ ·ñÔò¾Í²»ÐèÒªÔÚ port ÖÐÃ÷È·µØ¼ÓÒԸı䡣
¡¡¡¡Èç¹û port ½«Áª»úÊÖ²á·Åµ½ÁË MANPREFIX Ö®ÍâµÄÆäËüĿ¼£¬ ÔòӦʹÓà MANPREFIX À´¼ÓÒÔÉèÖᣠ´ËÍ⣬ Èç¹ûÖ»ÓÐijЩ²¿·ÖµÄÁª»úÊÖ²á»á°²×°µ½²»±ê×¼µÄλÖ㬠ÀýÈçijЩ perl Ä£¿éµÄ port£¬ »¹¿ÉÒÔʹÓà MANsectPREFIX (´Ë´¦ sect ÊÇ 1-9¡¢ L »ò N Ö®Ò») À´Ö¸¶¨¡£
¡¡¡¡Èç¹ûÄúµÄÁª»úÊÖ²áÐèҪװÈëרÓÃÓÚijһÓïÑÔרÓõÄ×ÓĿ¼£¬ ÐèÒª½« MANLANG ÉèΪÄÇÖÖÓïÑÔµÄÃû×Ö¡£ ´Ë±äÁ¿µÄĬÈÏÖµÊÇ "" (Ò²¾ÍÊÇÖ»ÓÐÓ¢Óï)¡£
¡¡¡¡ÏÂÃæÊÇÒ»¸ö×ۺϵÄÀý×Ó¡£
MAN1= foo.1 MAN3= bar.3 MAN4= baz.4 MLINKS= foo.1 alt-name.8 MANLANG= "" ja MAN3PREFIX= ${PREFIX}/share/foobar MANCOMPRESSED= yes
¡¡¡¡Õâ±íʾ port »á°²×°Áù¸öÎļþ£»
${MANPREFIX}/man/man1/foo.1.gz ${MANPREFIX}/man/ja/man1/foo.1.gz ${PREFIX}/share/foobar/man/man3/bar.3.gz ${PREFIX}/share/foobar/man/ja/man3/bar.3.gz ${MANPREFIX}/man/man4/baz.4.gz ${MANPREFIX}/man/ja/man4/baz.4.gz
¡¡¡¡´ËÍ⣬ ${MANPREFIX}/man/man8/alt-name.8.gz ¿ÉÄÜ»áͨ¹ýÄúµÄ port °²×°£¬ Ò²¿ÉÄܲ»»á¡£ ÎÞÂÛÈçºÎ£¬ ¶¼»á´´½¨Ò»¸ö·ûºÅÁ¬½Ó£¬ °Ñ foo(1) ºÍ alt-name(8) Áª»úÊÖ²áÁ¬ÆðÀ´¡£
¡¡¡¡¼ÙÈçÖ»Óв¿·ÖÁª»úÊÖ²áÊÇ·Òë¹ýµÄ£¬ Ôò¿ÉÒÔʹÓÃһЩ¸ù¾Ý MANLANG ÄÚÈݶ¯Ì¬Éú³ÉµÄ±äÁ¿£º
MANLANG= "" de ja MAN1= foo.1 MAN1_EN= bar.1 MAN3_DE= baz.3
¡¡¡¡ÕâÏ൱ÓÚÏÂÁÐÎļþ£º
${MANPREFIX}/man/man1/foo.1.gz ${MANPREFIX}/man/de/man1/foo.1.gz ${MANPREFIX}/man/ja/man1/foo.1.gz ${MANPREFIX}/man/man1/bar.1.gz ${MANPREFIX}/man/de/man3/baz.3.gz
¡¡¡¡Èç¹ûÈí¼þ°üÐèÒª°²×° GNU info Îļþ£¬ ÔòÐèÒªÔÚ INFO ±äÁ¿ÖÐÒ»Ò»Áгö (²»ÐèÒªÖ¸¶¨ .info ºó׺)¡£ ϵͳ¼Ù¶¨ÕâЩÎļþ¾ù»á°²×°µ½ PREFIX/INFO_PATH Ŀ¼ÖС£ Èç¹ûÈí¼þ°üÓÐÐèÒª£¬ Ò²¿ÉÒÔͨ¹ýÐÞ¸Ä INFO_PATH À´Ö¸¶¨²»Í¬µÄλÖᣠ²»¹ý£¬ ²¢²»ÍƼöÕâÑù×ö¡£ ËùÓÐÁгöµÄÏîÄ¿¾ùÊÇÏà¶ÔÓÚ PREFIX/INFO_PATH µÄÎļþ·¾¶¡£ ÀýÈ磬 lang/gcc34 ±íʾ½« info Îļþ°²×°µ½ PREFIX/INFO_PATH/gcc34£¬ Òò´Ë INFO Ӧд³ÉÀàËÆÕâÑù£º
INFO= gcc34/cpp gcc34/cppinternals gcc34/g77 ...ÕâÑù°²×°/Ð¶ÔØ´úÂë¾Í»á×Ô¶¯µØÔÚ×¢²á°ü֮ǰ½«ËüÃǼÓÈëµ½ÁÙʱµÄ pkg-plist ÖÐÁË¡£
¡¡¡¡Ä³Ð©´óÐÍÓ¦ÓóÌÐò¿ÉÒÔÔÚÁª±àʱʹÓÃһϵÁÐÅäÖÃÑ¡Ï ÓÃÒÔÔÚϵͳÖÐÒѾ°²×°ÁËijЩ¿â»òÓ¦ÓóÌÐòʱÔö¼ÓһЩ¹¦ÄÜ¡£ ÀýÈ磬 Ñ¡ÔñijÖÖ×ÔÈ» (ÈËÀàµÄ) ÓïÑÔ£¬ GUI »òÃüÁîÐнçÃæ£¬ ÓÉÓÚ²¢²»ÊÇËùÓеÄÓû§¶¼Ï£ÍûʹÓÃÕâЩ¿â»òÕßÓ¦ÓóÌÐò£¬ port ϵͳÌṩÁËÒ»×é·½±ãµÄ»úÖÆ£¬ À´Èà port µÄ×÷Õß¿ØÖÆÁª±àʱµÄÅäÖᣠ֧³ÖÕâÐ©ÌØÐÔ¿ÉÒÔÈÃÓû§ÌåÑé¸üºÃ£¬ ²¢´ïµ½Ê°빦±¶µÄЧ¹û¡£
¡¡¡¡ÕâЩ±äÁ¿ÊÇΪϵͳ¹ÜÀíÔ±×¼±¸µÄ¡£ Ðí¶àÕâÑùµÄ±äÁ¿±»±ê×¼»¯²¢ÖÃÓÚ ports/KNOBS Îļþ¡£
¡¡¡¡ÔÚ´´½¨Ò»¸ö port µÄʱºò£¬²»ÒªÊ¹ÓÃij¸öÓ¦ÓóÌÐòרÓÐµÄ knob Ãû³Æ£¬±ÈÈç¶ÔÓÚ Avahi Õâ¸ö port£¬Ó¦¸ÃÓà WITHOUT_MDNS ¶ø²»ÊÇ WITHOUT_AVAHI_MDNS¡£
×¢Òâ: Äú²»Ó¦¼Ù¶¨Ã¿Ò»¸ö WITH_* ¶¼»áÓжÔÓ¦µÄ WITHOUT_* ±äÁ¿£¬ ·´Ö®ÒàÈ»¡£ Ò»°ã¶øÑÔ£¬ »áʹÓÃĬÈÏÖµ¡£
×¢Òâ: ³ý·ÇÁíÓÐ˵Ã÷£¬ ÕâЩ±äÁ¿¶¼ÊDzâÊÔÊÇ·ñ¶¨Ò壬 ¶ø²»ÊÇËüÃÇÉèÖÃÁË YES »ò NO¡£
±í 5-3. ³£¼ûµÄ WITH_* ºÍ WITHOUT_* ±äÁ¿
±äÁ¿ | ÒâÒå |
---|---|
WITHOUT_NLS | ±íʾ²»ÐèÒª¹ú¼Ê»¯Ö§³Ö£¬ Õâ¿ÉÒÔ½ÚÊ¡±àÒëËùÏûºÄµÄʱ¼ä¡£ ĬÈÏÇé¿öÏ£¬ »áÆôÓùú¼Ê»¯Ö§³Ö¡£ |
WITH_OPENSSL_BASE | ʹÓûù±¾ÏµÍ³ÖÐµÄ OpenSSL °æ±¾¡£ |
WITH_OPENSSL_PORT | ´Ó security/openssl °²×° OpenSSL£¬¼´Ê¹»ù±¾ÏµÍ³Öеİ汾ÊÇ×îеġ£ |
WITHOUT_X11 | Èç¹û port Äܹ»ÔÚÊÇ·ñ°üº¬ X Ö§³ÖµÄÇé¿öÏ·ֱðÁª±à£¬ ÔòÒ»°ãÇé¿öÓ¦¸ÃĬÈÏÒÔ°üº¬ X Ö§³ÖµÄÅäÖÃÀ´Áª±à¡£ Èç¹û¶¨ÒåÁËÕâÒ»±äÁ¿£¬ ÔòÓ¦Áª±à²»°üº¬ X Ö§³ÖµÄ°æ±¾¡£ |
¡¡¡¡ÎÒÃǽ¨Òé port µÄ¿ª·¢ÈËԱʹÓÃÏàËÆµÄ¿ª¹Ø£¬ ÒÔ±ã×îÖÕÓû§Ê¹Ó㬠²¢¼õÉÙ¿ª¹ØÃû³ÆµÄ×ÜÊý¡£ ×îΪ³£ÓõĿª¹ØÃû×Ö¿ÉÒÔÔÚ KNOBS ÎļþÖÐÕÒµ½¡£
¡¡¡¡¿ª¹ØµÄÃû×ÖÓ¦·´Ó³Æä¹¦ÄÜ¡£ Èç¹û port µÄ PORTNAME °üÀ¨ lib- ǰ׺£¬ Ôò¿ª¹ØÃûÖÐӦɾȥ lib- ǰ׺¡£
¡¡¡¡OPTIONS ½«ÎªÕýÔÚ°²×° port µÄÓû§Ìṩһ¸ö°üº¬¿ÉÓÃÑ¡ÏîµÄ¶Ô»°¿ò£¬ ²¢½«Óû§µÄÑ¡Ôñ±£´æµ½ /var/db/ports/portname/options ÖС£ Ï´ÎÖØÐÂÁª±à port ʱ£¬ ÕâЩѡÏ±»ÔÙ´ÎʹÓᣠÕâÑùÒ»À´£¬ ¾Í²»ÐèÒªÀÍÉñÈ¥¼ÇÒäÄú֮ǰÁª±à port ʱµÄÄǼ¸Ê®¸ö WITH_* ºÍ WITHOUT_*Ñ¡ÏîÁË£¡
¡¡¡¡µ±Óû§ÔËÐÐ make config (»òÊ×´ÎÔËÐÐ make build) ʱ£¬ ¿ò¼Ü»áÊ×Ïȼì²é /var/db/ports/portname/options¡£ Èç¹ûÕâ¸öÎļþ²»´æÔÚ£¬ ÔòËü»áʹÓà OPTIONS µÄÖµÀ´Éú³ÉÒ»¸ö¿ÉÒÔÆôÓûò½ûÓø÷¸öÑ¡ÏîµÄ¶Ô»°¿ò¡£ Ëæºó£¬ Óû§µÄÑ¡Ôñ½«±£´æµ½ options ÎļþÖУ¬ ²¢±»ÓÃÓÚÁª±à port¡£
¡¡¡¡Èç¹ûа汾µÄ port ÐÂÔöÁË OPTIONS£¬ Ôòϵͳ»áÔٴθø³ö¶Ô»°¿ò£¬ ²¢¸ù¾ÝÏÈǰµÄ OPTIONS ÅäÖÃÔ¤ÉèÏÈǰ´æÔÚµÄÅäÖá£
¡¡¡¡Ê¹Óà make showconfig ¿ÉÒԲ鿴±£´æµÄÅäÖᣠ´ËÍ⣬ make rmconfig ¿ÉÒÔɾ³ýÒѾ±£´æµÄÅäÖá£
¡¡¡¡OPTIONS ±äÁ¿µÄÓï·¨ÊÇ£º
OPTIONS= OPTION "˵Ã÷ÐÔÎÄ×Ö" ĬÈÏÖµ ...ĬÈÏÖµ±ØÐëÊÇ ON ºÍ OFF Ö®Ò»¡£ ÕâÖÖÈýÔª×é¿ÉÒÔʹÓöà´Î¡£
¡¡¡¡¶¨Òå OPTIONS ±äÁ¿µÄÖµ£¬ ±ØÐëÔÚÒýÈë bsd.port.options.mk ֮ǰ½øÐС£ ¶ø WITH_* ºÍ WITHOUT_* ±äÁ¿ÔòÖ»ÄÜÔÚÒýÈëÁË bsd.port.options.mk Ö®ºó²Å¿ÉÒÔ½øÐмì²â¡£ ʹÓà bsd.port.pre.mk Ò²¿ÉÒԴﵽͬÑùµÄÄ¿µÄ£¬ ÔÚϵͳ¿ªÊ¼Ìṩ bsd.port.options.mk ֮ǰµÄÐí¶à port ¶¼ÔÚʹÓÃÕâÖÖÓ÷¨¡£ ²»¹ý£¬ Çë×¢Òâ bsd.port.pre.mk »áÒªÇóijЩ±äÁ¿ÒѾ½øÐйý¶¨Ò壬 Èç USE_* µÈ¡£
Àý 5-8. ¼òµ¥µÄ OPTIONS Ó÷¨
OPTIONS= FOO "ÆôÓà foo Ñ¡Ïî" On \ BAR "Ö§³Ö bar ¹¦ÄÜ" Off .include <bsd.port.options.mk> .if defined(WITHOUT_FOO) CONFIGURE_ARGS+= --without-foo .else CONFIGURE_ARGS+= --with-foo .endif .if defined(WITH_BAR) RUN_DEPENDS+= bar:${PORTSDIR}/bar/bar .endif .include <bsd.port.mk>
¡¡¡¡ÔÚʹÓà GNU configure ½Å±¾Ê±£¬ Ò»¶¨ÒªÐ¡ÐÄÓÐÐ©ÌØÐÔ»áÓÉÆä×Ô¶¯¼ì²â¶ø¼¤»î¡£ ÄúӦͨ¹ýÃ÷È·µØÖ¸¶¨ÏàÓ¦µÄ --without-xxx »ò --disable-xxx ²ÎÊýµ½ CONFIGURE_ARGS À´½ûÓò»Ï£ÍûµÄÌØÐÔ¡£
Àý 5-10. ´¦ÀíÑ¡ÏîʱµÄ´íÎó×ö·¨
.if defined(WITH_FOO) LIB_DEPENDS+= foo.0:${PORTSDIR}/devel/foo CONFIGURE_ARGS+= --enable-foo .endif
¡¡¡¡ÔÚÇ°ÃæµÄÀý×ÓÖУ¬ ¼ÙÉèϵͳÖÐÒѾ°²×°ÁË libfoo ¿â¡£ Óû§¿ÉÄܲ¢²»Ï£ÍûÓ¦ÓóÌÐòʹÓà libfoo£¬ Òò´ËËûÔÚ make config ¶Ô»°¿òÖйصôÁËÕâ¸öÑ¡Ïî¡£ µ«ÊÇ£¬ Ó¦ÓóÌÐòµÄ configure ½Å±¾¼ì²âµ½ÁËϵͳÖдæÔÚÕâ¸ö¿â£¬ ²¢½«Æä¼ÓÈëµ½ÁË×îÖÕ¿ÉÖ´ÐÐÎļþÖ§³ÖµÄ¹¦ÄÜÖС£ ÏÖÔÚ£¬ Èç¹ûÓû§¾ö¶¨´ÓϵͳÖÐÐ¶ÔØ libfoo ʱ£¬ ports ϵͳ¾ÍÎÞ·¨±£»¤Õâ¸öÓ¦ÓóÌÐòÃâÔâÆÆ»µÁË (ÒòΪûÓмǼ libfoo µÄÒÀÀµ¹ØÏµ)¡£
Àý 5-11. ´¦ÀíÑ¡ÏîʱµÄÕýÈ·×ö·¨
.if defined(WITH_FOO) LIB_DEPENDS+= foo.0:${PORTSDIR}/devel/foo CONFIGURE_ARGS+= --enable-foo .else CONFIGURE_ARGS+= --disable-foo .endif
¡¡¡¡ÔÚµÚ¶þ¸öÀý×ÓÖУ¬ libfoo ¿â±»Ã÷È·½ûÓᣠ¼´Ê¹ÏµÍ³ÖÐÒѾ°²×°ÁËÕâ¸ö¿â£¬ configure ½Å±¾Ò²²»»áÆôÓÃÏàÓ¦µÄ¹¦ÄÜÁË¡£
¡¡¡¡Ã¿¸ö port ¶¼»á±»½âѹËõµ½Ò»¸ö¹¤×÷ÁÙʱĿ¼ÖУ¬ Õâ¸öĿ¼±ØÐëÊÇ¿ÉдµÄ¡£ ports ϵͳĬÈÏÇé¿öÏ»Ὣ DISTFILES ½âѹËõµ½Ò»¸ö½Ð×ö ${DISTNAME} µÄĿ¼ÖС£ »»ÑÔÖ®£¬ Èç¹ûÉèÁË£º
PORTNAME= foo PORTVERSION= 1.0
¡¡¡¡Ôò port µÄÔ´Âë°üÎļþµÄ¶¥¼¶Ä¿Â¼½«ÊÇ foo-1.0¡£
¡¡¡¡Èç¹ûÕâ²»ÊÇËùÏ£ÍûµÄÇéÐΣ¬ Äú¿ÉÒÔÐÞ¸ÄһϵÁбäÁ¿µÄÉèÖá£
¡¡¡¡Õâ¸ö±äÁ¿¸ø³öÁËÔÚÓ¦ÓóÌÐòµÄÔ´´úÂë°ü½âѹËõÖ®ºóËùÉú³ÉµÄĿ¼µÄÃû×Ö¡£ Èç¹ûÎÒÃÇ֮ǰµÄÀý×Ó½âѹËõÉú³ÉÒ»¸ö½Ð×ö foo (¶ø²»ÊÇ foo-1.0) µÄĿ¼£¬ ÄúÓ¦£º
WRKSRC= ${WRKDIR}/foo
¡¡¡¡»òÕߣ¬ Ò²¿ÉÄÜÊÇ
WRKSRC= ${WRKDIR}/${PORTNAME}
¡¡¡¡Èç¹û port ÍêÈ«²»ÐèҪдÈ뵽ij¸ö×ÓĿ¼ÖУ¬ ÄúÓ¦ÉèÖà NO_WRKSUBDIR ÒÔÃ÷ʾÕâÒ»µã¡£
NO_WRKSUBDIR= yes
¡¡¡¡Õë¶Ô²»Í¬µÄ package »ò port Ö®¼äµÄ³åÍ»ÇéÐΣ¬ ϵͳÌṩÁ˲»Í¬µÄ±äÁ¿À´ÐÖú¿ª·¢ÈËÔ±½øÐбí´ï£º CONFLICTS¡¢ CONFLICTS_INSTALL ºÍ CONFLICTS_BUILD¡£
×¢Òâ: ÕâЩÓÃÓÚÃèÊö³åÍ»µÄ±äÁ¿»á×Ô¶¯µØÉèÖà IGNORE£¬ ºóÕßµÄÍêÕû½éÉÜ£¬ ¿ÉÒÔÔÚ µÚ 12.14 ½Ú ÕÒµ½¡£
¡¡¡¡ÔÚɾȥÏ໥³åÍ»µÄ port ʱ£¬ ½¨Ò齫 CONFLICTS ±£Áô¼¸¸öÔ£¬ ÒÔ±ãÈÃÄÇЩ²»¾³£¸üÐÂϵͳµÄÓû§Äܹ»¿´µ½¡£
¡¡¡¡Èç¹ûÄúµÄÈí¼þ°ü²»ÄÜÓëijЩÈí¼þ°üͬʱ°²×° (ÀýÈçÓÉÓÚ°²×°Í¬ÑùµÄÎļþµ½ÏàͬµÄλÖᢠÔËÐÐʱ²»¼æÈݵȵÈ)£¬ ÔòÓ¦°ÑÆäËüÈí¼þ°üµÄÃû×ÖÁÐÔÚ CONFLICTS_INSTALL ±äÁ¿ÖС£ ´Ë´¦¿ÉÒÔʹÓà shell ͨÅä·û£¬ Èç * ºÍ ?¡£ ÁгöÆäËüÈí¼þ°üµÄÃû×ÖʱÐèÒª×ñÑËüÃÇÔÚ /var/db/pkg ÖгöÏÖµÄÑù×Ó¡£ ÇëÈ·±£ CONFLICTS_INSTALL ²»»áÆ¥Åäµ½ÄúÕýÖÆ×÷µÄÕâ¸öÔ¤±àÒë°üµÄÃû×Ö£¬ ·ñÔò£¬ ʹÓà FORCE_PKG_REGISTER À´Ç¿Öư²×°¾ÍûÓа취½øÐÐÁË¡£ ¶ÔÓÚ CONFLICTS_INSTALL µÄ¼ì²éÊÇÔÚÁª±à¹ý³ÌÖ®ºó¡¢ °²×°¿ªÊ¼Ö®Ç°½øÐеġ£
¡¡¡¡Èç¹ûÄúµÄÈí¼þ°üÔÚϵͳÖдæÔÚijЩÆäËüÈí¼þ°üʱ²»ÄÜÍê³ÉÁª±à£¬ ÔòÓ¦°ÑÆäËüÈí¼þ°üµÄÃû×ÖÁÐÔÚ CONFLICTS_BUILD ±äÁ¿ÖС£ ´Ë´¦¿ÉÒÔʹÓà shell ͨÅä·û£¬ Èç * ºÍ ?¡£ ÁгöÆäËüÈí¼þ°üµÄÃû×ÖʱÐèÒª×ñÑËüÃÇÔÚ /var/db/pkg ÖгöÏÖµÄÑù×Ó¡£ ¶ÔÓÚ CONFLICTS_BUILD µÄ¼ì²éÊÇÔÚÁª±à¹ý³Ì¿ªÊ¼Ö®Ç°½øÐеġ£ Áª±àʱµÄ³åÍ»²»»áÔÚ±àÒëºÃµÄ°üÖÐÓèÒԼǼ¡£
¡¡¡¡Èç¹ûÄúµÄ port ÔÚijЩÆäËü port ÒѾ´æÔÚµÄÇé¿öϼȲ»ÄÜÁª±à£¬ Ò²²»Äܰ²×°£¬ ÔòÓ¦°ÑÆäËüÈí¼þ°üµÄÃû×ÖÁÐÔÚ CONFLICTS ±äÁ¿ÖС£ ´Ë´¦¿ÉÒÔʹÓà shell ͨÅä·û£¬ Èç * ºÍ ?¡£ ÁгöÆäËüÈí¼þ°üµÄÃû×ÖʱÐèÒª×ñÑËüÃÇÔÚ /var/db/pkg ÖгöÏÖµÄÑù×Ó¡£ ÇëÈ·±£ CONFLICTS ²»»áÆ¥Åäµ½ÄúÕýÖÆ×÷µÄÕâ¸öÔ¤±àÒë°üµÄÃû×Ö£¬ ·ñÔò£¬ ʹÓà FORCE_PKG_REGISTER À´Ç¿Öư²×°¾ÍûÓа취½øÐÐÁË¡£ ¶ÔÓÚ CONFLICTS µÄ¼ì²éÊÇÔÚÁª±à¹ý³ÌÖ®ºó¡¢ °²×°¿ªÊ¼Ö®Ç°½øÐеġ£
¡¡¡¡Ò»¶¨ÒªÊ¹ÓÃÓÉ bsd.port.mk ÌṩµÄºê£¬ ÒÔÈ·±£ÔÚÄú×Ô¼ºµÄ *-install target ÖÐÄܹ»ÒÔÕýÈ·µÄÊôÖ÷ºÍȨÏÞģʽ°²×°Îļþ¡£
INSTALL_PROGRAM Êǰ²×°¿ÉÖ´Ðжþ½øÖÆÎļþµÄÃüÁî¡£
INSTALL_SCRIPT Êǰ²×°¿ÉÖ´Ðнű¾ÎļþµÄÃüÁî¡£
INSTALL_LIB Êǰ²×°¶¯Ì¬Á¬½Ó¿âµÄÃüÁî¡£
INSTALL_KLD ÊÇÓÃÓÚ°²×°¿É¼ÓÔØÊ½ÄÚºËÄ£¿éµÄÃüÁî¡£ ÔÚijЩƽ̨ÉÏ£¬ µ±¶ÔÄÚºËÄ£¿é½øÐÐ strip Ö®ºó»áµ¼ÖÂһЩÎÊÌ⣬ Òò´ËÄúӦʹÓÃÕâ¸öºê¶ø²»ÊÇ INSTALL_PROGRAM À´°²×°ÄÚºËÄ£¿é¡£
INSTALL_DATA Êǰ²×°¿É¹²ÏíÊý¾ÝµÄÃüÁî¡£
INSTALL_MAN Êǰ²×°Áª»úÊÖ²áºÍÆäËûÎĵµµÄÃüÁî (×¢ÒâËü²¢²»»áÖ´ÐÐѹËõ²Ù×÷)¡£
¡¡¡¡ÕâЩºêÕ¹¿ªºó»ù±¾É϶¼Êǰüº¬Êʵ±²ÎÊýµÄ install ÃüÁî¡£
¡¡¡¡³ý·Ç²»µÃ²»½øÐУ¬ ·ñÔò²»ÒªÊÖ¹¤¶Ô¿ÉÖ´ÐÐÎļþ×÷ÍÑÄ£²Ù×÷¡£ ËùÓÐÎļþÔÚ°²×°Ê±¶¼Ó¦ÍÑÄ££¬ µ« INSTALL_PROGRAM ºê»áÔÚ°²×°µÄͬʱ¶ÔÆä½øÐÐÍÑÄ£ (²Î¼ûÏÂÒ»½ÚµÄÄÚÈÝ)¡£ INSTALL_LIB ºê
¡¡¡¡Èç¹ûÄúÐèÒª¶ÔijһÎļþ½øÐÐÍÑÄ££¬ µ«²»Ï£ÍûʹÓà INSTALL_PROGRAM ¼° INSTALL_LIB ºê£¬ ÔòӦʹÓà ${STRIP_CMD} À´´¦Àí³ÌÐò¡£ Ò»°ã¶øÑÔÕâÓ¦¸ÃÔÚ post-install target ÖнøÐС£ ÀýÈ磺
post-install: ${STRIP_CMD} ${PREFIX}/bin/xdl
¡¡¡¡¿ÉÒÔʹÓà file(1) ÃüÁîÀ´¼ì²éËù°²×°µÄ¿ÉÖ´ÐÐÎļþÊÇ·ñ½øÐйýÍÑÄ£¡£ Èç¹ûËüûÓиø³ö not stripped µÄÌáʾ£¬ Ôò±íʾÒѾ×ö¹ýÍÑÄ£ÁË¡£ ÁíÍ⣬ strip(1) ²»»á¶ÔÒѾÍÑÄ£¹ýµÄÎļþÖØÐÂÍÑÄ££¬ Ëü»áÖ±½ÓÍ˳öµÄ¡£
¡¡¡¡ÓÐʱ£¬ »áÓÐÐèÒª°²×°´óÁ¿µÄÎļþ£¬ ²¢±£³ÖÆä²ã´Î½á¹¹£¬ ÀýÈ磬 ½«Õû¸öĿ¼½á¹¹´Ó WRKSRC ¸´ÖƵ½ PREFIX µÄÄ¿±êĿ¼¡£
¡¡¡¡Õë¶ÔÕâÖÖÇé¿ö£¬ ϵͳÌṩÁËÁ½¸öºê¡£ ʹÓÃÕâЩºê£¬ ¶ø²»ÊÇÖ±½ÓʹÓà cp µÄÓÅÊÆÊÇËüÃÇÄܹ»È·±£Ä¿±êÎļþµÄÊôÖ÷ºÍȨÏÞÕýÈ·¡£ µÚÒ»¸öºê£¬ COPYTREE_BIN ½«ËùÓа²×°µÄÎļþÊÓΪ¿ÉÖ´ÐÐÎļþ£¬ Òò¶øÊʺϰ²×°Îļþµ½ PREFIX/bin¡£ µÚ¶þ¸öºê£¬ COPYTREE_SHARE£¬ Ôò²»»áÉèÖÿÉÖ´ÐÐȨÏÞ£¬ Òò´ËÊʺÏÓÚ½«Îļþ°²×°µ½ PREFIX/share Ï¡£
post-install: ${MKDIR} ${EXAMPLESDIR} (cd ${WRKSRC}/examples/ && ${COPYTREE_SHARE} \* ${EXAMPLESDIR})
¡¡¡¡Õâ¸öÀý×Ó½«Ô×÷ÕßÌṩµÄÕû¸ö examples Ŀ¼¸´ÖƵ½Äú port Ö¸¶¨µÄ°²×°Ê¾·¶ÎļþµÄλÖá£
post-install: ${MKDIR} ${DATADIR}/summer (cd ${WRKSRC}/temperatures/ && ${COPYTREE_SHARE} "June July August" ${DATADIR}/summer/)
¡¡¡¡Õâ¸öÀý×Ó½«°ÑÏļ¾µÄÈý¸öÔµÄÊý¾Ý£¬ ¸´ÖƵ½ DATADIR ÖÐµÄ summer ×ÓĿ¼¡£
¡¡¡¡¾ÓÉÉèÖà COPYTREE_* ºêµÄµÚÈý¸ö²ÎÊý£¬ Äú»¹¿ÉÒÔΪ find Ö¸¶¨¶îÍâµÄ²ÎÊý¡£ ÀýÈ磬 Èç¹ûÏ£Íû°²×°³ýÁË Makefile Ö®ÍâµÄÆäËûËùÓÐÎļþ£¬ ¿ÉÒÔʹÓÃÏÂÊöÃüÁî¡£
post-install: ${MKDIR} ${EXAMPLESDIR} (cd ${WRKSRC}/examples/ && \ ${COPYTREE_SHARE} \* ${EXAMPLESDIR} "! -name Makefile")
¡¡¡¡ÐèҪעÒâµÄÊÇ£¬ ÕâЩºê²¢²»ÄÜ×Ô¶¯½«Ëù°²×°µÄÎļþ¼Óµ½ pkg-plist ÖУ¬ Äú»¹ÊÇÐèÒª×ÔÐÐÁгöËüÃÇ¡£
¡¡¡¡Èç¹ûÄúµÄÈí¼þ°üº¬Á˱ê×¼µÄÁª»úÊÖ²áºÍ info ÊÖ²áÒÔÍâµÄÎĵµ£¬ ¶øÇÒÄúÈÏΪËüÃǶÔÓû§»áÓÐÓ㬠Çë°ÑÕâЩÎĵµ°²×°µ½ PREFIX/share/doc Ï¡£ ºÍÇ°ÃæÀàËÆ£¬ ÕâÒ²¿ÉÒÔÔÚ post-install target ÖÐÍê³É¡£
¡¡¡¡ÎªÄúµÄ port ½¨Á¢Ò»¸öеÄĿ¼¡£ Õâ¸öĿ¼µÄÃû×ÖÓ¦¸Ã·´Ó³ËüÊÇÊôÓÚÄĸö port µÄ¡£ ͨ³£½¨ÒéʹÓà PORTNAME¡£ ²»¹ý£¬ Èç¹ûÄúÈÏΪ²»Í¬°æ±¾µÄ port ¿ÉÄÜ»áͬʱ°²×°£¬ Ò²¿ÉÒÔÓÃÍêÕûµÄ PKGNAME¡£
¡¡¡¡ÁíÍ⣬ Ó¦¸ÃÈÃÊÇ·ñ°²×°È¡¾öÓÚ±äÁ¿ NOPORTDOCS µÄÉèÖ㬠ÕâÑùÓû§¾ÍÄܹ»ÔÚ /etc/make.conf ÖнûÖ¹°²×°Ëü¡£ ÀýÈ磺
post-install: .if !defined(NOPORTDOCS) ${MKDIR} ${DOCSDIR} ${INSTALL_MAN} ${WRKSRC}/docs/xvdocs.ps ${DOCSDIR} .endif
¡¡¡¡ÕâÀïÊÇһЩ±ãÓÚʹÓõıäÁ¿£¬ ÒÔ¼°ËüÃÇÔÚ Makefile ÖÐĬÈϵÄÕ¹¿ª·½Ê½£º
DATADIR »áÕ¹¿ª³É PREFIX/share/PORTNAME¡£
DATADIR_REL »áÕ¹¿ª³É share/PORTNAME¡£
DOCSDIR »áÕ¹¿ª³É PREFIX/share/doc/PORTNAME¡£
DOCSDIR_REL »áÕ¹¿ª³É share/doc/PORTNAME¡£
EXAMPLESDIR »áÕ¹¿ª³É PREFIX/share/examples/PORTNAME¡£
EXAMPLESDIR_REL »áÕ¹¿ª³É share/examples/PORTNAME¡£
×¢Òâ: NOPORTDOCS Ö»¿ØÖƽ«Òª°²×°µ½ DOCSDIR µÄÄÇЩÎĵµ£¬ ¶ø²»Ó¦Ó°Ïì±ê×¼µÄÁª»úÊÖ²áÒÔ¼° info ÊÖ²áµÄ°²×°¡£ °²×°µ½ DATADIR ºÍ EXAMPLESDIR µÄÎļþÔòÏàÓ¦µØÊÜ NOPORTDATA ºÍ NOPORTEXAMPLES ¿ØÖÆ¡£
¡¡¡¡ÕâЩ±äÁ¿Ò²»á±»µ¼³öµ½ PLIST_SUB ÖС£ Ö»Òª¿ÉÄÜ£¬ ËüÃǵÄÖµ¾Í½«ÔÚÄÇÀïÒÔÏà¶ÔÓÚ PREFIX µÄ·¾¶ÐÎʽ³öÏÖ¡£ Ò²¾ÍÊÇ˵£¬ share/doc/PORTNAME ÔÚ×°Ïäµ¥ÖÐĬÈÏÇé¿öÏ»áÌæ»»µô %%DOCSDIR%%£¬ µÈµÈ¡£ (¸ü¶àµÄ pkg-plist ´ú»»¿ÉÒÔÔÚ ÕâÀï ÕÒµ½¡£)
¡¡¡¡ËùÓзÇÎÞÌõ¼þ°²×°µÄÎĵµÎļþºÍĿ¼£¬ ¶¼Ó¦ÔÚ pkg-plist ³öÏÖ£¬ ²¢ÇÒʹÓà %%PORTDOCS%% ǰ׺£¬ ÀýÈ磺
%%PORTDOCS%%%%DOCSDIR%%/AUTHORS %%PORTDOCS%%%%DOCSDIR%%/CONTACT %%PORTDOCS%%@dirrm %%DOCSDIR%%
¡¡¡¡Èç¹û²»Ï£ÍûÔÚ pkg-plist ÖÐÖð¸öÁоÙÎĵµÎļþ£¬ port Ò²¿ÉÒÔ½« PORTDOCS ÉèÖÃΪһ×éÎļþ¼°Æä shell glob ģʽ£¬ ͨ¹ýÕâÖÖ·½Ê½À´¼ÓÈëµ½×îÖÕµÄ×°Ïäµ¥ÖС£ ÕâЩÃû×ÖÓ¦ÊÇÏà¶ÔÓÚ DOCSDIR µÄ¡£ Òò´Ë£¬ ʹÓÃÁË PORTDOCS£¬ ²¢½«Îĵµ°²×°µ½·Ç±ê׼λÖÃµÄ port£¬ Ó¦ÏàÓ¦µØÉèÖà DOCSDIR¡£ Èç¹ûÓÐÔÚ PORTDOCS ÖÐÁгöĿ¼£¬ »òÕßÕâÒ»±äÁ¿ÖÐµÄ glob ģʽƥÅäµ½ÁËĿ¼£¬ ÔòÕû¸ö×ÓÊ÷ÖеÄÎļþºÍĿ¼£¬ ¶¼½«±»×¢²áµ½×îÖÕµÄ×°Ïäµ¥ÖС£ Èç¹û¶¨ÒåÁË NOPORTDOCS£¬ Ôò PORTDOCS Öж¨ÒåµÄÎļþºÍĿ¼½«²»±»°²×°»ò¼ÓÈë×°Ïäµ¥¡£ ÊÇ·ñ°²×°Îĵµµ½Ç°ÃæËù˵µÄ PORTDOCS ÈÔÈ¡¾öÓÚ port ±¾Éí¡£ ÏÂÃæÊÇÒ»¸öµäÐ͵ÄʹÓà PORTDOCS µÄÀý×Ó£º
PORTDOCS= README.* ChangeLog docs/*
×¢Òâ: Óë PORTDOCS ÀàËÆ£¬ ¶ÔÓ¦ÓÚ DATADIR ºÍ EXAMPLESDIR µÄ±äÁ¿·Ö±ðÊÇ PORTDATA ºÍ PORTEXAMPLES¡£
ÄúÒ²¿ÉÒÔʹÓà pkg-message Õâ¸öÎļþ£¬ À´ÔÚ°²×°Ê±ÏÔʾһЩÐÅÏ¢¡£ ²Î¼û ¹ØÓÚʹÓà pkg-message µÄÕâÒ»½Ú ÒÔÁË½â½øÒ»²½µÄÏêÇé¡£ ÐèҪ˵Ã÷µÄÊÇ£¬ ²¢²»ÐèÒª°Ñ pkg-message ¼Óµ½ pkg-plist ÖС£
¡¡¡¡¾¡¿ÉÄÜÈà port ½«Ëü´´½¨µÄÎļþ£¬ ·ÅÖõ½ PREFIX ÖÐÕýÈ·µÄλÖᣠһЩ port »á°Ñ¸÷ʽ¸÷ÑùµÄ¶«Î÷»ìÔÚÒ»Æð£¬ ²¢·Åµ½Ò»¸öͬÃûµÄĿ¼ÖУ¬ ÕâÊDz»¶ÔµÄ¡£ ÁíÍ⣬ Ðí¶à port »á°Ñ³ýÁË¿ÉÖ´ÐÐÎļþ¡¢ Í·ÎļþºÍÁª»úÊÖ²áÖ®ÍâµÄËùÓÐÎļþ£¬ È«¶¼Ò»¹ÉÄԵطŵ½ lib ÖУ¬ ÕâÔÚºÍ BSD ÅäºÏʹÓÃʱ»áÓÐÎÊÌâ¡£ ¶àÊýÎļþ£¬ Ó¦±»·Åµ½ÏÂÁÐλÖÃÖ®Ò»£º etc (°²×°/ÅäÖÃÎļþ)¡¢ libexec (ÓÉϵͳÄÚ²¿µ÷ÓõĿÉÖ´ÐÐÎļþ)¡¢ sbin (Ϊ³¬¼¶Óû§/¹ÜÀíÔ±ÌṩµÄ¿ÉÖ´ÐÐÎļþ)¡¢ info (ÓÃÓÚ info ä¯ÀÀÆ÷µÄÎĵµ) »ò share (ƽ̨ÎÞ¹ØµÄÆäËüÎļþ)¡£ Çë²Î¼û hier(7) ÒÔÁË½â½øÒ»²½µÄÏêÇ飻 Õë¶Ô /usr µÄÄÇЩ¹æÔò£¬ ͬÑùÒ²ÊÊÓÃÓÚ /usr/local¡£ ÀýÍâÇé¿öÊÇÄÇЩÐèÒªºÍ USENET ¡°news¡± ´ò½»µÀµÄ port£¬ ËüÃÇ¿ÉÒÔÑ¡Ôñ²ÉÓà PREFIX/news ×÷ΪÎļþµÄÄ¿µÄµØ¡£
¡¡¡¡ÓÐһЩÄúÔÚ´´½¨portʱµÄÌØÊâÇé¿ö£¬ÎÒÃÇÔÚÕâÀïÌáһϡ£
¡¡¡¡Èç¹ûÄúµÄport°²×°ÁËÒ»¸ö»ò¶à¸ö¹²Ïí¿â,ÄÇôÇ붨ÒåÒ»¸ö USE_LDCONFIG make ±äÁ¿£¬ ÔÚpost-install±ê¼Ç°ÑËü×¢²á½ø¹²Ïí¿â »º³åʱ»áµ÷ÓÃbsd.port.mkÈ¥ÔËÐÐ ${LDCONFIG} -mÀ´Ö¸ÏòпâµÄ°²×°Ä¿Â¼¡£ (ͨ³£ÊÇ PREFIX/lib) ͬÑù£¬ÄúÒ²¿ÉÒÔÊʵ±µÄÔÚÄúµÄ pke-plistÎļþ Öж¨ÒåÒ»×é@exec /sbin/ldconfig -m ºÍ@unexec /sbin/ldconfig -R£¬ ÄÇôÓû§¿ÉÒÔÔÚ°²×°ºóÂíÉÏ ¾ÍÄÜʹÓ㬲¢ÇÒÔÚÐ¶ÔØÈí¼þ°üºóϵͳҲ²»»áÈÏΪÕâЩ¹²Ïí¿âÈÔÈ»´æÔÚ¡£
USE_LDCONFIG= yes
¡¡¡¡Èç¹ûÄúÐèÒª°Ñ¹²Ïí¿â°²×°ÔÚȱʡµÄλÖÃÖ®Í⣬ ¿ÉÒÔͨ¹ý¶¨Òå make ±äÁ¿ USE_LDCONFIG À´¸Ä±äĬÈϵݲװ·¾¶£¬ Ëü°üº¬°²×°¹²Ïí¿âµÄĿ¼Áбí ÀýÈ磺 Èç¹ûÄúµÄ¹²Ïí¿â°²×°µ½ PREFIX/lib/foo ºÍ PREFIX/lib/bar directoriesĿ¼£¬Äú¿ÉÒÔÔÚÄúµÄ MakefileÖÐÕâÑùÉèÖÃ:
USE_LDCONFIG= ${PREFIX}/lib/foo ${PREFIX}/lib/bar
¡¡¡¡ÇëÎñ±Ø×Ðϸ¼ì²é£¬ ͨ³£ÕâÊÇÍêÈ«²»±ØÒªµÄ£¬ »òÕß¿ÉÒÔͨ¹ý -rpath »òÔÚÁ¬½ÓʱÉèÖà LD_RUN_PATH À´±ÜÃâ (²Î¼û lang/moscow_ml ¸ø³öµÄÀý×Ó)£¬ »òÕßÓÃÒ»¸ö shell ·â×°³ÌÐòÀ´ÔÚÖ´ÐпÉÖ´ÐÐÎļþ֮ǰÉèÖà LD_LIBRARY_PATH£¬ ÀàËÆ www/mozilla ÄÇÑù¡£
¡¡¡¡µ±ÔÚ 64-λϵͳÉϰ²×° 32-λ µÄº¯Êý¿âʱ£¬ ÇëʹÓà USE_LDCONFIG32¡£
¡¡¡¡¾¡Á¿½«¹²Ïí¿â°æ±¾ºÅ±£³ÖΪ libfoo.so.0 ÕâÑùµÄ¸ñʽ¡£ ÎÒÃǵÄÔËÐл·¾³Á¬½ÓÆ÷Ö»»á¼ì²éÖ÷ (µÚÒ»¸ö) °æ±¾Êý×Ö¡£
¡¡¡¡Èç¹ûÔÚ¸üРport ʱÉý¼¶ÁËÆä¿âµÄÖ÷°æ±¾ºÅ£¬ ÔòÆäËüËùÓÐÁ¬½ÓÁËÊÜÓ°ÏìµÄ¿âµÄ port µÄ PORTREVISION ¶¼Ó¦µÝÔö£¬ ÒÔÇ¿ÖÆËüÃDzÉÓÃа汾µÄ¿âÖØÐ±àÒë¡£
¡¡¡¡ÖÚ¶àÐÒ飬²¢ÇÒÆäÖеÄһЩÖÂÁ¦ÓÚ ÏÞÖÆÔõÑùµÄÓ¦ÓóÌÐòÄܱ»´ò°ü£¬ ÊÇ·ñÄÜÓÃÓÚÏúÊÛÓ®ÀûµÈµÈ¡£
ÖØÒª: ×öΪһÃûporterÄúÓÐÒåÎñÈ¥ÔĶÁÈí¼þµÄÐÒé ²¢ÇÒÈ·±£FreeBSD ÏîÄ¿²»±ØÎªÍ¨¹ýFTP/HTTP »òCD-ROMÖØÐ·¢²¼Ô´Âë»ò±àÒëµÄ¶þ½øÖƶø½âÊÍ Ê²Ã´¡£Èç¹ûÓÐÈκÎÒÉÎÊ£¬ ÇëÁªÏµ FreeBSD ports ÓʼþÁÐ±í¡£
¡¡¡¡´¦ÓÚÕâÖÖÇé¿ö£¬¾Í¿ÉÒÔÉèÖÃÒÔÏÂÃèÊö µÄ±äÁ¿¡£
¡¡¡¡Õâ¸ö±äÁ¿±íʾÎÒÃÇ¿ÉÄܲ»ÄÜÉú³ÉÕâ¸öÓ¦Óà ³ÌÐòµÄ¶þ½øÖÆÎļþ¡£ÀýÈ磬ËûµÄÐÒé²»ÔÊÐí ¶þ½øÖÆÎļþµÄÔٴη¢ÐУ¬»òÕßËû¿ÉÄܽûÖ¹´Ó ²¹¶¡¹ýµÄÔ´´úÂë´ò°üµÄ·¢ÐС£
¡¡¡¡²»¹ÜÔõôÑù£¬portµÄ DISTFILES ¿ÉÒÔ ËæÒâµÄ¾µÏñµ½FTP/HTTP¡£³ý·ÇNO_CDROM ±äÁ¿Ò²±»ÉèÖã¬Èí¼þ°üÒ²¿ÉÒÔ·¢ÐÐÔÚÒ»ÕÅCD-ROM £¨»òÀàËÆµÄý½éÉÏ£©¡£
¡¡¡¡NO_PACKAGEÒ²ÄÜÓÃÔÚµ±¶þ½øÖưü ²»ÊǷdz£ÓÐÓ㬲¢ÇÒÕâ¸öÓ¦ÓÃÈí¼þ¾³£Òª ´ÓÔ´´úÂë±àÒë¡£ÀýÈ磺µ±Õâ¸öÓ¦ÓÃÈí¼þÔÚ ±àÒëµÄʱºòÒªÔÚÅäÖÃÐÅÏ¢ÖÐÖ¸¶¨Ìض¨µÄÓ²¼þ ´úÂëʱ£¬¿ÉÒÔÉèÖÃNO_PACKAGE¡£
¡¡¡¡NO_PACKAGEÓ¦¸ÃÉèÖóÉ×Ö·û´® À´ÃèÊöΪʲôÕâ¸öÈí¼þ ²»ÄÜ´ò°ü¡£
¡¡¡¡Õâ¸ö±äÁ¿½ö½öÖ¸³öËäÈ»ÎÒÃÇÔÊÐí Éú³É¶þ½øÖưü£¬µ«Ò²ÐíÎÒÃǼȲ»ÄܰÑÕâ¸ö Èí¼þ°üÒ²²»ÄܰÑportµÄDISTFILES ·ÅÔÚ¹âÅÌ£¨»òÀàËÆµÄý½é£©ÉÏÏúÊÛ¡£µ«²»¹ÜÔõôÑù£¬ ¶þ½øÖưüºÍportµÄDISTFILES ¿ÉÒÔ´ÓFTP/HTTPÉÏ»ñµÃ¡£
¡¡¡¡Èç¹ûÕâ¸ö±äÁ¿ºÍ NO_PACKAGEÒ»Æð±»ÉèÖ㬠ÄÇôÕâ¸öportµÄDISTFIELS ½«Ö»ÄÜ´ÓFTP/HTTPÉÏ»ñµÃ¡£
¡¡¡¡NO_CDROM Ó¦¸Ã±»ÉèÖóÉÒ»¸ö×Ö·û´® À´ÃèÊöΪʲôÕâ¸öport²»ÄÜÖØÐ·¢²¼ÔÚCD-ROMÉÏ¡£ ÀýÈ磺Èç¹ûÕâ¸öportµÄÐÒé½ö½öÊÇÓÃÓÚ¡°·ÇÉÌÒµ»î¶¯¡± ,ÄÇôÕâ¸ö±äÁ¿¾ÍÄÜÉèÖÃÁË¡£
¡¡¡¡ÔÚ NOFETCHFILES ±äÁ¿Öж¨ÒåµÄÎļþ£¬ ²»»á×Ô¶¯´Ó MASTER_SITES ץȡ¡£ Ò»ÖÖµäÐ͵ÄÓÃÀýÊÇ£¬ ʹÓÃÀ´×Ôij¸öÈí¼þ¹©Ó¦ÉÌÌṩµÄ CD-ROM ÉϵÄÎļþ¡£
¡¡¡¡ÓÃÓÚ¼ì²éÔÚ MASTER_SITES ÉÏÊÇ·ñ°üº¬ÁËËùÐèÎļþµÄ¹¤¾ß£¬ Ó¦ºöÂÔÕâЩÎļþ£¬ ¶ø²»ÊDZ¨¸æËüÃDz»´æÔÚ¡£
¡¡¡¡Èç¹ûÓ¦ÓóÌÐò¼È²»ÔÊÐí¾µÏñÆä DISTFILES£¬ Ò²²»ÔÊÐí·¢²¼ÆäÔ¤±àÒë°æ±¾µÄ°ü£¬ ÉèÖÃËü¾Í¿ÉÒÔÁË¡£
¡¡¡¡NO_CDROM »ò NO_PACKAGE ²»Ó¦Óë RESTRICTED ͬʱÉèÖ㬠ÒòΪËü°üº¬ÁËÕâЩÇéÐΡ£
¡¡¡¡RESTRICTED Ó¦ÉèÖÃΪһ¸ö˵Ã÷ port ΪºÎ²»ÄÜ·¢²¼µÄ´®¡£ µäÐÍÇé¿ö¿ÉÄÜÊÇÓÉÓÚ port °üº¬ÁËרÓеÄÈí¼þ£¬ Òò¶øÓû§ÐèÒª×ÔÐÐÏÂÔØ DISTFILES£¬ ¿ÉÄÜÊÇ×¢²á»òÕßͬÒâijһ EULA µÄÌõ¿î¡£
¡¡¡¡µ±ÉèÖÃÁË RESTRICTED »ò NO_CDROM ʱ£¬ Õâ¸ö±äÁ¿»áĬÈÏÉèÖÃΪ ${DISTFILES} ${PATCHFILES}£¬ ·ñÔòËü»áΪ¿Õ¡£ Èç¹ûÖ»ÓÐijЩԴÂë°üÎļþÊÇÊÜÏ޵ģ¬ Ôò¿ÉÒÔÓÃÕâ¸ö±äÁ¿À´Ö¸Ã÷ËüÃÇ¡£
¡¡¡¡×¢Ò⣬ port committer Ó¦¸ÃÔÚ /usr/ports/LEGAL ÖÐΪÿһ¸öÔ´Âë°üÎļþ׫д¶ÔÓ¦µÄÏîÄ¿£¬ ²¢½éÉÜÕâЩÏÞÖÆµÄÔÒò¡£
¡¡¡¡FreeBSD ports ¿ò¼ÜÖ§³ÖʹÓöà¸ö make ×Ó½ø³ÌÀ´½øÐв¢ÐбàÒ룬 ÔÚ SMP ÉÏÕâ¿ÉÒÔÈ«ÃæµØÀûÓÃϵͳµÄ CPU ¼ÆËãÄÜÁ¦£¬ Áî port µÄÁª±à¹ý³Ì¸ü¿ì¡¢ ¸üÓÐЧÂÊ¡£
¡¡¡¡Ä¿Ç°ÕâÊÇͨ¹ýÏòÔ×÷ÕߵĴúÂë´«µÝ make(1) ²ÎÊý -jX À´ÊµÏֵġ£ Òź¶µÄÊÇ£¬ ²¢²»ÊÇËùÓÐµÄ port ¶¼Äܹ»ºÜºÃµØ´¦ÀíÕâ¸öÑ¡Ïî¡£ Òò´Ë£¬ ±ØÐëͨ¹ýÃ÷È·µØÔÚ Makefile ÖÐÖ¸¶¨ MAKE_JOBS_SAFE=yes À´ÆôÓÃÕâÒ»¹¦ÄÜ¡£
¡¡¡¡´Ó port ¼à»¤È˵ĽǶȻ¹ÓÐÒ»¸ö¿ØÖƵķ½·¨ÊÇÉèÖà MAKE_JOBS_UNSAFE=yes ±äÁ¿¡£ Õâ¸ö±äÁ¿Ö÷ÒªÊÇÓÃÓÚÒÑÖª²»ÄÜÓë -jX ÅäºÏʹÓÃµÄ port£¬ ¼´Ê¹Óû§ÔÚ /etc/make.conf Öж¨ÒåÁË FORCE_MAKE_JOBS=yes ±äÁ¿£¬ ϵͳҲ²»»áʹÓò¢ÐбàÒë¡£
¡¡¡¡Èç¹û port Óõ½ÁË GNU make£¬ Ó¦ÉèÖà USE_GMAKE=yes¡£
±í 6-1. ÓÃÓÚÓë gmake ÓÐ¹ØµÄ port µÄ±äÁ¿
±äÁ¿ | ÒâÒå |
---|---|
USE_GMAKE | ´Ë port ÐèҪʹÓà gmake À´Íê³ÉÁª±à¹ý³Ì¡£ |
GMAKE | ²»ÔÚ PATH ÖÐʱ£¬ gmake µÄÍêÕû·¾¶¡£ |
¡¡¡¡¶ÔÓÚ X Ó¦ÓóÌÐòµÄ port£¬ Èç¹ûËüʹÓà imake ¸ù¾Ý
Imakefile ÎļþÀ´Éú³É Makefile£¬
ÔòÓ¦ÉèÖà USE_IMAKE=yes¡£ Õâ»áʹÁª±à¹ý³ÌÖеÄÅäÖà (configure)
½×¶Î×Ô¶¯Ö´ÐÐ xmkmf -a¡£ Èç¹û -a
±êÖ¾»á¸øÄúµÄ port ´øÀ´Âé·³£¬ ÔòÐèÉèÖà XMKMF=xmkmf¡£ Èç¹û port
Óõ½ÁË imake µ«²¢²»Ê¹Óà install.man target£¬ ÔòÓ¦ÉèÖà NO_INSTALL_MANPAGES=yes¡£
¡¡¡¡Èç¹û port Ô´ÎļþµÄ Makefile µÄÖ÷Áª±à target ÊÇ all ÒÔÍâµÄÃû×Ö£¬ Ó¦¶ÔÓ¦µØÉèÖà ALL_TARGET¡£ ¶ÔÓÚ install ¶øÑÔ£¬ ¶ÔÓ¦µÄ±äÁ¿ÊÇ INSTALL_TARGET¡£
¡¡¡¡¼ÙÈç port ʹÓà configure ½Å±¾À´´Ó Makefile.in Éú³É Makefile Îļþ£¬ ÐèÒªÉèÖà GNU_CONFIGURE=yes¡£ Èç¹ûÏ£Íû´«¶îÍâµÄ²ÎÊý¸ø configure ½Å±¾ (ĬÈϲÎÊýΪ --prefix=${PREFIX} --infodir=${PREFIX}/${INFO_PATH} --mandir=${MANPREFIX}/man --build=${CONFIGURE_TARGET})£¬ Ӧͨ¹ý CONFIGURE_ARGS À´Ö¸¶¨ÕâЩ²ÎÊý¡£ ÀàËÆµØ£¬ ¿ÉÒÔͨ¹ý CONFIGURE_ENV ±äÁ¿À´´«µÝһЩ»·¾³±äÁ¿¡£
¡¡¡¡Èç¹ûÄúµÄÈí¼þ°üʹÓà GNU configure£¬ ¶øÉú³ÉµÄ¿ÉÖ´ÐÐÎļþÃüÃû·½Ê½ ¡°¹ÖÒ족 Èç i386-portbld-freebsd4.7-Ó¦ÓóÌÐòÃû£¬ ÔòÐèÒª¸ü½øÒ»²½µØÍ¨¹ý¸Ä±ä CONFIGURE_TARGET ±äÁ¿À´°´ÕÕ½Ïа汾µÄ autoconf Éú³ÉµÄ½Å±¾ËùÏ£ÍûµÄ·½Ê½Ö¸¶¨ target¡£ Æä·½·¨ÊÇ£¬ ½ôËæ Makefile ÖÐ GNU_CONFIGURE=yes Ò»ÐÐÖ®ºó¼ÓÈ룺
¡¡¡¡ CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
±í 6-2. ÓÃÓÚÓõ½ÁË configure ½Å±¾µÄ port µÄ±äÁ¿
±äÁ¿ | ÒâÒå |
---|---|
GNU_CONFIGURE | ´Ë port ÐèÒªÓà configure ½Å±¾À´×¼±¸Áª±à¡£ |
HAS_CONFIGURE | Óë GNU_CONFIGURE ÀàËÆ£¬ µ«Ä¬È쵀 configure target ²¢²»¼ÓÈë CONFIGURE_ARGS¡£ |
CONFIGURE_ARGS | Ï£Íû´«¸ø configure ½Å±¾µÄ¶îÍâ²ÎÊý¡£ |
CONFIGURE_ENV | Ï£ÍûÔÚÖ´ÐÐ configure ½Å±¾Ê±ÉèÖõĻ·¾³±äÁ¿¡£ |
CONFIGURE_TARGET | Ìæ»»Ä¬È쵀 configure target¡£ ÆäĬÈÏÖµÊÇ ${MACHINE_ARCH}-portbld-freebsd${OSREL}¡£ |
¡¡¡¡Èç¹ûÄúµÄ port ʹÓà SCons£¬ ¾ÍÐèÒª¶¨Òå USE_SCONS=yes ÁË¡£
±í 6-3. ʹÓà scons µÄ port »áÓõ½µÄ±äÁ¿
±äÁ¿ | º¬Òå |
---|---|
SCONS_ARGS | µ±Ç° port Ï£Íû´«¸ø SCons »·¾³µÄ²ÎÊý¡£ |
SCONS_BUILDENV | Ï£ÍûÔÚϵͳ»·¾³ÖÐÉèÖõıäÁ¿¡£ |
SCONS_ENV | Ï£ÍûÔÚ SCons »·¾³ÖÐÉèÖõıäÁ¿¡£ |
SCONS_TARGET | ´«µÝ¸ø SCons µÄ×îºóÒ»¸ö²ÎÊý£¬ ÀàËÆÓÚ MAKE_TARGET¡£ |
¡¡¡¡Èç¹ûÏ£ÍûÈõÚÈý·½µÄ SConstruct ×ðÖØÍ¨¹ý SCONS_ENV (ÆäÖÐ×îÖØÒªµÄÊÇ CC/CXX/CFLAGS/CXXFLAGS ÅäÖÃ) ´«¸ø Scons µÄÅäÖ㬠ÔòÐèÒª¶Ô SConstruct ½øÐÐÐ޸ģ¬ ʹÁª±àµÄ Environment °´ÏÂÁз½Ê½½¨Á¢£º
env = Environment(**ARGUMENTS)
¡¡¡¡Æäºó£¬ ¿ÉÒÔͨ¹ý env.Append ºÍ env.Replace À´¶ÔËü½øÐÐÐ޸ġ£
¡¡¡¡ÖÚ¶à GNU autotools ÌṩÁËÒ»ÖÖÔÚ¶àÖØ²Ù×÷ϵͳºÍ»úÆ÷¼Ü¹¹Ö®ÉÏÁª±àÈí¼þµÄ³éÏó»úÖÆ¡£ ÔÚ Ports Collection ÖУ¬ port ¿ÉÒÔͨ¹ý¼òµ¥µÄ·½·¨À´Ê¹ÓÃÕâЩ¹¤¾ß£º
USE_AUTOTOOLS= ¹¤¾ß:°æ±¾[:²Ù×÷] ...
¡¡¡¡×«Ð´±¾Êéʱ£¬ ¹¤¾ß ¿ÉÒÔÉèÖÃΪ libtool¡¢ libltdl¡¢ autoconf¡¢ autoheader¡¢ automake »ò aclocal Ö®Ò»¡£
¡¡¡¡°æ±¾ ÓÃÀ´Ö¸¶¨Ï£ÍûʹÓõŤ¾ßµÄÌØ¶¨°æ±¾ (²Î¼û devel/{automake,autoconf,libtool}[0-9]+ ÒÔÁ˽âÓÐЧµÄ°æ±¾ºÅ)¡£
¡¡¡¡²Ù×÷ ÊÇÒ»¸ö¿ÉÑ¡µÄÀ©Õ¹Ñ¡Ï ÓÃÓÚÐÞ¸ÄÈçºÎʹÓù¤¾ß¡£
¡¡¡¡¿ÉÒÔͬʱָ¶¨¶à¸ö²»Í¬µÄ¹¤¾ß£¬ ¿ÉÒÔÔÚÒ»ÐÐÖÐÖ¸¶¨£¬ Ò²¿ÉÒÔÓà Makefile µÄ += ½á¹¹¡£
¡¡¡¡×îºó£¬ ¿ÉÒÔʹÓÃÒ»¸öÌØÊâµÄÃûΪ autotools µÄ¹¤¾ß£¬ Ëü»á°²×°È«²¿¿ÉÓÃµÄ autotools °æ±¾£¬ ÒÔÊÊÓ¦¿çƽ̨¿ª·¢µÄÐèÒª¡£ Äú¿ÉÒÔͨ¹ý°²×° devel/autotools port À´´ïµ½ÕâһĿµÄ¡£
¡¡¡¡Ê¹Óà GNU Áª±à¿ò¼ÜµÄ¹²Ïí¿âͨ³£»áʹÓà libtool À´µ÷Õû¹²Ïí¿âµÄ±àÒëºÍ°²×°£¬ ÒÔ±ãÓëËùÔËÐеIJÙ×÷ϵͳÏàÆ¥Åä¡£ ͨ³£µÄ×ö·¨ÊÇʹÓÃÓ¦ÓóÌÐòËù¸½´øµÄ libtool ¸±±¾¡£ Èç¹ûÐèҪʹÓÃÍⲿµÄ libtool£¬ Ôò¿ÉÒÔʹÓà Ports Ì×¼þÌṩµÄ°æ±¾£º
USE_AUTOTOOLS= libtool:°æ±¾[:env]
¡¡¡¡Èç¹û²»Ê¹ÓöîÍâµÄ²Ù×÷·û£¬ libtool:°æ±¾ ±íʾϣÍûÁª±à¿ò¼ÜʹÓà configure ½Å±¾À´¶ÔϵͳËù°²×°µÄ libtool ½øÐÐÐÞ²¹¡£ Õâ»á°µº¬µØ¶¨Òå GNU_CONFIGURE¡£ ¸ü½øÒ»²½£¬ Áª±à¿ò¼Ü»¹»áÉèÖÃһϵÁÐ make ºÍ shell ±äÁ¿ÓÃÓÚ port ºóÐøµÄ²Ù×÷¡£ Çë²Î¼û bsd.autotools.mk ÁË½â½øÒ»²½µÄÏêÇé¡£
¡¡¡¡Èç¹ûÖ¸¶¨ÁË :env ²Ù×÷·û£¬ Ôò±íʾֻÉèÖû·¾³£¬ ¶øÌø¹ýÆäËûµÄ²Ù×÷¡£
¡¡¡¡×îºó£¬ LIBTOOLFLAGS ºÍ LIBTOOLFILES ¿ÉÒÔÓÃÀ´Ìæ»»×î³£Ð޸ĵIJÎÊý£¬ ÒÔ¼°½«±» libtool ÐÞ²¹µÄÎļþ¡£ ¶àÊý port ²»ÐèÒªÕâÑù×ö¡£ Çë²Î¼û bsd.autotools.mk ÒÔÁË½â½øÒ»²½µÄϸ½Ú¡£
¡¡¡¡Ò»Ð© ports »áʹÓà libltdl ¿â£¬ ºóÕßÊÇ libtool Èí¼þ°üµÄÒ»²¿·Ö¡£ ʹÓÃÕâ¸ö¿â²¢²»Òâζ×űØÐëʹÓà libtool ±¾Éí£¬ Òò´ËÌṩÁËÁíÒ»×é½á¹¹¡£
USE_AUTOTOOLS= libltdl:°æ±¾
¡¡¡¡Ä¿Ç°£¬ ÕâÒ»ÉèÖÃËù×öµÄÈ«²¿¹¤×÷Êǽ« LIB_DEPENDS ÉèÖÃΪÊʵ±µÄ libltdl port£¬ ²¢×÷ΪһÏî·½±ãµÄ¹¦ÄÜ£¬ ÐÖú¿ª·¢ÈËÔ±Ïû³ýÔÚ USE_AUTOTOOLS ¿ò¼ÜÒÔÍâµÄ£¬ ¶ÔÓÚ autotools port µÄÒÀÀµ¡£ Õâ¸ö¹¤¾ß²¢²»ÌṩÆäËüµÄ²Ù×÷·û¡£
¡¡¡¡Ä³Ð© port ²¢Ã»ÓÐÖ±½ÓÌṩ configure ½Å±¾£¬ µ«°üº¬ÁË×÷Ϊ autoconf Ä£°åµÄ configure.ac Îļþ¡£ ¿ÉÒÔÓÃÏÂÁÐÉèÖÃÀ´ÒªÇó autoconf ´´½¨ configure ½Å±¾£¬ ²¢Ê¹Óà autoheader À´Îª configure ½Å±¾´´½¨Ä£°åÍ·Îļþ¡£
USE_AUTOTOOLS= autoconf:°æ±¾[:env]
¡¡¡¡ÒÔ¼°
USE_AUTOTOOLS= autoheader:°æ±¾
¡¡¡¡ÉÏÊöÉèÖûᰵº¬Ê¹Óà autoconf:°æ±¾¡£
¡¡¡¡¶ÔÓÚ libtool£¬ ÉèÖÃÓëÇ°ÃæÀàËÆ¡£ Èç¹ûÖ¸¶¨¿ÉÑ¡µÄ :env ²Ù×÷·û£¬ Ôò±íʾֻÉèÖÃÓÃÓÚºóÐø¹¤×÷µÄ»·¾³¡£ Èç¹û²»Ö¸¶¨£¬ Ôò»á¶Ô port ½øÐÐÏàÓ¦µÄÐÞ²¹ºÍÖØÐÂÅäÖá£
¡¡¡¡ÆäËüµÄ¿ÉÑ¡±äÁ¿£¬ Èç AUTOCONF_ARGS ºÍ AUTOHEADER_ARGS ¿ÉÒÔͨ¹ý port µÄ Makefile À´ÏÔʽµØÖ¸¶¨Ìæ»»¡£ ÀàËÆ libtool£¬ ¶àÊý port ²¢²»ÐèÒªÕâÑù×ö¡£
¡¡¡¡Ä³Ð©Èí¼þ°üÖ»ÌṩÁË Makefile.am Îļþ¡£ ÕâЩÎļþ±ØÐëÊ×ÏÈÓà automake ת»»Îª Makefile.in ²¢Ê¹Óà configure À´Éú³Éʵ¼ÊµÄ Makefile¡£
¡¡¡¡ÀàËÆµØ£¬ ż¶û»áÓÐһЩÈí¼þ°ü²»ÌṩÁª±àËùÐèµÄ aclocal.m4 Îļþ¡£ ÕâЩÎļþ¿ÉÒÔͨ¹ýʹÓà aclocal À´É¨Ãè configure.ac »ò configure.in ×Ô¶¯Éú³É¡£
¡¡¡¡aclocal Óë automake ÓÐºÍ autoheader Óë autoconf ÔÚÇ°ÃæÒ»½ÚÖÐËù½éÉܵÄÏàÀàËÆµÄ¹ØÏµ¡£ aclocal »á°µº¬Ê¹Óà automake£¬ Òò´Ë£º
USE_AUTOTOOLS= automake:°æ±¾[:env]
¡¡¡¡ºÍ
USE_AUTOTOOLS= aclocal:°æ±¾
¡¡¡¡Ò²×Ô¶¯°µº¬Ê¹Óà automake:°æ±¾¡£
¡¡¡¡Óë libtool ÀàËÆ£¬ autoconf Èç¹ûʹÓÃÁË¿ÉÑ¡µÄ :env ²Ù×÷·û±íʾ½ö½öÉèÖÃÓÃÓÚºóÐøÊ¹ÓõĻ·¾³£¬ Èç¹û²»ÉèÖ㬠Ôò»á¶Ô port ½øÐÐÖØÐÂÅäÖá£
¡¡¡¡¶ÔÓÚ autoconf ºÍ autoheader ¶øÑÔ£¬ automake ºÍ aclocal ÌṩÁ˶ÔÓ¦µÄ¿ÉÑ¡²ÎÊý±äÁ¿ AUTOMAKE_ARGS ºÍ ACLOCAL_ARGS£¬ Èç¹ûÐèÒªµÄ»°£¬ ¿ÉÒÔÔÚ port µÄ Makefile ÖÐÖ¸¶¨¡£
¡¡¡¡Èç¹ûÄúµÄ port ÐèҪʹÓà gettext£¬ Ö»Òª½« USE_GETTEXT ÉèÖÃΪ yes£¬ ÄúµÄ port ¾Í»áÔö¼Ó¶Ô devel/gettext µÄÒÀÀµ¡£ USE_GETTEXT Ò²¿ÉÒÔÖ¸¶¨ÎªËùÐèµÄ libintl ¿âµÄ°æ±¾£¬ ËüÊÇ gettext µÄ»ù±¾×é³É²¿·Ö£¬ ¾¡¹ÜÈç´Ë£¬ Ç¿ÁÒ½¨ÒéÄú²»Òª ʹÓÃÕâ¸ö¹¦ÄÜ£º ÄúµÄ port Ó¦ÄÜÓëĿǰ°æ±¾µÄ devel/gettext ÅäºÏ¹¤×÷¡£
¡¡¡¡ÔÚ port ÖÐÏ൱³£¼ûµÄÇé¿öÏ£¬ »áÐèҪͬʱʹÓà gettext ºÍ configure¡£ Ò»°ã¶øÑÔ£¬ GNU configure Äܹ»×Ô¶¯¶¨Î»µ½ gettext¡£ Èç¹ûËüûÓгɹ¦µØÍê³ÉÕâÏ×÷£¬ Ôò¿ÉÒÔͨ¹ýÀàËÆÏÂÃæÕâÑùµÄ CPPFLAGS ºÍ LDFLAGS ½« gettext µÄλÖøæËßËü£º
USE_GETTEXT= yes CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib GNU_CONFIGURE= yes CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" \ LDFLAGS="${LDFLAGS}"
¡¡¡¡µ±È»£¬ ²»ÐèÒª´«²ÎÊý¸ø configure ʱ£¬ ´úÂë¿ÉÒÔ¸üΪ¼òÁ·£º
USE_GETTEXT= yes GNU_CONFIGURE= yes CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ LDFLAGS="-L${LOCALBASE}/lib"
¡¡¡¡Ò»Ð©Èí¼þ²úÆ·ÌṩÁ˽ûÓà NLS µÄÄÜÁ¦£¬ ÀýÈ磬 ÔÚ configure
ʱ£¬ Ö¸¶¨ --disable-nls
²ÎÊý¡£ Èç¹ûÄú port
µÄÈí¼þÖ§³ÖÕâÖÖÅäÖ㬠ÔòÓ¦¸ù¾Ý WITHOUT_NLS µÄÉèÖÃÀ´ÓÐÌõ¼þµØÊ¹Óà gettext¡£
¶ÔÓڱȽϼòµ¥ºÍ²»Ì«¸´Ô port£¬ Äú¿ÉÒÔʹÓÃÏÂÁнṹ£º
GNU_CONFIGURE= yes .if !defined(WITHOUT_NLS) USE_GETTEXT= yes PLIST_SUB+= NLS="" .else CONFIGURE_ARGS+= --disable-nls PLIST_SUB+= NLS="@comment " .endif
¡¡¡¡ÄúÒª×öµÄÏÂÒ»¼þÊÂÊǺÏÀíµØ°²ÅÅ×°Ïäµ¥Îļþ£¬ ʹÆä¸ù¾ÝÓû§ÅäÖÃÀ´¾ö¶¨ÊÇ·ñ½«ÏûÏ¢±à¼ (message catalog) Îļþ·ÅÈë×îÖÕµÄ×°Ïäµ¥¡£ Ç°ÃæÒѾ½éÉÜÁËÔÚ Makefile ÖÐËùÐèµÄд·¨£¬ ÕâÖÖ×ö·¨ÔÚ ¸ß¼¶ pkg-plist Ó÷¨ Õâ½ÚÖнøÐÐÁ˽éÉÜ¡£ ¼òµ¥µØËµ£¬ ÔÚ pkg-plist ÖгöÏÖµÄ %%NLS%% ¾ù»áÔÚ½ûÓà NLS ʱ×Ô¶¯Ì滻Ϊ ¡°@comment ¡±£¬ ·´Ö®ÔòÌæ»»Îª¿Õ´®¡£ ÕâÑù£¬ ÔÚ×îÖÕµÄ×°Ïäµ¥Öдø %%NLS%% µÄÐУ¬ ÔÚ NLS ¹Ø±ÕµÄÇé¿öϾͻá±äΪעÊÍ£¬ ·´Ö®£¬ ÕâЩǰ׺¾Í»á×Ô¶¯É¾µô¡£ ÏÖÔÚÐèÒª×öµÄÊÂÇé¾ÍÊÇ°Ñ %%NLS%% ²åµ½ pkg-plist ÖеÄÏûÏ¢±à¼ÎļþµÄÄÇЩÐпªÍ·£¬ ÀýÈ磺
%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo %%NLS%%share/locale/no/LC_MESSAGES/foobar.mo
¡¡¡¡ÔڱȽϸ´ÔÓµÄÇéÐÎÖУ¬ Äú¿ÉÄÜÐèҪʹÓøü¸ß¼¶µÄ¼¼Êõ£¬ ÀýÈç ¶¯Ì¬Éú³É×°Ïäµ¥ µÈ¡£
¡¡¡¡ÔÚ°²×°ÏûÏ¢±à¼Îļþʱ»¹ÓÐÒ»¸öÐèҪעÒâµÄµØ·½¡£ ÕâЩÎļþ»á·Åµ½ LOCALBASE/share/locale ÏÂÓëÓïÑÔ¶ÔÓ¦µÄĿ¼ÖУ¬ ÕâЩĿ¼һ°ãÄúµÄ port ²»ÐèÒª´´½¨ºÍɾ³ý¡£ ×î³£ÓõÄÓïÑÔµÄĿ¼ÒѾÔÚ /etc/mtree/BSD.local.dist ÖÐÁгö£» Ò²¾ÍÊÇ˵£¬ ËüÃÇÊÇ»ù±¾ÏµÍ³µÄÒ»²¿·Ö¡£ ÆäËûһЩÓïÑÔµÄĿ¼£¬ ÔòÓÉ devel/gettext ¿ØÖÆ¡£ Äú×îºÃ²é¿´Ò»Ï pkg-plist£¬ ÒÔÈ·¶¨ÊÇ·ñÕýÔÚ°²×°Ä³ÖÖ²»³£ÓÃÓïÑÔµÄÎļþ¡£
¡¡¡¡Èç¹û MASTER_SITES ÉèΪ MASTER_SITE_PERL_CPAN£¬ ÔòÓ¦¾¡Á¿°Ñ MASTER_SITE_SUBDIR ÉèÖÃΪ¶¥¼¶Ä¿Â¼µÄÃû×Ö¡£ ÀýÈ磬 ¶Ô p5-Module-Name ¶øÑÔÍÆ¼öµÄÃû×ÖÊÇ Module¡£ Äú¿ÉÒÔÔÚ cpan.org ÕÒµ½¶¥¼¶Ä¿Â¼µÄÃû×Ö¡£ Õâ¿ÉÒÔÈ·±£ÔÚÄ£¿éµÄ×÷Õß·¢Éú±ä»¯Ê±£¬ ±£³Ö port ¼ÌÐø¿ÉÓá£
¡¡¡¡ÒÔÉϹæÔòÓÐÒ»¸öÀýÍ⣬ ¼´¶ÔӦĿ¼²»´æÔÚ»òÔ´Âë°ü²»ÔÚÄǸöĿ¼ÖÐʱ£¬ ÔÊÐíʹÓÃ×÷ÕßµÄ id ×÷Ϊ MASTER_SITE_SUBDIR¡£
¡¡¡¡ËùÓÐÕâЩѡÏî¾ùͬʱ½ÓÊÜ YES ºÍ°æ±¾´®£¬ ÀàËÆ 5.8.0+ ÕâÑùµÄд·¨¡£ ʹÓà YES ±íʾ port Äܹ»ÅäºÏËùÓÐÊÜÖ§³ÖµÄ Perl °æ±¾À´Ê¹ÓᣠÈç¹û port Ö»ÄÜÅäºÏÌØ¶¨°æ±¾µÄ Perl À´Ê¹Ó㬠Ôò¿ÉÒÔÓð汾´®À´±íʾ£¬ ÀýÈç×îµÍ°æ±¾ (Èç 5.7.3+)¡¢ ×î¸ß°æ±¾ (Èç 5.8.0-) »òij¸ö¾ßÌåµÄ°æ±¾ (Èç 5.8.3)¡£
±í 6-4. ÓÃÓÚÓõ½ perl µÄ port µÄ±äÁ¿
±äÁ¿ | ÒâÒå |
---|---|
USE_PERL5 | ±íʾ port ½« perl 5 ÓÃÓÚÁª±àºÍÔËÐС£ |
USE_PERL5_BUILD | ±íʾ port ½« perl 5 ÓÃÓÚÁª±à¡£ |
USE_PERL5_RUN | ±íʾ port ½« perl 5 ÓÃÓÚÔËÐС£ |
PERL | perl 5 µÄÍêÕû·¾¶£¬ ¿ÉÄÜÊÇϵͳ×Ô´øµÄ£¬ »òÕß´Ó port °²×°£¬ µ«Ã»Óа汾ºÅ¡£ Èç¹ûÄúÐèÒªÔڽű¾ÖÐÌæ»» ¡°#!¡± ÐУ¬ ÔòӦʹÓÃÕâ¸ö±äÁ¿¡£ |
PERL_CONFIGURE | ²ÉÓà Perl µÄ MakeMaker ½øÐÐÅäÖᣠÕâÒ»±äÁ¿Òþº¬ÉèÖà USE_PERL5¡£ |
PERL_MODBUILD | ʹÓà Module::Build ½øÐÐÅäÖᢠÁª±à²¢°²×°¡£ ÕâÒ»±äÁ¿Òþº¬ÉèÖà PERL_CONFIGURE¡£ |
Ö»¶Á±äÁ¿ | |
---|---|
PERL_VERSION | ϵͳÖа²×°µÄ perl µÄÍêÕû°æ±¾ (ÀýÈ磬 5.8.9)¡£ |
PERL_LEVEL | ϵͳÖа²×°µÄ perl µÄ°æ±¾ÕûÊýÖµ£¬ ÆäÐÎʽΪ MNNNPP (ÀýÈ磬 500809)¡£ |
PERL_ARCH | perl ±£´æÄ³Æ½Ì¨×¨ÓõĿâµÄλÖᣠĬÈÏֵΪ ${ARCH}-freebsd¡£ |
PERL_PORT | ϵͳÖÐËù°²×°µÄ perl port µÄÃû×Ö (ÀýÈ磬 perl5)¡£ |
SITE_PERL | Õ¾µãרÓÃµÄ perl package °²×°Â·¾¶¡£ ÆäÖµ»á×Ô¶¯¼ÓÈëµ½ PLIST_SUB ÖС£ |
×¢Òâ: Perl Ä£¿éͨ³£²¢Ã»Óйٷ½ÍøÕ¾£¬ ÕâЩ port Ó¦½« cpan.org ×÷ΪÆä pkg-descr WWW ÐеÄÄÚÈÝ¡£ ÍÆ¼öµÄ URL ¸ñʽΪ http://search.cpan.org/dist/Module-Name/ (±£Áô×îºóµÄбÏß)¡£
¡¡¡¡ÔÚ Ports Ì×¼þÖÐÌṩµÄ X11 ʵÏÖÊÇ X.Org¡£ Èç¹ûÄúµÄÓ¦ÓóÌÐòÓõ½ÁË X ×é¼þ£¬ ÔòÓ¦½« USE_XORG ÉèΪËùÐèÒªµÄÄÇЩ×é¼þ¡£ Ŀǰ¿ÉÓõÄ×é¼þ°üÀ¨£º
¡¡¡¡bigreqsproto compositeproto damageproto dmx dmxproto evieproto fixesproto fontcacheproto fontenc fontsproto fontutil glproto ice inputproto kbproto libfs oldx printproto randrproto recordproto renderproto resourceproto scrnsaverproto sm trapproto videoproto x11 xau xaw xaw6 xaw7 xaw8 xbitmaps xcmiscproto xcomposite xcursor xdamage xdmcp xevie xext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86rushproto xf86vidmodeproto xfixes xfont xfontcache xft xi xinerama xineramaproto xkbfile xkbui xmu xmuu xorg-server xp xpm xprintapputil xprintutil xpr oto xproxymngproto xrandr xrender xres xscrnsaver xt xtrans xtrap xtst xv xvmc xxf86dga xxf86misc xxf86vm.
¡¡¡¡×îеÄÁÐ±í£¬ ¿ÉÒÔÔÚ /usr/ports/Mk/bsd.xorg.mk ÖÐÕÒµ½¡£
¡¡¡¡The Mesa Project ÊÇÒ»¸öÖÂÁ¦ÓÚ×ÔÓÉµÄ OpenGL ʵÏֵļƻ®¡£ Äú¿ÉÒÔʹÓà USE_GL ±äÁ¿À´Èà port ÒÀÀµÆä²»Í¬µÄ×é¼þ¡£ ¿ÉÓõÄÑ¡Ïî°üÀ¨£º glut, glu, glw, glew, gl ºÍ linux¡£ ΪÁËʵÏÖÏòǰ¼æÈÝ£¬ µ±Ê¹Óà yes ʱϵͳ»á×Ô¶¯½«ÆäÓ³ÉäΪ glu¡£
¡¡¡¡Ðí¶à ports »á¶¨Òå USE_XLIB£¬ Õâ»áµ¼Ö port ÒÀÀµ 50 ¶à¸ö¶¯Ì¬Á¬½Ó¿â¡£ ÓÉÓÚËü³öÏÖÓÚ X.org Ä£¿é»¯Ö®Ç°£¬ Òò´ËÕâ¸ö±äÁ¿½öΪÏòǰ¼æÈݵÄÔÒòÌṩ£¬ Ð嵀 port ²»Ó¦ÔÙʹÓÃËü¡£
±í 6-5. Óõ½ X µÄ port ¿ÉÒÔʹÓõıäÁ¿
USE_XLIB | ´Ë port Óõ½ÁË X ¿â¡£ Òѹýʱ - ÄúӦʹÓà USE_XORG ±äÁ¿ÁгöÓõ½µÄ X.Org ×é¼þ£¬ ¶ø²»ÊÇʹÓÃÕâ¸ö±äÁ¿¡£ |
USE_IMAKE | ´Ë port Óõ½ÁË imake¡£ |
USE_X_PREFIX | Òѹýʱ¡£ ĿǰÆä×÷ÓÃÓë USE_XLIB Ïàͬ£¬ ²¢¿ÉÒÔÖ±½ÓÓúóÕßÌæ»»¡£ |
XMKMF | ÉèÖÃΪ xmkmf µÄÍêÕû·¾¶Ãû£¬ Èç¹ûËü²»ÔÚ PATH Öеϰ¡£ ĬÈÏÖµÊÇ xmkmf -a¡£ |
±í 6-6. ÓÃÓÚ±íʾ¶Ô X11 ijЩ×é¼þµÄÒÀÀµ¹ØÏµµÄ±äÁ¿
X_IMAKE_PORT | ÓÃÒÔÌṩ imake ÒÔ¼°Ðí¶àÆäËüÓÃÓÚÁª±à X11 µÄ¹¤¾ßµÄ port¡£ |
X_LIBRARIES_PORT | ÓÃÒÔÌṩ X11 ¿âµÄ port¡£ |
X_CLIENTS_PORT | ÓÃÒÔÌṩ X ¿Í»§µÄ port¡£ |
X_SERVER_PORT | ÓÃÒÔÌṩ X ·þÎñµÄ port¡£ |
X_FONTSERVER_PORT | ÓÃÒÔÌṩ×ÖÌå·þÎñµÄ port¡£ |
X_PRINTSERVER_PORT | ÓÃÒÔÌṩ´òÓ¡·þÎñµÄ port¡£ |
X_VFBSERVER_PORT | ÓÃÒÔÌṩÔÚÐéÄâÖ¡»º´æ·þÎñ(virtual framebuffer server) µÄ port¡£ |
X_NESTSERVER_PORT | ÓÃÒÔÌṩǶÌ× X ·þÎñµÄ port¡£ |
X_FONTS_ENCODINGS_PORT | ÓÃÒÔΪ×ÖÌåÌṩ±àÂëµÄ port¡£ |
X_FONTS_MISC_PORT | ÓÃÒÔÌṩ¶àÖÖλͼ×ÖÌåµÄ port¡£ |
X_FONTS_100DPI_PORT | ÓÃÒÔÌṩ 100dpi λͼ×ÖÌåµÄ port¡£ |
X_FONTS_75DPI_PORT | ÓÃÒÔÌṩ 75dpi λͼ×ÖÌåµÄ port¡£ |
X_FONTS_CYRILLIC_PORT | ÓÃÒÔÌṩÎ÷Àï¶ûλͼ×ÖÌåµÄ port¡£ |
X_FONTS_TTF_PORT | ÓÃÒÔÌṩ TrueType® ×ÖÌåµÄ port¡£ |
X_FONTS_TYPE1_PORT | ÓÃÒÔÌṩ Type1 ×ÖÌåµÄ port¡£ |
X_MANUALS_PORT | ÓÃÒÔÌá¹©ÃæÏò¿ª·¢ÈËÔ±µÄÁª»úÊÖ²áµÄ port¡£ |
¡¡¡¡Èç¹ûÄúµÄ port ÐèÒª Motif ¿â£¬ ÔòÓ¦ÔÚ Makefile Öж¨Òå USE_MOTIF¡£ ĬÈ쵀 Motif ʵÏÖÊÇ x11-toolkits/open-motif¡£ Óû§¿ÉÒÔͨ¹ýÉèÖà WANT_LESSTIF ±äÁ¿À´Ñ¡Ôñ x11-toolkits/lesstif ´úÌæËü¡£
¡¡¡¡bsd.port.mk »á½« MOTIFLIB ±äÁ¿ÉèÖÃΪµ½ºÏÊ浀 Motif ¿âµÄÒýÓᣠÇëʹÓò¹¶¡½«Äú port ÖÐ Makefile »ò Imakefile Ìáµ½ Motif ¿âµÄµØ·½¸ÄΪ ${MOTIFLIB}¡£
¡¡¡¡ÓÐÁ½ÖֱȽϳ£¼ûµÄÇé¿ö£º
Èç¹û port Öн« Motif ÔÚÆä Makefile »ò Imakefile ±í´ïΪ -lXm£¬ Ôò¼òµ¥µØ½«ÆäÌæ»»Îª ${MOTIFLIB}¡£
Èç¹û port ÔÚÆä Imakefile ÖÐʹÓà XmClientLibs£¬ Ôò½«Æä¸ÄΪ ${MOTIFLIB} ${XTOOLLIB} ${XLIB}.
¡¡¡¡×¢Òâ MOTIFLIB (ͨ³£) »áÕ¹¿ªÎª -L/usr/X11R6/lib -lXm »ò /usr/X11R6/lib/libXm.a£¬ ËùÒÔ²»ÐèÒªÔÚÆäǰ¼ÓÈë -L »ò -l¡£
¡¡¡¡Èç¹û port ½«Îª X Window ϵͳ°²×°×ÖÌ壬 ½«ÕâЩ×ÖÌå·Åµ½ LOCALBASE/lib/X11/fonts/local¡£
¡¡¡¡
¡¡¡¡Ä³Ð©Ó¦ÓóÌÐò±ØÐëÔÚÓпÉÓÃµÄ X11 ÏÔʾµÄʱºò²ÅÄܳɹ¦±àÒë¡£ µ±±àÒëµÄ»úÆ÷ûÓпØÖÆÌ¨Ê±£¬ Õâ»á´øÀ´ÎÊÌâ¡£ ΪÁ˽â¾öÕâ¸öÎÊÌ⣬ Èç¹û¶¨ÒåÁËÊʵ±µÄ±äÁ¿£¬ Áª±à»ù´¡ÉèÊ©»áÆô¶¯²ÉÓÃÐéÄâÖ¡»º´æµÄ X server¡£ ´Ëʱ£¬ ±àÒë¹ý³ÌÖн«»á´«³ö¿ÉÓÃµÄ DISPLAY¡£
USE_DISPLAY= yes
¡¡¡¡Í¨¹ýÀûÓà DESKTOP_ENTRIES ±äÁ¿£¬ ¿ÉÒÔºÜÈÝÒ×µØÔÚÄúµÄ port Öд´½¨×ÀÃæÏî (Freedesktop ±ê×¼)¡£ ÕâЩÏî»áÔÚÀàËÆ GNOME »ò KDE ÕâÑùµÄ·ûºÏÕâÒ»±ê×¼µÄ×ÀÃæ»·¾³ÖÐÏÔʾÔÚÓ¦ÓóÌÐò²Ëµ¥ÖС£ ÕâÑù×ö»á×Ô¶¯´´½¨¡¢ °²×° .desktop Îļþ£¬ ²¢½«Æä¼ÓÈë pkg-plist¡£ ÆäÓ﷨Ϊ£º
DESKTOP_ENTRIES= "NAME" "COMMENT" "ICON" "COMMAND" "CATEGORY" StartupNotify
¡¡¡¡Äú¿ÉÒÔÔÚ Freedesktop ÍøÕ¾ÉÏ ÕÒµ½¿ÉÓõķÖÀàÃû³Æ¡£ StartupNotify ±íʾӦÓóÌÐòÔÚÖ§³ÖÆô¶¯Í¨ÖªµÄ»·¾³ÖÐÇå³ý״̬ÐÅÏ¢¡£
¡¡¡¡Àý×Ó£º
DESKTOP_ENTRIES= "ToME" "Roguelike game based on JRR Tolkien's work" \ "${DATADIR}/xtra/graf/tome-128.png" \ "tome -v -g" "Application;Game;RolePlaying;" \ false
¡¡¡¡FreeBSD/GNOME ÏîÄ¿×éʹÓÃÒ»×é×Ô¼ºµÄ±äÁ¿À´¶¨Òå port ËùʹÓÃµÄ GNOME ×é¼þ¡£ ÕâЩ±äÁ¿µÄÏêϸÁÐ±í ¿ÉÒÔÔÚ FreeBSD/GNOME ÏîÄ¿µÄÖ÷Ò³ÕÒµ½¡£
±í 6-7. ÓÃÓÚʹÓà Qt µÄ port µÄ±äÁ¿
USE_QT_VER | ±íʾ port Óõ½ÁË Qt ¹¤¾ßÌ×¼þ¡£ ¿ÉÓõÄÖµ°üÀ¨ 3 ºÍ 4£» ÓÃÓÚÖ¸¶¨Ê¹ÓÃµÄ Qt µÄÖ÷°æ±¾¡£ ´ËÍ⣬ ϵͳ»á×Ô¶¯Îª configure ½Å±¾ºÍ make ÃüÁîÌṩ±ØÒªµÄ²ÎÊý¡£ |
QT_PREFIX | Õâ¸ö±äÁ¿»á×Ô¶¯ÉèΪ Qt µÄ°²×°Â·¾¶ (Ö»¶Á±äÁ¿)¡£ |
MOC | Õâ¸ö±äÁ¿»á×Ô¶¯ÉèΪ moc µÄ·¾¶ (Ö»¶Á±äÁ¿)¡£ ĬÈÏÖµÓë USE_QT_VER ±äÁ¿µÄÖµÓйء£ |
QTCPPFLAGS | ͨ¹ý CONFIGURE_ENV ´«¸ø Qt ¹¤¾ßÌ×¼þµÄ±àÒë²ÎÊý¡£ ĬÈÏÅäÖÃÓë USE_QT_VER Óйء£ |
QTCFGLIBS | ͨ¹ý CONFIGURE_ENV ´«¸ø Qt ¹¤¾ßÌ×¼þµÄÁ¬½Ó¿â¡£ ĬÈÏÅäÖÃÓë USE_QT_VER Óйء£ |
QTNONSTANDARD | ½ûֹϵͳ×Ô¶¯ÐÞ¸Ä CONFIGURE_ENV¡¢ CONFIGURE_ARGS ºÍ MAKE_ENV¡£ |
±í 6-8. ÆäËûÓÃÓÚʹÓà Qt 4.x µÄ±äÁ¿
QT_COMPONENTS | ÓÃÓÚÖ¸¶¨ Qt4 ¹¤¾ßºÍº¯Êý¿âµÄÒÀÀµ¡£ ÏêÇé¼ûºó¡£ |
UIC | Õâ¸ö±äÁ¿»á×Ô¶¯ÉèΪ uic µÄ·¾¶ (Ö»¶Á±äÁ¿)¡£ ĬÈÏÖµÓë USE_QT_VER Óйء£ |
QMAKE | Õâ¸ö±äÁ¿»á×Ô¶¯ÉèΪ qmake µÄ·¾¶ (Ö»¶Á±äÁ¿)¡£ ÆäĬÈÏÖµÓë USE_QT_VER Óйء£ |
QMAKESPEC | Õâ¸ö±äÁ¿»á×Ô¶¯ÉèΪ qmake ÅäÖÃÎļþµÄ·¾¶ (Ö»¶Á±äÁ¿)¡£ ÆäĬÈÏÖµÓë USE_QT_VER Óйء£ |
¡¡¡¡µ±ÉèÖÃÁË USE_QT_VER ʱ£¬ ϵͳ×Ô¶¯»á¸ø configure ½Å±¾´«Ò»ÏµÁÐÓÐÓõIJÎÊý£º
CONFIGURE_ARGS+= --with-qt-includes=${QT_PREFIX}/include \ --with-qt-libraries=${QT_PREFIX}/lib \ --with-extra-libs=${LOCALBASE}/lib \ --with-extra-includes=${LOCALBASE}/include CONFIGURE_ENV+= MOC="${MOC}" CPPFLAGS="${CPPFLAGS} ${QTCPPFLAGS}" LIBS="${QTCFGLIBS}" \ QTDIR="${QT_PREFIX}" KDEDIR="${KDE_PREFIX}"
¡¡¡¡Èç¹û½« USE_QT_VER ÉèΪ 4£¬ Ôò»¹»á½øÐÐÏÂÁÐÅäÖãº
CONFIGURE_ENV+= UIC="${UIC}" QMAKE="${QMAKE}" QMAKESPEC="${QMAKESPEC}" MAKE_ENV+= QMAKESPEC="${QMAKESPEC}"
¡¡¡¡µ±°Ñ USE_QT_VER ÉèΪ 4 ʱ£¬ ¾Í¿ÉÒÔͨ¹ý QT_COMPONENTS ±äÁ¿À´Ö¸¶¨¶Ô Qt4 ¹¤¾ßºÍº¯Êý¿âµÄÒÀÀµÁË¡£ ͨ¹ýÔÚ×é¼þµÄÃû³ÆºóÃæÌí¼Ó _build »ò _run ÕâÑùµÄºó׺£¬ Ôò¿ÉÏàÓ¦µØ½«ÕâÒÀÀµ¹ØÏµÏÞÓÚÁª±à»òÔËÐÐʱ¿Ì¡£ ÔÚûÓÐÖ¸¶¨ºó׺ʱ£¬ ϵͳĬÈÏÔÚÁª±àºÍÔËÐÐʱ¿Ì¾ùÒÀÀµ¸Ã×é¼þ¡£ ͨ³£Çé¿öÏÂÔÚÖ¸Ã÷º¯Êý¿âÒ»ÀàµÄ×é¼þʱӦ²»Ê¹Óúó׺£¬ Áª±à¹¤¾ßÀà×é¼þӦʹÓà _build ºó׺£¬ ¶ø²å¼þÀà×é¼þ£¬ ÔòӦʹÓà _run ºó׺¡£ ϱíÖÐÁгöÁËһЩ×î³£ÓõÄ×é¼þ (È«²¿¿ÉÓõÄ×é¼þ£¬ ÔòÔÚ /usr/ports/Mk/bsd.qt.mk ÖÐµÄ _QT_COMPONENTS_ALL Áгö)£º
±í 6-9. ¿ÉÓÃµÄ Qt4 º¯Êý¿â×é¼þ
Ãû×Ö | ÃèÊö |
---|---|
corelib | ºËÐÄ¿â (ÔÚ port ֻʹÓà corelib ¶øÃ»ÓÐÓõ½ÆäËû¿âʱ¿ÉÒÔÊ¡ÂÔ) |
gui | ͼÐÎÓû§½çÃæ¿â |
network | ÍøÂ纯Êý¿â |
opengl | OpenGL º¯Êý¿â |
qt3support | Qt3 ¼æÈÝÖ§³Öº¯Êý¿â |
qtestlib | µ¥Ôª²âÊÔº¯Êý¿â |
script | ½Å±¾º¯Êý¿â |
sql | SQL º¯Êý¿â |
xml | XML º¯Êý¿â |
¡¡¡¡Äú¿ÉÒÔͨ¹ýÔڳɹ¦±àÒëÖ®ºó£¬ ͨ¹ýÔÚÖ÷¿ÉÖ´ÐÐÎļþÉÏÔËÐÐ ldd À´È·¶¨ËùÐèµÄ¿â¡£
±í 6-10. ¿ÉÓÃµÄ Qt4 ¹¤¾ß×é¼þ
Ãû×Ö | ÃèÊö |
---|---|
moc | Ôª¶ÔÏó±àÒëÆ÷ (¼¸ºõËùÓÐµÄ Qt Ó¦ÓóÌÐòÔÚÁª±à¹ý³ÌÖж¼ÐèÒªËü) |
qmake | Makefile Éú³ÉÆ÷ / Áª±à¹¤¾ß |
rcc | ×ÊÔ´±àÒëÆ÷ (Èç¹ûÓ¦ÓóÌÐòÖаüº¬ *.rc »ò *.qrc Îļþ£¬ ¾ÍÐèÒªËü) |
uic | Óû§½çÃæ±àÒëÆ÷ (Èç¹ûÓ¦ÓóÌÐòÖаüº¬Ê¹Óà Qt Designer ´´½¨µÄ *.ui Îļþʱ¾ÍÐèÒªËü - Ò»°ã˵À´ Qt Ó¦ÓóÌÐò¶¼»áʹÓà GUI µÄ) |
±í 6-11. ¿ÉÓÃµÄ Qt4 ²å¼þ×é¼þ
Ãû×Ö | ÃèÊö |
---|---|
iconengines | SVG ͼ±êÒýÇæ²å¼þ (Èç¹ûÓ¦ÓóÌÐòʹÓà SVG ͼ±ê) |
imageformats | ÓÃÓÚ GIF¡¢ JPEG¡¢ MNG ºÍ SVG µÄ imageformat ²å¼þ (Èç¹ûÓ¦ÓóÌÐòʹÓÃͼƬÎļþ) |
Àý 6-3. Ñ¡Ôñ Qt4 ×é¼þ
ÔÚÕâ¸öÀý×ÓÖУ¬ ÎÒÃǽ«ÒªÒÆÖ²µÄÓ¦ÓóÌÐòÓõ½ÁË Qt4 ͼÐÎÓû§½çÃæº¯Êý¿â¡¢ Qt4 ºËÐÄ (core) º¯Êý¿â¡¢ ËùÓÐ Qt4 ´úÂëÉú³É¹¤¾ßÒÔ¼° Qt4 µÄ Makefile Éú³ÉÆ÷¡£ ÓÉÓÚ gui º¯Êý¿â»á×Ô¶¯¸½´ø¶ÔºËÐĺ¯Êý¿âµÄÒÀÀµ£¬ Òò´Ë²¢²»ÐèÒªÃ÷È·Ö¸³öÐèÒª corelib µÄÒÀÀµ¹ØÏµ¡£ Qt4 ´úÂëÉú³É¹¤¾ß moc¡¢ uic ºÍ rcc ÒÔ¼° Makefile Éú³ÉÆ÷ qmake Ö»ÔÚÁª±à¹ý³ÌÖвŻáÓõ½£¬ Òò´Ë¿ÉÒÔÖ¸¶¨ _build ºó׺£º
USE_QT_VER= 4 QT_COMPONENTS= gui moc_build qmake_build rcc_build uic_build
¡¡¡¡Èç¹ûÓ¦ÓóÌÐòûÓÐÌṩ configure Îļþ£¬ ¶øÊǸøÁËÒ»¸ö .pro Îļþ£¬ ÔòÓ¦ÕâÑù£º
HAS_CONFIGURE= yes do-configure: @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \ ${QMAKE} -unix PREFIX=${PREFIX} texmaker.pro
¡¡¡¡Çë×¢Ò⣬ ÕâÓëϵͳÌṩµÄ BUILD.sh ÖÐµÄ qmake ÀàËÆ¡£ ´«µÝ CONFIGURE_ENV Äܹ»È·±£ qmake ¿ÉÒÔ¿´µ½ QMAKESPEC ±äÁ¿£¬ ·ñÔòËü¿ÉÄÜÎÞ·¨Õý³£¹¤×÷¡£ qmake »áÉú³É±ê×¼µÄ Makefile£¬ Òò´ËÎÞÐè×ÔÐбàд build target¡£
¡¡¡¡Qt Ó¦ÓóÌÐòͨ³£»á±àдΪÄܹ»¿çƽ̨ʹÓ㬠ͨ³£ X11/Unix ²¢²»ÊÇ¿ª·¢ËüµÄƽ̨£¬ ÓÐʱÕâ»áµ¼ÖÂһЩ±ß±ß½Ç½ÇµÄÎÊÌ⣬ ÀýÈ磺
ȱÉÙ±ØÒªµÄ includepaths¡£ Ðí¶àÓ¦ÓóÌÐò»áʹÓÃÍÐÅÌͼ±êÖ§³Ö£¬ µ«ºöÂÔÁËÕâЩͷ»ò¿âÎļþÐèÒªÔÚ X11 Ŀ¼ÖвéÕÒ¡£ Äú¿ÉÒÔͨ¹ýÃüÁîÐиæËß qmake ½«ÕâЩͷÎļþºÍº¯Êý¿â¼ÓÈëµ½ËÑË÷·¾¶ÖУ¬ ÀýÈ磺
${QMAKE} -unix PREFIX=${PREFIX} INCLUDEPATH+=${LOCALBASE}/include \ LIBS+=-L${LOCALBASE}/lib sillyapp.pro
ÓÐÎÊÌâµÄ°²×°Â·¾¶¡£ ÓÐʱ£¬ ÀàËÆÍ¼±ê»ò .desktop ÎļþÕâÑùµÄһЩÊý¾Ý£¬ ĬÈÏÇé¿öÏÂûÓа²×°µ½ XDG-¼æÈݵijÌÐò»áɨÃèµÄ·¾¶ÖС£ editors/texmaker ¾ÍÊÇÒ»¸öÕâÑùµÄÀý×Ó - Çë²Î¿¼Õâ¸ö port µÄ files Ŀ¼ÖÐµÄ patch-texmaker.pro£¬ ÒÔÁ˽âÈçºÎÔÚ Qmake ¹¤³ÌÎļþÖÐÐÞÕýÕâ¸öÎÊÌâ¡£
±í 6-12. ÓÃÓÚʹÓà KDE 3.x µÄ port µÄ±äÁ¿
USE_KDELIBS_VER | ±íʾ port Óõ½ÁË KDE ¿â¡£ Õâ¸ö±äÁ¿¿ÉÒÔÖ¸¶¨Ï£ÍûʹÓÃµÄ KDE Ö÷°æ±¾ºÅ£¬ Èç¹ûÉèÖÃÁËÕâ¸ö±äÁ¿£¬ ÔòϵͳҲ»á½« USE_QT_VER ÉèΪÊʵ±µÄ°æ±¾¡£ ¸Ã±äÁ¿Ä¿Ç°Î¨Ò»ÓÐЧµÄÖµÊÇ 3¡£ |
USE_KDEBASE_VER | ±íʾ port Óõ½ÁË KDE µÄ»ù±¾ÏµÍ³¡£ Õâ¸ö±äÁ¿¿ÉÒÔÖ¸¶¨Ï£ÍûʹÓÃµÄ KDE Ö÷°æ±¾ºÅ£¬ Èç¹ûÉèÖÃÁËÕâ¸ö±äÁ¿£¬ ÔòϵͳҲ»á½« USE_QT_VER ÉèΪÊʵ±µÄ°æ±¾¡£ ¸Ã±äÁ¿Ä¿Ç°Î¨Ò»ÓÐЧµÄÖµÊÇ 3¡£ |
¡¡¡¡Èç¹ûÄúµÄÓ¦ÓóÌÐòÐèҪʹÓà KDE 4.x£¬ ÔòÓ¦½« USE_KDE4 ÉèΪËùÐè×é¼þµÄÁÐ±í¡£ ÏÂÃæÁгöһЩ×î³£Óõ½µÄ×é¼þ (×îеÄ×é¼þÁбíλÓÚ /usr/ports/Mk/bsd.kde4.mk ÖÐµÄ _USE_KDE4_ALL)£º
±í 6-13. ¿ÉÓÃµÄ KDE4 ×é¼þ
Ãû³Æ | ˵Ã÷ |
---|---|
akonadi | ¸öÈËÐÅÏ¢¹ÜÀí (PIM)´æ´¢·þÎñ |
automoc4 | Áî port ʹÓà automoc4 Áª±à¹¤¾ß¼¯ |
kdebase | »ù±¾µÄ KDE Ó¦ÓóÌÐò (Konqueror¡¢ Dolphin¡¢ Konsole) |
kdeexp | ÊÔÑéÐ﵀ KDE ¿â (°üº¬ÉÐδÍêȫȷ¶¨²»±äµÄ API) |
kdehier | ³£ÓÃµÄ KDE Ŀ¼²ã´Î½á¹¹ |
kdelibs | »ù±¾ KDE ¿â |
kdeprefix | Èç¹ûÉèÖÃÁËÕâ¸öÑ¡Ï Ôò port ½«°²×°µ½ ${KDE4_PREFIX} ¶ø²»ÊÇ ${LOCALBASE} |
pimlibs | PIM º¯Êý¿â |
workspace | ÓÃÓÚ×é³É×ÀÃæµÄÓ¦ÓóÌÐòºÍº¯Êý¿â (Plasma¡¢ KWin) |
¡¡¡¡KDE 4.x port »á°²×°µ½ ${KDE4_PREFIX}£¬ ĿǰÊÇ /usr/local/kde4£¬ ÒÔ±ÜÃâÓë KDE 3.x ports ³åÍ»¡£ ÕâÊÇͨ¹ýÖ¸¶¨ kdeprefix ×é¼þÀ´ÊµÏֵģ¬ Ëü±íÊ¾Ìæ»»Ä¬È쵀 PREFIX¡£ ²»¹ý£¬ port ÈÔ»á×ñÑͨ¹ý MAKEFLAGS »·¾³±äÁ¿ÉèÖÃµÄ PREFIX ÒÔ¼°ÆäËü make ²ÎÊý¡£
¡¡¡¡KDE 4.x ports ÓпÉÄÜºÍ KDE 3.x ports ³åÍ»£¬ Òò´ËÈç¹ûÆôÓÃÁË kdeprefix ×é¼þ£¬ ËüÃǻᰲװµ½ ${KDE4_PREFIX}¡£ Ŀǰ KDE4_PREFIX µÄĬÈÏÖµÊÇ /usr/local/kde4¡£ Ò²¿ÉÒÔ½« KDE 4.x ports °²×°µ½×Ô¶¨ÒåµÄ PREFIX¡£ µ± PREFIX ÊÇͨ¹ý MAKEFLAGS »·¾³±äÁ¿£¬ »òÖ±½ÓÔÚ make ÃüÁîÐÐÖ¸¶¨Ê±£¬ Ëü»áÌæ»» kdeprefix ÌṩµÄÅäÖá£
Àý 6-4. USE_KDE4 ʾÀý
ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄ KDE 4 port¡£ USE_CMAKE Ö¸¶¨ port ʹÓà CMake ©¤©¤ Ðí¶à KDE 4 ÏîÄ¿ËùʹÓõÄÅäÖù¤¾ß¡£ USE_KDE4 ÔòÒýÈë KDE º¯Êý¿â£¬ ²¢Áî port ÔÚÁª±à½×¶ÎʹÓà automoc4¡£ ÐèÒªµÄ KDE ×é¼þ£¬ ÒÔ¼°ÆäËûÒÀÀµµÄ×é¼þ¿ÉÒÔ´Ó configure µÄÈÕÖ¾ÖлñÖª¡£ USE_KDE4 ²¢²»»á×Ô¶¯ÉèÖà USE_QT_VER¡£ Èç¹û port ÐèҪʹÓÃijЩ Qt4 ×é¼þ£¬ ÔòÐèÒªÉèÖà USE_QT_VER ²¢Ö¸¶¨ËùÐèÒªµÄ×é¼þ¡£
USE_CMAKE= yes USE_KDE4= automoc4 kdelibs kdeprefix USE_QT_VER= 4 QT_COMPONENTS= qmake_build moc_build rcc_build uic_build
¡¡¡¡Èç¹ûÄúµÄ port ÐèÒª Java" ¿ª·¢°ü (JDK") À´Íê³ÉÁª±à¡¢ Ö§³ÖÔËÐУ¬ ÉõÖÁÍê³É½â¿ªÔ´´úÂë°üÕâÑùµÄ¹¤×÷£¬ ¾ÍÓ¦¸Ã¶¨Òå USE_JAVA¡£
¡¡¡¡ÔÚ Ports Collection ÖÐÓÐÐí¶à²»Í¬µÄ JDK£¬ ËüÃǵİ汾¸÷²»Ïàͬ£¬ »òÊÇÀ´×Ô²»Í¬µÄ¹©Ó¦ÉÌ¡£ Èç¹ûÄúµÄ port ±ØÐëʹÓÃÆäÖеÄij¸öÌØ¶¨µÄ°æ±¾£¬ Ò²¿ÉÒÔÓèÒÔ¶¨Òå¡£ ×îеÄÎȶ¨°æ±¾ÊÇ java/jdk16¡£
±í 6-14. Óõ½ Java µÄ port ¿ÉÒÔʹÓõıäÁ¿
±äÁ¿ | ÒâÒå |
---|---|
USE_JAVA | Ö»Óж¨ÒåËü²ÅÄÜʹÆäËü±äÁ¿ÉúЧ¡£ |
JAVA_VERSION | Óÿոñ·Ö¿ªµÄÊÊºÏ port ʹÓÃµÄ Java °æ±¾¡£ ¿ÉÑ¡µÄ "+" ¿ÉÒÔÓÃÓÚÖ¸¶¨Ä³¸ö·¶Î§µÄ°æ±¾ (¿ÉÒÔÓ㺠1.1[+] 1.2[+] 1.3[+] 1.4[+] 1.5[+] 1.6[+])¡£ |
JAVA_OS | Óÿոñ·Ö¿ªµÄÊÊÓ¦ port µÄ JDK port ²Ù×÷ϵͳÀàÐÍ (¿ÉÒÔÓ㺠native linux)¡£ |
JAVA_VENDOR | Óÿոñ·Ö¿ªµÄÊÊÓ¦ port µÄ JDK port ¹©Ó¦ÉÌ (¿ÉÒÔÓ㺠freebsd bsdjava sun ibm blackdown)¡£ |
JAVA_BUILD | ÉèÖÃÕâ¸ö±äÁ¿±íʾËùÑ¡µÄ JDK port Ó¦±»ÁÐÈë port µÄÁª±àÒÀÀµ¹ØÏµ¡£ |
JAVA_RUN | ÉèÖÃÕâ¸ö±äÁ¿±íʾËùÑ¡µÄ JDK port Ó¦±»ÁÐÈë port µÄÔËÐл·¾³ÒÀÀµ¹ØÏµ¡£ |
JAVA_EXTRACT | ÉèÖÃÕâ¸ö±äÁ¿±íʾËùÑ¡µÄ JDK port Ó¦±»ÁÐÈë port µÄ½âѹËõÖ§³ÖÒÀÀµ¹ØÏµ¡£ |
USE_JIKES | port ÊÇ·ñӦʹÓà jikes bytecode ±àÒëÆ÷½øÐÐÁª±à¡£ Èç¹ûûÓÐÉèÖ㬠Ôò port ½«ÔÚ jikes ¿ÉÓõÄÇé¿öÏÂÔÚÁª±àʱʹÓÃËü¡£ ÄúÒ²¿ÉÒÔÃ÷È·µØ½ûֹʹÓûòÒªÇóʹÓà jikes (ͨ¹ý½«Õâ¸ö±äÁ¿ÉèÖÃΪ 'no' »ò 'yes')¡£ ºóÒ»ÖÖÇéÐÎÖУ¬ devel/jikes ½«¼ÓÈë port µÄÁª±àÒÀÀµ¹ØÏµ¡£ ÈκÎÇé¿öÏ£¬ Èç¹û jikes ±»×÷Ϊ javac ʹÓ㬠Ôò bsd.java.mk »á¶¨Òå HAVE_JIKES ±äÁ¿¡£ |
¡¡¡¡ÏÂÃæÊÇÔÚÉèÖÃÁË USE_JAVA Ö®ºó£¬ port Äܹ»´ÓϵͳÖлñµÃµÄÅäÖãº
±í 6-15. ÏòʹÓÃÁË Java µÄ port ÌṩµÄ±äÁ¿
±äÁ¿ | Öµ |
---|---|
JAVA_PORT | JDK port µÄÃû×Ö (ÀýÈç 'java/jdk14')¡£ |
JAVA_PORT_VERSION | JDK port µÄÍêÕû°æ±¾ (ÀýÈç '1.4.2')¡£ Èç¹ûÄúÖ»ÐèÒª°æ±¾ºÅµÄǰÁ½Î»£¬ Ôò¿ÉÓà ${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/}¡£ |
JAVA_PORT_OS | ËùÓà JDK port µÄ²Ù×÷ϵͳ (ÀýÈç 'linux')¡£ |
JAVA_PORT_VENDOR | ËùÓà JDK port µÄ¹©Ó¦ÉÌ (ÀýÈç 'sun')¡£ |
JAVA_PORT_OS_DESCRIPTION | ËùÓà JDK port ²Ù×÷ϵͳµÄÃèÊö (ÀýÈç 'Linux')¡£ |
JAVA_PORT_VENDOR_DESCRIPTION | ËùÓà JDK port ¹©Ó¦É̵ÄÃèÊö (ÀýÈç 'FreeBSD Foundation')¡£ |
JAVA_HOME | JDK µÄ°²×°Ä¿Â¼ (ÀýÈç '/usr/local/jdk1.3.1')¡£ |
JAVAC | ËùÓà Java ±àÒëÆ÷µÄÍêÕû·¾¶ (ÀýÈç '/usr/local/jdk1.3.1/bin/javac' »ò '/usr/local/bin/jikes')¡£ |
JAR | ËùÓà jar ¹¤¾ßµÄÍêÕû·¾¶ (ÀýÈç '/usr/local/jdk1.3.1/bin/jar' »ò '/usr/local/bin/fastjar')¡£ |
APPLETVIEWER | ËùÓà appletviewer ¹¤¾ßµÄÍêÕû·¾¶ (ÀýÈç '/usr/local/linux-jdk1.3.1/bin/appletviewer')¡£ |
JAVA | ËùÓà java Ö´ÐÐÎļþµÄÍêÕû·¾¶¡£ ÄúӦʹÓÃËüÀ´Ö´ÐÐ Java ³ÌÐò (ÀýÈç '/usr/local/jdk1.3.1/bin/java')¡£ |
JAVADOC | ËùÓà javadoc ¹¤¾ßµÄÍêÕû·¾¶¡£ |
JAVAH | ËùÓà javah ³ÌÐòµÄÍêÕû·¾¶¡£ |
JAVAP | ËùÓà javap ³ÌÐòµÄÍêÕû·¾¶¡£ |
JAVA_KEYTOOL | ËùÓà keytool ¹¤¾ßµÄÍêÕû·¾¶¡£ |
JAVA_N2A | ËùÓà native2ascii ¹¤¾ßµÄÍêÕû·¾¶¡£ |
JAVA_POLICYTOOL | ËùÓà policytool ³ÌÐòµÄÍêÕû·¾¶¡£ |
JAVA_SERIALVER | ËùÓà serialver ³ÌÐòµÄÍêÕû·¾¶¡£ |
RMIC | ËùÓà RMI ×®/¼Ü Éú³ÉÆ÷£¬ rmic µÄÍêÕû·¾¶¡£ |
RMIREGISTRY | ËùÓà RMI ×¢²á±í³ÌÐò£¬ rmiregistry µÄÍêÕû·¾¶¡£ |
RMID | ËùÓà RMI ·þÎñ³ÌÐò rmid µÄÍêÕû·¾¶¡£ |
JAVA_CLASSES | ËùÓà JDK ÀàÎļþĿ¼µÄÍêÕû·¾¶¡£ ${JAVA_HOME}/jre/lib/rt.jar¡£ |
HAVE_JIKES | Ëæ jikes ÊÇ·ñ½«±»Ó¦ÓÃÓÚ port µÄÁª±à¹ý³Ì¶ø¶¨ (²Î¼ûǰÊö USE_JIKES)¡£ |
¡¡¡¡Äú¿ÉÒÔʹÓà java-debug make target ÒÔ»ñÈ¡ÓÃÓÚµ÷ÊÔ port µÄÐÅÏ¢¡£ ´ó¶àÊýǰÊö±äÁ¿µÄÖµ½Ô»áÓèÒÔ³ÊÏÖ¡£
¡¡¡¡´ËÍ⣬ »¹»á¶¨ÒåÏÂÊö³£Á¿£¬ ÒÔÈ·±£ËùÓÐµÄ Java port ¾ùÒÔÒ»ÖÂÖ®·½Ê½°²×°£º
±í 6-16. ΪʹÓà Java µÄ port ¶¨ÒåµÄ³£Á¿
³£Á¿ | Öµ |
---|---|
JAVASHAREDIR | ËùÓÐ Java Ïà¹Ø×ÊÁϵݲװ¸ùĿ¼¡£ ĬÈÏÖµ£º ${PREFIX}/share/java. |
JAVAJARDIR | ÓÃÒÔ°²×° JAR ÎļþµÄĿ¼¡£ ĬÈÏÖµ£º ${JAVASHAREDIR}/classes¡£ |
JAVALIBDIR | ÆäËü port °²×°µÄ JAR ÎļþËùÔÚµÄĿ¼¡£ ĬÈÏÖµ£º ${LOCALBASE}/share/java/classes¡£ |
¡¡¡¡Ïà¹ØµÄÏîÒ²»á¶¨ÒåÔÚ PLIST_SUB (ÔÚ µÚ 7.1 ½Ú ÖнøÐнéÉÜ) ºÍ SUB_LIST ÖС£
¡¡¡¡Èç¹û port ²ÉÓà Apache Ant ½øÐÐÁª±à£¬ ÔòÐèÒª¶¨Òå USE_ANT¡£ ÈçÊÇ£¬ Ôò Ant ½«×÷Ϊ ×Ó-make ÃüÁîÀ´Ê¹ÓᣠÈç¹û port 䶨Òå do-build target£¬ Ôò½«Ä¬ÈÏÒÀ MAKE_ENV¡¢ MAKE_ARGS ºÍ ALL_TARGET¡£ µÄÉèÖÃÖ´ÐÐ Ant¡£ ÕâÀàËÆÓÚ µÚ 6.3 ½Ú ÖнéÉܵĹØÓÚ USE_GMAKE µÄ»úÖÆ¡£
¡¡¡¡Èô jikes ±»×÷Ϊ javac ʹÓà (²Î¼û µÚ 6.11.1 ½Ú ÖÐµÄ USE_JIKES)£¬ Ôò Ant »á×Ô¶¯½«ÆäÓÃÓÚ port µÄÁª±à¹ý³Ì¡£
¡¡¡¡Èç¹ûÄúÕýÒÆÖ²Ä³¸ö Java ¿â£¬ ÄúµÄ port Ó¦°Ñ JAR Îļþ°²×°µ½ ${JAVAJARDIR}£¬ ¶øÆäËüÎļþÔòÓ¦·ÅÔÚ ${JAVASHAREDIR}/${PORTNAME} Ï (³ýÁËÎĵµ£¬ ²Î¼ûÏÂÎÄ)¡£ Òª¼õÉÙ´ò°üÎļþµÄ³ß´ç£¬ Äú¿ÉÒÔÖ±½ÓÔÚ Makefile ÖÐÒýÓÃÕâЩ JAR Îļþ£¬ ¾ßÌå×ö·¨ÊÇʹÓÃÏÂÃæµÄÓï¾ä (´Ë´¦µÄ myport.jar ÊÇ×÷Ϊ port Ò»²¿·Ö°²×°µÄ JAR ÎļþµÄÃû×Ö)£º
PLIST_FILES+= %%JAVAJARDIR%%/myport.jar
¡¡¡¡ÒÆÖ² Java Ó¦ÓóÌÐòʱ£¬ port ͨ³£»áÏ£Íû½«ËùÓÐÎļþ°²×°µ½Í¬Ò»Ä¿Â¼ (°üÀ¨ÆäÒÀÀµµÄ JAR)¡£ ÕâʱǿÁÒ½¨ÒéʹÓà ${JAVASHAREDIR}/${PORTNAME}¡£ ÒÆÖ²Èí¼þµÄ¿ª·¢ÈËÔ±£¬ ¿ÉÒÔ×ÔÐоö¶¨ÊÇ·ñ½«ËùÒÀÀµµÄÆäËü JAR °²×°µ½´ËĿ¼£¬ »òÖ±½ÓʹÓÃÒѾװºÃµÄÄÇЩ (À´×Ô ${JAVAJARDIR})¡£
¡¡¡¡ÎÞÂÛÄúÕýÖÆ×÷ÄÄÒ»ÀàµÄ port (¿â»òÕßÓ¦ÓóÌÐò)£¬ ¸½¼ÓµÄÎĵµ¶¼Ó¦°²×°µ½ºÍÆäËü port ͬÑùµÄλÖᣠÒѾ֪µÀ£¬ JavaDoc »á¸ù¾Ý JDK °æ±¾µÄ²»Í¬¶ø²úÉú²»Í¬µÄÎļþ¡£ ¶ÔÓÚÄÇЩ²»´òËãÇ¿ÖÆÊ¹ÓÃÄ³Ò»ÌØ¶¨°æ±¾ JDK µÄ port ¶øÑÔ£¬ ÕâÎÞÒÉÌá¸ßÁËÖÆ×÷×°Ïäµ¥ (pkg-plist) µÄÄѶȡ£ ÕâÊÇΪʲôǿÁÒ½¨ÒéʹÓà PORTDOCS ºêµÄÔÒò¡£ ¸ü½øÒ»²½£¬ ¼´Ê¹ÄúÄܹ»Ô¤²â javadoc ½«ÒªÉú³ÉµÄÎļþ£¬ ËùÐèµÄ pkg-plist µÄ³ß´ç£¬ Ò²ÊǹĴµÊ¹Óà PORTDOCS µÄÒ»´óÀíÓÉ¡£
¡¡¡¡DATADIR µÄĬÈÏÖµÊÇ ${PREFIX}/share/${PORTNAME}¡£ ¶Ô Java port ¶øÑÔ½« DATADIR ¸ÄΪ ${JAVASHAREDIR}/${PORTNAME} ÊÇÒ»¸öºÃÖ÷Òâ¡£ µ±È»£¬ DATADIR »á×Ô¶¯¼Óµ½ PLIST_SUB ÖÐ (ÔÚ µÚ 7.1 ½Ú ÓÐËù½éÉÜ) Òò´ËÄú¿ÉÒÔÔÚ pkg-plist ÖÐÖ±½ÓʹÓà %%DATADIR%%¡£
¡¡¡¡×«Ð´±¾ÎÄʱ£¬ ¶ÔÊÇÓ¦¸Ã´ÓÔ´´úÂëÁª±à£¬ »¹ÊÇÖ±½Ó°²×°Ô¤±àÒëµÄ Java ports °²×°°ü²¢Ã»ÓÐÃ÷È·µÄ¹æ¶¨¡£ ¾¡¹ÜÈç´Ë£¬ FreeBSD Java Project µÄ¿ª·¢ÈËÔ±ÈÔ¹ÄÀøÒÆÖ²Èí¼þµÄ¿ª·¢ÕßÔÚ²»Âé·³µÄÇé¿öϾ¡¿ÉÄÜ´ÓÔ´´úÂëÍê³ÉÁª±à¡£
¡¡¡¡±¾½ÚÖÐËù½éÉܵÄÈ«²¿ÌØÐÔ£¬ ¾ùÊÇÔÚ bsd.java.mk ÖÐʵÏֵġ£ Èç¹ûÄú¸Ð¾õ×Ô¼ºµÄ port ÐèÒª¸üΪ¸´Ô Java Ö§³Ö£¬ ÇëÊ×ÏȲÎÔÄ bsd.java.mk CVS ÈÕÖ¾£¬ ÒòΪͨ³£×«ÎĽéÉÜ×îÐÂÌØÐÔÐèҪһЩʱ¼ä¡£ ´ËÍ⣬ Èç¹ûÄúÈÏΪËùȱÉÙµÄÖ§³Ö¶ÔÐí¶àÆäËü Java port ÒàÊôÓÐÒæ£¬ ÇëÔÚ FreeBSD Java ÓïÑÔÓʼþÁÐ±í ¶ÔÆä½øÐÐÌÖÂÛ¡£
¡¡¡¡ÔÚ PR ÖÐµÄ java Àà±ð£¬ Ö÷ÒªÊÇÓÃÓÚ FreeBSD Java project ÒÆÖ² JDK ±¾ÉíÖ®ÓᣠÒò¶ø£¬ Ìá½»ÄúµÄ Java port ʱ£¬ Ó¦¹éÈë ports Àà±ð£¬ ³ý·ÇÄúÕý³¢ÊÔ½â¾öµÄÎÊÌâÊÇ JDK ʵÏÖ±¾Éí»ò bsd.java.mk µÄ¡£
¡¡¡¡ÀàËÆµØ£¬ ÄúÓ¦²Î¿¼ µÚ 5.3 ½Ú ÖÐËùÏêÊöµÄ¹ØÓÚ CATEGORIES ÔÚ Java port ÖеÄʹÓùæÔò¡£
±í 6-17. Óõ½ Apache µÄ port ¿ÉÒÔʹÓõıäÁ¿
USE_APACHE | ´Ë port ÐèÒª Apache¡£ ¿ÉÓõÄÖµ£º yes (ÈÎÒâ¿ÉÓð汾)¡¢ 1.3¡¢ 2.0¡¢ 2.2¡¢ 2.0+¡¢ µÈµÈ¡£ ĬÈÏÒÀÀµµÄ°æ±¾ÊÇ 1.3¡£ |
WITH_APACHE2 | ´Ë port ÐèÒª Apache 2.0¡£ Èç¹ûûÓÐÕâ¸ö±äÁ¿£¬ Ôò port ½«ÒÀÀµ Apache 1.3¡£ ÕâÒ»±äÁ¿Ä¿Ç°ÒѾ¹ýʱ£¬ Òò¶ø²»Ó¦¼ÌÐøÊ¹Óᣠ|
APXS | µ½ apxs ¿ÉÖ´ÐÐÎļþµÄÍêÕû·¾¶¡£ Äú¿ÉÒÔÔÚ port ÖÐÌæ´ú¸ÃÖµ¡£ |
HTTPD | µ½ httpd ¿ÉÖ´ÐÐÎļþµÄÍêÕû·¾¶¡£ Äú¿ÉÒÔÔÚ port ÖÐÌæ´ú¸ÃÖµ¡£ |
APACHE_VERSION | ĿǰϵͳÖа²×°µÄ Apache °æ±¾ (Ö»¶Á±äÁ¿)¡£ ÕâÒ»±äÁ¿Ö»ÓÐÔÚÒýÓÃÁË bsd.port.pre.mk Ö®ºó²ÅÄÜʹÓ㬠Æä¿ÉÄܵÄֵΪ£º 13¡¢ 20¡¢ 22¡£ |
APACHEMODDIR | Apache Ä£¿éËùÔÚµÄÎļþ¼Ð¡£ ÔÚ pkg-plist ÖУ¬ ÕâÒ»±äÁ¿»á×Ô¶¯Õ¹¿ª¡£ |
APACHEINCLUDEDIR | Apache Í·ÎļþËùÔÚµÄÎļþ¼Ð¡£ ÔÚ pkg-plist ÖУ¬ ÕâÒ»±äÁ¿»á×Ô¶¯Õ¹¿ª¡£ |
APACHEETCDIR | Apache ÅäÖÃÎļþËùÔÚµÄÎļþ¼Ð¡£ ÔÚ pkg-plist ÖУ¬ ÕâÒ»±äÁ¿»á×Ô¶¯Õ¹¿ª¡£ |
±í 6-18. ÔÚÒÆÖ² Apache Ä£¿éʱ±È½ÏÓÐÓõıäÁ¿
MODULENAME | Ä£¿éµÄÃû³Æ¡£ ĬÈÏֵΪ PORTNAME¡£ ÀýÈ磺 mod_hello |
SHORTMODNAME | Ä£¿éµÄ¼òÂÔÃû×Ö¡£ ĬÈÏÇé¿öÏ»á×Ô¶¯¸ù¾Ý MODULENAME ¼ÆË㣬 µ«ÄúÒ²¿ÉÒÔ×ÔÐÐÉèÖÃÖµÀ´Ìæ´úËü¡£ ÀýÈ磺 hello |
AP_FAST_BUILD | ʹÓà apxs À´±àÒëºÍ°²×°Ä£¿é¡£ |
AP_GENPLIST | ͬʱ×Ô¶¯´´½¨ pkg-plist¡£ |
AP_INC | ÔÚ±àÒë¹ý³ÌÖУ¬ ½«Ö¸¶¨µÄĿ¼¼ÓÈëµ½ËÑË÷Í·ÎļþµÄĿ¼ÖС£ |
AP_LIB | ÔÚ±àÒë¹ý³ÌÖУ¬ ½«Ö¸¶¨µÄĿ¼¼ÓÈëµ½ËÑË÷º¯Êý¿âµÄĿ¼ÖС£ |
AP_EXTRAS | ´«µÝ¸ø apxs µÄ¶îÍâ²ÎÊý¡£ |
¡¡¡¡Web Ó¦ÓóÌÐòÓ¦°²×°µ½ PREFIX/www/Ó¦ÓóÌÐòµÄÃû×Ö¡£ Ϊ·½±ãÆð¼û£¬ Õâ¸ö·¾¶ÔÚ Makefile ºÍ pkg-plist ¾ùÒÔ WWWDIR ±äÁ¿µÄÐÎʽÌṩ¡£ ÔÚ Makefile ÖпÉÒÔʹÓà WWWDIR_REL À´±íʾ°üº¬ÁË PREFIX µÄ¸Ã±äÁ¿Öµ¡£
¡¡¡¡web ·þÎñÆ÷½ø³ÌËùÓõÄÓû§ºÍÓû§×飬 ·Ö±ðÒÔ WWWOWN ºÍ WWWGRP ±äÁ¿µÄÐÎʽÌṩ£¬ Èç¹ûÄúÐèÒªÐÞ¸ÄijЩÎļþµÄÊôÖ÷µÄ»°¡£ ÕâÁ½¸ö±äÁ¿µÄĬÈÏÖµ¾ùΪ www¡£ Èç¹ûÄúµÄ port Ï£ÍûʹÓÃÆäËûÖµ£¬ ÇëʹÓà WWWOWN?= myuser ÕâÖÖд·¨£¬ ÒÔ±ãÈÃÓû§Äܹ»¸üÈÝÒ×µØÐÞ¸ÄËü¡£
¡¡¡¡³ý·ÇÄúµÄ port ±ØÐèʹÓà Apache£¬ ·ñÔò²»Òª½«ÆäдÈëÒÀÀµ¹ØÏµ¡£ Çë×ðÖØÔËÐÐÄúµÄÓ¦ÓóÌÐòµÄÓû§Ñ¡Ôñ Apache ÒÔÍâµÄÆäËû web ·þÎñÆ÷µÄÐèÇó¡£
±í 6-19. Óõ½ PHP µÄ port ÖпÉÒÔʹÓõıäÁ¿
USE_PHP | ´Ë port ÐèÒª PHP¡£ ȡֵΪ yes ½«°Ñ PHP ¼ÓÈëÒÀÀµ¹ØÏµ¡£ ´ËÍ⣬ »¹¿ÉÒÔÔÚ´ËÖ¸¶¨½«ËùÐèÒªµÄ PHP À©Õ¹Ä£¿é¡£ ÀýÈ磺 pcre xml gettext |
DEFAULT_PHP_VER | Ñ¡ÔñÔÚûÓа²×° PHP ʱ×Ô¶¯°²×°µÄ PHP Ö÷°æ±¾¡£ ĬÈÏÊÇ 4¡£ ¿ÉÑ¡ 4¡¢ 5 Ö®Ò»¡£ |
IGNORE_WITH_PHP | ´Ë port ÎÞ·¨Óë¸ø¶¨°æ±¾µÄ PHP һͬ¹¤×÷¡£ ¿ÉѡֵΪ 4¡¢ 5 Ö®Ò»¡£ |
USE_PHPIZE | ´Ë port ½«×÷Ϊ PHP À©Õ¹Ä£¿é½øÐÐÁª±à¡£ |
USE_PHPEXT | ´Ë port ½«×÷Ϊ PHP À©Õ¹£¬ ÇÒÐèÒª×÷ΪÀ©Õ¹Ä£¿é×¢²á¡£ |
USE_PHP_BUILD | Áª±àÒÀÀµÓÚ PHP¡£ |
WANT_PHP_CLI | Ï£ÍûʹÓà CLI (ÃüÁîÐÐ) °æ±¾µÄ PHP¡£ |
WANT_PHP_CGI | Ï£ÍûʹÓà CGI °æ±¾µÄ PHP¡£ |
WANT_PHP_MOD | Ï£ÍûʹÓà Apache Ä£¿é°æ±¾µÄ PHP¡£ |
WANT_PHP_SCR | Ï£ÍûʹÓà CLI »ò CGI °æ±¾µÄ PHP¡£ |
WANT_PHP_WEB | Ï£ÍûʹÓà Apache Ä£¿é»ò CGI °æ±¾µÄ PHP¡£ |
¡¡¡¡ÒÆÖ² PEAR Ä£¿éµÄ¹ý³Ì·Ç³£¼òµ¥¡£
¡¡¡¡Ê¹Óà FILES¡¢ TESTS¡¢ DATA¡¢ SQLS¡¢ SCRIPTFILES¡¢ DOCS ÒÔ¼° EXAMPLES ÕâЩ±äÁ¿À´Ö¸Ã÷ÄúÏ£Íû°²×°µÄÎļþ¡£ ËùÓÐÕâÀïÁгöµÄÎļþ¶¼»á×Ô¶¯°²×°µ½ºÏÊʵÄλÖ㬠²¢¼ÓÈë pkg-plist¡£
¡¡¡¡ÔÚ Makefile ÎļþµÄ×îºóÒ»ÐÐÒýÈë ${PORTSDIR}/devel/pear/bsd.pear.mk¡£
Àý 6-5. ÓÃÓÚ PEAR ÀàµÄ Makefile Àý×Ó
PORTNAME= Date PORTVERSION= 1.4.3 CATEGORIES= devel www pear MAINTAINER= example@domain.com COMMENT= PEAR Date and Time Zone Classes BUILD_DEPENDS= ${PEARDIR}/PEAR.php:${PORTSDIR}/devel/pear-PEAR RUN_DEPENDS= ${BUILD_DEPENDS} FILES= Date.php Date/Calc.php Date/Human.php Date/Span.php \ Date/TimeZone.php TESTS= test_calc.php test_date_methods_span.php testunit.php \ testunit_date.php testunit_date_span.php wknotest.txt \ bug674.php bug727_1.php bug727_2.php bug727_3.php \ bug727_4.php bug967.php weeksinmonth_4_monday.txt \ weeksinmonth_4_sunday.txt weeksinmonth_rdm_monday.txt \ weeksinmonth_rdm_sunday.txt DOCS= TODO _DOCSDIR= . .include <bsd.port.pre.mk> .include "${PORTSDIR}/devel/pear/bsd.pear.mk" .include <bsd.port.post.mk>
¡¡¡¡Ports Ì×¼þÖ§³Öͬʱ²¢Ðа²×°¶à¸ö²»Í¬µÄ Python °æ±¾¡£ Ports Ӧȷ±£Äܹ»¸ù¾ÝÓû§ÅäÖÃµÄ PYTHON_VERSION ±äÁ¿Ê¹ÓÃÕýÈ·µÄ python ½âÊÍÆ÷¡£ Ò»°ã˵À´£¬ ÕâÊÇͨ¹ý½«½Å±¾ÖÐµÄ python ·¾¶ÃûÌæ»»Îª PYTHON_CMD ±äÁ¿µÄÖµÀ´ÊµÏֵġ£
¡¡¡¡ÔÚ PYTHON_SITELIBDIR ϰ²×°ÎļþµÄ ports Ó¦ÔÚ°üÃûÉÏʹÓà pyXY- ǰ׺£¬ ÒÔ±ãÃ÷ʾËüÃǽ«»áÅäºÏÄĸö Python °æ±¾Ê¹Óá£
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
±í 6-20. ¶ÔÓõ½ Python µÄ port ×îÓÐÓõÄһЩ±äÁ¿
USE_PYTHON | ´Ë port ÐèÒª Python¡£ ¿ÉÒÔÓà 2.3+ ÕâÑùµÄÐÎʽÀ´Ö¸¶¨ËùÏ£ÍûµÄ°æ±¾¡£ ³ý´ËÖ®Í⣬ Ò²¿ÉÒÔÓúáÏßÀ´·Ö¸ôÁ½¸ö°æ±¾ºÅ£¬ ÒÔ±íʾij¸ö·¶Î§µÄ°æ±¾£¬ ÀýÈ磺 2.1-2.3 |
USE_PYDISTUTILS | ʹÓà Python distutils À´Íê³ÉÅäÖᢠ±àÒëºÍ°²×°¡£ ¶Ô°üº¬ setup.py µÄ port ¶øÑÔÕâÊDZØÐèµÄ¡£ Ëü»á×Ô¶¯¸²¸ÇĬÈ쵀 do-build ÒÔ¼° do-install ÕâÁ½¸ö target¡£ Èç䶨Òå GNU_CONFIGURE£¬ Ëü»¹»á¸Ä±ä do-configure¡£ |
PYTHON_PKGNAMEPREFIX | ×÷Ϊ PKGNAMEPREFIX À´Çø·Ö²»Í¬ Python °æ±¾µÄ package¡£ ÀýÈ磺 py24- |
PYTHON_SITELIBDIR | ȫվ package ËùÔÚµÄĿ¼£¬ Ëü°üÀ¨ÁË Python µÄ°²×°Ä¿Â¼ (ͨ³£ÊÇ LOCALBASE)¡£ ÔÚ°²×° Python Ä£¿éʱ£¬ PYTHON_SITELIBDIR ±äÁ¿»á·Ç³£ÓÐÓᣠ|
PYTHONPREFIX_SITELIBDIR | È¥µôÁË PREFIX ²¿·ÖµÄ PYTHON_SITELIBDIR¡£ Ó¦¾¡¿ÉÄÜÔÚ pkg-plist ÖÐʹÓà %%PYTHON_SITELIBDIR%%¡£ %%PYTHON_SITELIBDIR%% µÄĬÈÏÖµÊÇ lib/python%%PYTHON_VERSION%%/site-packages |
PYTHON_CMD | Python ½âÊÍÆ÷µÄÃüÁîÐУ¬ °üÀ¨°æ±¾ºÅ¡£ |
PYNUMERIC | ½«ÊýÖµ´¦ÀíÀ©Õ¹Ä£¿é¼ÓÈëÒÀÀµ¹ØÏµ¡£ |
PYNUMPY | ¶ÔÐÂÔöµÄÊýÖµ¼ÆËãÀ©Õ¹, numpyµÄÒÀÀµ¡£ (PYNUMERIC ĿǰÒѱ»×÷ÕßÌÔÌ)¡£ |
PYXML | ½« XML À©Õ¹Ä£¿é¼ÓÈëÒÀÀµ¹ØÏµ¡£ (¶ÔÓÚ Python 2.0 ºÍ¸ü¸ß°æ±¾²»ÔÙÐèÒª£¬ ÒòΪËüÒѾ³ÉΪÁ˱ê×¼×é¼þ)¡£ |
USE_TWISTED | ½« twistedCore ¼ÓÈëÒÀÀµ¹ØÏµ¡£ Ò²¿ÉÒÔÓÃÕâ¸ö±äÁ¿Ö¸¶¨ËùÐèµÄ×é¼þ£¬ ÀýÈ磺 web lore pair flow |
USE_ZOPE | ¼ÓÈë¶Ô Zope£¬ Ò»ÖÖ web Ó¦ÓÃÆ½Ì¨µÄÒÀÀµ¡£ Õâ»á°Ñ Python ÒÀÀµ¸ÄΪ Python 2.3¡£ ´ËÍâ ZOPEBASEDIR Ò²»á×Ô¶¯ÉèΪ Zope °²×°Ä¿Â¼µÄλÖᣠ|
¡¡¡¡ÍêÕûµÄ¿ÉÓñäÁ¿ÁÐ±í£¬ ¿ÉÒÔÔÚ /usr/ports/Mk/bsd.python.mk ÖÐÕÒµ½¡£
¡¡¡¡Ports Ì×¼þÖ§³Öͬʱ°²×°¶à¸ö Tcl/Tk °æ±¾¡£ Ports Ó¦ÖÁÉÙÖ§³ÖĬÈ쵀 Tcl/Tk °æ±¾£¬ ÒÔ¼°Í¨¹ý USE_TCL ºÍ USE_TK ±äÁ¿Ö¸¶¨µÄ¸ü¸ß°æ±¾¡£ Ï£ÍûʹÓÃµÄ tcl °æ±¾£¬ Ôò¿ÉÒÔͨ¹ý WITH_TCL_VER ±äÁ¿À´Ê¹Óá£
±í 6-21. Óõ½ Tcl/Tk µÄ port ¿ÉÒÔʹÓõıäÁ¿
USE_TCL | ±íʾ port ÒÀÀµÓÚ Tcl º¯Êý¿â (²»ÊÇ shell)¡£ ¿ÉÒÔÖ¸¶¨ÐèÒªµÄ×îµÍ°æ±¾£¬ ÀýÈç 84+¡£ ²»Ö§³ÖµÄ°æ±¾£¬ ¿ÉÒÔÔÚ INVALID_TCL_VER ±äÁ¿ÖÐÖð¸öÖ¸¶¨¡£ |
USE_TCL_BUILD | ±íʾ port ÔÚÁª±à¹ý³ÌÖÐÐèҪʹÓà Tcl¡£ |
USE_TCL_WRAPPER | ÐèҪʹÓà Tcl shell ¶ø²»ÐèÒªÌØ¶¨°æ±¾µÄ tclsh µÄ port ¿ÉÒÔʹÓÃÕâ¸öбäÁ¿¡£ ϵͳÖлᰲװ tclsh wrapper£¬ Óû§Ôò¿ÉÒÔÖ¸¶¨ËùÏ£ÍûµÄ tcl shell¡£ |
WITH_TCL_VER | ÓÉÓû§¶¨ÒåµÄ¡¢ Ï£ÍûʹÓÃµÄ Tcl °æ±¾¡£ |
UNIQUENAME_WITH_TCL_VER | ºÍ WITH_TCL_VER ÀàËÆ£¬ µ«ÊÇÕë¶Ô port Ö¸¶¨µÄ¡£ |
USE_TCL_THREADS | ÐèÒª°üº¬Ïß³ÌÖ§³ÖµÄ Tcl/Tk¡£ |
USE_TK | ±íʾ port ÒÀÀµÓÚ Tk ¿â (²»ÊÇ wish shell)¡£ Ëüͬʱ»áÒþº¬½« USE_TCL ÉèÖÃΪÏàͬµÄÖµ¡£ ¸ü¶àµÄÃèÊö£¬ Çë²Î¿¼ USE_TCL ±äÁ¿¡£ |
USE_TK_BUILD | Óë USE_TCL_BUILD ±äÁ¿±í´ïÀàËÆµÄº¬Òå¡£ |
USE_TK_WRAPPER | Óë USE_TCL_WRAPPER ±äÁ¿±í´ïÀàËÆµÄº¬Òå¡£ |
WITH_TK_VER | ±í´ïÓë WITH_TCL_VER ±äÁ¿ÀàËÆµÄº¬Ò壬 Ëüͬʱ»áÒþº¬½« WITH_TCL_VER ÉèÖÃΪÏàͬµÄÖµ¡£ |
¡¡¡¡¿ÉÓõıäÁ¿µÄÍêÕûÁÐ±í£¬ ¿ÉÒÔÔÚ /usr/ports/Mk/bsd.tcl.mk ÖÐÕÒµ½¡£
±í 6-22. ʹÓà Ruby µÄ port ¿ÉÒÔʹÓõıäÁ¿
±äÁ¿ | ˵Ã÷ |
---|---|
USE_RUBY | ´Ë port ÐèÒª Ruby¡£ |
USE_RUBY_EXTCONF | ´Ë port ʹÓà extconf.rb À´Íê³ÉÅäÖᣠ|
USE_RUBY_SETUP | ´Ë port ʹÓà setup.rb À´Íê³ÉÅäÖᣠ|
RUBY_SETUP | ½«´Ë±äÁ¿ÃûÉèÖÃΪËùÓÃµÄ setup.rb µÄÎļþÃû¡£ ͨ³£»áÊÇ install.rb¡£ |
¡¡¡¡Ï±íչʾÁË ports ϵͳÌṩ¸ø port ×÷ÕßµÄһЩ±äÁ¿¡£ ÄúӦʹÓÃÕâЩ±äÁ¿£¬ ÒÔ±ã°ÑÎļþ×°µ½ºÏÊʵÄλÖᣠÇ뾡¿ÉÄÜ¶àµØÔÚ pkg-plist ÖÐʹÓÃËüÃÇ¡£ ÕâЩ±äÁ¿²»Ó¦ÔÚ port ÖÐÖØÐ¶¨Òå¡£
±í 6-23. ʹÓà Ruby µÄ port ÖеÄһЩ¿ÉÓõÄÖ»¶Á±äÁ¿
±äÁ¿ | ˵Ã÷ | ʾ·¶Öµ |
---|---|---|
RUBY_PKGNAMEPREFIX | ×÷Ϊ PKGNAMEPREFIX ÒÔÇø·ÖÓÃÓÚ²»Í¬ Ruby °æ±¾µÄ package¡£ | ruby18- |
RUBY_VERSION | x.y.z ÐÎʽµÄÍêÕû ruby °æ±¾¡£ | 1.8.2 |
RUBY_SITELIBDIR | ƽ̨Î޹ؿâµÄ°²×°Â·¾¶¡£ | /usr/local/lib/ruby/site_ruby/1.8 |
RUBY_SITEARCHLIBDIR | ƽ̨Ïà¹ØµÄ¿âµÄ°²×°Â·¾¶¡£ | /usr/local/lib/ruby/site_ruby/1.8/amd64-freebsd6 |
RUBY_MODDOCDIR | Ä£¿éÎĵµµÄ°²×°Â·¾¶¡£ | /usr/local/share/doc/ruby18/patsy |
RUBY_MODEXAMPLESDIR | Ä£¿éÓÃÀýµÄ°²×°Â·¾¶¡£ | /usr/local/share/examples/ruby18/patsy |
¡¡¡¡¿ÉÓñäÁ¿µÄÍêÕûÁÐ±í£¬ ¿ÉÒÔÔÚ /usr/ports/Mk/bsd.ruby.mk ÖÐÕÒµ½¡£
¡¡¡¡±äÁ¿ USE_SDL ¿ÉÒÔÓÃÓÚ×Ô¶¯ÅäÖà port µÄÒÀÀµ¹ØÏµ£¬ ÒÔÊÊӦʹÓÃÀàËÆ devel/sdl12 ºÍ x11-toolkits/sdl_gui ÕâЩÒÀÀµ SDL µÄ¿âµÄÇéÐΡ£
¡¡¡¡Ä¿Ç°ÏµÍ³Äܹ»Ê¶±ðÏÂÁÐ SDL ¿â£º
sdl: devel/sdl12
gfx: graphics/sdl_gfx
gui: x11-toolkits/sdl_gui
image: graphics/sdl_image
ldbad: devel/sdl_ldbad
mixer: audio/sdl_mixer
mm: devel/sdlmm
net: net/sdl_net
sound: audio/sdl_sound
ttf: graphics/sdl_ttf
¡¡¡¡Òò´Ë£¬ Èç¹û port ÐèÒªÒÀÀµ net/sdl_net ºÍ audio/sdl_mixer£¬ Ôò¶ÔÓ¦µÄд·¨½«ÊÇ£º
USE_SDL= net mixer
¡¡¡¡Í¬Ê±£¬ net/sdl_net ºÍ audio/sdl_mixer ËùÒÀÀµµÄ devel/sdl12 Ò²»á±»×Ô¶¯µØ¼ÓÈë¡£
¡¡¡¡¼ÓÈëÄúʹÓà USE_SDL£¬ Ëü½«×Ô¶¯µØ£º
½«¶ÔÓÚ sdl12-config µÄÒÀÀµ¹ØÏµ¼ÓÈëµ½ BUILD_DEPENDS
½«±äÁ¿ SDL_CONFIG ¼ÓÈëµ½ CONFIGURE_ENV
½«¶ÔËùÑ¡µÄ¿âµÄÒÀÀµ£¬ ¼ÓÈëµ½ LIB_DEPENDS
¡¡¡¡Òª¼ì²éij¸öÌØ¶¨µÄ SDL ¿âÊÇ·ñ¿ÉÓ㬠¿ÉÒÔͨ¹ý WANT_SDL ±äÁ¿À´´ïµ½Ä¿µÄ£º
WANT_SDL=yes .include <bsd.port.pre.mk> .if ${HAVE_SDL:Mmixer}!="" USE_SDL+= mixer .endif .include <bsd.port.post.mk>
¡¡¡¡ÕâÒ»½Ú½éÉÜÁËÔÚ ports tree ÖÐµÄ wxWidgets ¿âµÄÏÖ×´£¬ ÒÔ¼°ËüÓë ports ϵͳµÄ¼¯³É¡£
¡¡¡¡Ðí¶à²»Í¬°æ±¾µÄ wxWidgets ¿âÖ®¼äÊÇ´æÔÚÏ໥³åÍ»µÄ (ËüÃǻᰲװͬÃûµÄÎļþ) ÔÚ ports ϵͳÖУ¬ ÕâÒ»ÎÊÌâÊÇͨ¹ý½«²»Í¬µÄ°æ±¾ÒÔ°üº¬°æ±¾ºÅºó׺µÄÃû×Ö°²×°À´½â¾öµÄ¡£
¡¡¡¡ÕâÑù×öµÄÒ»¸ö×îÃ÷ÏÔµÄȱµãÊÇ£¬ Ó¦ÓóÌÐò±ØÐë½øÐÐÐ޸ģ¬ ²ÅÄÜÕÒµ½ËùÏ£ÍûµÄ°æ±¾¡£ ÐÒÔ˵ÄÊÇ£¬ ¶àÊýÓ¦ÓóÌÐò»áµ÷Óà wx-config ½Å±¾À´È·¶¨ÐèÒªµÄ±àÒëÆ÷ºÍÁ¬½ÓÆ÷Ñ¡Ïî¡£ Õâ¸ö½Å±¾»áËæ¿ÉÓõİ汾²»Í¬¶øÓв»Í¬µÄÃû×Ö¡£ Ö÷ÒªµÄÓ¦ÓóÌÐò¶¼»á×ðÖØ»·¾³±äÁ¿µÄÅäÖ㬠»òÌṩһ¸ö configure ²ÎÊý£¬ ÓÃÒÔÖ¸¶¨µ÷ÓÃÄĸö wx-config¡£ Èç¹û²»ÊÇÕâÑùµÄ»°£¬ ¾ÍÐèÒª¶ÔÓ¦ÓóÌÐò´ò²¹¶¡ÁË¡£
¡¡¡¡ÎªÁËÈÃÄúµÄ port ʹÓÃÖ¸¶¨°æ±¾µÄ wxWidgets£¬ ¿ÉÒÔ¶¨ÒåÁ½¸ö±äÁ¿ (Èç¹ûÖ»¶¨ÒåÁËÒ»¸ö£¬ ÔòÁíÒ»¸ö»áȡĬÈÏÖµ)£º
±í 6-24. ÓÃÓÚÑ¡Ôñ wxWidgets °æ±¾µÄ±äÁ¿
±äÁ¿ | ˵Ã÷ | ĬÈÏÖµ |
---|---|---|
USE_WX | ÁгöÕâ¸ö port ÄÜʹÓõİ汾 | È«²¿°æ±¾ |
USE_WX_NOT | ÁгöÕâ¸ö port ²»ÄÜʹÓõİ汾 | ÎÞ |
¡¡¡¡ÏÂÃæÊÇ¿ÉÓÃµÄ wxWidgets °æ±¾£¬ ÒÔ¼°¶ÔÓ¦µÄ ports£º
±í 6-25. ¿ÉÓÃµÄ wxWidgets versions
°æ±¾ | Port |
---|---|
2.4 | x11-toolkits/wxgtk24 |
2.6 | x11-toolkits/wxgtk26 |
2.8 | x11-toolkits/wxgtk28 |
×¢Òâ: ´Ó 2.5 °æ¿ªÊ¼£¬ Ò²ÌṩÁ˶ÔÓ¦µÄ Unicode °æ±¾£¬ ÕâÖÖ°æ±¾¿ÉÒÔͨ¹ý slave port °²×°£¬ ÓëÆÕͨ°æ±¾Ïà±È£¬ Ëü»á¶àÒ»¸ö -unicode ºó׺£¬ ²»¹ýÕâ¿ÉÒÔͨ¹ýʹÓñäÁ¿À´´¦Àí (Çë²Î¼û µÚ 6.18.4 ½Ú)¡£
¡¡¡¡ÔÚ ±í 6-24 ÖеıäÁ¿£¬ ¿ÉÒÔÉèΪÏÂÁÐÖµ»òÓɿոñ·Ö¸ôµÄ×éºÏ£º
±í 6-26. wxWidgets °æ±¾
˵Ã÷ | Àý×Ó |
---|---|
µ¥¸ö°æ±¾ | 2.4 |
ij°æ±¾ÒÔÉϰ汾 | 2.4+ |
ij°æ±¾ÒÔϰ汾 | 2.6- |
ij¶Î°æ±¾ (°æ±¾ºÅ½ÏСµÄ±ØÐëÔÚǰ) | 2.4-2.6 |
¡¡¡¡³ý´ËÖ®Í⣬ »¹ÓÐһЩÓÃÒÔ´Ó¿ÉÓõı¾ÄDZ¾ÖÐÑ¡ÔñËùÏ£ÍûµÄ°æ±¾µÄ±äÁ¿¡£ ÕâÖÖ±äÁ¿Ò²¿ÉÒÔÉèΪһ×é°æ±¾£¬ ¶ø¿¿Ç°µÄ°æ±¾µÄÓÅÏȼ¶¸ü¸ß¡£
¡¡¡¡Ò²ÓÐһЩÆäËûÓ¦Ó㬠¾¡¹ÜËüÃDZ¾Éí²¢²»ÊÇ wxWidgets ¿â£¬ µ«È´ÓëÖ®Ïà¹Ø¡£ ÕâЩӦÓóÌÐò¿ÉÒÔÔÚ WX_COMPS ±äÁ¿ÖÐʹÓ㬠ÒÔÏÂÊÇ¿ÉÓõÄ×é¼þ£º
±í 6-28. ¿ÉÓÃµÄ wxWidgets ×é¼þ
Ãû³Æ | ˵Ã÷ | °æ±¾ÏÞÖÆ |
---|---|---|
wx | Ö÷¿â | ÎÞ |
contrib | µÚÈý·½¿â | ÎÞ |
python | wxPython (Python °ó¶¨) | 2.4-2.6 |
mozilla | wxMozilla | 2.4 |
svg | wxSVG | 2.6 |
¡¡¡¡Äú¿ÉÒÔΪÿ¸öÒÀÀµµÄ×é¼þ£¬ ͨ¹ýðºÅ·Ö¸ôµÄºó׺ָ¶¨ÆäÀàÐÍ¡£ Èç¹ûûÓÐÖ¸¶¨£¬ Ôò»áʹÓÃĬÈϵÄÒÀÀµÀàÐÍ (²Î¼û ±í 6-30)¡£ ÏÂÃæÊÇ¿ÉÓõÄÀàÐÍ£º
±í 6-29. ¿ÉÓÃµÄ wxWidgets ÒÀÀµÀàÐÍ
Ãû³Æ | ˵Ã÷ |
---|---|
build | Áª±àʱÐèÒª¸Ã×é¼þ£¬ Ï൱ÓÚ BUILD_DEPENDS |
run | ÔËÐÐʱÐèÒª¸Ã×é¼þ£¬ Ï൱ÓÚ RUN_DEPENDS |
lib | Áª±àºÍÔËÐÐʱ¾ùÐèÒª¸Ã×é¼þ£¬ Ï൱ÓÚ LIB_DEPENDS |
¡¡¡¡×é¼þµÄĬÈÏÒÀÀµ¹ØÏµÀàÐÍ£¬ ÈçϱíËùʾ£º
¡¡¡¡wxWidgets ¿â´ÓÆä 2.5 °æ¿ªÊ¼Ö§³Ö Unicode ÁË¡£ ÔÚ ports ϵͳÖУ¬ ÕâÁ½ÖÖ°æ±¾¾ùÓÐÌṩ£¬ ²¢¿ÉÒÔͨ¹ýÏÂÁбäÁ¿À´Ñ¡Ôñ£º
±í 6-31. ÓÃÒÔÔÚ Unicode °æ±¾µÄ wxWidgets µÄ±äÁ¿
±äÁ¿ | ˵Ã÷ | ×÷Óà |
---|---|---|
WX_UNICODE | ¸Ã port Ö»ÄÜ ÅäºÏ Unicode °æ±¾Ê¹Óà | port |
WANT_UNICODE | port Äܹ»ÓëÁ½ÖÖ°æ±¾ÅäºÏʹÓ㬠µ«Ï£ÍûʹÓà Unicode °æ±¾ | port |
WITH_UNICODE | Áî port ʹÓà Unicode °æ±¾ | Óû§ |
WITHOUT_UNICODE | Áî port ʹÓÃÆÕͨ°æ±¾£¬ Èç¹ûÖ§³ÖµÄ»° (¼´Î´¶¨Òå WX_UNICODE) | Óû§ |
¾¯¸æ: Èç¹û port ͬʱ֧³Ö Unicode ºÍÆÕͨ°æ±¾£¬ Ç벻ҪʹÓà WX_UNICODE¡£ Èç¹ûÏ£ÍûĬÈÏÆôÓà Unicode£¬ Ó¦¶¨Òå WANT_UNICODE¡£
¡¡¡¡Òª¼ì²âϵͳÖа²×°µÄ°æ±¾£¬ ¾ÍÐèÒª¶¨Òå WANT_WX¡£ Èç¹ûûÓн«ÆäÉèÖÃÎªÌØ¶¨µÄ°æ±¾£¬ Ôò×é¼þ½«°üº¬°æ±¾ºó׺¡£ HAVE_WX ±äÁ¿ÔÚ¼ì²âÍê³Éºó»á×Ô¶¯ÌîÈëÄÚÈÝ¡£
Àý 6-7. ¼ì²âÒѰ²×°µÄ wxWidgets °æ±¾ºÍ×é¼þ
ÏÂÃæµÄƬ¶Î¿ÉÒÔÔÚ°²×° wxWidgets µÄϵͳÖÐÁî port ʹÓÃËü£¬ ·´Ö®Ôò×÷ΪһÏîÑ¡ÏîÌṩ¡£
WANT_WX= yes .include <bsd.port.pre.mk> .if defined(WITH_WX) || ${HAVE_WX:Mwx-2.4} != "" USE_WX= 2.4 CONFIGURE_ARGS+=--enable-wx .endif
ÏÂÃæµÄƬ¶ÎÔÚϵͳÖÐÓа²×°¹ýʱÆôÓà wxPython Ö§³Ö£¬ »òÔÚûÓа²×°Ê±×÷ΪѡÏîÌṩ£» ¶Ô wxWidgets Ò²ÊÇÈç´Ë°ìÀí£¬ °æ±¾½ÔΪ 2.6¡£
USE_WX= 2.6 WX_COMPS= wx WANT_WX= 2.6 .include <bsd.port.pre.mk> .if defined(WITH_WXPYTHON) || ${HAVE_WX:Mpython} != "" WX_COMPS+= python CONFIGURE_ARGS+=--enable-wxpython .endif
¡¡¡¡ÒÔÏÂÊÇһЩ¿ÉÒÔÔÚ port ÖÐʹÓõıäÁ¿ (Õâ֮ǰÐèÒª¶¨Òå ±í 6-24 ÖеÄÖÁÉÙÒ»¸ö±äÁ¿)¡£
±í 6-32. ΪʹÓà wxWidgets µÄ port ¶¨ÒåµÄ±äÁ¿
±äÁ¿Ãû | ˵Ã÷ |
---|---|
WX_CONFIG | µ½ wxWidgets wx-config ½Å±¾µÄ·¾¶ (Ãû×Ö»áËæ°æ±¾²»Í¬¶ø²»Í¬) |
WXRC_CMD | µ½ wxWidgets wxrc ³ÌÐòµÄ·¾¶ (Ãû×Ö»áËæ°æ±¾²»Í¬¶ø²»Í¬) |
WX_VERSION | ½«ÒªÓõ½µÄ wxWidgets °æ±¾ (ÀýÈ磬 2.6) |
WX_UNICODE | Èç¹ûûÓж¨Ò壬 ¶ø½«»áʹÓà Unicode ʱ£¬ ϵͳ½«×Ô¶¯¶¨Òå´Ë±äÁ¿¡£ |
¡¡¡¡Èç¹ûÄúÐèÒªÔÚÒýÓÃÁË bsd.port.pre.mk Ö®ºóÁ¢¼´¶ÔһЩ±äÁ¿½øÐд¦Àí£¬ ÔòÐèÒª¶¨Òå WX_PREMK¡£
ÖØÒª: Èç¹û¶¨ÒåÁË WX_PREMK£¬ ÔòÔÚ´Ë Ö®ºó ¶¨ÒåµÄÒÀÀµ¹ØÏµ¡¢ ×é¼þºÍ±äÁ¿½«²»»áÉúЧ£¬ ÄúÔÚÒýÓà bsd.port.pre.mk ֮ǰµÄ wxWidgets port ±äÁ¿½«Ö±½ÓÆð×÷Óá£
Àý 6-8. ÔÚÃüÁîÖÐʹÓà wxWidgets ±äÁ¿
ÏÂÃæµÄƬ¶ÎÒÔÖ´ÐÐ wx-config ½Å±¾À´µÃµ½ÍêÕûµÄ°æ±¾ºÅ£¬ ½«Æä¸³Öµµ½±äÁ¿ÖУ¬ ²¢´«µÝ¸øÒ»¸ö³ÌÐò¾ÙÀý˵Ã÷ÁË WX_PREMK µÄÓ÷¨¡£
USE_WX= 2.4 WX_PREMK= yes .include <bsd.port.pre.mk> .if exists(${WX_CONFIG}) VER_STR!= ${WX_CONFIG} --release PLIST_SUB+= VERSION="${VER_STR}" .endif
×¢Òâ: ÔÚ target ÖÐµÄ wxWidgets ±äÁ¿¿ÉÒÔÖ±½ÓʹÓ㬠¶øÎÞÐè WX_PREMK µÄ²ÎÓë¡£
¡¡¡¡Ä³Ð© GNU configure ½Å±¾ÔÚÖ»ÉèÖÃÁË WX_CONFIG »·¾³±äÁ¿Ê±£¬ ÎÞ·¨×Ô¶¯ÕÒµ½ wxWidgets£¬ ¶øÐèҪʹÓöîÍâµÄ²ÎÊýÀ´¼ÓÒÔÖ¸¶¨¡£ Äú¿ÉÒÔʹÓà WX_CONF_ARGS ±äÁ¿À´¸ø³öÕâЩ²ÎÊý¡£
¡¡¡¡ÕâÒ»½ÚÃèÊöÁËÔÚ ports ϵͳÖÐµÄ Lua ¿âµÄÏÖ×´£¬ ÒÔ¼°ËüÓë ports ϵͳµÄ¼¯³É¡£
¡¡¡¡Ðí¶à²»Í¬°æ±¾µÄ Lua ¿âºÍÏà¹ØµÄ½âÊÍÆ÷Ö®¼äÊÇÏ໥³åÍ»µÄ (ËüÃǻᰲװͬÃûµÄÎļþ)¡£ ÔÚ ports ϵͳÖУ¬ ÕâÒ»ÎÊÌâÊÇͨ¹ý½«²»Í¬°æ±¾µÄÎļþÒÔ²»Í¬µÄ°æ±¾ºÅ×÷Ϊºó׺Ãû½â¾öµÄ¡£
¡¡¡¡ÕâÑù×ö×î´óµÄÒ»¸öÎÊÌâÊÇ£¬ ÿ¸ö³ÌÐò¶¼ÐèÒª½øÐÐÐ޸IJÅÄÜÕÒµ½ËüËùÐèÒªµÄ°æ±¾¡£ ²»¹ý£¬ ͨ¹ý½«Êʵ±µÄ²ÎÊý´«¸ø±àÒëÆ÷ºÍÁ¬½ÓÆ÷ºÜÈÝÒ×½â¾öÕâ¸öÎÊÌâ¡£
¡¡¡¡ÒªÈÃÄúµÄ port ʹÓÃÖ¸¶¨°æ±¾µÄ Lua£¬ ¿ÉÒÔ¶¨ÒåÁ½¸ö±äÁ¿µÄÖµ (Èç¹ûÖ»¶¨ÒåÁËÆäÖеÄÒ»¸ö£¬ ÔòÁíÒ»¸ö»áʹÓÃĬÈÏÖµ)£º
±í 6-34. ÓÃÓÚÑ¡Ôñ Lua °æ±¾µÄ±äÁ¿
±äÁ¿ | ˵Ã÷ | ĬÈÏÖµ |
---|---|---|
USE_LUA | port Äܹ»Ê¹ÓÃµÄ Lua °æ±¾Áбí | È«²¿¿ÉÓð汾 |
USE_LUA_NOT | Óë port ²»¼æÈݵİ汾Áбí | ÎÞ |
¡¡¡¡ÏÂÃæÊÇĿǰ ports ϵͳÌṩµÄ¿ÉÓà Lua °æ±¾ºÍ¶ÔÓ¦µÄĿ¼£º
¡¡¡¡ÔÚ ±í 6-34 ÖеıäÁ¿£¬ ¿ÉÒÔÉèÖÃΪÏÂÃæµÄ°æ±¾Ö®Ò»£¬ »òÓÿոñ·Ö¸ôµÄÈô¸É°æ±¾£º
±í 6-36. Ö¸¶¨ Lua °æ±¾
˵Ã÷ | Àý×Ó |
---|---|
Ò»¸ö°æ±¾ | 4.0 |
ij¸ö°æ±¾»ò¸ü¸ß°æ±¾ | 5.0+ |
²»¸ßÓÚij¸ö°æ±¾ | 5.0- |
°æ±¾·¶Î§ (µÍ°æ±¾±ØÐëÔÚǰ) | 5.0-5.1 |
¡¡¡¡³ý´ËÖ®Í⣬ Ò²ÓÐһЩÓÃÀ´´Ó¿ÉÓð汾ÖÐÑ¡ÔñÍÆ¼ö°æ±¾µÄÆäËü±äÁ¿¡£ ÕâЩ±äÁ¿Ò²¿ÉÒÔÉèÖÃΪһ×é°æ±¾£¬ ¶øÇ°ÃæµÄ°æ±¾ÓÅÏȼ¶½Ï¸ß¡£
¡¡¡¡Ò²ÓÐһЩÆäËüµÄÓ¦Ó㬠¾¡¹Ü±¾Éí²¢²»ÊÇ Lua ¿â£¬ µ«È´ÓëËüÃÇÏà¹Ø¡£ ÕâЩӦÓÿÉÒÔͨ¹ý LUA_COMPS ±äÁ¿À´Ö¸¶¨¡£ ¿ÉÓõÄ×é¼þÈçÏ£º
±í 6-38. ¿ÉÓÃµÄ Lua ×é¼þ
Ãû×Ö | ˵Ã÷ | °æ±¾ÏÞÖÆ |
---|---|---|
lua | Ö÷¿â | ÎÞ |
tolua | ÓÃÓÚ·ÃÎÊ C/C++ ´úÂëµÄ¿â | 4.0-5.0 |
ruby | Ruby °ó¶¨ | 4.0-5.0 |
×¢Òâ: »¹ÓÐһЩÆäËüµÄ×é¼þ£¬ µ«ÕâЩ×é¼þÊÇÓɽâÊÍÆ÷£¬ ¶ø²»ÊÇÓÉÓ¦ÓóÌÐòʹÓÃµÄ (Ò²¾ÍÊDz»±»ÆäËüÄ£¿éʹÓÃ)¡£
¡¡¡¡Ã¿¸ö×é¼þµÄÒÀÀµ¹ØÏµÀàÐÍ¿ÉÒÔͨ¹ýÊÖ¹¤Ìí¼Ó·Ö¸ô·ûΪðºÅµÄºó׺À´Ö¸¶¨¡£ Èç¹û²»Ö¸¶¨£¬ Ôò»á²ÉÓÃĬÈÏÀàÐÍ (Çë²Î¼û ±í 6-40)¡£ ÒÔÏÂÊÇ¿ÉÓõÄÒÀÀµ¹ØÏµÀàÐÍ£º
±í 6-39. ¿ÉÓÃµÄ Lua ÒÀÀµ¹ØÏµÀàÐÍ
Ãû×Ö | ˵Ã÷ |
---|---|
build | Õâ¸ö×é¼þÊÇÁª±à¹ý³ÌËù±ØÐèµÄ£¬ Ï൱ÓÚ BUILD_DEPENDS |
run | ÔÚÔËÐÐʱÐèÒªÕâ¸ö×é¼þ£¬ Ï൱ÓÚ RUN_DEPENDS |
lib | Õâ¸ö×é¼þÔÚÁª±àºÍÔËÐÐʱ¶¼ÐèÒª£¬ Ï൱ÓÚ LIB_DEPENDS |
¡¡¡¡×é¼þµÄĬÈÏÒÀÀµ¹ØÏµÀàÐÍÈçÏ£º
¡¡¡¡Òª¼ì²âϵͳÖÐÒѰ²×°µÄ°æ±¾£¬ Äú±ØÐ붨Òå WANT_LUA¡£ Èç¹ûûÓн«ÆäÉ趨Ϊ¾ßÌåµÄ°æ±¾£¬ Ôò×é¼þ»á°üº¬°æ±¾ºó׺¡£ ÔÚ¼ì²âÖ®ºó£¬ HAVE_LUA ±äÁ¿½«ÉèΪ¼ì²âµ½µÄ°æ±¾¡£
Àý 6-11. ¼ì²âÒѰ²×°µÄ Lua °æ±¾ºÍ×é¼þ
ÏÂÃæÊÇÒ»¸öÈç¹ûϵͳÖÐÓа²×° Lua »òÑ¡ÔñÁËÑ¡ÏîʱʹÓÃËüµÄ port Ƭ¶Î¡£
WANT_LUA= yes .include <bsd.port.pre.mk> .if defined(WITH_LUA5) || ${HAVE_LUA:Mlua-5.[01]} != "" USE_LUA= 5.0-5.1 CONFIGURE_ARGS+=--enable-lua5 .endif
ÏÂÃæµÄÕâ¶Î port ÔÚϵͳÖÐÒѾÓа²×°£¬ »òÓû§Ñ¡ÔñÁË tolua ºÍ Lua Ö§³Öʱ¼ÓÒÔ°²×°£¬ °æ±¾¾ùÑ¡Ôñ 4.0¡£
USE_LUA= 4.0 LUA_COMPS= lua WANT_LUA= 4.0 .include <bsd.port.pre.mk> .if defined(WITH_TOLUA) || ${HAVE_LUA:Mtolua} != "" LUA_COMPS+= tolua CONFIGURE_ARGS+=--enable-tolua .endif
¡¡¡¡ÔÚ port ÖпÉÒÔʹÓÃÏÂÁбäÁ¿ (ÔÚ¶¨ÒåÁË ±í 6-34 ÖÐÖÁÉÙÒ»¸ö±äÁ¿Ö®ºó)¡£
±í 6-41. ΪÓõ½ Lua µÄ port ¶¨ÒåµÄ±äÁ¿
±äÁ¿Ãû | ˵Ã÷ |
---|---|
LUA_VER | ½«ÒªÊ¹ÓÃµÄ Lua °æ±¾¡£ (ÀýÈ磬 5.1) |
LUA_VER_SH | Lua ¶¯Ì¬Á¬½Ó¿âµÄÖ÷°æ±¾ (ÀýÈ磬 1) |
LUA_VER_STR | ²»´øµãµÄ Lua °æ±¾ (ÀýÈ磬 51) |
LUA_PREFIX | °²×° Lua (¼°Æä×é¼þ) ʹÓõĺó׺ |
LUA_SUBDIR | ÔÚ ${PREFIX}/bin¡¢ ${PREFIX}/share ºÍ ${PREFIX}/lib ÖÐÓÃÓÚ°²×° Lua µÄ×ÓĿ¼ |
LUA_INCDIR | ÓÃÒÔ°²×° Lua ºÍ tolua Í·ÎļþµÄĿ¼ |
LUA_LIBDIR | ÓÃÒÔ°²×° Lua ºÍ tolua ¿âÎļþµÄĿ¼ |
LUA_MODLIBDIR | ÓÃÒÔ°²×° Lua Ä£¿é¶¯Ì¬Á¬½Ó¿â (.so) µÄĿ¼ |
LUA_MODSHAREDIR | ÓÃÒÔ°²×° Lua Ä£¿é (.lua) µÄĿ¼ |
LUA_PKGNAMEPREFIX | Lua Ä£¿é°üµÄºó׺Ãû |
LUA_CMD | µ½ Lua ½âÊÍÆ÷µÄ·¾¶ |
LUAC_CMD | µ½ Lua ±àÒëÆ÷µÄ·¾¶ |
TOLUA_CMD | µ½ tolua ³ÌÐòµÄ·¾¶ |
¡¡¡¡Èç¹ûÄúÐèÒªÔÚʹÓÃÒýÓà bsd.port.pre.mk Ö®ºó¾ÍµÃµ½±äÁ¿£¬ ÒԱ㽫ÆäÓÃÓÚÖ´ÐÐһЩÃüÁ ÐèÒª¶¨Òå LUA_PREMK¡£
ÖØÒª: Èç¹ûÄú¶¨ÒåÁË LUA_PREMK£¬ ÔòÔÚÄúÒýÓà bsd.port.pre.mk Ö®ºó£¬ ¼´Ê¹ÐÞ¸ÄÁË Lua port ±äÁ¿£¬ °æ±¾ºÍÒÀÀµ¹ØÏµÒ²¶¼²»»áËæÖ®·¢Éú±ä»¯ÁË¡£
Àý 6-13. ÔÚÃüÁîÖÐʹÓà Lua ±äÁ¿
ÏÂÃæµÄƬ¶ÎչʾÁËÈçºÎÀûÓà LUA_PREMK£¬ ²¢ÔËÐÐ Lua ½âÊÍÆ÷µÃµ½ÍêÕûµÄ°æ±¾´®£¬ ½«Æä¸³Öµ¸øÒ»¸ö±äÁ¿£¬ ²¢´«µÝ¸ø³ÌÐò¡£
USE_LUA= 5.0 LUA_PREMK= yes .include <bsd.port.pre.mk> .if exists(${LUA_CMD}) VER_STR!= ${LUA_CMD} -v CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" .endif
×¢Òâ: ÔÚ target ÖÐµÄ Lua ±äÁ¿¿ÉÒÔÔÚÃüÁîÖа²È«µÄʹÓ㬠¶øÎÞÐèʹÓà LUA_PREMK¡£
¡¡¡¡USE_XFCE ±äÁ¿¿ÉÒÔÓÃÀ´×Ô¶¯ÅäÖÃʹÓûùÓÚ Xfce ¿â»òÓ¦ÓóÌÐò£¬ Èç x11-toolkits/libxfce4gui ºÍ x11-wm/xfce4-panel µÄ port µÄÒÀÀµ¹ØÏµ¡£
¡¡¡¡Ä¿Ç°£¬ ϵͳÄܹ»Ê¶±ðÏÂÁÐ Xfce ¿âºÍÓ¦ÓóÌÐò£º
libexo£ºx11/libexo
libgui£ºx11-toolkits/libxfce4gui
libutil£ºx11/libxfce4util
libmcs£ºx11/libxfce4mcs
mcsmanager£ºsysutils/xfce4-mcs-manager
panel£ºx11-wm/xfce4-panel
thunar£ºx11-fm/thunar
wm£ºx11-wm/xfce4-wm
xfdev£ºdev/xfce4-dev-tools
¡¡¡¡³ý´ËÖ®Í⣬ »¹Äܹ»Ê¹ÓÃÏÂÁвÎÊý£º
configenv£º Èç¹ûÄúµÄ port ÐèҪʹÓÃÌØÊâµÄ CONFIGURE_ENV À´²éÕÒËùÐèµÄ¿â¡£
-I${LOCALBASE}/include -L${LOCALBASE}/lib»á¼Óµ½ CONFIGURE_ENV µÄ CPPFLAGS¡£
¡¡¡¡Òò´Ë£¬ Èç¹û port Óе½ sysutils/xfce4-mcs-manager µÄÒÀÀµ¹ØÏµ£¬ ²¢ÐèÒªÔÚ configure µÄ»·¾³ÖÐÖ¸¶¨ÌØÊâµÄ¶ö CPPFLAGS£¬ ÔòËùÓõÄÓ﷨Ϊ£º
USE_XFCE= mcsmanager configenv
±í 6-42. ports ÖÐÓйØÊý¾Ý¿âµÄ±äÁ¿
Variable | Means |
---|---|
USE_BDB | Èç¹ûÕâ¸ö±äÁ¿Îª yes£¬ Ôò°Ñ databases/db41 ÁÐΪÒÀÀµ¹ØÏµ¡£ Õâ¸ö±äÁ¿»¹¿ÉÒÔ±»ÉèÖóɵÄÖµÓУº 2£¬3£¬40£¬41£¬ 42£¬43£¬45£¬46 »òÕß 47¡£Äã¿ÉÒÔÉùÃ÷¿É½ÓÊÜÖµµÄ·¶Î§£¬ USE_BDB=42+ ½«Ñ°ÕÒÒѰ²×°µÄ×î¸ß°æ±¾£¬ Èç¹ûûÓÐÕÒµ½ÔòÍ˻ص½ 42¡£ |
USE_MYSQL | Èç¹ûÕâ¸ö±äÁ¿Îª yes£¬ Ôò°Ñ databases/mysql50-server ÁÐΪÒÀÀµ¹ØÏµ¡£»¹ÓÐÒ»¸öÏà¹ØµÄ±äÁ¿£¬WANT_MYSQL_VER, ¿ÉÒÔÉèÖõÄÖµÓÐ 323£¬40£¬41£¬50£¬51 »òÕß 60¡£ |
USE_PGSQL | Èç¹ûÉèÖÃ³É yes£¬Ôò°Ñ databases/postgresql82 ÁÐΪÒÀÀµ¹ØÏµ¡£»¹ÓÐÒ»¸öÏà¹ØµÄ±äÁ¿£¬WANT_PGSQL_VER£¬ ¿ÉÒÔÉèÖõÄÖµÓÐ 73£¬74£¬80£¬81£¬82 »ò 83¡£ |
¡¡¡¡rc.d ½Å±¾ÔÚϵͳÆô¶¯Ê±ÓÃÓÚÆô¶¯·þÎñ£¬ ²¢Îª¹ÜÀíÔ±Ìṩֹͣ¡¢ Æô¶¯ºÍÖØÐÂÆô¶¯Ä³¸ö·þÎñµÄ±ê×¼·½·¨¡£ Ports °²×°µÄ½Å±¾»á¼¯³Éµ½ÏµÍ³µÄ rc.d ¿ò¼ÜÖС£ ¹ØÓÚÈçºÎʹÓÃËüµÄ˵Ã÷£¬ ¿ÉÒÔÔÚ Ê¹ÓÃÊÖ²áµÄ rc.d ÕÂ½Ú ÕÒµ½¡£ ¹ØÓÚ¿ÉÓÃÃüÁîµÄÏêϸ½âÊÍ£¬ Ôò¿ÉÒÔÔÚ rc(8) ºÍ rc.subr(8) ÕÒµ½¡£ ×îºó£¬ Äú¿ÉÒÔ²ÎÔÄ ÕâÆªÎÄÕ Á˽â׫д rc.d ½Å±¾µÄ×î¼Ñʵ¼ù¡£
¡¡¡¡¿ÉÒÔ°²×°Ò»»ò¶à¸ö rc.d ½Å±¾£º
USE_RC_SUBR= doormand
¡¡¡¡ÕâЩ½Å±¾±ØÐë·Åµ½ files Ŀ¼£¬ ²¢¸½¼Ó .in¡£ Õâ¸öÎļþÖпÉÒÔʹÓñê×¼µÄ SUB_LIST Ìæ»»Õ¹¿ª¡£ ³ý´ËÖ®Í⣬ ÎÒÃÇ»¹Ç¿ÁÒÍÆ¼öʹÓà %%PREFIX%% ºÍ %%LOCALBASE%% Ìæ»»Õ¹¿ª¡£ ¹ØÓÚ SUB_LIST µÄ½éÉÜ¿ÉÒÔÔÚ ±¾ÊéµÄÏà¹ØÕÂ½Ú ÕÒµ½¡£
¡¡¡¡ÔÚ FreeBSD 6.1-RELEASE ֮ǰ£¬ Óë rcorder(8) µÄ¼¯³ÉÊÇͨ¹ý USE_RCORDER ¶ø²»ÊÇ USE_RC_SUBR À´Íê³ÉµÄ¡£ ²»¹ý£¬ ³ý·Ç port ÐèÒªÌṩ°²×°½ø»ù±¾ÏµÍ³ÕâÑùµÄÑ¡Ï »òÕß·þÎñÐèÒªÔÚ rc.d ½Å±¾ FILESYSTEMS ֮ǰÔËÐÐÕâÀàÌØÊâÇé¿ö£¬ Ò»°ãÀ´ËµÊDz»ÐèҪʹÓÃÕâ¸ö¹¦Äܵġ£
¡¡¡¡´Ó FreeBSD 6.1-RELEASE ¿ªÊ¼£¬ ±¾µØ°²×°µÄ rc.d ½Å±¾ (°üÀ¨ÓÉ port °²×°µÄ½Å±¾) »áÄÉÈë»ù±¾ÏµÍ³µÄ rcorder(8)¡£
¡¡¡¡ÒÔÏÂÊÇÒ»¸ö¼òµ¥µÄ rc.d ½Å±¾£º
#!/bin/sh # $FreeBSD$ # # PROVIDE: doormand # REQUIRE: LOGIN # KEYWORD: shutdown # # ÔÚ /etc/rc.conf.local »ò /etc/rc.conf ÖÐÔö¼ÓÏÂÊöÉèÖÿÉÒÔÆôÓÃÕâÒ»·þÎñ£º # # doormand_enable (bool): ĬÈÏÉèΪ NO¡£ # ÉèΪ YES ¿ÉÒÔÆôÓà doormand¡£ # doormand_config (path): ĬÈÏÉèΪ %%PREFIX%%/etc/doormand/doormand.cf¡£ # . /etc/rc.subr name="doormand" rcvar=${name}_enable command=%%PREFIX%%/sbin/${name} pidfile=/var/run/${name}.pid load_rc_config $name : ${doormand_enable="NO"} : ${doormand_config="%%PREFIX%%/etc/doormand/doormand.cf"} command_args="-p $pidfile -f $doormand_config" run_rc_command "$1"
¡¡¡¡³ý·ÇÓкÜÕ¾µÃס½ÅµÄÀíÓÉÌáǰÆô¶¯·þÎñ£¬ËùÓÐµÄ ports ½Å±¾Ó¦Ê¹ÓÃ
REQUIRE: LOGIN¡£ Èç¹û·þÎñÐèÒªÒÔÌØ¶¨Óû§ (³ý root Ö®Íâ) Éí·ÝÆô¶¯£¬ Ôò±ØÐëÕâÑù×ö¡£ ÔÚÇ°ÃæµÄÀý×ÓÖУ¬ ÎÒÃÇ»¹Ê¹ÓÃÁË
KEYWORD: shutdownÒÔ±ãÈà mythical port ÔÚϵͳͣ»úµÄ¹ý³ÌÖÐÒÔÕý³£µÄ·½Ê½ÖÕÖ¹£¬ ÒòΪËüÐèÒªÔÚϵͳÒýµ¼¹ý³ÌÖÐÆô¶¯·þÎñ¡£ Èç¹û½Å±¾Ã»ÓÐÆô¶¯ÈκηþÎñ£¬ Ôò²¢²»ÐèÒªÕâÑù×ö¡£
¡¡¡¡ÕâÀ ¶Ô±äÁ¿µÄĬÈϸ³Öµ·½·¨Ó¦²ÉÓà "="£¬ ¶ø·Ç ":=" ÕâÑùµÄÐÎʽ¡£ ÕâÊÇÒòΪ£¬ ǰһÖÖ¸³Öµ·½·¨Ö»ÓÐÔÚ±äÁ¿Î´±»ÉèÖÃʱ²ÅÉèÖÃĬÈÏÖµ£¬ ¶øºóÒ»ÖÖ·½·¨Ôò»áÔÚ±äÁ¿Ã»ÓÐÉèÖ㬠»òÕß ÆäֵΪ¿Õʱ¶¼ÉèÖÃĬÈÏÖµ¡£ Óû§·Ç³£¿ÉÄÜÔÚÆä rc.conf.local ÖÐʹÓÃÀàËÆ
doormand_flags=""ÕâÑùµÄÉèÖ㬠¶ø²ÉÓà ":=" À´½øÐи³Öµ£¬ Ôò»áÔÚ²»¾Òâ¼ä¸²¸ÇÓû§ËùÏ£ÍûµÄÉèÖá£
×¢Òâ: ÐÂÔöµÄ½Å±¾¾ù²»Ó¦Ê¹Óà .sh ºó׺¡£ δÀ´£¬ ÈÔÈ»°üº¬ÕâÒ»ºó׺µÄ½Å±¾½«±»ÅúÁ¿¸ÄÃû¡£
¡¡¡¡¿ÉÒÔÔÚÐ¶ÔØµÄ¹ý³ÌÖÐ×Ô¶¯µØÍ£Ö¹·þÎñ¡£ ÎÒÃǽ¨ÒéÖ»ÓÐÔÚ¾ø¶Ô±ØÒª£¬ ÀýÈç±ØÐëÔÚɾ³ýÎļþ֮ǰֹͣ·þÎñÕâÀàµÄÇé¿öϲÅʹÓÃÕâÒ»¹¦ÄÜ¡£ ͨ³£À´Ëµ£¬ ¾ö¶¨ÊÇ·ñÔÚÐ¶ÔØÊ±Í£Ö¹·þÎñÊÇϵͳ¹ÜÀíÔ±ÐèÒª¿¼ÂǵÄÊÂÇé¡£ ÁíÍâҪעÒ⣬ Õâ¸ö¹¦ÄÜÒ²»áÓ°ÏìÉý¼¶¹ý³Ì¡£
¡¡¡¡ÐèҪʱ¿ÉÒÔÔÚ pkg-plist ÖмÓÈ룺
@stopdaemon doormand
¡¡¡¡ÕâÀïµÄ²ÎÊý±ØÐëÓë USE_RC_SUBR ±äÁ¿µÄÄÚÈÝÆ¥Åä¡£
¡¡¡¡Ò»Ð© port ÐèÒªÔÚ°²×°µÄϵͳÖд´½¨Ìض¨µÄÓû§»òÓû§×é¡£ Èç¹ûÓÐÕâÖÖÇé¿ö£¬ Çë´Ó 50 µ½ 999 Ö®¼äÑ¡ÔñÒ»¸öÉÐδʹÓÃµÄ UID£¬ ²¢ÔÚ ports/UIDs (Õë¶ÔÓû§) »ò ports/GIDs (Õë¶Ô×é) ÖÐÓèÒԼǼ¡£ ÇëÎñ±ØÈ·±£ÄúûÓÐʹÓÃϵͳÖÐÒѾÔÚÆäËû ports ÖÐʹÓÃµÄ UID¡£
¡¡¡¡Èç¹ûÄúµÄ port ÐèÒª´´½¨ÐÂÓû§»òÓû§×飬 ÇëÔÚÌá½»²¹¶¡µÄʱºòÒ»²¢Ìá½»ÕâÁ½¸öÎļþµÄ²¹¶¡¡£
¡¡¡¡½ÓÏÂÀ´£¬ ¿ÉÒÔÔÚÄúµÄ Makefile ÖÐʹÓà USERS ºÍ GROUPS ÕâÁ½¸ö±äÁ¿£¬ ϵͳ»áÔÚ°²×°Ê±×Ô¶¯´´½¨Óû§»ò×é¡£
USERS= pulse GROUPS= pulse pulse-access pulse-rt
¡¡¡¡ÏÖÓеı£Áô UID ºÍ GID ÁÐ±í£¬ ¿ÉÒÔÔÚ ports/UIDs ºÍ ports/GIDs ÕÒµ½¡£
¡¡¡¡Ä³Ð© ports (ÀýÈç¿É¼ÓÔØÊ½ÄÚºËÄ£¿é) ÐèÒªÄں˵ÄÔ´Îļþ²ÅÄܱàÒë¡£ ÏÂÃæÊǼì²âÓû§ÊÇ·ñ°²×°ÁËÔ´´úÂëµÄÀý×Ó£º
SRC_BASE?= /usr/src .if !exists(${SRC_BASE}/sys/Makefile) IGNORE= requires kernel sources to be installed .endif
¡¡¡¡Ä³Ð© port£¬ ÌØ±ðÊÇ p5- port£¬ »áÐèÒª¸ù¾ÝÅäÖÃÑ¡Ïî (»ò¶ÔÓÚ p5- port ¶øÑÔ£¬ perl µÄ°æ±¾) À´ÐÞ¸ÄËüÃÇµÄ pkg-plist¡£ Ϊ¼ò»¯ÕâÒ»¹¤×÷£¬ ÔÚ pkg-plist ÖÐµÄ %%OSREL%%¡¢ %%PERL_VER%%£¬ ÒÔ¼° %%PERL_VERSION%% ½«×Ô¶¯½øÐÐÏàÓ¦µÄÌæ»»¡£ ÆäÖУ¬ %%OSREL%% µÄÖµÊDzÙ×÷ϵͳÒÔÊýÖµ±íʾµÄ°æ±¾ (ÀýÈç 4.9)¡£ %%PERL_VERSION%% ºÍ %%PERL_VER%% ÊÇ perl µÄÍêÕû°æ±¾ºÅ (ÀýÈç 5.8.9)¡£Ðí¶àÆäËüÓë port ÎĵµÎļþÓÐ¹ØµÄ %%±äÁ¿%% ÔÚ ÏàÓ¦ÕÂ½Ú ÖнøÐÐÁ˽éÉÜ¡£
¡¡¡¡Èç¹ûÄú»¹ÐèÒª½øÐÐÆäËüµÄÌæ»»£¬ ¿ÉÒÔͨ¹ý½« PLIST_SUB ±äÁ¿ÉèÖÃΪһ×é ±äÁ¿=Öµ ¶ÔÀ´ÊµÏÖ¡£ ÆäÖУ¬ %%VAR%% ±íʾÔÚ pkg-plist Öн«±» Öµ Ìæ»»µÄÄÇЩÎÄ×Ö¡£
¡¡¡¡¾ÙÀýÀ´Ëµ£¬ Èç¹û port ÐèÒª°ÑºÜ¶àÎļþ·Åµ½ºÍ°æ±¾ÓйصÄĿ¼ÖУ¬ ¿ÉÒÔÔÚ Makefile Öа´ÕÕÀàËÆÏÂÃæµÄÀý×Ó£º
OCTAVE_VERSION= 2.0.13 PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}
¡¡¡¡²¢ÔÚ pkg-plist Öн«¾ßÌåµÄ°æ±¾Ì滻Ϊ %%OCTAVE_VERSION%%¡£ ÕâÑù£¬ ÔÚÉý¼¶ port ʱ£¬ ¾Í²»ÐèÒªÔÙµ½ pkg-plist ÖÐÐÞ¸ÄÄǼ¸Ê® (»òÕߣ¬ ÓÐʱÉõÖÁÊÇÉϰÙ) ÐеÄÄÚÈÝÁË¡£
¡¡¡¡Èç¹ûÄúµÄ port ÐèÒª¸ù¾ÝÒ»¶¨µÄÅäÖÃÀ´ÓÐÌõ¼þµØ°²×°Ò»Ð©Îļþ£¬ ͨ³£µÄ×ö·¨ÊÇÔÚ pkg-plist ÖÐÁгöÕâЩÎļþʱ£¬ ÔÚ¶ÔÓ¦ÐеĿªÍ·¼ÓÉÏ %%TAG%%£¬ ²¢½« TAG дµ½ Makefile ÖÐµÄ PLIST_SUB ±äÁ¿ÖУ¬ ¸ù¾ÝÐèÒªÌæ»»µô£¬ »òÌæ»»Îª @comment£¬ ºóÕß±íʾÈôò°ü¹¤¾ßºöÂÔÕâÐУº
.if defined(WITH_X11) PLIST_SUB+= X11="" .else PLIST_SUB+= X11="@comment " .endif
¡¡¡¡ÓëÖ®¶ÔÓ¦£¬ ÔÚ pkg-plist ÖУº
%%X11%%bin/foo-gui
¡¡¡¡ÕâÒ»Ìæ»»¹ý³Ì (ÒÔ¼°¼ÓÈë Áª»úÊÖ²á µÄ¹ý³Ì)£¬ »áÔÚ pre-install ºÍ do-install Á½¸ö target Ö®¼ä£¬ ͨ¹ý¶ÁÈ¡ PLIST ²¢Ð´Èë TMPPLIST (ĬÈÏÇé¿öÏ£¬ ÊÇ£º WRKDIR/.PLIST.mktmp) À´Íê³É¡£ Òò´Ë£¬ Èç¹ûÄúµÄ port ¶¯Ì¬Éú³É PLIST£¬ ¾ÍÐèÒªÔÚ pre-install ֮ǰÍê³É¡£ ÁíÍ⣬ Èç¹ûÄúµÄ port ÐèÒª±à¼ËùÉú³ÉµÄÎļþ£¬ ÔòÐèÒªÔÚ post-install ÖвÙ×÷ÃûΪ TMPPLIST µÄÄǸöÎļþ¡£
¡¡¡¡ÁíÒ»ÖÖ¿ÉÐеÄÐÞ¸Ä×°Ïäµ¥µÄ·½·¨£¬ ÔòÊǸù¾Ý PLIST_FILES ºÍ PLIST_DIRS ÕâÁ½¸ö±äÁ¿µÄÉèÖÃÀ´½øÐС£ ËüÃǵÄÖµ»á×÷ΪĿ¼ÃûÁ¬Í¬ PLIST µÄÄÚÈÝÒ»ÆðдÈë TMPPLIST¡£ ÔÚ PLIST_FILES ºÍ PLIST_DIRS ÖÐÁгöµÄÃû×Ö£¬ »á¾ÀúÇ°ÃæËù½éÉÜµÄ %%±äÁ¿%% Ìæ»»¹ý³Ì¡£ ³ý´ËÖ®Í⣬ ÔÚ PLIST_FILES ÖÐÁгöµÄÎļþ£¬ »á²»¼ÓÈκÎÐ޸ĵڳöÏÖÔÚ×îÖÕµÄ×°Ïäµ¥ÖУ¬ ¶ø @dirrm ½«×÷Ϊǰ׺¼Óµ½ PLIST_DIRS ËùÁеÄÃû×Ö֮ǰ¡£ ΪÁ˴ﵽĿµÄ£¬ PLIST_FILES ºÍ PLIST_DIRS ±ØÐëÔÚд TMPPLIST ֮ǰ£¬ Ò²¾ÍÊÇÔÚ pre-install »ò¸üÔçµÄ½×¶Î½øÐÐÉèÖá£
¡¡¡¡Ò»¶¨ÒªÈà port ÔÚÐ¶ÔØÊ±½øÐÐÇåÀí¿ÕĿ¼¡£ ͨ³££¬ ¿ÉÒÔͨ¹ýΪËùÓÐÓÉ port ´´½¨µÄĿ¼Ôö¼Ó¶ÔÓ¦µÄ @dirrm ÐÐÀ´ÊµÏÖ¡£ ÔÚɾ³ý¸¸Ä¿Â¼Ö®Ç°£¬ ÐèÒªÊ×ÏÈɾ³ýËüµÄ×ÓĿ¼¡£
: lib/X11/oneko/pixmaps/cat.xpm lib/X11/oneko/sounds/cat.au : @dirrm lib/X11/oneko/pixmaps @dirrm lib/X11/oneko/sounds @dirrm lib/X11/oneko
¡¡¡¡È»¶ø£¬ ÓÐʱ @dirrm »áÓÉÓÚÆäËü port ʹÓÃÁËͬһ¸öĿ¼¶ø·¢Éú´íÎó¡£ ÀûÓà @dirrmtry ¿ÉÒÔֻɾ³ýÄÇЩ¿ÕĿ¼£¬ ¶ø±ÜÃâ¸ø³ö¾¯¸æ¡£
@dirrmtry share/doc/gimp
¡¡¡¡°´ÕÕÉÏÃæµÄд·¨£¬ ½«²»»áÏÔʾÈκδíÎóÐÅÏ¢£¬ ¶øÇÒ£¬¼´Ê¹ÔÚ ${PREFIX}/share/doc/gimp ÓÉÓÚÆäËü port ÔÚÆäÖа²×°ÁËһЩ±ðµÄÎļþµÄʱºò£¬ Ò²²»»áµ¼Ö pkg_delete(1) Òì³£Í˳ö¡£
¡¡¡¡ÔÚ port °²×°¹ý³ÌÖд´½¨µÄ¿ÕĿ¼ÐèÒªÌØ±ðÁôÒâ¡£ °²×° package ʱ²¢²»»á×Ô¶¯´´½¨ÕâЩĿ¼£¬ ÕâÊÇÒòΪ package Ö»±£´æÎļþ¡£ Ҫȷ±£°²×° package ʱ»á×Ô¶¯´´½¨ÕâЩ¿ÕĿ¼£¬ ÐèÒªÔÚ pkg-plist ÖмÓÈëÓë @dirrm ¶ÔÓ¦µÄÐУº
@exec mkdir -p %D/share/foo/templates
¡¡¡¡Èç¹û port ÐèÒª°ÑһЩÎļþ·Åµ½ PREFIX/etc£¬ ²»Òª ¼òµ¥µØ°²×°ËüÃÇ£¬ ²¢½«ÆäÁÐÈë pkg-plist£¬ ÒòΪÕâÑù»áµ¼Ö pkg_delete(1) ɾ³ýÓû§¾«Ðı༵ÄÎļþ£¬ ¶øÐ°²×°Ê±ÔòÓÖ»á°ÑÕâЩÎļþ¸²¸Ç¡£
¡¡¡¡Òò´Ë£¬ ÄúÓ¦°ÑÅäÖÃÎļþµÄÀý×Ó°´ÆäËüµÄºó׺À´°²×° (ÀýÈç filename.sample ¾ÍÊÇÒ»¸ö²»´íµÄÑ¡Ôñ) ²¢ÏÔʾһÌõ ÏûÏ¢ ¸æËßÓû§ÈçºÎ¸´ÖƲ¢±à¼Õâ¸öÅäÖÃÎļþ£¬ ÒÔ±ãÈÃÈí¼þÄܹ»ÕýÈ·¹¤×÷¡£
¡¡¡¡Òò´Ë£¬ Ó¦°´ÆäËüµÄºó׺À´°²×°ÅäÖÃÎļþµÄÀý×Ó (filename.sample ¾ÍÊÇÒ»¸ö²»´íµÄÑ¡Ôñ)¡£ Èç¹ûʵ¼ÊµÄÅäÖÃÎļþ²»´æÔÚ£¬ Ôò½«Æä¸´ÖÆÎªÊµ¼ÊÎļþµÄÃû×Ö¡£ Ð¶ÔØÊ±£¬ Èç¹û·¢ÏÖÓû§Ã»ÓÐÐÞ¸ÄÅäÖÃÎļþ£¬ Ôò½«Æäɾ³ý¡£ ÄúÐèÒªÔÚ port µÄ Makefile£¬ ÒÔ¼° pkg-plist (¶ÔÓÚ´Ó package °²×°µÄÇéÐÎ) ½øÐд¦Àí¡£
¡¡¡¡Ê¾ÀýµÄ Makefile ²¿·Ö£º
post-install: @if [ ! -f ${PREFIX}/etc/orbit.conf ]; then \ ${CP} -p ${PREFIX}/etc/orbit.conf.sample ${PREFIX}/etc/orbit.conf ; \ fi
¡¡¡¡Ê¾ÀýµÄ pkg-plist ²¿·Ö£º
@unexec if cmp -s %D/etc/orbit.conf.sample %D/etc/orbit.conf; then rm -f %D/etc/orbit.conf; fi etc/orbit.conf.sample @exec if [ ! -f %D/etc/orbit.conf ] ; then cp -p %D/%F %B/orbit.conf; fi
¡¡¡¡ÁíÍ⣬ »¹Ó¦ÏÔʾһÌõ ÏûÏ¢ Ö¸³öÓû§Ó¦Ôںδ¦¸´ÖƲ¢±à¼Õâ¸öÎļþ£¬ ÒÔ±ãÈÃÈí¼þÄÜ¿ªÊ¼Õý³£¹¤×÷¡£
¡¡¡¡¾²Ì¬×°Ïäµ¥ ÊÇÖ¸ÔÚ Ports Collection ÖÐÒÔ pkg-plist Îļþ (¿ÉÄܰüº¬±äÁ¿Ìæ»»)£¬ »òÒÔ PLIST_FILES ºÍ PLIST_DIRS µÄÐÎʽǶÈëµ½ Makefile ³öÏÖµÄ×°Ïäµ¥¡£ ¼´Ê¹ËüÊÇÓɹ¤¾ß»ò Makefile ÖеÄij¸ö target ÔÚ¾ÓÉ committer ¼ÓÈëµ½ Ports Collection ֮ǰ ×Ô¶¯Éú³ÉµÄÒ²ÊÇÈç´Ë£¬ ÒòΪ¿ÉÒÔÔÚ²»ÏÂÔØ»ò±àÒëÔ´´úÂë°üµÄǰÌáÏÂ¶ÔÆä½øÐмìÊÓ¡£
¡¡¡¡¶¯Ì¬×°Ïäµ¥ ÊÇÖ¸ÔÚ port ±àÒë²¢°²×°Ê±Éú³ÉµÄ×°Ïäµ¥¡£ ÔÚÏÂÔØ²¢±àÒëÄúËùÒÆÖ²µÄÓ¦ÓóÌÐòµÄÔ´´úÂë֮ǰ£¬ »òÔÚÖ´ÐÐÁË make clean Ö®ºó£¬ ¾ÍÎÞ·¨²é¿´ÆäÄÚÈÝÁË¡£
¡¡¡¡¾¡¹ÜʹÓö¯Ì¬×°Ïäµ¥²¢²»±»½ûÖ¹£¬ µ«¼à»¤ÈËÓ¦¾¡¿ÉÄÜʹÓþ²Ì¬×°Ïäµ¥£¬ ÒòΪËüÄܹ»ÈÃÓû§Ê¹Óà grep(1)À´·¢ÏÖËùÐèµÄ ports£¬ ÀýÈ磬 ËüÊÇ·ñ»á°²×°Ä³¸öÌØ¶¨Îļþ¡£ ¶¯Ì¬ÁбíÖ÷ÒªÓ¦ÓÃÓÚ¸´Ôӵģ¬ Æä×°Ïäµ¥ËæËùÑ¡¹¦ÄܻᷢÉú¾Þ±ä (Òò¶øÊ¹µÃά»¤¾²Ì¬×°Ïäµ¥²»ÔÙ¿ÉÐÐ)£¬ »òÄÇÐ©Ëæ°æ±¾¶ø¸Ä±ä×°Ïäµ¥ÄÚÈÝµÄ port (ÀýÈ磬 ʹÓà Javadoc À´Éú³ÉÎĵµµÄÄÇЩ ports)¡£
¡¡¡¡ÎÒÃǹÄÀøÄÇЩѡÔñʹÓö¯Ì¬×°Ïäµ¥µÄ¼à»¤ÈËÌṩһ¸öÄܹ»Éú³É pkg-plist µÄ target£¬ ÒÔ±ãÓÚÓû§¼ìÊÓÆäÄÚÈÝ¡£
¡¡¡¡Ê×ÏÈ£¬ ÇëÈ·ÈÏÒѾ»ù±¾ÉÏÍê³ÉÁË port µÄ¹¤×÷£¬ ½öȱ pkg-plist¡£
¡¡¡¡½ÓÏÂÀ´£¬ ½¨Á¢Ò»¸öÓÃÓÚ°²×°ÄúµÄ port µÄÁÙʱĿ¼£¬ ²¢ÔÚÆäÖа²×°ËüËùÒÀÀµµÄËùÓÐÆäËûÈí¼þ°ü£º
# mkdir /var/tmp/$(make -V PORTNAME) # mtree -U -f $(make -V MTREE_FILE) -d -e -p /var/tmp/$(make -V PORTNAME) # make depends PREFIX=/var/tmp/$(make -V PORTNAME)
¡¡¡¡½«Ä¿Â¼½á¹¹±£´æµ½Ò»ÐÂÎļþÖС£
# (cd /var/tmp/$(make -V PORTNAME) && find -d * -type d) | sort > OLD-DIRS
¡¡¡¡½¨Á¢Ò»¿Õ°× pkg-plist Îļþ£º
# :>pkg-plist
¡¡¡¡Èç¹ûÄúµÄ port ×ñÑ PREFIX (Ó¦¸ÃÈç´Ë) Ôò½ÓÏÂÀ´Ó¦°²×°¸Ã port ²¢´´½¨×°Ïäµ¥¡£
# make install PREFIX=/var/tmp/$(make -V PORTNAME) # (cd /var/tmp/$(make -V PORTNAME) && find -d * \! -type d) | sort > pkg-plist
¡¡¡¡´ËÍ⻹Ӧ°Ñн¨Á¢µÄĿ¼¼ÓÈë×°Ïäµ¥¡£
# (cd /var/tmp/$(make -V PORTNAME) && find -d * -type d) | sort | comm -13 OLD-DIRS - | sort -r | sed -e 's#^#@dirrm #' >> pkg-plist
¡¡¡¡×îºóÐèÒªÊÖ¹¤ÕûÀí packing list£» ÕâÒ»¹ý³Ì²»ÊÇ ÍêÈ« ×Ô¶¯µÄ¡£ Áª»úÊÖ²áÓ¦ÁÐÈë port µÄ Makefile ÖÐµÄ MANn£¬ ¶ø²»ÊÇ×°Ïäµ¥¡£ Óû§ÅäÖÃÎļþÓ¦±»É¾³ý£¬ »òÒÔ filename.sample ÕâÑùµÄÃû×ÖÀ´°²×°¡£ info/dir Îļþ£¬ Ò²²»Ó¦ÁÐÈ룬 ͬʱӦ°´ÕÕ info Îļþ µÄ˵Ã÷À´Ôö¼ÓһЩ install-info ÐС£ ËùÓÐÓÉ port °²×°µÄ¿â£¬ Ó¦°´ÕÕ ¶¯Ì¬Á¬½Ó¿â С½ÚÖнéÉܵķ½·¨´¦Àí¡£
¡¡¡¡ÁíÍ⣬ Ò²¿ÉÒÔʹÓà /usr/ports/Tools/scripts/ ÖÐµÄ plist ½Å±¾À´×Ô¶¯´´½¨ package list¡£ plist ½Å±¾ÊÇÒ»¸ö Ruby ½Å±¾£¬ ËüÄܹ»½«Ç°Ãæ½éÉܵÄÊÖ¹¤²Ù×÷×Ô¶¯»¯¡£
¡¡¡¡¿ªÊ¼µÄ²½ÖèºÍÉÏÃæµÄǰÈýÐÐÒ»Ñù£¬ Ò²¾ÍÊÇ mkdir£¬ mtree ²¢ make depends¡£ È»ºóÁª±àºÍ°²×° port£º
# make install PREFIX=/var/tmp/$(make -V PORTNAME)
¡¡¡¡È»ºóÈà plist Éú³É pkg-plist Îļþ£º
# /usr/ports/Tools/scripts/plist -Md -m $(make -V MTREE_FILE) /var/tmp/$(make -V PORTNAME) > pkg-plist
¡¡¡¡ÓëÇ°ÃæÀàËÆ£¬ Èç´ËÉú³ÉµÄ×°Ïäµ¥Ò²ÐèÒªÊÖ¹¤½øÐÐһЩÇåÀí¹¤×÷¡£
¡¡¡¡ÁíÒ»¸ö¿ÉÒÔÓÃÀ´´´½¨×î³õµÄ pkg-plist µÄ¹¤¾ßÊÇ ports-mgmt/genplist¡£ ºÍÆäËû×Ô¶¯»¯¹¤¾ßÀàËÆ£¬ ÄúÓ¦¶ÔËüÉú³ÉµÄ pkg-plist Ó¦ÊÖ¹¤¼ì²é²¢¸ù¾ÝÐèÒª½øÐÐÐ޸ġ£
¡¡¡¡Ç°ÃæÓÐһЩûÓÐÌá¼°µÄ¹ØÓÚ pkg-* ÎļþµÄ¼¼ÇÉ£¬ ËüÃÇ¿ÉÒÔ·½±ãµØÍê³ÉÐí¶àÈÎÎñ¡£
¡¡¡¡Èç¹ûÄúÐèÒªÔÚ°²×°Ê±ÏÔʾһÌõÏûÏ¢¸øÓû§£¬ ¿ÉÒÔ°ÑÕâÏûÏ¢·ÅÔÚ pkg-message ÖС£ ÕâÒ»ÌØÐÔͨ³£¿ÉÒÔÓÃÓÚÔÚ pkg_add(1) Ö®ºóÏÔʾһЩ¸½¼ÓµÄ°²×°²½Ö裬 »òÏÔʾ¹ØÓÚÊÚȨµÄÐÅÏ¢¡£
¡¡¡¡µ±ÐèÒªÏÔʾһЩ±àÒ뿪¹Ø»ò¾¯¸æÊ±£¬ ÇëʹÓà ECHO_MSG¡£ pkg-message ÎļþÖ»ÊÇΪÏÔʾ°²×°ºóµÄÖ´ÐвÙ×÷Ö¸µ¼Ê¹Óõġ£ ÀàËÆµØ£¬ »¹ÐèÒªÁôÒâ ECHO_MSG ºÍ ECHO_CMD Ö®¼äµÄÇø±ð¡£ ǰһ¸öÊÇÔÚÆÁÄ»ÉÏÏÔʾÏûÏ¢ÐÔµÄÎÄ×Ö£¬ ¶øºóÒ»¸öÔòÓÃÓÚÔÚÖ´ÐÐÃüÁîʱʹÓùܵÀ¡£
¡¡¡¡ÏÂÃæÊÇÓõ½ÁËÕâÁ½¸öºêµÄÀý×Ó shells/bash2/Makefile£º
update-etc-shells: @${ECHO_MSG} "updating /etc/shells" @${CP} /etc/shells /etc/shells.bak @( ${GREP} -v ${PREFIX}/bin/bash /etc/shells.bak; \ ${ECHO_CMD} ${PREFIX}/bin/bash) >/etc/shells @${RM} /etc/shells.bak
×¢Òâ: pkg-message Îļþ£¬ ²¢²»ÐèÒªÃ÷È·µØ¼Óµ½ pkg-plist ÖС£ ´ËÍ⣬ ÔÚÓû§Ê¹Óà port ¶ø²»ÊÇ package À´°²×°Èí¼þʱ£¬ Ëü²¢²»»á±»ÏÔʾ³öÀ´¡£ Òò´ËÈç¹ûÐèÒªµÄ»°£¬ ÄúÓ¦¸ÃÔÚ post-install target ÖÐÖ¸¶¨ÏÔʾËü¡£
¡¡¡¡Èç¹ûÄúµÄ port ÐèÒªÔÚÔ¤±àÒëµÄ°²×°°üͨ¹ý pkg_add(1) °²×°Ê±Ö´ÐÐһЩÃüÁ ÔòӦͨ¹ý pkg-install ½Å±¾À´Íê³É¡£ Õâ¸ö½Å±¾»á×Ô¶¯µØ¼ÓÈë package£¬ ²¢±» pkg_add(1) Ö´ÐÐÁ½´Î£º µÚÒ»´ÎÊÇ ${SH} pkg-install ${PKGNAME} PRE-INSTALL ¶øµÚ¶þ´ÎÊÇ ${SH} pkg-install ${PKGNAME} POST-INSTALL¡£ $2 ¿É±»ÓÃÀ´¼ì²â½Å±¾ÔËÐеÄģʽ¡£ »·¾³±äÁ¿ PKG_PREFIX ½«ÉèÖÃΪ package µÄ°²×°Ä¿Â¼¡£ Çë²Î¼û pkg_add(1) ÒÔÁ˽â¸ü½øÒ»²½µÄϸ½Ú¡£
×¢Òâ: ÔÚʹÓà make install ʱÕâ¸ö½Å±¾²»»á±»×Ô¶¯ÔËÐС£ Èç¹ûÐèÒªÔËÐÐËü£¬ Ôò±ØÐëÔÚÄúµÄ port ÖÐµÄ Makefile ÀïÃ÷È·µØÓèÒÔµ÷Ó㬠Æä·½·¨ÊǼÓÈëÀàËÆ PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL ÕâÑùµÄÃüÁî¡£
¡¡¡¡ÕâÒ»½Å±¾½«ÔÚ package ±»Ð¶ÔØÊ±Ö´ÐС£
¡¡¡¡´Ë½Å±¾»á±» pkg_delete(1) Ö´ÐÐÁ½´Î¡£ µÚÒ»´ÎÊÇ ${SH} pkg-deinstall ${PKGNAME} DEINSTALL ¶øµÚ¶þ´ÎÔòÊÇ ${SH} pkg-deinstall ${PKGNAME} POST-DEINSTALL¡£
¡¡¡¡Èç¹ûÄúµÄ port ÐèҪȷ¶¨ËüÊÇ·ñÓ¦±»°²×°£¬ ¿ÉÒÔ´´½¨ pkg-req ¡°requirements¡± ½Å±¾¡£ Ëü»áÔÚ°²×°/Ð¶ÔØÊ±×Ô¶¯ÔËÐУ¬ ÒÔ¾ö¶¨²Ù×÷ÊÇ·ñÓ¦±»ÊµÊ©¡£
¡¡¡¡Õâ¸ö½Å±¾»áÔÚʹÓà pkg_add(1) °²×°Ê±ÒÔ pkg-req ${PKGNAME} INSTALL µÄÃüÁîÐÐÖ´ÐС£ Ð¶ÔØÊ±£¬ Ëü½«ÓÉ pkg_delete(1) ÒÔ pkg-req ${PKGNAME} DEINSTALL µÄÃüÁîÐÐÖ´ÐС£
¡¡¡¡ËùÓÐ pkg-* ÎļþµÄÃû×Ö£¬ ½Ôϵ²ÉÓñäÁ¿ÓèÒÔ¶¨Ò壬 Òò´ËÔÚÐèҪʱ¿ÉÒÔÔÚÄúµÄ Makefile ÖмÓÒԸı䡣 µ±ÄúÐèÒªÔÚ¶à¸ö port Ö®¼ä¹²ÏíijЩ pkg-* Îļþ£¬ »òÐèҪдÈëijЩÎļþʱ¾Í·Ç³£ÓÐÓÃÁË¡£ (²Î¼û ÔÚ WRKDIR ÒÔÍâµÄµØ·½Ð´Îļþ£¬ ÒÔÁ˽âΪʲôֱ½Ó½«±ä¸üдÈë pkg-* ×ÓĿ¼ÊǸöÔã¸âµÄÖ÷Òâ)
¡¡¡¡ÏÂÃæÊÇÒ»×é±äÁ¿ÒÔ¼°ËüÃǵÄĬÈÏÖµ (PKGDIR ĬÈÏÇé¿öÏÂÊÇ ${MASTERDIR}¡£)
±äÁ¿ | ĬÈÏÖµ |
---|---|
DESCR | ${PKGDIR}/pkg-descr |
PLIST | ${PKGDIR}/pkg-plist |
PKGINSTALL | ${PKGDIR}/pkg-install |
PKGDEINSTALL | ${PKGDIR}/pkg-deinstall |
PKGREQ | ${PKGDIR}/pkg-req |
PKGMESSAGE | ${PKGDIR}/pkg-message |
¡¡¡¡ÇëÐÞ¸ÄÕâЩ±äÁ¿£¬ ¶ø²»ÊÇÖ±½Ó¸²¸Ç PKG_ARGS µÄÖµ¡£ Èç¹ûÄú¸Ä±äÁË PKG_ARGS£¬ ÕâЩÎļþ½«ÎÞ·¨ÔÚ°²×° port ʱÕýÈ·µØ¸´ÖƵ½ /var/db/pkg Ŀ¼¡£
¡¡¡¡SUB_FILES ºÍ SUB_LIST ÕâÁ½¸ö±äÁ¿¿ÉÒÔÓÃÀ´ÔÚ port ÎļþÖÐʹÓÃijЩ¶¯Ì¬µÄÖµ£¬ ÀýÈç pkg-message ÖÐµÄ installation PREFIX¡£
¡¡¡¡Óà SUB_FILES ±äÁ¿£¬ ¿ÉÒÔÖ¸¶¨ÐèÒª×Ô¶¯½øÐÐÐ޸ĵÄÎļþÁÐ±í¡£ ÔÚ SUB_FILES ÖеÄÿһ¸ö Îļþ£¬ ÔÚ FILESDIR Ŀ¼Öж¼±ØÐëÓÐÒ»¸ö¶ÔÓ¦µÄ Îļþ.in¡£ Ð޸ĺóµÄ°æ±¾½«±£´æÔÚ WRKDIR¡£ ÔÚ USE_RC_SUBR (»òÒѾ¹ýʱµÄ USE_RCORDER) Öж¨ÒåµÄÎļþ»á×Ô¶¯¼ÓÈëµ½ SUB_FILES ÖС£ ¶ÔÓÚ pkg-message¡¢ pkg-install¡¢ pkg-deinstall and pkg-req£¬ ¶ÔÓ¦µÄ Makefile ±äÁ¿»á±»×Ô¶¯ÉèÖ㬠ÒÔÖ¸Ïò´¦Àí¹ýµÄ°æ±¾¡£
¡¡¡¡SUB_LIST Õâ¸ö±äÁ¿µÄÄÚÈÝÊÇһϵÁÐ VAR=VALUE ¶Ô¡£ SUB_FILES ËùÁгöµÄÎļþÖÐËùÓÐµÄ %%VAR%% ¶¼½«±»Ì滻Ϊ VALUE¡£ ϵͳ×Ô¶¯¶¨ÒåÁËһЩ³£ÓõÄÌæ»»¶Ô£¬ °üÀ¨£º PREFIX¡¢ LOCALBASE¡¢ DATADIR¡¢ DOCSDIR£¬ ÒÔ¼° EXAMPLESDIR¡£ Ìæ»»½á¹ûÖÐËùÓÐÒÔ @comment ¿ªÍ·µÄÐУ¬ ¶¼½«ÔÚ±äÁ¿Ìæ»»Ö®ºó±»É¾È¥¡£
¡¡¡¡ÏÂÃæµÄÀý×ÓÖУ¬ ½«°Ñ pkg-message ÖÐµÄ %%ARCH%% Ìæ»»ÎªÏµÍ³ËùÔËÐеļܹ¹Ãû³Æ£º
SUB_FILES= pkg-message SUB_LIST= ARCH=${ARCH}
¡¡¡¡×¢Ò⣬ ÔÚÉÏÊöÀý×ÓÖУ¬ FILESDIR Àï±ØÐëÓÐ pkg-message.in Õâ¸öÎļþ¡£
¡¡¡¡ÏÂÃæÊÇÒ»¸öÕýÈ·µÄ pkg-message.in Àý×Ó£º
Now it is time to configure this package. Copy %%PREFIX%%/share/examples/putsy/%%ARCH%%.conf into your home directory as .putsy.conf and edit it.
¡¡¡¡Ðí¶à FreeBSD port ά»¤¹¤¾ß£¬ ÀýÈç portupgrade(1)£¬ »áÒÀÀµÓÚÒ»¸öÃûΪ /usr/ports/INDEX µÄÊý¾Ý¿âµÄÕýÈ·ÐÔ£¬ ËüÌṩÁ˹ØÓÚ port µÄÏà¹ØÐÅÏ¢£¬ ÀýÈçÒÀÀµ¹ØÏµµÈµÈ¡£ INDEX ÊÇÓɶ¥¼¶µÄ ports/Makefile ͨ¹ý make index À´½¨Á¢µÄ£¬ Õâ¸öÃüÁî»á½øÈëÿһ¸ö port µÄ×ÓĿ¼£¬ ²¢ÔÚÄÇÀïÖ´ÐÐ make describe¡£ Òò´Ë£¬ Èç¹ûij¸ö port µÄ make describe ʧ°Ü£¬ ¾ÍûÓÐÈËÄÜÉú³É INDEX£¬ ÈËÃǺܿì»á±äµÃ²»¸ßÐË¡£
×¢Òâ: ÎÞÂÛÔÚ make.conf ÖÐÉèÖÃÁËʲôѡÏ Õâ¸öÎļþ¶¼Ó¦Äܹ»ÕýÈ·µØÉú³É¡£ Òò´Ë£¬ Ó¦±ÜÃâÔÚ (ÀýÈç) ij¸öÒÀÀµ¹ØÏµÎÞ·¨Âú×ãʱʹÓà .error¡£ (²Î¼û µÚ 12.16 ½Ú¡£)
¡¡¡¡Èç¹û make describe Ö»ÊDzúÉúÒ»¸ö×Ö·û´®£¬ ¶ø²»ÊÇ´íÎóÐÅÏ¢£¬ ¿ÉÄܾÍûʲôÎÊÌâ¡£ Çë²Î¼û bsd.port.mk ÒÔÁ˽âËùÉú³ÉµÄ´®µÄÒâÒå¡£
¡¡¡¡×îºóҪ˵Ã÷µÄÊÇ£¬ а汾µÄ portlint (ÔÚÏÂÒ»½ÚÖн«½øÐнéÉÜ) ½«»á×Ô¶¯µØÔËÐÐ make describe¡£
¡¡¡¡ÔÚÌá½»»ò commit ֮ǰ£¬ ӦʹÓà portlint À´½øÐмì²é¡£ portlint »á¶Ô³£¼ûµÄ¡¢ °üÀ¨¹¦ÄÜÉϵĺ͸ñʽÉϵĴíÎó¸ø³ö¾¯¸æ¡£ ¶ÔÓÚÐ嵀 (»òÔÚ repocopy ´úÂë¿âÖи´ÖƵÄ) port£¬ portlint -A ¿ÉÒÔÍê³ÉÈ«Ãæ¼ì²é£» ¶ÔÓÚôß´æµÄ port£¬ portlint -C Ò»°ã¾Í×ã¹»ÁË¡£
¡¡¡¡ÓÉÓÚ portlint ²ÉÓÃÆô·¢Ê½·½·¨À´¼ì²é´íÎó£¬ ÓÐʱËü»á²úÉúÎ󾯡£ ÁíÍ⣬ ÓÐʱÓÉÓÚ port ¿ò¼ÜµÄÏÞÖÆ¿ÉÄÜûÓа취ÐÞÕýËüÖ¸³öµÄÎÊÌâ¡£ Èç¹ûÄúÓÐÒÉÂÇ£¬ ÇëдÐÅѯÎÊ FreeBSD ports ÓʼþÁÐ±í¡£
¡¡¡¡ÔÚ Ports Ì×¼þÖУ¬ ÌṩÁËÒ»¸ö ports-mgmt/porttools ³ÌÐò¡£
¡¡¡¡port ÊÇÒ»¸öÄܹ»°ïÖúÄú¼ò»¯²âÊÔ¹¤¾ßµÄǰ¶Ë½Å±¾¡£ Èç¹ûÏ£Íû¶ÔÐÂÔöµÄ port »ò¸üРport ʱ½øÐвâÊÔ£¬ ¿ÉÒÔÓà port test À´Íê³ÉÕâЩ²âÊÔ¹¤×÷£¬ ÕâÒ²°üº¬ÁË portlint ¼ì²é¡£ Õâ¸öÃüÁî»á¼ì²â²¢ÁгöûÓÐÔÚ pkg-plist ÖÐÁгöµÄÎļþ¡£ ¾ßÌåÓ÷¨Çë²Î¼ûÏÂÃæµÄÀý×Ó£º
# port test /usr/ports/net/csup
¡¡¡¡PREFIX Äܹ»¾ö¶¨ port °²×°Ê±µÄÄ¿µÄλÖᣠһ°ãÇé¿öÏÂÕâ¸öλÖÃÊÇ /usr/local »ò /opt£¬ µ«Ò²¿ÉÒÔÉèΪÆäËüµÄÈÎÒâÖµ¡£ ÄúµÄ port Ôò±ØÐë×ñÑÕâ¸ö±äÁ¿¡£
¡¡¡¡³ý´ËÖ®Í⣬ Èç¹ûÓû§ÅäÖÃÁË DESTDIR£¬ Ôò±íʾϣÍû½« port °²×°µ½ÁíÒ»¸ö»·¾³£¬ ͨ³£ÊÇ jail »òÔÚ / ÒÔÍâµÄÆäËûλÖùҽӵÄϵͳÖС£ ʵ¼ÊÉÏ£¬ port »á°²×°µ½ DESTDIR/PREFIX£¬ ²¢×¢²áµ½Î»ÓÚ DESTDIR/var/db/pkg µÄÔ¤±àÒë°üÊý¾Ý¿âÖС£ ÓÉÓÚ DESTDIR ÊÇÓÉ ports ¿ò¼Ü½åÓÉ chroot(8) À´ÊµÏֵģ¬ ÄúÔÚ׫д·ûºÏ DESTDIR ¹æ·¶µÄ ports ʱ²¢²»ÐèҪʲô¶îÍâµÄ¹¤×÷¡£
¡¡¡¡Ò»°ã¶øÑÔ PREFIX »áÉèΪ LOCALBASE_REL (ĬÈÏÊÇ /usr/local)¡£ Èç¹ûÉèÖÃÁË USE_LINUX_PREFIX£¬ Ôò PREFIX »áÉèΪ LINUXBASE_REL (ĬÈÏÊÇ /compat/linux)¡£
¡¡¡¡±ÜÃ⽫ /usr/local »ò /usr/X11R6 Ó²±àÂëµ½Ô´´úÂëÖУ¬ Äܹ»´ó´óÌá¸ß port µÄÁé»îÐÔ£¬ ²¢ÊÊÓ¦²»Í¬»·¾³µÄÐèÒª¡£ ¶ÔÓÚʹÓà imake µÄ X port£¬ ÕâÒ»¹¤×÷ÊÇ×Ô¶¯Íê³ÉµÄ£» ÆäËûÇé¿öÏ£¬ ͨ³£¿ÉÒÔ¼òµ¥µØ½« port ËùÓõ½µÄ Makefile ½Å±¾ÖгöÏÖµÄ /usr/local (»ò¶ÔÓÚûÓÐʹÓà imake µÄ X port ¶øÑÔ£¬ /usr/X11R6) Ìæ»»Îª¶ÁÈ¡ ${PREFIX} ±äÁ¿¾ÍÄܴﵽĿµÄÁË£¬ ÒòΪÕâ¸ö±äÁ¿ÔÚÁª±àºÍ°²×°µÄ¹ý³ÌÖУ¬ »á×Ô¶¯ÏòÏ´«µÝ¡£
¡¡¡¡Ò»¶¨Òª±ÜÃâÈÃÄúµÄ port ÔÚ /usr/local ¶ø²»ÊÇÕýÈ·µÄ PREFIX Öа²×°Îļþ¡£ ¼òµ¥µÄ²âÊÔ·½·¨ÊÇ£º
# make clean; make package PREFIX=/var/tmp/$(make -V PORTNAME)
¡¡¡¡Èç¹ûÓÐÎļþ°²×°µ½ÁË PREFIX ÒÔÍâµÄµØ·½£¬ ´ò°ü¹ý³Ì½«±§Ô¹ÕÒ²»µ½ÕâЩÎļþ¡£
¡¡¡¡ÕâÒ»²½Öè²¢²»ÄܰïÖú·¢ÏÖÄÚ²¿ÒýÓ㬠»ò¾ÀÕýÔÚÒýÓÃÆäËü port ÖеÄÎļþʱʹÓÃµÄ LOCALBASE¡£ ÄúÐèÒªÔÚ /var/tmp/$(make -V PORTNAME) ÖвâÊÔ°²×°ºÃµÄÈí¼þ£¬ ²ÅÄܹ»´ïµ½ÕâÑùµÄÄ¿µÄ¡£
¡¡¡¡Äú¿ÉÒÔÔÚ×Ô¼ºµÄ Makefile Öиıä PREFIX ±äÁ¿µÄÖµ£¬ Ò²¿ÉÒÔͨ¹ýÓû§»·¾³±äÁ¿À´Ó°ÏìËü¡£ È»¶ø£¬ Ò»°ãÇé¿öϾö²»Ó¦¸ÃÔÚ Makefile ÖÐÃ÷È·ÉèÖÃËüµÄÖµ¡£
¡¡¡¡´ËÍ⣬ ÒýÓÃÆäËü port ÖеÄÎļþʱ£¬ ӦʹÓÃÇ°Ãæ½éÉܵıäÁ¿£¬ ¶ø²»ÒªÖ±½ÓÖ¸¶¨ËüÃǵÄ·¾¶Ãû¡£ ÀýÈ磬 Èç¹ûÄúµÄ port ÐèҪʹÓà PAGER Õâ¸öºêÀ´Ö¸Ã÷ less µÄÍêÕû·¾¶£¬ ӦʹÓÃÏÂÃæµÄ±àÒëÑ¡Ï
-DPAGER=\"${LOCALBASE}/bin/less\"¶ø·Ç -DPAGER=\"/usr/local/bin/less\"¡£ ÕâÖÖ·½·¨Äܹ»Ôö¼ÓÔÚϵͳ¹ÜÀíÔ±°ÑÕû¸ö /usr/local Ŀ¼Ųµ½ÆäËüλÖÃʱ°²×°³É¹¦µÄ»ú»á¡£
¡¡¡¡Èç¹ûÄúÊǷdz£ÈÈÐÄµÄ ports ²ÎÓëÕߣ¬ Ôò¿ÉÒÔ¿´¿´ Tinderbox¡£ ÕâÊÇÒ»¸öÇ¿´óµÄÓÃÓÚÁª±àºÍ²âÊÔ ports µÄϵͳ£¬ Ëü»ùÓÚ Pointyhat µÄ½Å±¾¡£ Äú¿ÉÒÔʹÓà ports-mgmt/tinderbox port À´°²×° Tinderbox¡£ ÇëÒ»¶¨×ÐϸÔĶÁËæËü°²×°µÄÎĵµ£¬ ÒòΪÅäÖò¢²»¼òµ¥¡£
¡¡¡¡Çë·ÃÎÊ Tinderbox ÍøÕ¾ ÒÔÁË½â½øÒ»²½µÄϸ½Ú¡£
¡¡¡¡Èç¹ûÄú·¢ÏÖij¸ö port Ïà¶ÔÔ×÷ÕßËù·¢²¼µÄ°æ±¾ÒѾ¹ýʱ£¬ ÔòÊ×ÏÈÐèҪȷÈϵÄÊÇÄúµÄ port ÊÇ×îеġ£ Äú¿ÉÒÔÔÚ FreeBSD FTP ¾µÏñµÄ ports/ports-current Ŀ¼ÖÐÕÒµ½ËüÃÇ¡£ µ«ÊÇ£¬ Èç¹ûÄúÕýÔÚʹÓý϶àµÄ port£¬ Ôò¿ÉÄÜʹÓà CVSup À´±£³Ö Ports Collection ×îиüΪ¼òµ¥£¬ ÕâÔÚ Ê¹ÓÃÊÖ²á ÖнøÐÐÁ˽éÉÜ¡£ ´ËÍ⣬ ÕâÑù×öÒ²ÓÐÖúÓÚ±£³Ö port ÒÀÀµ¹ØÏµµÄÕýÈ·ÐÔ¡£
¡¡¡¡ÏÂÒ»²½ÊǼì²éÊÇ·ñÒѾÓÐÔڵȴýµÄ¸üС£ ÒªÍê³ÉÕâÏ×÷£¬ ¿ÉÒÔ²ÉÓÃÏÂÁÐÁ½ÖÖ·½·¨Ö®Ò»¡£ ÓÐÒ»¸öÓÃÓÚËÑË÷ FreeBSD ÎÊÌⱨ¸æ (PR) Êý¾Ý¿â (Ò²±»³Æ×÷ GNATS)¡£ ÔÚÏÂÀ¿òÖÐÑ¡Ôñ ports£¬ È»ºóÊäÈë port µÄÃû×Ö¡£
¡¡¡¡µ«ÊÇ£¬ ÓÐЩʱºòÈËÃÇ»áÍü¼Ç½«±ÜÃâ»ìÏýµÄ port µÄÃû×ַŵ½ Synopsis ×Ö¶ÎÖС£ ÕâÖÖʱºò£¬ Äú¿ÉÒÔÊÔÊÔ¿´ FreeBSD Ports ¼àÊÓϵͳ (Ò²±»½Ð×ö portsmon)¡£ Õâ¸öϵͳ»á³¢ÊÔ°´ÕÕ port µÄÃû×ÖÀ´½øÐзÖÀà¡£ ÒªËÑË÷ºÍij¸öÌØ¶¨ port ÓÐ¹ØµÄ PR£¬ ¿ÉÒÔʹÓà port¸ÅÀÀ¡£
¡¡¡¡Èç¹ûûÓкòÉóµÄ PR£¬ ÏÂÒ»²½ÊǸø port µÄά»¤ÕßдÐÅ£¬ Õâ¿ÉÒÔͨ¹ýÖ´ÐÐ make maintainer ¿´µ½¡£ Õâ¸öÈË¿ÉÄÜÕýÔÚ½øÐÐÉý¼¶¹¤×÷£¬ »òÕßÓÉÓÚijÖÖÀíÓÉÔÝʱûÓÐÉý¼¶ (ÀýÈ磬 а汾ÓÐÎȶ¨ÐÔÎÊÌâ)£» Ò»°ãÄú²»Ï£ÍûÖØ¸´ËûÃǵŤ×÷¡£ ×¢ÒâûÓÐά»¤ÕßµÄ port µÄά»¤Õß»áÏÔʾΪ ports@FreeBSD.org£¬ ÕâÊÇÒ»°ãÐÔ port ÎÊÌâµÄÓʼþÁÐ±í£¬ Òò´Ë·¢Óʼþ¸øËüÒ»°ãûʲôÒâÒå¡£
¡¡¡¡Èç¹ûά»¤ÕßÒªÇóÄúÈ¥Íê³ÉÉý¼¶£¬ »òÕßûÓÐά»¤Õߣ¬ Äú¾ÍÓлú»áͨ¹ý×ÔÐÐÍê³ÉÉý¼¶À´°ïÖú FreeBSD ÁË£¡ ÇëʹÓûù±¾ÏµÍ³ÌṩµÄ diff(1) ÃüÁîÀ´Íê³ÉÏà¹ØµÄ¹¤×÷¡£
¡¡¡¡Èç¹ûÖ»ÐÞ¸ÄÒ»¸öÎļþ£¬ ¿ÉÒÔÖ±½ÓʹÓà diff À´Éú³É²¹¶¡£¬ ½«ÐèÒªÐ޸ĵÄÎļþ¸´ÖÆ³É something.orig£¬ ²¢½«¸Ä¶¯·Å½ø something£¬ ½Ó×ÅÉú³É²¹¶¡£º
¡¡¡¡»¹ÓÐÒ»ÖÖ°ì·¨Êǽ«Ä¿Â¼Õû¸ö¸´ÖƵ½ÁíÒ»¸öĿ¼£¬ ²¢Ê¹Óà diff(1) ±È½ÏÁ½¸öĿ¼ʱÔÚĿ¼Öеݹé²úÉúµÄÊä³ö½á¹û (ÀýÈ磬 Èç¹ûÄúÐ޸ĺóµÄ port Ŀ¼µÄÃû×ÖÊÇ superedit ¶øÔʼÎļþµÄĿ¼ÊÇ superedit.bak£¬ ÔòÓ¦±£´æ diff -ruN superedit.bak superedit µÄ½á¹û)¡£ Ò»ÖÂʽ (unified) »ò ÉÏÏÂÎÄʽ (context) diff ¶¼ÊÇ¿ÉÒԵģ¬ µ«Ò»°ãÀ´Ëµ port committer »á¸üϲ»¶Ò»ÖÂʽ diff¡£ Çë×¢ÒâÕâÀïʹÓõÄÑ¡Ïî -N£¬ ËüµÄÄ¿µÄÊÇÇ¿ÖÆ diff ÕýÈ·µØ´¦Àí³öÏÖÐÂÎļþ£¬ »òÀÏÎļþ±»É¾³ýµÄÇéÐΡ£ ÔÚ°Ñ diff ·¢¸øÎÒÃÇ֮ǰ£¬ ÇëÔٴμì²éÊä³ö£¬ ÒÔ±ãÈ·ÈÏÿһ¸öÐ޸ͼÊÇÓÐÒâÒåµÄ¡£ (ÌØ±ð×¢Ò⣬ ÔÚ¶Ô±ÈĿ¼֮ǰҪÓà make clean ÇåÀíÒ»ÏÂ)¡£
¡¡¡¡ÎªÁ˼ò»¯³£ÓõIJ¹¶¡Îļþ²Ù×÷£¬ Äú¿ÉÒÔʹÓà /usr/ports/Tools/scripts/patchtool.py¡£ ʹÓÃ֮ǰ£¬ ÇëÊ×ÏÈÔĶÁ /usr/ports/Tools/scripts/README.patchtool¡£
¡¡¡¡Èç¹û port Ŀǰ»¹ÎÞÈËά»¤£¬ ¶øÇÒÄú×Ô¼º¾³£Ê¹ÓÃËü£¬ Ç뿼ÂÇ×Ô¼öΪËüµÄά»¤Õß¡£ FreeBSD Óг¬¹ý 4000 ¸öûÓÐά»¤ÕßµÄ port£¬ ¶øÕâÕýÊÇ×îÐèÒªÖ¾Ô¸ÈËÔ±µÄÁìÓò¡£ (ÒªÁË½â¹ØÓÚά»¤ÕßµÄÈÎÎñÃèÊö£¬ Çë²Î¼û ¿ª·¢ÊÖ²áÖеÄÏà¹Ø²¿·Ö¡£)
¡¡¡¡½« diff ·¢Ë͸øÎÒÃǵÄ×î¼Ñ·½Ê½ÊÇͨ¹ý send-pr(1) (category Ò»À¸Ð´ ports)¡£ Èç¹ûÄúÕýά»¤ÄǸö port£¬ ÇëÎñ±ØÔÚ synopsis µÄ¿ªÍ·Ð´ÉÏ [maintainer update]£¬ ²¢½«ÄúµÄ PR µÄ ¡°Class¡± ÉèÖÃΪ maintainer-update¡£ ·´Ö®£¬ ÄúµÄ PR µÄ ¡°Class¡± ¾ÍÓ¦¸ÃÊÇ change-request¡£ ÇëÔÚÐÅÖÐÖð¸öÌἰÿһ¸öɾ³ý»òÔö¼ÓµÄÎļþ£¬ ÒòΪÕâЩ¶¼±ØÐëÃ÷È·µØÔÚʹÓà cvs(1) ½øÐÐ commit ʱÃ÷È·µØÖ¸¶¨¡£ Èç¹û diff ³¬¹ýÁË 20K£¬ Ç뿼ÂÇѹËõ²¢¶ÔÆä½øÐÐ uuencode£» ·ñÔò£¬ ¼òµ¥µØ½«ÆäÔÑù¼ÓÈë PR ¼´¿É¡£
¡¡¡¡ÔÚÄú send-pr(1) ֮ǰ£¬ ÇëÔÙ´ÎÔĶÁ Problem Reports Ò»ÎÄÖÐµÄ ÈçºÎ׫дÎÊÌⱨ¸æ С½Ú£» Ëü¸ø³öÁ˷ḻµÄ¹ØÓÚÈçºÎ׫д¸üºÃµÄÎÊÌⱨ¸æµÄ½éÉÜ¡£
ÖØÒª: Èç¹ûÄúµÄ¸üÐÂÊÇÓÉÓÚ°²È«¿¼ÂÇ£¬ »òÐÞ¸´ÒѾ commit µÄ port ÖеÄÑÏÖØÎÊÌ⣬ Çë֪ͨ Ports ¹ÜÀíÍŶÓ
<portmgr@FreeBSD.org>
À´ÉêÇëÁ¢¼´Öؽ¨ºÍ·Ö·¢ÄúµÄ port µÄ package¡£ ·ñÔò£¬ ²»Ô¸»³ÒɵÄʹÓà pkg_add(1) µÄÓû§£¬ ¿ÉÄÜ»áÔÚδÀ´ÊýÖÜÖ®ÄÚ¼ÌÐøÍ¨¹ýʹÓà pkg_add -r °²×°¾É°æ±¾¡£
×¢Òâ: ÔÙ´ÎÇ¿µ÷£¬ ÇëʹÓà diff(1) ¶ø·Ç shar(1) À´·¢ËÍÏÖÓÐ port µÄ¸üУ¡ Õâ¿ÉÒÔ°ïÖú ports committer Àí½âÐèÒªÐ޸ĵÄÄÚÈÝ¡£
¡¡¡¡ÏÖÔÚÄúÒѾÁ˽âÁËËùÐèµÄËùÓвÙ×÷£¬ Äú¿ÉÄÜ»áÏñÒªÔĶÁÔÚ µÚ 14 Õ ÖйØÓÚÈçºÎ±£³Ö×îеÄÃèÊö¡£
¡¡¡¡Èç¹ûÔÚÉý¼¶ port ʱÐèÒªÀàËÆÐÞ¸ÄÅäÖÃÎļþ»òÔËÐÐÌØ¶¨µÄ³ÌÐòÕâÑùµÄÌØ±ð²½Ö裬 ÔòÓ¦ÔÚ /usr/ports/UPDATING ÎļþÖÐÓèÒÔ˵Ã÷¡£ Õâ¸öÎļþÖеÄÏîÄ¿¸ñʽÈçÏ£º
YYYYMMDD: AFFECTS: users of portÀà±ð/portÃû×Ö AUTHOR: ÄúµÄÃû×Ö <ÄúµÄµç×ÓÓʼþµØÖ·> ËùÐèÖ´ÐеÄÌØ±ð²½Öè
¡¡¡¡Èç¹ûÄúÐèÒªÔÚÄÚÎÄÖмÓÈë¾ßÌåµÄ portmaster »ò portupgrade µÄ˵Ã÷£¬ ÇëÈ·±£ËùÓÃµÄ shell ÃüÁîʹÓÃÁËÕýÈ·µÄתÒå×Ö·û¡£
¡¡¡¡Èç¹û port ±»É¾³ý»ò¸ÄÃû£¬ÔòÓ¦ÔÚ /usr/ports/MOVED ÖÐÌí¼ÓÏàÓ¦µÄ˵Ã÷ÏîÄ¿¡£ Õâ¸öÎļþÖеÄÏîÄ¿¸ñʽÈçÏ£º
ÔÀ´µÄÃû×Ö|ÐÂÃû×Ö (Èç¹ûɾ³ýÔòÓ¦Áô¿Õ)|ɾ³ý»ò¸ÄÃûµÄÈÕÆÚ|ÔÒò
¡¡¡¡Èí¼þÖÐż¶û»áÒýÈë bug¡£ ÎãÓ¹ÖÃÒÉ£¬ °²È«Â©¶´ÊÇ×îΪΣÏյġ£ ´Ó¼¼Êõ½Ç¶È¿´£¬ ÕâЩ©¶´¿ÉÒÔͨ¹ýÏû³ýµ¼ÖÂËüÃÇµÄ bug À´ÐÞ¸´¡£ È»¶ø£¬ ´¦ÀíÒ»°ãµÄ bug ºÍ°²È«Â©¶´µÄ²ßÂÔÊǽØÈ»²»Í¬µÄ¡£
¡¡¡¡µäÐ͵ÄС bug ͨ³£Ö»Ó°ÏìÄÇЩÆôÓÃÁËijЩÄܹ»´¥·¢ËüµÄÑ¡Ïî×éºÏµÄÓû§¡£ ¿ª·¢ÈËÔ±×îÖÕ»áÔÚ·¢²¼Ã»ÓÐÄǸöÎÊÌâµÄаæÖ®ºó¸ø³öÒ»¸ö²¹¶¡À´ÐÞÕýËü£¬ ¶øÓû§ÖеÄÖ÷Ìå²¢²»»áÁ¢¼´Éý¼¶£¬ ÒòΪËûÃDz¢Ã»ÓÐÒò´æÔÚÎÊÌâ¶ø¸Ðµ½¿àÄÕ¡£ ÑÏÖØµÄ bug ¿ÉÄܻᵼÖÂÊý¾Ý¶ªÊ§ºÍÆäËüÎÊÌ⣬ ÎÞÂÛÈçºÎ£¬ ½÷É÷µÄÓû§ÖªµÀ£¬ ³ýÁËÈí¼þ bug Ö®Í⻹ÓкܶàÆäËüʹʿÉÄܻᵼÖÂÊý¾Ý¶ªÊ§£¬ Òò´ËËûÃǻᱸ·ÝÖØÒªÊý¾Ý£» ´ËÍ⣬ ÑÏÖØµÄ bug ͨ³£»á±»ºÜ¿ì·¢ÏÖ¡£
¡¡¡¡°²È«Â©¶´ÔòÍêÈ«²»Í¬¡£ µÚÒ»£¬ ËüÃÇ¿ÉÄÜ´æÔÚÊýÄê¶ø²»±»·¢ÏÖ£¬ ÒòΪËüÃÇ¿ÉÄܲ¢²»µ¼ÖÂÈí¼þÎÞ·¨Õý³£¹¤×÷¡£ µÚ¶þ£¬ ͨ¹ýÀûÓé¶´£¬ ¶ñÒâµÄÒ»·½¿ÉÄÜ»áµÃµ½Î´»ñÊÚȨµÄ·ÃÎÊȨÏÞ£¬ ²¢ÀûÓÃÕâЩȨÏÞ»Ùµô»òÐÞ¸ÄÃô¸ÐÊý¾Ý£» ¶ø¸üÔã¸âµÄÇé¿öÔòÊÇÓû§¿ÉÄܸù±¾×¢Òâ²»µ½Ëðº¦ÒѾ·¢Éú¡£ µÚÈý£¬ ±©Â¶³ö°²È«Â©¶´µÄϵͳ£¬ ÍùÍùÄܹ»°ïÖú¹¥»÷Õß´³ÈëÆäËü֮ǰ²»¿ÉÄܽøÈëµÄϵͳ¡£ Òò´Ë£¬ Ö»ÊÇÐÞÕý°²È«Â©¶´ÊDz»¹»µÄ£º ±ØÐëÒÔÇåÎúºÍÈ«ÃæµÄ·½Ê½Í¨Öª¹«ÖÚ£¬ ÕâÑùËûÃǾÍÄܹ»ÆÀ¹À·çÏÕ£¬ ²¢²ÉÈ¡Êʵ±µÄ´ëÊ©¡£
¡¡¡¡µ±ËµÆð port »ò package ʱ£¬ °²È«Â©¶´ÍùÍùÊdzöÏÖÔÚÔ×÷Õߵķ¢Ðаü£¬ »òÒÆÖ²¹ý³ÌÖмÓÈëµÄÎļþÀï¡£ ¶ÔÓÚǰһÖÖÇé¿ö£¬ Èí¼þµÄÔ×÷Õßͨ³£»áÁ¢¿Ì·¢²¼Ò»¸ö²¹¶¡ÉõÖÁа棬 ÄúÖ»ÐèÒª°´ÕÕÔ×÷ÕßµÄÐÞÕýÈ¥¸üРport ¾Í¿ÉÒÔÁË¡£ Èç¹ûÓÉÓÚijÖÖÔÒòÐÞÕý±»ÑÓÎó£¬ ÔòҪô ½« port ±ê¼ÇΪ FORBIDDEN£¬ ҪôÔÚ port ÖмÓÈëÒ»¸ö×Ô¼ºµÄ²¹¶¡¡£ Èç¹ûÓдæÔÚ©¶´µÄ port£¬ ¾¡¿ÉÄܾ¡¿ìÐÞ¸´Æä©¶´¾ÍÊÇ¡£ ÎÞÂÛÊÇÄÄÖÖÇé¿ö£¬ Äú»¹ÊÇÐèÒª°´ÕÕ ±ê×¼µÄÌá½»Á÷³Ì Ìá½»£¬ ³ý·ÇÄúÓÐÖ±½ÓÔÚ ports tree ÉÏ commit µÄȨÏÞ¡£
ÖØÒª: ×÷Ϊ ports committer ²¢²»Äܹ»Ëæ±ã commit ËùÓÐ port¡£ Çë×¢Òâͨ³£ port ¶¼ÓÐά»¤Õߣ¬ ¶øËûÃÇÓ¦µÃµ½ÄúµÄ×ðÖØ¡£
¡¡¡¡ÔÚ©¶´±»ÐÞÕýÖ®ºó£¬ Ò»¶¨ÒªÍ¬Ê±Ôö¼Ó port µÄÐÞ¶©°æ±¾ºÅ¡£ ÕâÑù£¬ ¹æÂÉÐÔµØÉý¼¶°²×°µÄ package µÄÓû§¾ÍÄܹ»¿´µ½ËûÃÇÐèÒª½øÐÐÉý¼¶¡£ ÁíÍ⣬ »¹Ó¦Áª±àÔ¤±àÒëµÄ°²×°°ü£¬ ²¢Í¨¹ý FTP ºÍ WWW ¾µÏñ·¢²¼£¬ ÒÔÈ¡´úÓЩ¶´µÄ°æ±¾¡£ ×¢ÒâÒªÔö¼Ó PORTREVISION Êý×Ö£¬ ³ý·ÇÔÚÐÞÕýÎÊÌâʱ PORTVERSION ·¢ÉúÁ˱仯¡£ Ò»°ãÀ´Ëµ£¬ Èç¹ûÔÚ port ÖÐÔö¼ÓÁ˲¹¶¡Îļþ£¬ ¾ÍÓ¦¸ÃÔö¼Ó PORTREVISION£¬ µ«ÀýÍâµÄÀý×ÓÊÇÄúÒѾ½«Èí¼þÉý¼¶µ½ÁË×îа棬 ÒòΪÕâʱÒѾ¸Äµô PORTVERSION ÁË¡£ Çë²Î¼û Ïà¹ØÐ¡½Ú ÒÔÁË½â½øÒ»²½µÄÐÅÏ¢¡£
¡¡¡¡µ±·¢ÏÖÁ˰²È«Â©¶´Ê±µÄÒ»ÏîÖØÒª¶ø½ôÆÈµÄ²½Ö裬 ¾ÍÊÇÈÃʹÓà port µÄÓû§ÈºÁ˽âÆäΣÏÕ¡£ ÕâÀà֪ͨÓÐÁ½ÖØÄ¿µÄ¡£ Ê×ÏÈ£¬ Èç¹ûΣº¦ÕæµÄºÜÑÏÖØ£¬ ¿ÉÄÜÀíÐԵİ취¾ÍÊÇÁ¢¼´Ó¦ÓÃÒ»Ï½â´ëÊ©£¬ ÀýÈ磬 Í£Ö¹Êܵ½Ó°ÏìµÄ·þÎñ£¬ ÉõÖÁÍêȫɾ³ý port£¬ Ö±µ½ÎÊÌâ±»ÐÞÕýΪֹ¡£ Æä´Î£¬ Ðí¶àÓû§Ö»ÊÇż¶ûÉý¼¶Ëù°²×°µÄÈí¼þ°ü£¬ ͨ¹ý֪ͨ£¬ ËûÃÇÄܹ»ÖªµÀÒѾµ½ÁË ±ØÐë ¸üÐÂÈí¼þµÄʱºò£¬ ÒòΪÒѾÓÐÁËÐÞÕýÕâЩÎÊÌâµÄ°æ±¾ÁË¡£
¡¡¡¡ÓÉÓÚÏÖÓÐµÄ port ÊýÁ¿¼«ÆäÅÓ´ó£¬ ÎªÃ¿Ò»¸öÎÊÌâ¶¼·¢²¼°²È«¹«¸æ£¬ ºÁÎÞÒÉÎʵػᷢ±íºÍÀÇÀ´ÁËÒ»Ñù¶àµÄ°²È«¹«¸æ£¬ ²¢Ôö´óÊÜÖÚÔÚÕæµÄ·¢ÉúÑÏÖØµÄÎÊÌâʱºöÂÔÎÊÌâµÄ¿ÉÄÜ¡£ Òò´Ë£¬ ÔÚ port Öз¢Ïֵݲȫ©¶´£¬ »áÔÚ FreeBSD VuXML Êý¾Ý¿â ÖмǼ¡£ °²È«¹ÙÍŶӳÉÔ±»á³ÖÐøµØ×·×ÙÕâ¸öÊý¾Ý¿âµÄÐ޸ģ¬ ÒÔÁ˽âÐèÒªËûÃÇ×¢ÒâµÄÄÚÈÝ¡£
¡¡¡¡Èç¹ûÄúÊÇ committer£¬ Ôò¿ÉÒÔ×ÔÐиüРVuXML Êý¾Ý¿â¡£ ÕâÑù£¬ Äú¾ÍÄܹ»Í¬Ê±°ïÖú°²È«¹ÙÍŶӣ¬ ²¢¾¡Ô罫ÖÁ¹ØÖØÒªµÄÐÅÏ¢´«´ï¸øÓû§ÈºÌå¡£ È»¶ø£¬ Èç¹ûÄú²»ÊÇ committer£¬ »òÕßÄúÏàÐÅ×Ô¼º·¢ÏÖÁËÒ»¸öÒì³£ÑÏÖØµÄ©¶´£¬ »òÕßÓÉÓÚÆäËüÇé¿ö£¬ Çë²»ÒªÓÉÓÚ°´ÕÕ FreeBSD °²È«ÐÅÏ¢ Ò³ÃæÉϵķ½·¨ÁªÏµ°²È«¹ÙÍŶӡ£
¡¡¡¡ÏÖÔÚÄúÑ¡ÔñÁËÒ»Ìõ¼èÄѵÄ·¡£ ÕýÈçÆäÃû³ÆËù°µÊ¾µÄÄÇÑù£¬ VuXML Êý¾Ý¿â±¾ÖÊÉÏÊÇÒ»¸ö XML Îĵµ¡£ ÆäÔ´Îļþ vuln.xml ±»±£´æÔÚ security/vuxml port µÄĿ¼ÖС£ ËùÒÔ£¬ ËüµÄÈ«ÃûÊÇ PORTSDIR/security/vuxml/vuln.xml¡£ ÿµ±Äú·¢ÏÖ port Öеݲȫ©¶´Ê±£¬ Çë°Ñеļͼ¼ÓÈëµ½ÄǸöÎļþÖС£ ÔÚÊìϤ VuXML ֮ǰ£¬ Äú×îºÃÏÈ¿´¿´ÊÇ·ñÓÐÀàËÆµÄÄú·¢ÏÖµÄÎÊÌâµÄÆäËü¼Ç¼£¬ ²¢¸´ÖÆËü×÷Ϊģ°å¡£
¡¡¡¡XML ÊÇÒ»¸ö¸´ÔÓµÄÓïÑÔ£¬ ËüÔ¶Ô¶³¬Ô½ÁËÕâ±¾ÊéµÄ·¶Î§¡£ ²»¹ý£¬ Ö»ÐèÁ˽â±ê¼ÇµÄÃüÃû¹æÔò£¬ ¾ÍÄÜ VuXML ¼Ç¼µÄ½á¹¹ÓÐÒ»¸ö´óÌåµÄÁ˽âÁË¡£ XML ±ê¼ÇµÄÃû×ÖÓ¦³öÏÖÔÚÒ»¶Ô¼âÀ¨ºÅÖ®¼ä¡£ ÿһ¸ö <tag> ±ØÐëÓÐÒ»¸ö¶ÔÓ¦µÄ </tag>¡£ ±ê¼Ç¿ÉÒÔǶÌ×£¬ Èç¹ûǶÌ׵ϰ£¬ ÄÚ²ãµÄ±ê¼Ç±ØÐëÔÚÍâ²ã±ê¼Ç֮ǰ½áÊø¡£ Õâ¾ÍÐγÉÁËÒ»¸ö±ê¼ÇµÄ²ã´Î½á¹¹£¬ Ò²¾ÍÊǹØÓÚËüÃÇÖ®¼äÈçºÎǶÌ׵ĹæÔò¡£ ÌýÆðÀ´ºÜÏñ HTML£¬ ÊDz»ÊÇ£¿ ×îÖ÷ÒªµÄÇø±ðÔÚÓÚ£¬ XML ÊÇ¿ÉÀ©Õ¹µÄ (eXtensible)£¬ ÀýÈçͨ¹ý¶¨Òåеıê¼ÇµÈµÈ¡£ ÓÉÓÚÆä½á¹¹µÄÄÚÔÚÐÔÖÊ£¬ XML Äܹ»¸³ÓèÎÞ×éÖ¯µÄÊý¾ÝеÄÐÎ̬¡£ VuXML ÊÇרÃÅΪÃèÊö°²È«Â©¶´Éè¼ÆµÄÓïÑÔ¡£
¡¡¡¡ÏÖÔÚÈÃÎÒÃÇÀ´¹Û²ìÒ»¸öʵ¼ÊµÄ VuXML ¼Ç¼£º
<vuln vid="f4bc80f4-da62-11d8-90ea-0004ac98a7b9"><topic>Several vulnerabilities found in Foo</topic>
<affects> <package> <name>foo</name>
<name>foo-devel</name> <name>ja-foo</name> <range><ge>1.6</ge><lt>1.9</lt></range>
<range><ge>2.*</ge><lt>2.4_1</lt></range> <range><eq>3.0b1</eq></range> </package> <package> <name>openfoo</name>
<range><lt>1.10_7</lt></range>
<range><ge>1.2,1</ge><lt>1.3_1,1</lt></range> </package> </affects> <description> <body xmlns="http://www.w3.org/1999/xhtml"> <p>J. Random Hacker reports:</p>
<blockquote cite="http://j.r.hacker.com/advisories/1"> <p>Several issues in the Foo software may be exploited via carefully crafted QUUX requests. These requests will permit the injection of Bar code, mumble theft, and the readability of the Foo administrator account.</p> </blockquote> </body> </description> <references>
<freebsdsa>SA-10:75.foo</freebsdsa>
<freebsdpr>ports/987654</freebsdpr>
<cvename>CAN-2010-0201</cvename>
<cvename>CAN-2010-0466</cvename> <bid>96298</bid>
<certsa>CA-2010-99</certsa>
<certvu>740169</certvu>
<uscertsa>SA10-99A</uscertsa>
<uscertta>SA10-99A</uscertta>
<mlist msgid="201075606@hacker.com">http://marc.theaimsgroup.com/?l=bugtraq&m=203886607825605</mlist>
<url>http://j.r.hacker.com/advisories/1</url>
</references> <dates> <discovery>2010-05-25</discovery>
<entry>2010-07-13</entry>
<modified>2010-09-17</modified>
</dates> </vuln>
¡¡¡¡±ê¼ÇµÄÃû×Ö¶¼ÊǼòµ¥Ã÷Á˵ģ¬ ÏÂÃæÎÒÃÇÀ´½éÉÜÒ»ÏÂÐèÒªÓÉÄúÌîдµÄ×ֶΣº
perl -MData::UUID -le 'print lc new Data::UUID->create_str'
ÖØÒª: ׫д VuXML ¼Ç¼ʱ£¬ ÄúÓÐÔðÈÎÕÒµ½ËùÓÐÏà¹ØµÄ°ü¡£ ºÜ¶àʱºò make search name=foo ÊÇÄúµÄÅóÓÑ¡£ ÐèÒªÁôÒâµÄͨ³£°üÀ¨£º
foo port µÄ foo-devel ±äÌ壻
°üº¬²»Í¬ºó׺µÄÆäËü±äÌ壬 ÀýÈç -a4 (¶ÔÓںʹòÓ¡ÓйصÄÈí¼þ°ü)£¬ -without-gui (Ìṩµ«½ûÓÃÁË X Ö§³ÖµÄÈí¼þ°ü)£¬ ÒÔ¼°ÀàËÆµÄÆäËüÇé¿ö£»
jp-£¬ ru-¡¢ zh-£¬ ÒÔ¼°ÆäËü¿ÉÄܵı¾µØ»¯±äÌ壬 ËüÃÇͨ³£¿ÉÒÔÔÚ Ports Collection ÖÐÏàÓ¦µÄ¹ú¼Ò·ÖÀàÖÐÕÒµ½¡£
ÔÚÃèÊö·¶Î§µÄʱºò£¬ * (ÐǺÅ) ±í´ï×îСµÄ°æ±¾¡£ ¸ü¾ßÌåµØËµ£¬ 2.* СÓÚ 2.a¡£ Òò´Ë£¬ ÐǺſÉÒÔÓÃÀ´Æ¥ÅäËùÓпÉÄÜµÄ alpha¡¢ beta£¬ ÒÔ¼° RC °æ±¾¡£ ÀýÈ磬 <ge>2.*</ge><lt>3.*</lt> ¿ÉÒÔÑ¡ÔñÐÔµØÆ¥Åäÿһ¸ö 2.x µÄ°æ±¾£¬ ¶ø <ge>2.0</ge><lt>3.0</lt> ÏÔÈ»²»ÄÜ£¬ ÒòΪËü»á©µô 2.r3 ¶øÆ¥Åä 3.b¡£
ÉÏÃæµÄÀý×ÓÖ¸¶¨ÁËÊÜÓ°ÏìµÄ°æ±¾£¬ ÊǰüÀ¨ 1.6 µ½ 1.9 ÉÏϽçµÄËùÓа汾£¬ ÒÔ¼° 2.x ÔÚ 2.4_1 ֮ǰµÄ°æ±¾£¬ ºÍ 3.0b1 °æ¡£
¡¡¡¡¼Ù¶¨Äú´òËã׫д£¬ »òÒѾдºÃÁËÒ»¸ö¹ØÓÚ package clamav µÄÎÊÌâÃèÊö£¬ ²¢ÇÒ£¬ ÒѾ֪µÀ 0.65_7 °æ±¾ÐÞÕýÁËÕâ¸öÎÊÌâ¡£
¡¡¡¡ÄúÐèÒª×öµÄ×¼±¸¹¤×÷£¬ Êǰ²×°Ò»¸öа汾µÄ ports ports-mgmt/portaudit ³ÌÐòÒÔ¼° ports-mgmt/portaudit-db¡£
¡¡¡¡Ê×ÏÈ£¬ ¼ì²éÒ»ÏÂÊÇ·ñÒѾÓÐÁ˹ØÓÚÕâ¸ö©¶´µÄÃèÊö¡£ Èç¹ûÒѾÓйýÕâÑùµÄ¼Ç¼£¬ ÄÇôËü½«Æ¥Åä½ÏÔç°æ±¾µÄ package£¬ 0.65_6£º
% packaudit % portaudit clamav-0.65_6
×¢Òâ: ÒªÔËÐÐ packaudit£¬ Äú±ØÐëÓµÓÐдÈë DATABASEDIR Ŀ¼£¬ ͨ³£ÊÇ /var/db/portaudit µÄȨÏÞ¡£
¡¡¡¡Èç¹ûʲô¶¼Ã»Óз¢ÏÖ£¬ Äú¾Í¿ÉÒÔ¿¼ÂÇдһ¸öеļǼÀ´ÃèÊöÕâ¸ö©¶´ÁË¡£ ÏÖÔÚ¿ÉÒÔÉú³ÉÒ»¸öÐ嵀 UUID (¼ÙÉèËüÊÇ 74a9541d-5d6c-11d8-80e3-0020ed76ef5a)£¬ È»ºó½«ÄúµÄмǼ¼ÓÈëµ½ VuXML Êý¾Ý¿âÖС£ ½ÓÏÂÀ´£¬ ÓÃÏÂÃæµÄÃüÁîÀ´¼ì²éËüÊÇ·ñ·ûºÏÓï·¨£º
% cd ${PORTSDIR}/security/vuxml && make validate
×¢Òâ: ÄúÐèÒª°²×°ÏÂÁÐ package ÖеÄÖÁÉÙÒ»¸ö£º textproc/libxml2¡¢ textproc/jade¡£
¡¡¡¡½ÓÏÂÀ´´Ó VuXML ÎļþÖØ¹¹ portaudit Êý¾Ý¿â£º
% packaudit
¡¡¡¡ÒªÑéÖ¤ÄúмÓÈëµÄÏîµÄ <affected> С½ÚÄܹ»ÕýÈ·µØÆ¥ÅäÏ£ÍûµÄ package£¬ ¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁ
% portaudit -f /usr/ports/INDEX -r 74a9541d-5d6c-11d8-80e3-0020ed76ef5a
×¢Òâ: Çë²Î¼û portaudit(1) ÒÔÁË½â¹ØÓÚÕâ¸öÃüÁîÓï·¨µÄ¸ü¶àϸ½Ú¡£
¡¡¡¡ÇëÈ·ÐÅÐÂÌí¼ÓµÄ¼Ç¼²»»áÔÚÊä³öÖÐÆ¥Å䲻ӦƥÅäµÄÏî¡£
¡¡¡¡ÏÖÔÚ¼ì²éÄúÌí¼ÓµÄ¼Ç¼ËùÆ¥ÅäµÄ°æ±¾ÊÇ·ñÕýÈ·£º
% portaudit clamav-0.65_6 clamav-0.65_7 Affected package: clamav-0.65_6 (matched by clamav<0.65_7) Type of problem: clamav remote denial-of-service. Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-0020ed76ef5a.html> 1 problem(s) found.
¡¡¡¡ÏÔÈ»£¬ ǰһ¸ö°æ±¾»áÆ¥Å䣬 ¶øºóÒ»¸ö²»»á¡£
¡¡¡¡×îºó£¬ ÑéÖ¤Äú´Ó VuXML Êý¾Ý¿âÖÐÄܹ»ÕýÈ·µØµÃµ½Ô¤ÆÚµÄÍøÒ³Ð§¹û£º
% mkdir -p ~/public_html/portaudit % packaudit % lynx ~/public_html/portaudit/74a9541d-5d6c-11d8-80e3-0020ed76ef5a.html
¡¡¡¡ÕâÀïÊÇһЩÔÚÒÆÖ²Èí¼þʱ¿ÉÄÜ»áÓöµ½µÄ³£¼ûÎÊÌâ¡£ ÄúÓ¦°´ÕÕÕâ¸öÁбí¼ì²é×Ô¼ºµÄ port£¬ ͬÑùµØ£¬ ÄúÒ²¿ÉÒÔ°ïÖú¼ì²é PR Êý¾Ý¿â ÖÐÓÉÆäËüÈËÌá½»µÄ port¡£ Çë°´ÕÕÔÚ ÎÊÌⱨ¸æºÍÒ»°ãÐÔ×¢ÊÍ ÖнéÉܵķ½·¨Ìá½»ÄúµÄ¿´·¨¡£ °ïÖú¼ì²é PR Êý¾Ý¿âÖÐµÄ ports ¼´Äܹ»°ïÖúÎÒÃǸü¿ìµØ commit ËüÃÇ£¬ Ò²ÄÜÖ¤Ã÷ÄúÇå³þµØÁ˽âÈçºÎÍê³ÉÕâЩ¹¤×÷¡£
¡¡¡¡ÈκÎʱºò¶¼²»ÒªÔÚ WRKDIR ÒÔÍâµÄλÖÃдÎļþ¡£ WRKDIR ÊÇÔÚ port Áª±à¹ý³ÌÖÐΨһµÄÒ»´¦Ò»¶¨¿ÉдµÄµØ·½ (²Î¼û ÈçºÎ´Ó CDROM °²×° port ÒÔÁ˽â´ÓÖ»¶ÁµÄĿ¼ÖÐÁª±àºÍ°²×° port µÄÀý×Ó)¡£ Èç¹ûÄúÐèÒª¸Ä±ä pkg-* Îļþ£¬ Çë°´ÕÕ ÖØÐ¶¨Òåij¸ö±äÁ¿ ½éÉܵķ½·¨£¬ ¶ø²»ÊǸ²¸ÇËüÃÇÀ´ÊµÏÖ¡£
¡¡¡¡Ò»¶¨ÒªÈ·±£ÄúµÄ port ×ðÖØ WRKDIRPREFIX µÄÉèÖᣠ¾ø´ó¶àÊý port ²¢²»ÐèÒªµ£ÐÄÕâ¸ö¡£ ¾ßÌå˵À´£¬ µ±ÒýÓÃÆäËü port µÄ WRKDIR ʱ£¬ ÐèҪעÒâÕýÈ·µÄλÖÃÓ¦¸ÃÊÇ WRKDIRPREFIXPORTSDIR/subdir/name/work ¶ø²»ÊÇ PORTSDIR/subdir/name/work »ò .CURDIR/../../subdir/name/work£¬ »ò±ðµÄʲô¡£
¡¡¡¡ÁíÍ⣬ Èç¹ûÄú×ÔÐж¨ÒåÁË WRKDIR£¬ Ò²Òª°Ñ ${WRKDIRPREFIX}${.CURDIR} ·Åµ½Ç°Ãæ¡£
¡¡¡¡ÔÚ²»Í¬°æ±¾µÄ Unix Ï¿ÉÄÜÐèÒª¶Ô´úÂë½øÐÐһЩÐ޸ĻòÔö¼ÓÉÙÐí±àÒëÑ¡Ï ²ÅÄܹ»ÕýÈ·µØ±àÒëºÍÔËÐС£ Èç¹ûÄúÐèÒª¸ù¾ÝһЩÌõ¼þÀ´¶Ô´úÂë½øÐÐÐ޸ģ¬ Ç뾡¿ÉÄÜÈÃÕâЩÐÞ¸ÄͨÓ㬠ÕâÑù£¬ ÎÒÃǾÍÄܹ»½«ÕâЩ´úÂëÒÆÖ²»Ø¸üÔçµÄ FreeBSD ϵͳ£¬ ²¢½»²æÒÆÖ²µ½ÆäËü BSD ϵͳ£¬ ÀýÈçÀ´×Ô CSRG µÄ 4.4BSD£¬ BSD/386£¬ 386BSD£¬ NetBSD ºÍ OpenBSD¡£
¡¡¡¡ÍƼöµÄ»ñµÃ 4.3BSD/Reno (1990) ÒÔ¼°¸üа汾 BSD ´úÂë°æ±¾ºÅµÄ·½Ê½£¬ ÊÇʹÓà sys/param.h ÖÐËù¶¨ÒåµÄ BSD ºêµÄÖµ¡£ Ò»°ãÀ´ËµÕâ¸öÎļþÒѾ±»ÒýÓÃÁË£» Èç¹ûûÓеϰ£¬ Ôö¼ÓÏÂÊö´úÂ룺
#if (defined(__unix__) || defined(unix)) && !defined(USG) #include <sys/param.h> #endif
¡¡¡¡µ½ .c ÎļþÖкÏÊʵĵط½¡£ ÎÒÃÇÏàÐÅËùÓж¨ÒåÁËÕâÁ½¸ö·ûºÅµÄϵͳÖУ¬ ¶¼ÌṩÁË sys/param.h¡£ Èç¹ûÄú·¢ÏÖÓв»ÕâÑù×öµÄϵͳ£¬ Çëͨ¹ýÖÂÐÅ FreeBSD ports ÓʼþÁбí ÈÃÎÒÃÇÁ˽âÕâÒ»Çé¿ö¡£
¡¡¡¡ÁíÒ»ÖÖ·½·¨ÊÇʹÓà GNU Autoconf ·ç¸ñµÄ·½Ê½£º
#ifdef HAVE_SYS_PARAM_H #include <sys/param.h> #endif
¡¡¡¡²ÉÓÃÕâÖÖ·½·¨Ê±£¬ ²»ÒªÍüÁ衄 -DHAVE_SYS_PARAM_H ¼Óµ½ Makefile ÖÐµÄ CFLAGS Àï¡£
¡¡¡¡Ò»µ©ÒýÓÃÁË sys/param.h£¬ Äú¾Í¿ÉÒÔʹÓãº
#if (defined(BSD) && (BSD >= 199103))
¡¡¡¡À´¼ì²â´úÂëÊÇ·ñÕýÔÚ 4.3 Net2 ´úÂë»ù´¡£¬ »ò¸üеÄϵͳÉϱàÒë (ÀýÈç FreeBSD 1.x£¬ 4.3/Reno£¬ NetBSD 0.9£¬ 386BSD£¬ BSD/386 1.1 ÒÔ¼°¸ü¸ß°æ±¾)¡£
¡¡¡¡Ê¹Óãº
#if (defined(BSD) && (BSD >= 199306))
¡¡¡¡À´¼ì²â´úÂëÊÇ·ñÕýÔÚ 4.4 »ò¸üеÄϵͳ (ÀýÈç FreeBSD 2.x£¬ 4.4£¬ NetBSD 1.0¡¢ BSD/386 2.0 »ò¸ü¸ß°æ±¾)¡£
¡¡¡¡¶ÔÓÚ 4.4BSD-Lite2 ´úÂëϵÀ´Ëµ£¬ BSD ºêµÄÖµÓ¦¸ÃÊÇ 199506¡£ ÕâÀïÖ»ÊÇ×÷ΪÐÅÏ¢Ìṩ£¬ Äú²»Ó¦Ê¹ÓÃËüÀ´Çø·Ö»ùÓÚ 4.4-Lite µÄ FreeBSD ºÍ»ùÓÚ 4.4-Lite2 µÄ°æ±¾¡£ ÕâЩÇé¿öÏ£¬ ÄúӦʹÓà __FreeBSD__ ºê¡£
¡¡¡¡±£ÊصØÊ¹Óãº
__FreeBSD__ ÔÚËùÓа汾µÄ FreeBSD ÖнÔÓж¨Òå¡£
Èç¹ûÄúÕý½øÐеÄÐÞ¸Ä Ö» Ó°Ïì
FreeBSD£¬ ÔòӦʹÓÃÕâ¸öºê¡£ ÀàËÆ sys_errlist[] Ö®ÓÚ strerror()
ÕâÑùµÄÒÆÖ²ÎÊÌâÊDz®¿ËÀû´úÂëϵ¹«Óõģ¬ ¶ø²¢·Ç FreeBSD
ËùרÓС£
ÔÚ FreeBSD 2.x ÖУ¬ __FreeBSD__ ¶¨ÒåΪ 2¡£ ¸üÔç°æ±¾ÖУ¬ ËüÔø¾ÊÇ 1¡£ еİ汾¶¼»áÔÚÖ÷ÒªµÄ°æ±¾ºÅ±ä»¯Ê±±ä¸üËü¡£
Èç¹ûÄúÐè񻂿·Ö FreeBSD 1.x ϵͳºÍ FreeBSD 2.x ¼°¸ü¸ß°æ±¾µÄÇø±ð£¬ ͨ³£Ó¦Ê¹ÓÃǰÊöµÄ BSD ºêÀ´½øÐС£ Èç¹ûÊÂʵÉÏÐèÒªÒ»¸ö FreeBSD רÓеÄÐÞ¸Ä (ÀýÈ磬 ÔÚʹÓà ld ʱÐèÒªÌØÊâµÄ¹²Ïí¿âÑ¡Ïî)£¬ Ôò¿ÉÒÔÓà __FreeBSD__ ºÍ #if __FreeBSD__ > 1 À´¼ì²â FreeBSD 2.x ºÍÐÂϵͳÉϵı仯¡£ Èç¹ûÐèÒª¸üϸÁ£¶ÈµØ¼ì²â FreeBSD 2.0-RELEASE Ö®ºó°æ±¾µÄ±ä»¯£¬ Ôò¿ÉÒÔʹÓãº
#if __FreeBSD__ >= 2 #include <osreldate.h> # if __FreeBSD_version >= 199504 /* ÊÊÓÃÓÚ 2.0.5+ °æ±¾µÄ´úÂë */ # endif #endif
¡¡¡¡ÔÚÒÑÓеÄÊý°Ù¸ö port ÖУ¬ Ö»ÓÐÒ»Á½¸öÓ¦¸ÃʹÓà __FreeBSD__¡£ ÔçÆÚµÄ port ÔÚ²»Êʵ±µÄµØ·½Ê¹ÓÃÁËËü²¢Òý·¢ÎÊÌ⣬ ²¢²»Òâζ×ÅÄúÒ²±Ø¶¨Èç´Ë¡£
¡¡¡¡ÏÂÃæÊÇÔÚ sys/param.h __FreeBSD_version Öж¨ÒåµÄÖµ¼°ÆäÒâÒåµÄÁÐ±í£¬ ÕâÀï¸ø³öÒÔ·½±ãÄú²éÔÄ£º
±í 12-1. __FreeBSD_version Öµ
Öµ | ÈÕÆÚ | °æ±¾ | |
---|---|---|---|
119411 | 2.0-RELEASE | ||
199501, 199503 | March 19, 1995 | 2.1-CURRENT | |
199504 | April 9, 1995 | 2.0.5-RELEASE | |
199508 | August 26, 1995 | 2.1 ֮ǰµÄ 2.2-CURRENT | |
199511 | November 10, 1995 | 2.1.0-RELEASE | |
199512 | November 10, 1995 | 2.1.5 ֮ǰµÄ 2.2-CURRENT | |
199607 | July 10, 1996 | 2.1.5-RELEASE | |
199608 | July 12, 1996 | 2.1.6 ֮ǰµÄ 2.2-CURRENT | |
199612 | November 15, 1996 | 2.1.6-RELEASE | |
199612 | 2.1.7-RELEASE | ||
220000 | February 19, 1997 | 2.2-RELEASE | |
(not changed) | 2.2.1-RELEASE | ||
(Îޱ仯) | ÔÚ 2.2.1-RELEASE Ö®ºóµÄ 2.2-STABLE | ||
221001 | April 15, 1997 | texinfo-3.9 Ö®ºóµÄ 2.2-STABLE | |
221002 | April 30, 1997 | top Ö®ºóµÄ 2.2-STABLE | |
222000 | May 16, 1997 | 2.2.2-RELEASE | |
222001 | May 19, 1997 | 2.2.2-RELEASE Ö®ºóµÄ 2.2-STABLE | |
225000 | October 2, 1997 | 2.2.5-RELEASE | |
225001 | November 20, 1997 | 2.2.5-RELEASE Ö®ºóµÄ 2.2-STABLE | |
225002 | December 27, 1997 | ºÏ²¢ ldconfig -R Ö®ºóµÄ 2.2-STABLE | |
226000 | March 24, 1998 | 2.2.6-RELEASE | |
227000 | July 21, 1998 | 2.2.7-RELEASE | |
227001 | July 21, 1998 | 2.2.7-RELEASE Ö®ºóµÄ 2.2-STABLE | |
227002 | September 19, 1998 | semctl(2) ÐÞ¸ÄÖ®ºóµÄ 2.2-STABLE | |
228000 | November 29, 1998 | 2.2.8-RELEASE | |
228001 | November 29, 1998 | 2.2.8-RELEASE Ö®ºóµÄ 2.2-STABLE | |
300000 | February 19, 1996 | mount(2) ÐÞ¸Ä֮ǰµÄ 3.0-CURRENT | |
300001 | September 24, 1997 | mount(2) ÐÞ¸ÄÖ®ºóµÄ 3.0-CURRENT | |
300002 | June 2, 1998 | semctl(2) ÐÞ¸ÄÖ®ºóµÄ 3.0-CURRENT | |
300003 | June 7, 1998 | ioctl ²ÎÊý±ä»¯Ö®ºóµÄ 3.0-CURRENT | |
300004 | September 3, 1998 | ELF ±ä»»Ö®ºóµÄ 3.0-CURRENT | |
300005 | October 16, 1998 | 3.0-RELEASE | |
300006 | October 16, 1998 | 3.0-RELEASE Ö®ºóµÄ 3.0-CURRENT | |
300007 | January 22, 1999 | 3/4ÇзÖÖ®ºóµÄ 3.0-STABLE | |
310000 | February 9, 1999 | 3.1-RELEASE | |
310001 | March 27, 1999 | 3.1-RELEASE Ö®ºóµÄ 3.1-STABLE | |
310002 | April 14, 1999 | C++ ¹¹½¨/Îö¹¹º¯Êý˳Ðò±ä»¯Ö®ºóµÄ 3.1-STABLE | |
320000 | 3.2-RELEASE | ||
320001 | May 8, 1999 | 3.2-STABLE | |
320002 | August 29, 1999 | ¶þ½øÖƲ»¼æÈÝµÄ IPFW ºÍ socket ±ä»¯Ö®ºóµÄ 3.2-STABLE | |
330000 | September 2, 1999 | 3.3-RELEASE | |
330001 | September 16, 1999 | 3.3-STABLE | |
330002 | November 24, 1999 | libc ÖмÓÈë mkstemp(3) Ö®ºóµÄ 3.3-STABLE | |
340000 | December 5, 1999 | 3.4-RELEASE | |
340001 | December 17, 1999 | 3.4-STABLE | |
350000 | June 20, 2000 | 3.5-RELEASE | |
350001 | July 12, 2000 | 3.5-STABLE | |
400000 | January 22, 1999 | 3/4ÇзÖÖ®ºóµÄ 4.0-CURRENT | |
400001 | February 20, 1999 | Ð޸Ķ¯Ì¬Á¬½ÓÆ÷´¦Àí·½Ê½Ö®ºóµÄ 4.0-CURRENT | |
400002 | March 13, 1999 | C++ ¹¹½¨/Îö¹¹º¯Êý˳Ðò±ä»¯Ö®ºóµÄ | |
400003 | March 27, 1999 | Ìṩ dladdr(3) Ö®ºóµÄ 4.0-CURRENT | |
400004 | April 5, 1999 | ÐÞÕýÁË __deregister_frame_info µÄ 4.0-CURRENT (Ò²±íʾÔÚ EGCS 1.1.2 ¼¯³ÉÖ®ºóµÄ 4.0-CURRENT) | |
400005 | April 27, 1999 | suser(9) API ±ä»¯Ö®ºóµÄ 4.0-CURRENT (Ò²±íʾ newbus Ö®ºóµÄ 4.0-CURRENT) | |
400006 | May 31, 1999 | cdevsw ×¢²á»úÖÆ¸Ä±äÖ®ºóµÄ 4.0-CURRENT | |
400007 | June 17, 1999 | ¼ÓÈëÁË socket ¼¶Æ¾¾ÝµÄ so_cred Ö®ºóµÄ 4.0-CURRENT | |
400008 | June 20, 1999 | ÔÚ libc_r ÖмÓÈë poll ϵͳµ÷ÓýӿÚÖ®ºóµÄ 4.0-CURRENT | |
400009 | July 20, 1999 | ½«ÄÚºËÖÐ dev_t ÀàÐ͸ÄΪ struct specinfo Ö¸ÕëÖ®ºóµÄ 4.0-CURRENT | |
400010 | September 25, 1999 | ÐÞÕýÁËÒ»´¦ jail(2) ©¶´Ö®ºóµÄ 4.0-CURRENT | |
400011 | September 29, 1999 | sigset_t Êý¾ÝÀàÐ͸ıäÖ®ºóµÄ 4.0-CURRENT | |
400012 | November 15, 1999 | Çл»µ½ GCC 2.95.2 ±àÒëÆ÷Ö®ºóµÄ 4.0-CURRENT | |
400013 | December 4, 1999 | ¼ÓÈëÁ˿ɲåµÄ linuxģʽ ioctl ´¦Àí³ÌÐòºóµÄ 4.0-CURRENT | |
400014 | January 18, 2000 | ÒýÈë OpenSSL Ö®ºóµÄ 4.0-CURRENT | |
400015 | January 27, 2000 | GCC 2.95.2 ÖÐ ABI ĬÈÏÖµ´Ó -fvtable-thunks ¸ÄΪ -fno-vtable-thunks Ö®ºóµÄ 4.0-CURRENT | |
400016 | February 27, 2000 | ÒýÈë OpenSSH Ö®ºóµÄ 4.0-CURRENT | |
400017 | March 13, 2000 | 4.0-RELEASE | |
400018 | March 17, 2000 | 4.0-RELEASE Ö®ºóµÄ 4.0-STABLE | |
400019 | May 5, 2000 | ÒýÈëÑÓ³ÙУÑéºÍÖ®ºóµÄ 4.0-STABLE | |
400020 | June 4, 2000 | ½« libxpg4 µÄ´úÂë²¢Èë libc Ö®ºóµÄ 4.0-STABLE | |
400021 | July 8, 2000 | Binutils Éý¼¶µ½ 2.10.0 Ö®ºóµÄ 4.0-STABLE£¬ ELF ±êÖ¾±ä»¯£¬ ÒÔ¼°½« tcsh ÒýÈë»ù±¾ÏµÍ³ | |
410000 | July 14, 2000 | 4.1-RELEASE | |
410001 | July 29, 2000 | 4.1-RELEASE Ö®ºóµÄ 4.1-STABLE | |
410002 | September 16, 2000 | setproctitle(3) ´Ó libutil ÒÆÈë libc Ö®ºóµÄ 4.1-STABLE | |
411000 | September 25, 2000 | 4.1.1-RELEASE | |
411001 | 4.1.1-RELEASE Ö®ºóµÄ 4.1.1-STABLE | ||
420000 | October 31, 2000 | 4.2-RELEASE | |
420001 | January 10, 2001 | ºÏ²¢ libgcc.a ºÍ libgcc_r.a£¬ ²¢ÐÞ¸ÄÁËÏà¹ØµÄ GCC Á¬½Ó·½Ê½Ö®ºóµÄ 4.2-STABLE | |
430000 | March 6, 2001 | 4.3-RELEASE | |
430001 | May 18, 2001 | ÒýÈë wint_t Ö®ºóµÄ 4.3-STABLE | |
430002 | July 22, 2001 | PCI µçԴ״̬ API ºÏ²¢Ö®ºóµÄ 4.3-STABLE | |
440000 | August 1, 2001 | 4.4-RELEASE | |
440001 | October 23, 2001 | ÒýÈë d_thread_t Ö®ºóµÄ 4.4-STABLE | |
440002 | November 4, 2001 | mount ½á¹¹¸Ä±äÖ®ºóµÄ 4.4-STABLE (Ó°ÏìÎļþϵͳ kld) | |
440003 | December 18, 2001 | Óû§Ì¬²¿·ÖµÄ smbfs ±»ÒýÈëÖ®ºóµÄ 4.4-STABLE | |
450000 | December 20, 2001 | 4.5-RELEASE | |
450001 | February 24, 2002 | usb ½á¹¹ÔªËظÄÃûÖ®ºóµÄ 4.5-STABLE | |
450004 | April 16, 2002 | ÔÚ rc.conf(5) ±äÁ¿ sendmail_enable ĬÈÏÖµ¸ÄΪ NONE Ö®ºóµÄ 4.5-STABLE | |
450005 | April 27, 2002 | ĬÈϽ« XFree86 4 ÓÃÓÚÔ¤±àÒë°üÁª±àÖ®ºóµÄ 4.5-STABLE | |
450006 | May 1, 2002 | accept ¹ýÂËÆ÷ÐÞÕýÁ˰²È«ÎÊÌâ²¢ÇÒ²»ÔÙ»áÇáÒ×±» DoS Ö®ºóµÄ 4.5-STABLE | |
460000 | June 21, 2002 | 4.6-RELEASE | |
460001 | June 21, 2002 | ÐÞÕýÁË sendfile(2) ÒÔÎǺÏÎĵµ£¬ ¶ø²»ÔÙ¸ù¾Ý·¢³öµÄÍ·¼ÆËã·¢³öÊý¾ÝÁ¿Ö®ºóµÄ 4.6-STABLE | |
460002 | July 19, 2002 | 4.6.2-RELEASE | |
460100 | June 26, 2002 | 4.6-STABLE | |
460101 | June 26, 2002 | MFC `sed -i' Ö®ºóµÄ 4.6-STABLE | |
460102 | September 1, 2002 | MFC Ðí¶à pkg_install ÐÂÌØÐÔÖ®ºóµÄ 4.6-STABLE | |
470000 | October 8, 2002 | 4.7-RELEASE | |
470100 | October 9, 2002 | 4.7-STABLE | |
470101 | November 10, 2002 | ¿ªÊ¼Éú³É __std{in,out,err}p ÒýÓ㬠¶ø²»ÊÇ __sF¡£ Õ⽫ std{in,out,err} ´Ó±àÒëʱ±í´ïʽ±ä³ÉÁËÔËÐÐʱֵ¡£ | |
470102 | January 23, 2003 | MFC mbuf Ïà¹ØµÄ½« m_aux mbuf ¸ÄΪ m_tag µÄÐÞ¸ÄÖ®ºóµÄ 4.7-STABLE | |
470103 | February 14, 2003 | OpenSSL Éý¼¶µ½ 0.9.7 Ö®ºóµÄ 4.7-STABLE | |
480000 | March 30, 2003 | 4.8-RELEASE | |
480100 | April 5, 2003 | 4.8-STABLE | |
480101 | May 22, 2003 | realpath(3) ±äΪḬ̈߳²È«µÄÖ®ºóµÄ 4.8-STABLE | |
480102 | August 10, 2003 | ¶Ô twe µÄ 3ware API ÐÞ¸ÄÖ®ºóµÄ 4.8-STABLE | |
490000 | October 27, 2003 | 4.9-RELEASE | |
490100 | October 27, 2003 | 4.9-STABLE | |
490101 | January 8, 2004 | kinfo_eproc ÖмÓÈë e_sid Ö®ºóµÄ 4.9-STABLE | |
490102 | February 4, 2004 | MFC rtld µÄ libmap ¹¦ÄÜÖ®ºóµÄ 4.9-STABLE | |
491000 | May 25, 2004 | 4.10-RELEASE | |
491100 | June 1, 2004 | 4.10-STABLE | |
491101 | August 11, 2004 | MFC 20040629 °æ±¾µÄ°üά»¤¹¤¾ßÖ®ºóµÄ 4.10-STABLE | |
491102 | November 16, 2004 | ÐÞÕýÁË VM µ±½â³ý wire ²»´æÔÚÒ³ÃæÊ±µÄÎÊÌâÖ®ºóµÄ 4.10-STABLE | |
492000 | December 17, 2004 | 4.11-RELEASE | |
492100 | December 17, 2004 | 4.11-STABLE | |
492101 | April 18, 2006 | ½« libdata/ldconfig Ŀ¼¼ÓÈë mtree ÎļþÖ®ºóµÄ 4.11-STABLE¡£ | |
500000 | March 13, 2000 | 5.0-CURRENT | |
500001 | April 18, 2000 | ¼ÓÈë ELF Í·×ֶΣ¬ ²¢¸Ä±äÎÒÃÇµÄ ELF Ö´ÐÐÎļþ±ê¼Ç·½Ê½Ö®ºóµÄ 5.0-CURRENT | |
500002 | May 2, 2000 | kld ÔªÊý¾ÝÐÞ¸ÄÖ®ºóµÄ 5.0-CURRENT | |
500003 | May 18, 2000 | buf/bio ÐÞ¸ÄÖ®ºóµÄ 5.0-CURRENT | |
500004 | May 26, 2000 | binutils Éý¼¶ºóµÄ 5.0-CURRENT | |
500005 | June 3, 2000 | ½« libxpg4 ²¢Èë libc£¬ ÒÔ¼°ÒýÈë TASKQ Ö®ºóµÄ 5.0-CURRENT | |
500006 | June 10, 2000 | ¼ÓÈë AGP ½Ó¿ÚÖ®ºóµÄ 5.0-CURRENT | |
500007 | June 29, 2000 | Perl Éý¼¶µ½ 5.6.0 Ö®ºóµÄ 5.0-CURRENT | |
500008 | July 7, 2000 | KAME ´úÂëÉý¼¶µ½ 2000/07 Ö®ºóµÄ 5.0-CURRENT | |
500009 | July 14, 2000 | ether_ifattach() ºÍ ether_detach() ÐÞ¸ÄÖ®ºóµÄ 5.0-CURRENT | |
500010 | July 16, 2000 | ½« mtree ¸ÄΪÔÏȵÄĬÈÏÖµ£¬ ²¢Ê¹Óà -L À´¸úËæ·ûºÅÁ¬½ÓÖ®ºóµÄ 5.0-CURRENT | |
500011 | July 18, 2000 | kqueue API ÐÞ¸ÄÖ®ºóµÄ 5.0-CURRENT | |
500012 | September 2, 2000 | setproctitle(3) ´Ó libutil Ųµ½ libc Ö®ºóµÄ 5.0-CURRENT | |
500013 | September 10, 2000 | Ê׸ö SMPng commit Ö®ºóµÄ 5.0-CURRENT | |
500014 | January 4, 2001 | <sys/select.h> ¸ÄΪ <sys/selinfo.h> Ö®ºóµÄ 5.0-CURRENT | |
500015 | January 10, 2001 | libgcc.a ºÍ libgcc_r.a ÒÔ¼° GCC Á¬½Ó·½Ê½±ä¶¯Ö®ºóµÄ 5.0-CURRENT | |
500016 | January 24, 2001 | ÐÞ¸ÄÒÔÔÊÐí libc ºÍ libc_r Á¬½Óµ½Ò»Æð£¬ ²»ÔÙ¹ÄÀøÊ¹Óà -pthread Ö®ºóµÄ 5.0-CURRENT | |
500017 | February 18, 2001 | ´Ó struct ucred Çл»µ½ struct xucred ÒÔ±ãʹÄÚºËΪ mountd µÈ³ÌÐòµ¼³öµÄ API Îȶ¨ÏÂÀ´Ö®ºóµÄ 5.0-CURRENT | |
500018 | February 24, 2001 | ¼ÓÈë CPUTYPE ÓÃÓÚ CPU רÓõÄÓÅ»¯µÄ make ±äÁ¿Ö®ºóµÄ 5.0-CURRENT | |
500019 | June 9, 2001 | machine/ioctl_fd.h ¸ÄΪ sys/fdcio.h Ö®ºóµÄ 5.0-CURRENT | |
500020 | June 15, 2001 | locale Ãû³Æ¸Ä±äÖ®ºóµÄ 5.0-CURRENT | |
500021 | June 22, 2001 | ÒýÈë bzip2 Ö®ºóµÄ 5.0-CURRENT£¬ ͬʱҲ´ú±íɾȥÁË S/Key | |
500022 | July 12, 2001 | ¼ÓÈë SSE Ö§³ÖÖ®ºóµÄ 5.0-CURRENT | |
500023 | September 14, 2001 | KSE µÚ2¸öÀï³Ì±®Ö®ºóµÄ 5.0-CURRENT | |
500024 | October 1, 2001 | d_thread_t Ö®ºóµÄ 5.0-CURRENT£¬ ͬʱ UUCP ±»ÒÆÈë ports | |
500025 | October 4, 2001 | 64-λƽ̨ÉϵÄÃèÊö·ûºÍ creds API ±ä»¯Ö®ºóµÄ 5.0-CURRENT | |
500026 | October 9, 2001 | ²ÉÓà XFree86 4 ×÷ΪĬÈϵÄÔ¤±àÒë°ü£¬ ÒÔ¼°¼ÓÈë strnstr() libc º¯ÊýÖ®ºóµÄ 5.0-CURRENT | |
500027 | October 10, 2001 | ¼ÓÈë strcasestr() libc º¯ÊýÖ®ºóµÄ 5.0-CURRENT | |
500028 | December 14, 2001 | ÒýÈëÁËÓû§Ì¬µÄ smbfs ×é¼þÖ®ºóµÄ 5.0-CURRENT | |
(δÓèÔö¼Ó) | ¼ÓÈëÁËÐ嵀 C99 Ö¸¶¨Î»¿íÕûÐαäÁ¿Ö®ºóµÄ 5.0-CURRENT | ||
500029 | January 29, 2002 | ÐÞ¸ÄÁË sendfile(2) µÄ·µ»ØÖµÖ®ºóµÄ 5.0-CURRENT | |
500030 | February 15, 2002 | ÒýÈëÊʺϱí´ïÎļþ±êÖ¾µÄ fflags_t ÀàÐÍÖ®ºóµÄ 5.0- | |
500031 | February 24, 2002 | usb ½á¹¹ÔªËظÄÃûÖ®ºóµÄ 5.0-CURRENT | |
500032 | March 16, 2002 | ÒýÈë Perl 5.6.1 Ö®ºóµÄ 5.0-CURRENT | |
500033 | April 3, 2002 | rc.conf(5) ±äÁ¿ sendmail_enable ĬÈÏÖµ¸ÄΪ NONE Ö®ºóµÄ 5.0-CURRENT | |
500034 | April 30, 2002 | mtx_init() Ôö¼ÓÁ˵ÚÈý¸ö²ÎÊýÖ®ºóµÄ 5.0-CURRENT | |
500035 | May 13, 2002 | °üº¬ Gcc 3.1 µÄ 5.0-CURRENT | |
500036 | May 17, 2002 | ÔÚ /usr/src ÖÐɾȥÁË Perl µÄ 5.0-CURRENT | |
500037 | May 29, 2002 | ¼ÓÈë dlfunc(3) Ö®ºóµÄ 5.0-CURRENT | |
500038 | July 24, 2002 | һЩ struct sockbuf µÄ³ÉÔ±±äΪ½á¹¹£¬ ²¢ÖØÐÂÅÅÁÐ˳ÐòÖ®ºóµÄ 5.0-CURRENT | |
500039 | September 1, 2002 | ÒýÈë GCC 3.2.1 Ö®ºóµÄ 5.0-CURRENT¡£ Í·ÎļþÒ²²»ÔÙʹÓà _BSD_FOO_T_ ¶ø¿ªÊ¼Ê¹Óà _FOO_T_DECLARED¡£ Õâ¸öÖµ»¹¿ÉÒÔÓÃÓÚ×÷Ϊһ¸ö°üº¬Ê¹Óà bzip2(1) µÄÔ¤±àÒë°üÖ§³ÖµÄÔ¤ÆÚµã¡£ | |
500040 | September 20, 2002 | ÒÔÈ¥µô¶Ô disklabel ½á¹¹ÄÚÈݵÄÒÀÀµµÄÃûÒ壬 ¶Ô´ÅÅÌÏà¹ØµÄº¯Êý½øÐÐÁËÐí¶àÐÞ¸ÄÖ®ºóµÄ 5.0-CURRENT | |
500041 | October 1, 2002 | libc ÖмÓÈë getopt_long(3) Ö®ºóµÄ 5.0-CURRENT | |
500042 | October 15, 2002 | Binutils 2.13 Éý¼¶£¬ °üº¬ÁËÐ嵀 FreeBSD Ä£Ä⣬ vec ÒÔ¼°Êä³ö¸ñʽ֮ºóµÄ 5.0-CURRENT | |
500043 | November 1, 2002 | libc ÖмÓÈëÁËÈõ pthread_XXX ·ûºÅÖ®ºóµÄ 5.0-CURRENT£¬ ´Ó¶øÌÔÌÁË libXThrStub.so¡£ 5.0-RELEASE¡£ | |
500100 | January 17, 2003 | ´´½¨ RELENG_5_0 ·ÖÖ§Ö®ºóµÄ 5.0-CURRENT | |
500101 | February 19, 2003 | <sys/dkstat.h> ±ä³ÉÁËÒ»¸ö¿ÕÎļþ£¬ ²»Ó¦ÔÙ±»ÒýÓà | |
500102 | February 25, 2003 | ÐÞ¸Ä d_mmap_t ½Ó¿ÚÖ®ºóµÄ 5.0-CURRENT | |
500103 | February 26, 2003 | taskqueue_swi ÒÔÎÞÈ«¾ÖËøµÄ·½Ê½ÔËÐÐÖ®ºóµÄ 5.0-CURRENT£¬ ͬʱ»¹¼ÓÈëÁËʹÓÃÈ«¾ÖËøµÄ taskqueue_swi_giant | |
500104 | February 27, 2003 | È¥µôÁË cdevsw_add() ºÍ cdevsw_remove() ³öÏÖ MAJOR_AUTO ·ÖÅä»úÖÆ | |
500105 | March 4, 2003 | ²ÉÓÃÐ嵀 cdevsw ³õʼ»¯·½·¨Ö®ºóµÄ 5.0-CURRENT | |
500106 | March 8, 2003 | devstat_add_entry() ±» devstat_new_entry() È¡´ú | |
500107 | March 15, 2003 | ÐÞ¸Ä devstat ½Ó¿Ú£» Çë²Î¼û sys/sys/param.h 1.149 | |
500108 | March 15, 2003 | ¸Ä±äÁË Token-Ring ½Ó¿Ú | |
500109 | March 25, 2003 | ¼ÓÈë vm_paddr_t | |
500110 | March 28, 2003 | ½« realpath(3) ¸ÄΪḬ̈߳²È«Ö®ºóµÄ 5.0-CURRENT | |
500111 | April 9, 2003 | usbhid(3) Óë NetBSD ͬ²½Ö®ºóµÄ 5.0-CURRENT | |
500112 | April 17, 2003 | ¼ÓÈëÐ嵀 NSS ʵÏÖ£¬ ÒÔ¼° POSIX.1 getpw*_r, getgr*_r º¯ÊýÖ®ºóµÄ 5.0-CURRENT | |
500113 | May 2, 2003 | ɾȥ¾Éʽ rc ϵͳ֮ºóµÄ 5.0-CURRENT | |
501000 | June 4, 2003 | 5.1-RELEASE. | |
501100 | June 2, 2003 | ´´½¨ RELENG_5_1 ·ÖÖ§Ö®ºóµÄ 5.1-CURRENT | |
501101 | June 29, 2003 | ¸ÄÕý sigtimedwait(2) ºÍ sigwaitinfo(2) ÓïÒåÖ®ºóµÄ 5.1-CURRENT | |
501102 | July 3, 2003 | ÔÚ bus_dma_tag_create(9) ÖмÓÈëÁË lockfunc ºÍ lockfuncarg ×Ö¶ÎÖ®ºóµÄ 5.1-CURRENT | |
501103 | July 31, 2003 | ¼¯³ÉÁË GCC 3.3.1-pre 20030711 Ö®ºóµÄ 5.1-CURRENT | |
501104 | August 5, 2003 | twe ÖÐ 3ware API ±ä»¯Ö®ºóµÄ 5.1-CURRENT | |
501105 | August 17, 2003 | ÔÊÐí¶¯Ì¬Á¬½Ó /bin ºÍ /sbin£¬ ÒÔ¼°½«Ä³Ð©¿âÒÆ¶¯µ½ /lib Ö®ºóµÄ 5.1-CURRENT | |
501106 | September 8, 2003 | Ôö¼ÓÄں˼¶ Coda 6.x Ö§³ÖÖ®ºóµÄ 5.1-CURRENT | |
501107 | September 17, 2003 | ½« 16550 UART ³£Á¿´Ó <dev/sio/sioreg.h> Ųµ½ <dev/ic/ns16550.h> Ö®ºóµÄ 5.1-CURRENT¡£ ´ËÍ⣬ rtld Ò²´Ó´ËÎÞÌõ¼þÖ§³Ö libmap ¹¦ÄÜ | |
501108 | September 23, 2003 | ¸üРPFIL_HOOKS API Ö®ºóµÄ 5.1-CURRENT | |
501109 | September 27, 2003 | Ôö¼Ó kiconv(3) Ö®ºóµÄ 5.1-CURRENT | |
501110 | September 28, 2003 | ĬÈ쵀 cdevsw open ºÍ close ²Ù×÷±ä»¯Ö®ºóµÄ 5.1-CURRENT | |
501111 | October 16, 2003 | cdevsw µÄ²¼¾Ö±ä»¯Ö®ºóµÄ 5.1-CURRENT | |
501112 | October 16, 2003 | Ôö¼Ó kobj ¶à¼Ì³ÐÖ®ºóµÄ 5.1-CURRENT | |
501113 | October 31, 2003 | ÐÞ¸Ä struct ifnet ÖÐµÄ if_xname Ö®ºóµÄ 5.1-CURRENT | |
501114 | November 16, 2003 | ½« /bin ºÍ /sbin ¸ÄΪ¶¯Ì¬Á¬½ÓÖ®ºóµÄ 5.1-CURRENT | |
502000 | December 7, 2003 | 5.2-RELEASE | |
502010 | February 23, 2004 | 5.2.1-RELEASE | |
502100 | December 7, 2003 | ´´½¨ RELENG_5_2 ·ÖÖ§Ö®ºóµÄ 5.2-CURRENT | |
502101 | December 19, 2003 | libc ÖмÓÈëÁË __cxa_atexit/__cxa_finalize Á½¸öº¯ÊýÖ®ºóµÄ 5.2-CURRENT | |
502102 | January 30, 2004 | ĬÈÏÏ߳̿â´Ó libc_r ¸ÄΪ libpthread Ö®ºóµÄ 5.2-CURRENT | |
502103 | February 21, 2004 | É豸Çý¶¯ API ´ó¹æÄ£·ÐÞÖ®ºóµÄ 5.2-CURRENT | |
502104 | February 25, 2004 | Ôö¼Ó getopt_long_only() Ö®ºóµÄ 5.2-CURRENT | |
502105 | March 5, 2004 | C µÄ NULL ¶¨Òå¸ÄΪ ((void *)0) Ö®ºóµÄ 5.2-CURRENT£¬ Õâ»á²úÉú¸ü¶àµÄ±àÒ뾯¸æ | |
502106 | March 8, 2004 | pf Á¬ÈëÁª±àºÍ°²×°¹ý³ÌÖ®ºóµÄ 5.2-CURRENT | |
502107 | March 10, 2004 | ÔÚ sparc64 ÉϽ« time_t ¸ÄΪ 64-λ ÖµÖ®ºóµÄ 5.2-CURRENT | |
502108 | March 12, 2004 | ÔÚһЩͷÎļþÐÞ¸ÄÒÔÖ§³Ö Intel C/C++ ±àÒëÆ÷£¬ ÒÔ¼°Èà execve(2) ¸üÑϸñµØ·ûºÏ POSIX Ö®ºóµÄ 5.2-CURRENT | |
502109 | March 22, 2004 | ÒýÈë bus_alloc_resource_any API Ö®ºóµÄ 5.2-CURRENT | |
502110 | March 27, 2004 | ¼ÓÈë UTF-8 locale Ö®ºóµÄ 5.2-CURRENT | |
502111 | April 11, 2004 | ɾȥ getvfsent(3) API Ö®ºóµÄ 5.2-CURRENT | |
502112 | April 13, 2004 | Ϊ make(1) Ôö¼Ó .warning Óï¾äÖ®ºóµÄ 5.2-CURRENT | |
502113 | June 4, 2004 | ËùÓд®¿ÚÉ豸¶¼Ç¿ÖÆÊ¹Óà ttyioctl() Ö®ºóµÄ 5.2-CURRENT | |
502114 | June 13, 2004 | ÒýÈë ALTQ ¿ò¼ÜÖ®ºóµÄ 5.2-CURRENT | |
502115 | June 14, 2004 | ÐÞ¸Ä sema_timedwait(9) ʹÆä³É¹¦Ê±·µ»Ø 0£¬ ʧ°Üʱ·µ»Ø·Ç 0 µÄ´íÎó´úÂëÖ®ºóµÄ 5.2-CURRENT | |
502116 | June 16, 2004 | ½«ÄÚºË dev_t ¸ÄΪָÏò struct cdev * µÄÖ¸ÕëÖ®ºóµÄ 5.2-CURRENT | |
502117 | June 17, 2004 | ½«ÄÚºË udev_t ¸ÄΪ dev_t Ö®ºóµÄ 5.2-CURRENT | |
502118 | June 17, 2004 | Ϊ clock_gettime(2) ºÍ clock_getres(2) Ôö¼Ó CLOCK_VIRTUAL ºÍ CLOCK_PROF Ö§³ÖÖ®ºóµÄ 5.2-CURRENT | |
502119 | June 22, 2004 | ¶ÔÍøÂç½Ó¿Ú¸´ÖƽøÐÐÈ«ÃæÐÞ¸ÄÖ®ºóµÄ 5.2-CURRENT | |
502120 | July 2, 2004 | package ¹¤¾ßÉý¼¶Îª 20040629 Ö®ºóµÄ 5.2-CURRENT | |
502121 | July 9, 2004 | ²»ÔÙ½«À¶ÑÀ´úÂë±ê¼ÇΪ i386 רÓÃÖ®ºóµÄ 5.2-CURRENT | |
502122 | July 11, 2004 | ÒýÈë KDB µ÷ÊÔÆ÷¿ò¼ÜÖ®ºóµÄ 5.2-CURRENT¡£ ͬʱ»¹ÒýÈëÁË DDB ×÷Ϊºǫ́£¬ ÒÔ¼° GDB ºǫ́¡£ | |
502123 | July 12, 2004 | ÐÞ¸Ä VFS_ROOT ºÍ vflush ʹÆäʹÓÃÒ»¸ö struct thread ²ÎÊýÖ®ºóµÄ 5.2-CURRENT¡£ struct kinfo_proc Ôö¼ÓÁËÒ»¸öÓû§Êý¾ÝÖ¸Õë¡£ ͬʱ£¬ ĬÈ쵀 X ʵÏÖÇл»Îª xorg | |
502124 | July 24, 2004 | ½«Ê¹Óà rc.d ºÍ´«Í³½Å±¾µÄ port ·Ö±ðÆô¶¯Ö®ºóµÄ 5.2-CURRENT | |
502125 | July 28, 2004 | È¡ÏûǰһÐÞ¸ÄÖ®ºóµÄ 5.2-CURRENT | |
502126 | July 31, 2004 | ɾ³ý kmem_alloc_pageable() ²¢ÒýÈë gcc 3.4.2 µÄ 5.2-CURRENT | |
502127 | August 2, 2004 | ÐÞ¸Ä UMA ÄÚºË API ÔÊÐí¹¹½¨º¯ÊýºÍ³õʼ»¯Ê§°ÜÖ®ºóµÄ 5.2-CURRENT | |
502128 | August 8, 2004 | vfs_mount Ç©ÃûºÍÈ«¾ÖÌæ»» suser(9) API µÄ PRISON_ROOT Ϊ SUSER_ALLOWJAIL Ö®ºóµÄ 5.2-CURRENT | |
503000 | August 23, 2004 | pfil API ÐÞ¸Ä֮ǰµÄ 5.3-BETA/RC | |
503001 | September 22, 2004 | 5.3-RELEASE | |
503100 | October 16, 2004 | ´´½¨ RELENG_5_3 ·ÖÖ§Ö®ºóµÄ 5.3-STABLE | |
503101 | December 3, 2004 | ¼ÓÈëÁË glibc ·ç¸ñµÄ strftime(3) Ìî³äÑ¡ÏîµÄ 5.3-STABLE | |
503102 | February 13, 2005 | MFC OpenBSD µÄ nc(1) Ö®ºóµÄ 5.3-STABLE | |
503103 | February 27, 2005 | ÔÚ MFC ÁË <src/include/stdbool.h> ºÍ <src/sys/i386/include/_types.h> ÓÃÓÚ¼æÈÝ GCC ºÍ Intel C/C++ ±àÒëÆ÷µÄÐÞÕýÖ®ºóµÄ 5.4-PRERELEASE | |
503104 | February 28, 2005 | MFC Á˽« ifi_epoch ÓÉ wall ʱÖÓʱ¼ä¸ÄΪ uptime Ö®ºóµÄ 5.4-PRERELEASE | |
503105 | March 2, 2005 | MFC ÁË vswprintf(3) ÖÐµÄ EOVERFLOW ¼ì²éµÄ 5.4-PRERELEASE | |
504000 | April 3, 2005 | 5.4-RELEASE. | |
504100 | April 3, 2005 | ´´½¨ RELENG_5_4 ·ÖÖ§Ö®ºóµÄ 5.4-STABLE | |
504101 | May 11, 2005 | ¼Ó´óĬÈÏÏ̶߳ÑÕ»³ß´çÖ®ºóµÄ 5.4-STABLE | |
504102 | June 24, 2005 | ¼ÓÈë sha256 Ö®ºóµÄ 5.4-STABLE | |
504103 | October 3, 2005 | MFC if_bridge Ö®ºóµÄ 5.4-STABLE | |
504104 | November 13, 2005 | bsdiff ºÍ portsnap MFC Ö®ºóµÄ 5.4-STABLE | |
504105 | January 17, 2006 | ÔÚ MFC ÁË ldconfig_local_dirs ÐÞ¸ÄÖ®ºóµÄ 5.4-STABLE¡£ | |
505000 | May 12, 2006 | 5.5-RELEASE. | |
505100 | May 12, 2006 | ÔÚ´´½¨ RELENG_5_5 ·ÖÖ§Ö®ºóµÄ 5.5-STABLE | |
600000 | August 18, 2004 | 6.0-CURRENT | |
600001 | August 27, 2004 | ÄÚºËÖÐÓÀ¾ÃÐÔÆôÓà PFIL_HOOKS Ö®ºóµÄ 6.0-CURRENT | |
600002 | August 30, 2004 | ×î³õ½« ifi_epoch ¼ÓÈë if_data ½á¹¹Ö®ºóµÄ 6.0-CURRENT¡£ ´Ëºó²»¾Ã¼´±»³·Ïú¡£ Ç벻ҪʹÓÃÕâ¸öÖµ¡£ | |
600003 | September 8, 2004 | if_data ÖÐÔٴμÓÈë ifi_epoch ³ÉÔ±Ö®ºóµÄ 6.0-CURRENT | |
600004 | September 29, 2004 | ½« struct inpcb ²ÎÊý¼ÓÈë pfil API Ö®ºóµÄ 6.0-CURRENT | |
600005 | October 5, 2004 | newsyslog ¼ÓÈëÁË "-d DESTDIR" ²ÎÊýÖ®ºóµÄ 6.0-CURRENT | |
600006 | November 4, 2004 | ¼ÓÈëÁË glibc ·ç¸ñµÄ strftime(3) Ìî³äÑ¡ÏîÖ®ºóµÄ 6.0-CURRENT | |
600007 | December 12, 2004 | ¼ÓÈëÁË 802.11 ¿ò¼Ü¸üÐÂÖ®ºóµÄ 6.0-CURRENT | |
600008 | January 25, 2005 | ÐÞ¸Ä VOP_*VOBJECT() ²¢ÎªÎÞÈ«¾ÖËøµÄÎļþϵͳÒýÈë MNTK_MPSAFE ±êÖ¾Ö®ºóµÄ 6.0-CURRENT | |
600009 | February 4, 2005 | ¼ÓÈë cpufreq ¿ò¼ÜºÍÇý¶¯Ö®ºóµÄ 6.0-CURRENT | |
600010 | February 6, 2005 | ÒýÈë OpenBSD µÄ nc(1) Ö®ºóµÄ 6.0-CURRENT | |
600011 | February 12, 2005 | ɾȥ²¢²»´æÔÚµÄ SVID2 matherr() Ö§³ÖÖ®ºóµÄ 6.0-CURRENT | |
600012 | February 15, 2005 | Ôö´óĬÈÏÏ̶߳ÑÕ»³ß´çÖ®ºóµÄ 6.0-CURRENT | |
600013 | February 19, 2005 | Ôö¼ÓÁËÕë¶Ô <src/include/stdbool.h> ºÍ <src/sys/i386/include/_types.h> µÄÓÃÓÚ Intel C/C++ ±àÒëÆ÷µÄ GCC-¼æÈÝÐÔÐÞÕý¡£ | |
600014 | February 21, 2005 | ÐÞÕýÁË vswprintf(3) µÄ EOVERFLOW ¼ì²éÖ®ºóµÄ 6.0-CURRENT | |
600015 | February 25, 2005 | ½« struct if_data ³ÉÔ± ifi_epoch ´Ó wall ʱÖÓʱ¼ä¸ÄΪ uptime Ö®ºóµÄ 6.0-CURRENT | |
600016 | February 26, 2005 | ÐÞ¸Ä LC_CTYPE ´ÅÅ̸ñʽ֮ºóµÄ 6.0-CURRENT | |
600017 | February 27, 2005 | ÐÞ¸Ä NLS ±à¼´ÅÅ̸ñʽ֮ºóµÄ 6.0-CURRENT | |
600018 | February 27, 2005 | ÐÞ¸Ä LC_COLLATE ´ÅÅ̸ñʽ֮ºóµÄ 6.0-CURRENT | |
600019 | February 28, 2005 | ½« acpica Í·Îļþ°²×°µ½ /usr/include | |
600020 | March 9, 2005 | Ϊ send(2) API ¼ÓÈëÁË MSG_NOSIGNAL | |
600021 | March 17, 2005 | ÔÚ cdevsw ÉÏÔö¼ÓÁËһЩ×Ö¶Î | |
600022 | March 21, 2005 | »ù±¾ÏµÍ³ÖÐɾȥÁË gtar | |
600023 | April 13, 2005 | unix(4) ÖмÓÈëÁË LOCAL_CREDS, LOCAL_CONNWAIT Á½¸ö socket Ñ¡Ïî | |
600024 | April 19, 2005 | ¼ÓÈëÁË hwpmc(4) ¼°ÆäÏà¹Ø¹¤¾ßÖ®ºóµÄ 6.0-CURRENT | |
600025 | April 26, 2005 | ¼ÓÈë struct icmphdr Ö®ºóµÄ 6.0-CURRENT | |
600026 | May 3, 2005 | pf ¸üе½ÁË 3.7 | |
600027 | May 6, 2005 | ÒýÈëÁËÄÚºË libalias ºÍ ng_nat | |
600028 | May 13, 2005 | ½« ttyname_r(3) ½Ó¿Ú¸ÄΪ·ûºÏ POSIX ±ê×¼£¬ ²¢Í¨¹ý unistd.h ºÍ libc | |
600029 | May 29, 2005 | ½« libpcap Éý¼¶Îª v0.9.1 alpha 096 Ö®ºóµÄ 6.0-CURRENT | |
600030 | June 5, 2005 | ÒýÈë NetBSD µÄ if_bridge(4) Ö®ºóµÄ 6.0-CURRENT | |
600031 | June 10, 2005 | ½« struct ifnet ´ÓÇý¶¯µÄ softc Öвð³öÖ®ºóµÄ 6.0-CURRENT¡£ | |
600032 | July 11, 2005 | ÒýÈëÁË libpcap v0.9.1 Ö®ºóµÄ 6.0-CURRENT¡£ | |
600033 | July 25, 2005 | ËùÓÐ×Ô RELENG_5 ÒÔÀ´Ã»ÓÐÐ޸ĹýµÄ¹²Ïí¿âµÄ°æ±¾µÝÔöÖ®ºóµÄ 6.0-STABLE¡£ | |
600034 | August 13, 2005 | Ϊ dev_clone ʼþ´¦Àíº¯ÊýÔö¼ÓÉí·ÝÐÅÏ¢²ÎÊýÖ®ºóµÄ 6.0-STABLE¡£ 6.0-RELEASE¡£ | |
600100 | November 1, 2005 | 6.0-RELEASE Ö®ºóµÄ 6.0-STABLE | |
600101 | December 21, 2005 | ½« local_startup Ŀ¼ÖеĽű¾¼¯³Éµ½»ù±¾ÏµÍ³µÄ rcorder(8) Ö®ºóµÄ 6.0-STABLE¡£ | |
600102 | December 30, 2005 | ¸üРELF ÀàÐͺͳ£Á¿Ö®ºóµÄ 6.0-STABLE¡£ | |
600103 | January 15, 2006 | MFC ÁË pidfile(3) API Ö®ºóµÄ 6.0-STABLE¡£ | |
600104 | January 17, 2006 | ÔÚ MFC ÁË ldconfig_local_dirs ÐÞ¸ÄÖ®ºóµÄ 6.0-STABLE¡£ | |
600105 | February 26, 2006 | ÔÚ csh(1) ÖмÓÈëÁË NLS Ŀ¼֧³ÖÖ®ºóµÄ 6.0-STABLE¡£ | |
601000 | May 6, 2006 | 6.1-RELEASE | |
601100 | May 6, 2006 | 6.1-RELEASE Ö®ºóµÄ 6.1-STABLE¡£ | |
601101 | June 22, 2006 | ÒýÈë csup Ö®ºóµÄ 6.1-STABLE¡£ | |
601102 | July 11, 2006 | ¸üÐÂÁË iwi(4) Ö®ºóµÄ 6.1-STABLE¡£ | |
601103 | July 17, 2006 | ½«ÓòÃû½âÎöº¯Êý¸üÐÂÖÁ BIND9£¬ ²¢µ¼³öÁË¿ÉÖØÈë°æ±¾µÄ netdb º¯ÊýÖ®ºóµÄ 6.1-STABLE¡£ | |
601104 | August 8, 2006 | ÔÚ OpenSSL ÖÐÆôÓÃÁË DSO (¶¯Ì¬¹²Ïí¿â) Ö§³ÖÖ®ºóµÄ 6.1-STABLE¡£ | |
601105 | September 2, 2006 | ÓÉÓÚ 802.11 ÐÞÕý±ä¶¯ÁË IEEE80211_IOC_STA_INFO ioctl API Ö®ºóµÄ 6.1-STABLE¡£ | |
602000 | November 15, 2006 | 6.2-RELEASE | |
602100 | September 15, 2006 | 6.2-RELEASE Ö®ºóµÄ 6.2-STABLE¡£ | |
602101 | December 12, 2006 | ¼ÓÈë Wi-Spy quirk Ö®ºóµÄ 6.2-STABLE¡£ | |
602102 | December 28, 2006 | Ôö¼Ó pci_find_extcap() Ö®ºóµÄ 6.2-STABLE¡£ | |
602103 | January 16, 2007 | MFC ÁË¶Ô dlsym ½øÐÐÐ޸ģ¬ ʹÆäÔÚÖ¸¶¨ dso ¼°Æä°µÖ¸µÄÒÀÀµÖвéÕÒ·ûºÅÖ®ºóµÄ 6.2-STABLE¡£ | |
602104 | January 28, 2007 | MFC ÁË netgraph ½Úµã ng_deflate(4) ºÍ ng_pred1(4) ÒÔ¼°ÓÃÓÚ ng_ppp(4) ½ÚµãµÄÐÂѹËõ¼°¼ÓÃÜģʽ֮ºóµÄ 6.2-STABLE¡£ | |
602105 | February 20, 2007 | MFC ÁË´Ó NetBSD ÒÆÖ²µÄ BSD ÊÚȨµÄ gzip(1) Ö®ºóµÄ 6.2-STABLE¡£ | |
602106 | March 31, 2007 | MFC ÁË PCI MSI ºÍ MSI-X Ö§³ÖÖ®ºóµÄ 6.2-STABLE¡£ | |
602107 | April 6, 2007 | MFC Á˰üº¬¿í×Ö·ûÖ§³ÖµÄ ncurses 5.6 Ö®ºóµÄ 6.2-STABLE¡£ | |
602108 | April 11, 2007 | MFC ÁËʵÏÖ Linux SCSI SG ֱͨÉ豸 API ×Ó¼¯µÄ CAM 'SG' É豸֮ºóµÄ 6.2-STABLE¡£ | |
602109 | April 17, 2007 | MFC ÁË readline 5.2 patchset 002 Ö®ºóµÄ 6.2-STABLE¡£ | |
602110 | May 2, 2007 | MFC ÁËÓÃÓÚ amd64 ºÍ i386 µÄ pmap_invalidate_cache()¡¢ pmap_change_attr()¡¢ pmap_mapbios()¡¢ pmap_mapdev_attr()¡¢ and pmap_unmapbios() Ö®ºóµÄ 6.2-STABLE¡£ | |
602111 | June 11, 2007 | ÓÉÓÚ MFC ÁË BOP_BDFLUSH µ¼ÖÂÎļþϵͳģ¿é KBI ±ä»¯Ö®ºóµÄ 6.2-STABLE¡£ | |
602112 | September 21, 2007 | һϵÁÐ libutil(3) MFC Ö®ºóµÄ 6.2-STABLE¡£ | |
602113 | October 25, 2007 | MFC ÁË¿í×Ö·ûºÍµ¥×Ö½Ú ctype º¯Êý·Ö²ðÖ®ºóµÄ 6.2-STABLE¡£ бàÒëµÄÒýÓÃÁË ctype.h µÄ¿ÉÖ´ÐÐÎļþ£¬ ¿ÉÄÜ»áÐèÒªÒ»¸öÔÚ¾ÉϵͳÉϲ»´æÔÚµÄÐÂÔö·ûºÅ __mb_sb_limit¡£ | |
602114 | October 30, 2007 | »Ö¸´ÁË ctype ABI Ïòǰ¼æÈÝÐÔÖ®ºóµÄ 6.2-STABLE¡£ | |
602115 | November 21, 2007 | »ØÍËÁË¿í×Ö·ûºÍµ¥×Ö½Ú ctype ·Ö²ðÖ®ºóµÄ 6.2-STABLE¡£ | |
603000 | November 25, 2007 | 6.3-RELEASE | |
603100 | November 25, 2007 | ÔÚ 6.3-RELEASE Ö®ºóµÄ 6.3-STABLE¡£ | |
603101 | December 7, 2007 | ÐÞÕýÁË bit macro µÄ¶à×Ö½ÚÖ§³ÖÖ®ºóµÄ 6.3-STABLE¡£ | |
603102 | April 24, 2008 | Ϊ flock ½á¹¹¼ÓÈë l_sysid Ö®ºóµÄ 6.3-STABLE¡£ | |
603103 | May 27, 2008 | MFC ÁË memrchr º¯ÊýÖ®ºóµÄ 6.3-STABLE¡£ |
|
603104 | June 15, 2008 | Ϊ make(1) MFC :u ±äÁ¿ÐÞÊηûÖ®ºóµÄ 6.3-STABLE¡£ | |
604000 | October 4, 2008 | 6.4-RELEASE | |
604100 | October 4, 2008 | 6.4-RELEASE Ö®ºóµÄ 6.4-STABLE¡£ | |
700000 | July 11, 2005 | 7.0-CURRENT¡£ | |
700001 | July 23, 2005 | ËùÓÐ×Ô RELENG_5 ÒÔÀ´Ã»ÓÐÐ޸ĹýµÄ¹²Ïí¿âµÄ°æ±¾µÝÔöÖ®ºóµÄ 7.0-CURRENT¡£ | |
700002 | August 13, 2005 | Ϊ dev_clone ʼþ´¦Àíº¯ÊýÖÐÔö¼ÓÉí·ÝÐÅÏ¢²ÎÊýÖ®ºóµÄ 7.0-CURRENT¡£ | |
700003 | August 25, 2005 | ½« memmem(3) ¼ÓÈë libc Ö®ºóµÄ 7.0-CURRENT¡£ | |
700004 | October 30, 2005 | ½« solisten(9) ¸ÄΪ½ÓÊÜÒ» backlog ²ÎÊýÖ®ºóµÄ 7.0-CURRENT¡£ | |
700005 | November 11, 2005 | ½« IFP2ENADDR() ¸ÄΪ·µ»ØÒ» IF_LLADDR() Ö¸ÕëÖ®ºóµÄ 7.0-CURRENT¡£ | |
700006 | November 11, 2005 | ÔÚ struct ifnet ÖÐÔö¼Ó if_addr ³ÉÔ±£¬ ²¢É¾³ý IFP2ENADDR() Ö®ºóµÄ 7.0-CURRENT¡£ | |
700007 | December 2, 2005 | ½« local_startup Ŀ¼ÖеĽű¾¼¯³Éµ½»ù±¾ÏµÍ³µÄ rcorder(8) Ö®ºóµÄ 7.0-CURRENT¡£ | |
700008 | December 5, 2005 | È¥µô MNT_NODEV ¹Ò½ÓÑ¡ÏîÖ®ºóµÄ 7.0-CURRENT¡£ | |
700009 | December 19, 2005 | ¶Ô ELF-64 ÀàÐͺͷûºÅ°æ±¾½øÐбä¸üÖ®ºóµÄ 7.0-CURRENT¡£ | |
700010 | December 20, 2005 | Ôö¼Ó hostb ºÍ vgapci Çý¶¯¡¢ pci_find_extcap()£¬ ²¢½« AGP Çý¶¯¸ÄΪ²»ÔÙÓ°Éä aperature Ö®ºóµÄ 7.0-CURRENT¡£ | |
700011 | December 31, 2005 | ³ý Alpha Ö®ÍâµÄËùÓÐÆ½Ì¨ÉÏ tv_sec ¸ÄΪ time_t Ö®ºóµÄ 7.0-CURRENT¡£ | |
700012 | January 8, 2006 | ÐÞ¸Ä ldconfig_local_dirs Ö®ºóµÄ 7.0-CURRENT¡£ | |
700013 | January 12, 2006 | ÔÚÐÞ¸ÄÁË /etc/rc.d/abi ÒÔÖ§³Ö /compat/linux/etc/ld.so.cache ÒÔijֻ¶ÁÎļþϵͳÉϵķûºÅÁ¬½ÓÐÎʽ´æÔÚÖ®ºóµÄ 7.0-CURRENT¡£ | |
700014 | January 26, 2006 | ÒýÈë pts Ö®ºóµÄ 7.0-CURRENT¡£ | |
700015 | March 26, 2006 | ÔÚÒýÈë hwpmc(4) µÄµÚ 2 °æ ABI Ö®ºóµÄ 7.0-CURRENT¡£ | |
700016 | April 22, 2006 | ÔÚ libc ÖмÓÈëÁË fcloseall(3) Ö®ºóµÄ 7.0-CURRENT¡£ | |
700017 | May 13, 2006 | ɾȥ ip6fw Ö®ºóµÄ 7.0-CURRENT¡£ | |
700018 | July 15, 2006 | ÒýÈëÁË snd_emu10kx Ö®ºóµÄ 7.0-CURRENT¡£ | |
700019 | July 29, 2006 | ÒýÈëÁË OpenSSL 0.9.8b Ö®ºóµÄ 7.0-CURRENT¡£ | |
700020 | September 3, 2006 | Ôö¼ÓÁË bus_dma_get_tag º¯ÊýÖ®ºóµÄ 7.0-CURRENT¡£ | |
700021 | September 4, 2006 | ÔÚÒýÈëÁË libpcap 0.9.4 ºÍ tcpdump 3.9.4 Ö®ºóµÄ 7.0-CURRENT¡£ | |
700022 | September 9, 2006 | ÔÚ¶Ô dlsym ½øÐÐÐ޸ģ¬ ʹÆäÔÚÖ¸¶¨ dso ¼°Æä°µÖ¸µÄÒÀÀµÖвéÕÒ·ûºÅÖ®ºóµÄ 7.0-CURRENT¡£ | |
700023 | September 23, 2006 | Ϊ OSSv4 »ìÒôÆ÷ API ¼ÓÈëеÄÉùÒô IOCTL Ö®ºóµÄ 7.0-CURRENT¡£ | |
700024 | September 28, 2006 | »ãÈë OpenSSL 0.9.8d Ö®ºóµÄ 7.0-CURRENT¡£ | |
700025 | November 11, 2006 | ¼ÓÈëÁË libelf Ö®ºóµÄ 7.0-CURRENT¡£ | |
700026 | November 26, 2006 | ¶ÔÒôЧÏà¹ØµÄ sysctl ½øÐдó·ùµ÷ÕûÖ®ºóµÄ 7.0-CURRENT¡£ | |
700027 | November 30, 2006 | ¼ÓÈë Wi-Spy quirk Ö®ºóµÄ 7.0-CURRENT¡£ | |
700028 | December 15, 2006 | ÔÚ libc ÖмÓÈë sctp µ÷ÓÃÖ®ºóµÄ 7.0-CURRENT¡£ | |
700029 | January 26, 2007 | ½« GNU gzip(1) ʵÏÖÌæ»»Îª´Ó NetBSD ÒÆÖ²µÄ²ÉÓà BSD ÊÚȨ°æ±¾Ö®ºóµÄ 7.0-CURRENT¡£ | |
700030 | February 7, 2007 | ÔÚ IPv4 ¶à²¥×ª·¢´úÂëÖÐɾȥÁË IPIP ËíµÀ·â×° (VIFF_TUNNEL) Ö®ºóµÄ 7.0-CURRENT¡£ | |
700031 | February 23, 2007 | ÐÞ¸ÄÁË bus_setup_intr() (newbus) Ö®ºóµÄ 7.0-CURRENT¡£ | |
700032 | March 2, 2007 | ÒýÈëÁË ipw(4) ºÍ iwi(4) ¹Ì¼þÖ®ºóµÄ 7.0-CURRENT¡£ | |
700033 | March 9, 2007 | ÔÚ ncurses ÖÐÒýÈëÁË¿í×Ö·ûÖ§³ÖÖ®ºóµÄ 7.0-CURRENT¡£ | |
700034 | March 19, 2007 | ÐÞ¸ÄÁË insmntque()¡¢ getnewvnode() ÒÔ¼° vfs_hash_insert() ¹¤×÷·½Ê½Ö®ºóµÄ 7.0-CURRENT¡£ | |
700035 | March 26, 2007 | Ôö¼Ó CPU ƵÂʱ䶯֪ͨ»úÖÆÖ®ºóµÄ 7.0-CURRENT¡£ | |
700036 | April 6, 2007 | ÒýÈëÁË ZFS Îļþϵͳ֮ºóµÄ 7.0-CURRENT¡£ | |
700037 | April 8, 2007 | ÐÂÔöÁËʵÏÖ Linux SCSI SG ֱͨÉ豸 API ×Ó¼¯µÄ CAM 'SG' É豸֮ºóµÄ 7.0-CURRENT¡£ | |
700038 | April 30, 2007 | ½« getenv(3)¡¢ putenv(3)¡¢ setenv(3) ºÍ unsetenv(3) ¸ÄΪ·ûºÏ POSIX Ö®ºóµÄ 7.0-CURRENT¡£ | |
700039 | May 1, 2007 | »ØÍËÁË 700038 Öеı䶯֮ºóµÄ 7.0-CURRENT¡£ | |
700040 | May 10, 2007 | ÔÚ libutil ÖÐÔö¼ÓÁË flopen(3) Ö®ºóµÄ 7.0-CURRENT¡£ | |
700041 | May 13, 2007 | ÆôÓÃÁË·ûºÅ°æ±¾£¬ ²¢½« libthr ¸ÄΪĬÈÏÏ߳̿âÖ®ºóµÄ 7.0-CURRENT¡£ | |
700042 | May 19, 2007 | ÒýÈëÁË gcc 4.2.0 Ö®ºóµÄ 7.0-CURRENT¡£ | |
700043 | May 21, 2007 | ½« RELENG_6 Ö®ºóδÐ޸Ĺý°æ±¾µÄ¹²Ïí¿â°æ±¾Ôö¼ÓÖ®ºóµÄ 7.0-CURRENT¡£ | |
700044 | June 7, 2007 | ½« vn_open()/VOP_OPEN() µÄ²ÎÊýÓÉÎļþÃèÊö·ûÊý×éϱê¸ÄΪ struct file * Ö®ºóµÄ 7.0-CURRENT¡£ | |
700045 | June 10, 2007 | ÐÞ¸Ä pam_nologin(8) ʹÆäÏò PAM ¿ò¼ÜÌṩÕʺŹÜÀí¹¦Äܶø·ÇÉí·ÝÑéÖ¤¹¦ÄÜÖ®ºóµÄ 7.0-CURRENT¡£ | |
700046 | June 11, 2007 | ¸üР802.11 ÎÞÏßÖ§³ÖÖ®ºóµÄ 7.0-CURRENT¡£ | |
700047 | June 11, 2007 | Ôö¼Ó TCP LRO ÍøÂç½Ó¿ÚÄÜÁ¦Ö®ºóµÄ 7.0-CURRENT¡£ | |
700048 | June 12, 2007 | ÔÚ IPv4 ÐÒéÕ»ÖмÓÈëÁË RFC 3678 API Ö§³ÖÖ®ºóµÄ 7.0-CURRENT¡£ ÏÈǰ IP_MULTICAST_IF ioctl µÄ RFC 1724 ÐÐΪ±»É¾È¥£» 0.0.0.0/8 ²»ÔÙÄܹ»ÓÃÓÚÖ¸¶¨½Ó¿ÚË÷Òýϱ꣬ ¶øÓ¦Ê¹Óà struct ipmreqn ´úÌæ¡£ | |
700049 | July 3, 2007 | ÒýÈë OpenBSD 4.1 µÄ pf Ö®ºóµÄ 7.0-CURRENT¡£ | |
(not changed) | Ϊ FAST_IPSEC Ôö¼Ó IPv6 Ö§³Ö£¬ ɾȥ KAME IPSEC£¬ ²¢½« FAST_IPSEC ¸üÃûΪ IPSEC Ö®ºóµÄ 7.0-CURRENT¡£ | (δ±ä¶¯) | |
700050 | July 4, 2007 | ½« setenv/putenv/µÈµÈµ÷Ó㬠´Ó´«Í³ BSD ¸ÄΪ POSIX ±ê×¼Ö®ºóµÄ 7.0-CURRENT¡£ | |
700051 | July 4, 2007 | Ôö¼ÓÐ嵀 mmap/lseek/µÈµÈÕâЩϵͳµ÷ÓÃÖ®ºóµÄ 7.0-CURRENT¡£ | |
700052 | July 6, 2007 | ½« I4B Í·ÎļþÒÆ¶¯µ½ include/i4b Ö®ºóµÄ 7.0-CURRENT¡£ | |
700053 | September 30, 2007 | Ôö¼ÓÁË PCI domain Ö§³ÖÖ®ºóµÄ 7.0-CURRENT¡£ | |
700054 | October 25, 2007 | MFC ÁË¿í×Ö·ûºÍµ¥×Ö½Ú×Ö·û ctype ·Ö²ðÖ®ºóµÄ 7.0-CURRENT¡£ | |
700055 | October 28, 2007 | 7.0-RELEASE£¬ ÒÔ¼° MFC Á˻ָ´¶Ô FreeBSD 4/5/6 °æ±¾µÄ PCIOCGETCONF¡¢ PCIOCREAD ºÍ PCIOCWRITE IOCTL ABI ÏòϼæÈÝÖ®ºóµÄ 7.0-CURRENT£¬ ÕâÒ»±ä¶¯µ¼Ö PCIOCGETCONF IOCTL µÄ ABI Ôٴη¢Éú±ä»¯¡£ | |
700100 | December 22, 2007 | 7.0-RELEASE Ö®ºóµÄ 7.0-STABLE | |
700101 | February 8, 2008 | MFC m_collapse() Ö®ºóµÄ 7.0-STABLE¡£ | |
700102 | March 30, 2008 | MFC kdb_enter_why() Ö®ºóµÄ 7.0-STABLE¡£ | |
700103 | April 10, 2008 | Ϊ flock ½á¹¹¼ÓÈë l_sysid Ö®ºóµÄ 7.0-STABLE¡£ | |
700104 | April 11, 2008 | ÔÚ procstat(1) MFC Ö®ºóµÄ 7.0-STABLE¡£ | |
700105 | April 11, 2008 | ÔÚ MFC umtx ÌØÐÔÖ®ºóµÄ 7.0-STABLE¡£ | |
700106 | April 15, 2008 | Ϊ psm(4) MFC write(2) Ö§³ÖÖ®ºóµÄ 7.0-STABLE¡£ | |
700107 | April 20, 2008 | Ϊ fcntl(2) MFC F_DUP2FD Ö®ºóµÄ 7.0-STABLE¡£ | |
700108 | May 5, 2008 | ¶Ô lockmgr(9) ×öÁËһЩÐÞ¸ÄÖ®ºóµÄ 7.0-STABLE£¬ ÔÚʹÓà lockmgr(9) ʱ±ØÐè°üº¬ sys/lock.h¡£ | |
700109 | May 27, 2008 | MFC ÁË memrchr º¯ÊýÖ®ºóµÄ 7.0-STABLE¡£ |
|
700110 | August 5, 2008 | MFC ÁËÄÚºË NFS locked ¿Í»§¶ËÖ®ºóµÄ 7.0-STABLE¡£ | |
700111 | August 20, 2008 | ¼ÓÈëÁ˶ÔÎïÀíÁ¬Ðø¾ÞÖ¡Ö§³ÖÖ®ºóµÄ 7.0-STABLE¡£ | |
700112 | August 27, 2008 | ÔÚ MFC ÄÚºË DTrace Ö§³ÖÖ®ºóµÄ 7.0-STABLE¡£ | |
701000 | November 25, 2008 | 7.1-RELEASE | |
701100 | November 25, 2008 | 7.1-RELEASE Ö®ºóµÄ 7.1-STABLE¡£ | |
701101 | January 10, 2009 | ºÏ²¢ÁË strndup Ö®ºóµÄ 7.1-STABLE¡£ |
|
701102 | January 17, 2009 | ¼ÓÈëÁË cpuctl(4) Ö§³ÖÖ®ºóµÄ 7.1-STABLE¡£ | |
701103 | February 7, 2009 | ºÏ²¢ÁË ¶à/ÎÞ-IPv4/v6 jail Ö®ºóµÄ 7.1-STABLE¡£ | |
701104 | February 14, 2009 | ÔÚ struct mount Öб£´æÁË¹ÒÆðÊôÖ÷£¬ ÒÔ¼°ÔÚ struct vfsops ÖÐÒýÈëÁË vfs_susp_clean ·½·¨Ö®ºóµÄ 7.1-STABLE¡£ | |
701105 | March 12, 2009 | ¶Ô kern.ipc.shmsegs sysctl ±äÁ¿²»¼æÈݵÄÐ޸ģ¬ ÒÔÔÊÐíÔÚ 64bit ¹¹¼ÜÉÏ·ÖÅä¸ü¶àµÄ SysV ¹²ÏíÄÚ´æ¶ÎÖ®ºóµÄ 7.1-STABLE¡£ | |
701106 | March 14, 2009 | ºÏ²¢ÁËÒ»¸ö¶Ô POSIX semaphore µÈ´ý²Ù×÷ÐÞÕýÖ®ºóµÄ 7.1-STABLE¡£ | |
702000 | April 15, 2009 | 7.2-RELEASE | |
702100 | April 15, 2009 | 7.2-RELEASE Ö®ºóµÄ 7.2-STABLE¡£ | |
702101 | May 15, 2009 | ichsmb(4) ¸ÄΪʹÓÃ×óÁÚ½Ó¸¨±àÖ·À´±£³ÖÓëÆäËü SMBus ¿ØÖÆÆ÷Çý¶¯Ò»ÖÂÐÔÖ®ºóµÄ 7.2-STABLE¡£ | |
702102 | May 28, 2009 | MFC ÁË fdopendir º¯ÊýÖ®ºóµÄ 7.2-STABLE¡£ |
|
702103 | June 06, 2009 | MFC ÁË PmcTools Ö®ºóµÄ 7.2-STABLE¡£ | |
702104 | July 14, 2009 | MFC ÁË closefrom ϵͳµ÷ÓÃÖ®ºóµÄ 7.2-STABLE¡£ |
|
702105 | July 31, 2009 | MFC ÁË SYSVIPC ABI ¸Ä¶¯Ö®ºóµÄ 7.2-STABLE¡£ | |
702106 | September 14, 2009 | MFC ÁË x86 PAT ÔöÇ¿£¬ ²¢ÐÂÔöÁË d_mmap_single() ÒÔ¼° scatter/gather ÐÍ VM ¶ÔÏóÀàÐÍÖ®ºóµÄ 7.2-STABLE¡£ | |
703000 | February 9, 2010 | 7.3-RELEASE | |
703100 | February 9, 2010 | 7.3-RELEASE Ö®ºóµÄ 7.3-STABLE¡£ | |
704000 | December 22, 2010 | 7.4-RELEASE | |
704100 | December 22, 2010 | 7.4-RELEASE Ö®ºóµÄ 7.4-STABLE¡£ | |
800000 | October 11, 2007 | 8.0-CURRENT¡£ ·Ö²ðÁË¿í×Ö·ûºÍµ¥×Ö½Ú×Ö·û ctype¡£ | |
800001 | October 16, 2007 | ÒýÈëÁË libpcap 0.9.8 ºÍ tcpdump 3.9.8 Ö®ºóµÄ 8.0-CURRENT¡£ | |
800002 | October 21, 2007 | ½« kthread_create() ϵÁк¯Êý¸ÄÃûΪ kproc_create() Ö®ºóµÄ 8.0-CURRENT¡£ | |
800003 | October 24, 2007 | »Ö¸´ÁË¶Ô FreeBSD 4/5/6 °æ±¾µÄ PCIOCGETCONF¡¢ PCIOCREAD ºÍ PCIOCWRITE IOCTL ABI ÏòϼæÈÝÖ®ºóµÄ 8.0-CURRENT£¬ ÕâÒ»±ä¶¯µ¼Ö PCIOCGETCONF IOCTL µÄ ABI Ôٴη¢Éú±ä»¯¡£ | |
800004 | November 12, 2007 | ½« agp(4) Çý¶¯´Ó src/sys/pci Ųµ½ src/sys/dev/agp Ö®ºóµÄ 8.0-CURRENT¡£ | |
800005 | December 4, 2007 | ÐÞ¸ÄÁË jumbo frame ·ÖÅäÆ÷Ö®ºóµÄ 8.0-CURRENT¡£ | |
800006 | December 7, 2007 | ÔÚ¸ø hwpmc(4) ¼ÓÈëÁË callgraph ²¶×½¹¦ÄܺóµÄ 8.0-CURRENT | |
800007 | December 25, 2007 | kdb_enter() Ôö¼Ó "why" ²ÎÊýÖ®ºóµÄ 8.0-CURRENT¡£ | |
800008 | December 28, 2007 | ÔÚÈ¥³ý LK_EXCLUPGRADE Ñ¡ÏîºóµÄ 8.0-CURRENT¡£ | |
800009 | January 9, 2008 | ÒýÈë lockmgr_disown(9) Ö®ºóµÄ 8.0-CURRENT¡£ | |
800010 | January 10, 2008 | ÐÞ¸Ä vn_lock(9) ÔÐÍÖ®ºóµÄ 8.0-CURRENT¡£ | |
800011 | January 13, 2008 | ÐÞ¸Ä VOP_LOCK(9) ºÍ VOP_UNLOCK(9) ÔÐÍÖ®ºóµÄ 8.0-CURRENT¡£ | |
800012 | January 19, 2008 | ÒýÈë
lockmgr_recursed(9)¡¢ BUF_RECURSED(9) ºÍ BUF_ISLOCKED(9) ²¢É¾³ýÁË
BUF_REFCNT() Ö®ºóµÄ 8.0-CURRENT¡£ |
|
800013 | January 23, 2008 | ÒýÈë ¡°ASCII¡± ±àÂëÖ®ºóµÄ 8.0-CURRENT¡£ | |
800014 | January 24, 2008 | ÐÞ¸Ä lockmgr(9) ²¢É¾³ýÁË
lockcount() ºÍ LOCKMGR_ASSERT() Ö®ºóµÄ 8.0-CURRENT¡£ |
|
800015 | January 26, 2008 | À©Õ¹ÁË fts(3) Êý¾Ý½á¹¹Ö®ºóµÄ 8.0-CURRENT¡£ | |
800016 | February 1, 2008 | Ϊ MEXTADD(9) Ôö¼ÓÁËÒ»¸ö²ÎÊýÖ®ºóµÄ 8.0-CURRENT¡£ | |
800017 | February 6, 2008 | Ϊ lockmgr(9) ÒýÈë LK_NODUP ºÍ LK_NOWITNESS Ñ¡ÏîºóµÄ 8.0-CURRENT¡£ | |
800018 | February 8, 2008 | ÒýÈë m_collapse Ö®ºóµÄ 8.0-CURRENT¡£ | |
800019 | February 9, 2008 | Ϊ sysctl ±äÁ¿ kern.proc.filedesc ¼ÓÈë µ±Ç°¹¤×÷Ŀ¼£¬root Ŀ¼ºÍ jail Ŀ¼֧³ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800020 | February 13, 2008 | ÒýÈë lockmgr_assert(9) Ö®ºóµÄ 8.0-CURRENT¡£ | |
800021 | February 15, 2008 | ÒýÈë lockmgr_args(9) ºÍÒÆ³ý LK_INTERNAL ±êÖ¾Ö®ºóµÄ 8.0-CURRENT¡£ | |
800022 | (backed out) | °Ñ BSD ar(1) ×÷ΪϵͳĬÈ쵀 ar Ö®ºóµÄ 8.0-CURRENT¡£ | |
800023 | February 25, 2008 | ÐÞ¸ÄÁË lockstatus(9) ºÍ VOP_ISLOCKED(9) ÔÐÍ£¬Ìرðʱȥµô struct thread ²ÎÊýÖ®ºóµÄ 8.0-CURRENT¡£ | |
800024 | March 1, 2008 | ¿³µôÁË lockwaiters ºÍ BUF_LOCKWAITERS º¯Êý£¬ brelvp µÄ·µ»ØÖµ´Ó
void ÐÞ¸Ä³É int£¬²¢ÒýÈë lockinit(9) бêÖ¾Ö®ºóµÄ
8.0-CURRENT¡£ |
|
800025 | March 8, 2008 | Ϊ fcntl(2) ÒýÈë F_DUP2FD Ö®ºóµÄ 8.0-CURRENT¡£ | |
800026 | March 12, 2008 | ÐÞ¸ÄÁË cv_broadcastpri ÓÅÏÈȨ²ÎÊýÖ®ºóµÄ 8.0-CURRENT£¬±ÈÈç 0 ±íʾÎÞÓÅÏÈȨ¡£ | |
800027 | March 24, 2008 | ÐÞ¸ÄÁË bpf ¼à²â ABI, ¼ÓÈëÁË zerocopy bpf buffer Ö®ºóµÄ 8.0-CURRENT¡£ | |
800028 | March 26, 2008 | Ϊ flock ½á¹¹Ôö¼ÓÁË l_sysid Ö®ºóµÄ 8.0-CURRENT¡£ | |
800029 | March 28, 2008 | ÖØÐÂÕûºÏÁË BUF_LOCKWAITERS º¯Êý²¢¼ÓÈë lockmgr_waiters(9) Ö®ºóµÄ
8.0-CURRENT¡£ |
|
800030 | April 1, 2008 | ÒýÈë rw_try_rlock(9) ºÍ rw_try_wlock(9) Ö®ºóµÄ 8.0-CURRENT¡£ | |
800031 | April 6, 2008 | ÒýÈë lockmgr_rw ºÍ lockmgr_args_rw º¯ÊýÖ®ºóµÄ 8.0-CURRENT¡£ |
|
800032 | April 8, 2008 | ʵÏÖÁË openat ºÍÏà¹ØµÄϵͳµ÷Óã¬Îª open(2) ÒýÈëÁË O_EXEC ±êÖ¾£¬ºÍÌṩÁËÏàÓ¦µÄ linux ¼æÈݵÄϵͳµ÷ÓÃÖ®ºóµÄ 8.0-CURRENT¡£ | |
800033 | April 8, 2008 | Ϊ psm(4) Ôö¼ÓÁËÔÉúµÄ write(2) Ö§³ÖÖ®ºóµÄ 8.0-CURRENT¡£ ÏÖÔÚÈÎÒâÃüÁî¿ÉдÈë /dev/psm%d ²¢¶Á³ö״̬¡£ | |
800034 | April 10, 2008 | ÒýÈë memrchr º¯ÊýÖ®ºóµÄ 8.0-CURRENT¡£ |
|
800035 | April 16, 2008 | ÒýÈë fdopendir º¯ÊýÖ®ºóµÄ 8.0-CURRENT |
|
800036 | April 20, 2008 | ÎÞÏß²¿·ÖתÏò multi-bss (Ò²½Ð×ö vaps) Ö§³ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800037 | May 9, 2008 | ¼ÓÈë¶à·ÓɱíÖ§³Ö (Ò²¾ÍÊÇ setfib(1)¡¢ stfib(2)£© ºóµÄ 8.0-CURRENT¡£ | |
800038 | May 26, 2008 | ɾȥÁË netatm ºÍ ISDN4BSD ºóµÄ 8.0-CURRENT¡£ | |
800039 | June 14, 2008 | ÒÆ³ý sgtty Ö®ºóµÄ 8.0-CURRENT¡£ | |
800040 | June 26, 2008 | Ôö¼ÓÁËÄں˼¶ NFS lockd ¿Í»§¶ËµÄ 8.0-CURRENT¡£ | |
800041 | July 22, 2008 | Ôö¼ÓÁË arc4random_buf(3) ºÍ arc4random_uniform(3) Ö®ºóµÄ 8.0-CURRENT¡£ | |
800042 | August 8, 2008 | Ôö¼ÓÁË cpuctl(4) Ö®ºóµÄ 8.0-CURRENT¡£ | |
800043 | August 13, 2008 | ÐÞ¸Ä bpf(4) ʹÓõ¥Ò»µÄÉ豸½Úµã¶ø²»Êǿˡ֮ºóµÄ 8.0-CURRENT¡£ | |
800044 | August 17, 2008 | ÔÚÌá½»ÁË vimage ÏîÄ¿µÚÒ»²½Ö®ºóµÄ 8.0-CURRENT¡£°ÑÈ«¾Ö±äÁ¿ÖØÃüÃûΪÐéÄ⻯´ø V_ ǰ׺²¢ÓúêÓ³Éäµ½ÔÀ´µÄÈ«¾ÖÃû³Æ¡£ | |
800045 | August 20, 2008 | ÒýÈë MPSAFE TTY ²ãÖ®ºóµÄ 8.0-CURRENT£¬ °üÀ¨¶ÔÏà¹ØÇý¶¯ºÍ¹¤¾ßµÄÐ޸ġ£ | |
800046 | September 8, 2008 | ½« amd64 ¼Ü¹¹ÉÏ GDT ²ð·Öµ½²»Í¬ CPU Ö®ºóµÄ 8.0-CURRENT¡£ | |
800047 | September 10, 2008 | ɾȥÁË VSVTX¡¢ VSGID ºÍ VSUID Ö®ºóµÄ 8.0-CURRENT¡£ | |
800048 | September 16, 2008 | ½«ÄÚºËÖÐ NFS ¹Ò½Ó²¿·ÖµÄ´úÂë¸ÄΪÄܹ»Í¨¹ý nmount() iovec£¬ ¶ø²»ÔÙÊÇ´óµÄ nfs_args ½á¹¹Ìå×÷Ϊ²ÎÊýÖ®ºóµÄ 8.0-CURRENT¡£ | |
800049 | September 17, 2008 | ɾȥÁË suser(9) ºÍ suser_cred(9) Ö®ºóµÄ 8.0-CURRENT¡£ | |
800050 | October 20, 2008 | ÐÞ¸ÄÁË»º³å´æ´¢Æ÷ API Ö®ºóµÄ 8.0-CURRENT¡£ | |
800051 | October 23, 2008 | ɾȥÁË MALLOC(9) ºÍ FREE(9) ºêÖ®ºóµÄ 8.0-CURRENT¡£ | |
800052 | October 28, 2008 | ÒýÈëÁË accmode_t ºÍÖØÐÂÃüÃû VOP_ACCES 'a_mode' Ϊ a_accmode Ö®ºóµÄ 8.0-CURRENT¡£ | |
800053 | November 2, 2008 | ÐÞ¸ÄÁË vfs_busy(9) ÔÐͲ¢ÒýÈëÁË MBF_NOWAIT ºÍ MBF_MNTLSTLOCK ±êÖ¾Ö®ºóµÄ 8.0-CURRENT¡£ | |
800054 | November 22, 2008 | Ôö¼ÓÁË buf_ring¡¢ ÄÚ´æÕ¤ÒÔ¼° ifnet º¯Êý£¬ ÒÔ·½±ã׫д֧³Ö¶àÓ²¼þ´«Êä¶ÓÁеÄÇý¶¯£¬ ÒÔ¼°ÎÞËø»·Ðλº³åʵÏÖµÄÇý¶¯³ÌÐò£¬ ²¢¸ü¸ßЧµØ¹ÜÀí°ü¶ÓÁй¦ÄÜÖ®ºóµÄ 8.0-CURRENT¡£ | |
800055 | November 27, 2008 | ÒýÈëÁË hwpmc(4) ¶ÔÓÚ Intel" Core£¬Core2 ºÍ Atom µÄÖ§³ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800056 | November 29, 2008 | ÒýÈëÁË multi-/no-IPv4/v6 jail Ö®ºóµÄ 8.0-CURRENT¡£ | |
800057 | December 1, 2008 | ½« ath hal ¸ÄΪʹÓÃÔ´´úÂëÖ®ºóµÄ 8.0-CURRENT¡£ | |
800058 | December 12, 2008 | ÒýÈëÁË VOP_VPTOCNP ²Ù×÷Ö®ºóµÄ 8.0-CURRENT¡£ | |
800059 | December 15, 2008 | ÒýÈëÁËÐ嵀 arp-v2 ÖØÐ´Ö®ºóµÄ 8.0-CURRENT¡£ | |
800060 | December 19, 2008 | ÒýÈëÁË makefs Ö®ºóµÄ 8.0-CURRENT¡£ | |
800061 | January 15, 2009 | ÒýÈëÁË TCP Appropriate Byte Counting Ö®ºóµÄ 8.0-CURRENT¡£ | |
800062 | January 28, 2009 | ɾȥÁË minor()¡¢ minor2unit()¡¢ unit2minor() µÈÖ®ºóµÄ 8.0-CURRENT¡£ | |
800063 | February 18, 2009 | ÔÚ GENERIC ÅäÖÃÖиÄΪʹÓà USB2 Õ»Ö®ºóµÄ 8.0-CURRENT£» Õâ¸öÊýֵͬʱҲ±êÖ¾ÐÂÔöÁË fdevname(3)¡£ | |
800064 | February 23, 2009 | ½« USB2 Õ»ÒÆ¶¯²¢Ìæ»» dev/usb Ö®ºóµÄ 8.0-CURRENT¡£ | |
800065 | February 26, 2009 | ÔÚ¶Ô libmp(3) ÖÐËùÓк¯Êý¸üÃûÖ®ºóµÄ 8.0-CURRENT¡£ | |
800066 | February 27, 2009 | ¸ü¸ÄÁË USB devfs ¹ÜÀíºÍ²¼¾ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800067 | February 28, 2009 | ¼ÓÈëÁË getdelim()£¬ getline()£¬ stpncpy()£¬ strnlen()£¬ wcsnlen()£¬ wcscasecmp()£¬ ºÍ wcsncasecmp() Ö®ºóµÄ 8.0-CURRENT¡£ | |
800068 | March 2, 2009 | ÔÚ usbhub devclass ¸üÃûΪ uhub Ö®ºóµÄ 8.0-CURRENT¡£ | |
800069 | March 9, 2009 | ÖØÃüÃû libusb20.so.1 Ϊ libusb.so.1 Ö®ºóµÄ 8.0-CURRENT¡£ | |
800070 | March 9, 2009 | ºÏ²¢ IGMPv3 ºÍ Source-Specific Multicast (SSM) Èë IPv4 Õ»Ö®ºóµÄ 8.0-CURRENT¡£ | |
800071 | March 14, 2009 | Ϊ gcc ´òÉÏÁËÔÚ c99 ºÍ gnu99 ģʽÖÐʹÓà C99 inline ÓïÒå²¹¶¡Ö®ºóµÄ 8.0-CURRENT¡£ | |
800072 | March 15, 2009 | ÒÆ³ýÁË IFF_NEEDSGIANT ±êÖ¾; ²»ÔÙÖ§³Ö·ÇḬ̈߳²È«µÄÍøÂçÉ豸Çý¶¯Ö®ºóµÄ 8.0-CURRENT¡£ | |
800073 | March 18, 2009 | ʵÏÖÁË rpath ¶¯Ì¬×Ö·ûÌæ»»Ö®ºóµÄ 8.0-CURRENT. | |
800074 | March 24, 2009 | ÒýÈëÁË tcpdump 4.0.0 ºÍ libpcap 1.0.0 Ö®ºóµÄ 8.0-CURRENT¡£ | |
800075 | April 6, 2009 | ÐÞ¸ÄÁË structs vnet_net¡¢ vnet_inet ºÍ vnet_ipfw ½á¹¹²¼¾ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800076 | April 9, 2009 | Ϊ dummynet ÐÂÔöÁËÑÓ³ÙÆÀ¹À¹¤¾ßÖ®ºóµÄ 8.0-CURRENT¡£ | |
800077 | April 14, 2009 | ɾȥÁË VOP_LEASE() ºÍ vop_vector.vop_lease Ö®ºóµÄ 8.0-CURRENT | |
800078 | April 15, 2009 | ÔÚ struct rt_metrics ºÍ struct rt_metrics_lite ÖÐÌí¼ÓÁË rt_weight ×ֶΣ¬ µ¼ÖÂÆä½á¹¹·¢Éú±ä»¯Ö®ºóµÄ 8.0-CURRENT¡£ ´Ëºó RTM_VERSION Ôö¼Ó£¬ µ«ÓÖ»ØÍËÁË¡£ | |
800079 | April 15, 2009 | ÔÚ struct route ºÍ struct_in6 ÖÐÌí¼ÓÁË struct llentry Ö¸ÕëÖ®ºóµÄ 8.0-CURRENT¡£ | |
800080 | April 15, 2009 | ¸Ä±äÁË struct inpcb ²¼¾ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800081 | April 19, 2009 | ¸Ä±äÁË malloc_type ²¼¾ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800082 | April 21, 2009 | ¸Ä±äÁË struct ifnet ²¼¾Ö£¬ ²¢Ôö¼ÓÁË if_ref() ºÍ if_rele() ÒýÓüÆÊýά»¤¹¦ÄÜÖ®ºóµÄ 8.0-CURRENT¡£ | |
800083 | April 22, 2009 | ʵÏÖÁ˵ײãÀ¶ÑÀ HCI API Ö®ºóµÄ 8.0-CURRENT¡£ | |
800084 | April 29, 2009 | ÐÞ¸ÄÁË IPv6 SSM ºÍ MLDv2 Ö®ºóµÄ 8.0-CURRENT¡£ | |
800085 | April 30, 2009 | ÆôÓÃÁ˰üÀ¨Ò»¸ö»îÔ¾Ó³ÏñµÄ VIMAGE ÄÚºËÖ§³ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800086 | May 8, 2009 | Ϊ patch(1) Ôö¼ÓÈÎÒⳤÊäÈëÐÐÖ§³ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800087 | May 11, 2009 | ÐÞ¸ÄÁËһЩ VFS KPI Ö®ºóµÄ 8.0-CURRENT¡£ VFS µÄ FSD ²¿·ÖÖÐɾȥÁËÏ̲߳ÎÊý¡£
VFS_* º¯Êý²¢²»ÐèÒªÕâЩÉÏÏÂÎÄÐÅÏ¢£¬ ÒòΪËü×ÜÊÇÓë
curthread Ïà¹Ø¡£ ÔÚÄ³Ð©ÌØÊâÇé¿öÖУ¬
Ôò±£ÁôÁËÔÏȵÄÐÐΪ¡£ |
|
800088 | May 20, 2009 | ¶Ô net80211 ¼àÊÓģʽ½øÐе÷ÕûÖ®ºóµÄ 8.0-CURRENT¡£ | |
800089 | May 23, 2009 | Ôö¼ÓÁË UDP ¿ØÖÆ¿éÖ§³ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800090 | May 23, 2009 | ½«ÍøÂç½Ó¿Ú¿Ë¡ÐéÄ⻯֮ºóµÄ 8.0-CURRENT¡£ | |
800091 | May 27, 2009 | Ôö¼ÓÁ˲ã´Îʽ jail ²¢È¡ÏûÈ«¾Ö securelevel Ö®ºóµÄ 8.0-CURRENT¡£ | |
800092 | May 29, 2009 | ÐÞ¸ÄÁË sx_init_flags() KPI Ö®ºóµÄ 8.0-CURRENT¡£
SX_ADAPTIVESPIN ÍËÒÛ£¬ ¶øÐÂÔöµÄ SX_NOADAPTIVE ±êÖ¾Ôò±í´ïÏà·´ÓïÒå¡£ |
|
800093 | May 29, 2009 | Ϊ struct mount Ôö¼Ó mnt_xflag Ö®ºóµÄ 8.0-CURRENT¡£ | |
800094 | May 30, 2009 | ÐÂÔöÁË VOP_ACCESSX(9) Ö®ºóµÄ 8.0-CURRENT¡£ | |
800095 | May 30, 2009 | µ÷ÕûÂÖѯ KPI (polling KPI) Ö®ºóµÄ 8.0-CURRENT¡£ ÂÖѯ´¦Àí³ÌÐò»á·µ»Ø´¦Àí¹ýµÄ°üµÄÊýÁ¿¡£
ÐÂÔöµÄ IFCAP_POLLING_NOCOUNT Ôò±íʾ·µ»ØÖµ²»ÖØÒª£¬
²¢Ìø¹ý¼ÆÊý¡£ |
|
800096 | June 1, 2009 | ¶ÔÐ嵀 netisr ½øÐÐÁ˸Ľø£¬ ²¢µ÷ÕûÁ˱£´æºÍ´æÈ¡ FIB ·½Ê½Ö®ºóµÄ 8.0-CURRENT¡£ | |
800097 | June 8, 2009 | ÒýÈëÁË vnet Îö¹¹¹Ò¹³ºÍÏà¹Ø»ù´¡Éèʩ֮ºóµÄ 8.0-CURRENT¡£ | |
800097 | June 11, 2009 | ÒýÈëÁË netgraph Êä³öµ½ÊäÈë·¾¶µ÷Óüì²âºÍÅŶӻúÖÆ£¬ ²¢µ÷ÕûÁË struct thread ²¼¾ÖÖ®ºóµÄ 8.0-CURRENT¡£ | |
800098 | June 14, 2009 | ÒýÈëÁË OpenSSL 0.9.8k Ö®ºóµÄ 8.0-CURRENT¡£ | |
800099 | June 22, 2009 | ¸üÐÂÁË NGROUPS ²¢½«Â·ÓÉÐéÄ⻯Ųµ½Ëü×Ô¼ºµÄ VImage Ä£¿éÖ®ºóµÄ 8.0-CURRENT¡£ | |
800100 | June 24, 2009 | ÐÞ¸ÄÁË SYSVIPC ABI Ö®ºóµÄ 8.0-CURRENT¡£ | |
800101 | June 29, 2009 | ɾȥÁËÓëÍøÂç½Ó¿ÚÒ»Ò»¶ÔÓ¦µÄ /dev/net/* ×Ö·ûÉ豸֮ºóµÄ 8.0-CURRENT¡£ | |
800102 | July 12, 2009 | ÔÚ struct sackhint¡¢ struct tcpcb ÒÔ¼° struct tcpstat ÉÏÔö¼ÓÕ¼Î»ÔªËØÖ®ºóµÄ 8.0-CURRENT¡£ | |
800103 | July 13, 2009 | ½« TOE Çý¶¯½Ó¿ÚÖÐµÄ struct tcpopt Ìæ»»Îª TCP syncache ÖÐµÄ struct toeopt Ö®ºóµÄ 8.0-CURRENT¡£ | |
800104 | July 14, 2009 | ÐÂÔöÁË»ùÓÚ linker-set µÄ per-vnet ·ÖÅäÆ÷Ö®ºóµÄ 8.0-CURRENT¡£ | |
800105 | July 19, 2009 | µÝÔöÁËËùÓÐδʹÓ÷ûºÅ°æ±¾µÄ¶¯Ì¬Á¬½Ó¿â°æ±¾Ö®ºóµÄ 8.0-CURRENT¡£ | |
800106 | July 24, 2009 | ÒýÈë VM ¶ÔÏóÀàÐÍ OBJT_SG Ö®ºóµÄ 8.0-CURRENT¡£ | |
800107 | August 2, 2009 | ͨ¹ý¼ÓÈë newbus sxlock ʹ newbus ×Óϵͳ²»ÔÙʹÓà Giant£¬ ÒÔ¼° 8.0-RELEASE¡£ | |
800108 | November 21, 2009 | ʵÏÖÁË EVFILT_USER kevent ¹ýÂËÆ÷Ö®ºóµÄ 8.0-STABLE¡£ | |
800500 | January 7, 2010 | Áî pkg_add -r ʹÓà packages-8-stable µÄ __FreeBSD_version °æ±¾±ä»¯µÄ 8.0-STABLE¡£ | |
800501 | January 24, 2010 | µ÷ÕûÁË scandir(3) ºÍ alphasort(3) º¯ÊýÔÐÍ£¬ ʹÆä·ûºÏ SUSv4 Ö®ºóµÄ 8.0-STABLE¡£ |
|
800502 | January 31, 2010 | ÐÂÔöÁË sigpause(3) Ö®ºóµÄ 8.0-STABLE¡£ |
|
800503 | February 25, 2010 | ÐÂÔöÁËÓÃÓÚ¹ÜÀíÍøÂç½Ó¿Ú˵Ã÷µÄ SIOCGIFDESCR ºÍ SIOCSIFDESCR ioctl Ö®ºóµÄ 8.0-STABLE¡£ Õâ×é½Ó¿ÚÊܵ½ÁË OpenBSD µÄÆô·¢¡£ | |
800504 | March 1, 2010 | MFC ÁË x86emu£¬ À´×Ô OpenBSD µÄ x86 CPU ʵģʽģÄâÆ÷Ö®ºóµÄ 8.0-STABLE¡£ | |
800505 | May 18, 2010 | MFC ÁËÌí¼Ó liblzma, xz, xzdec ÒÔ¼° lzmainfo Ö®ºóµÄ 8.0-STABLE¡£ | |
801000 | June 14, 2010 | 8.1-RELEASE | |
801500 | June 14, 2010 | 8.1-RELEASE Ö®ºóµÄ 8.1-STABLE¡£ | |
801501 | November 3, 2010 | ÓÃÓÚ PL_FLAG_SCE/SCX/EXEC/SI µÄ struct sysentvec µÄ KBI ÒÔ¼° ÓÃÓÚ ptrace(PT_LWPINFO) µÄ pl_siginfo µÄ KBI ¸Ä±äÖ®ºóµÄ 8.1-STABLE¡£ | |
802000 | December 22, 2010 | 8.2-RELEASE | |
802500 | December 22, 2010 | 8.2-RELEASE Ö®ºóµÄ 8.2-STABLE¡£ | |
900000 | August 22, 2009 | 9.0-CURRENT¡£ | |
900001 | September 8, 2009 | ÒýÈëÁË x86emu£¬ À´×Ô OpenBSD µÄ x86 CPU ʵģʽģÄâÆ÷Ö®ºóµÄ 9.0-CURRENT¡£ | |
900002 | September 23, 2009 | ʵÏÖÁË EVFILT_USER kevent ¹ýÂËÆ÷Ö®ºóµÄ 9.0-CURRENT¡£ | |
900003 | December 2, 2009 | ÐÂÔöÁË sigpause(3) ÒÔ¼° csu µÄ PIE Ö§³ÖÖ®ºóµÄ
9.0-CURRENT¡£ |
|
900004 | December 6, 2009 | ÐÂÔöÁË libulog ¼°Æä libutempter ¼æÈݽӿÚÖ®ºóµÄ 9.0-CURRENT¡£ | |
900005 | December 12, 2009 | ÐÂÔöÁËÓÃÓÚ²éѯָ¶¨ÐÝÃß¶ÓÁÐÉϵȴýÕßÊýÁ¿µÄ sleepq_sleepcnt() º¯ÊýÖ®ºóµÄ 9.0-CURRENT¡£ |
|
900006 | January 4, 2010 | µ÷ÕûÁË scandir(3) ºÍ alphasort(3) º¯ÊýÔÐÍ£¬ ʹÆä·ûºÏ SUSv4 Ö®ºóµÄ 9.0-CURRENT¡£ |
|
900007 | January 13, 2010 | ɾȥÁË utmp(5) ²¢Ôö¼ÓÁË utmpx (²ÎÔÄ getutxent(3) )
ÒÔ¸ÄÉÆÓû§µÇ¼ÈÕÖ¾ºÍϵͳʼþÖ§³ÖÖ®ºóµÄ 9.0-CURRENT¡£ |
|
900008 | January 20, 2010 | 9.0-CURRENT ÒýÈëÁË BSD ÊÚȨµÄ bc/dc ²¢½« GNU bc/dc ±êעΪ¹ýʱ֮ºóµÄ 9.0-CURRENT¡£ | |
900009 | January 26, 2010 | ÐÂÔöÁËÓÃÓÚ¹ÜÀíÍøÂç½Ó¿Ú˵Ã÷µÄ SIOCGIFDESCR ºÍ SIOCSIFDESCR ioctl Ö®ºóµÄ 9.0-CURRENT¡£ Õâ×é½Ó¿ÚÊܵ½ÁË OpenBSD µÄÆô·¢¡£ | |
900010 | March 22, 2010 | ÒýÈëÁË zlib 1.2.4 Ö®ºóµÄ 9.0-CURRENT¡£ | |
900011 | April 24, 2010 | Ìí¼ÓÁË soft-updates ÈÕÖ¾¹¦ÄÜÖ®ºóµÄ 9.0-CURRENT¡£ | |
900012 | May 10, 2010 | Ìí¼ÓÁË liblzma, xz, xzdec ÒÔ¼° lzmainfo Ö®ºóµÄ 9.0-CURRENT¡£ | |
900013 | May 24, 2010 | Ìí¼ÓÁËÕë¶Ô linux(4) µÄ USB ÐÞÕýÖ®ºóµÄ 9.0-CURRENT¡£ | |
900014 | Jun 10, 2010 | Ìí¼ÓÁË Clang Ö®ºóµÄ 9.0-CURRENT¡£ | |
900015 | July 22, 2010 | ÒýÈëÁË BSD grep Ö®ºóµÄ 9.0-CURRENT¡£ | |
900016 | July 28, 2010 | ÔÚ struct malloc_type_internal ÖмÓÈëÁË mti_zone Ö®ºóµÄ 9.0-CURRENT¡£ | |
900017 | August 23, 2010 | ĬÈÏ grep ¸Ä»ØÊ¹Óà GNU grep ²¢Ôö¼Ó WITH_BSD_GREP ¿ª¹ØÖ®ºóµÄ 9.0-CURRENT¡£ | |
900018 | August 24, 2010 | ½« pthread_kill(3) ²úÉúµÄÐźÅÔÚ si_code ÖиÄΪʹÓÃ
SI_LWP ±ê¼ÇÖ®ºóµÄ 9.0-CURRENT¡£ ֮ǰ£¬ si_code ¶ÔÓ¦µÄ±ê־Ϊ SI_USER¡£ |
|
900019 | August 28, 2010 | Ϊ mmap(2) ÐÂÔöÁË MAP_PREFAULT_READ ±êÖ¾Ö®ºóµÄ
9.0-CURRENT¡£ |
|
900020 | September 9, 2010 | Ϊ sbuf Ôö¼ÓÁË drain ¹¦Äܲ¢¸Ä±äÁË struct sbuf ²¼¾ÖÖ®ºóµÄ 9.0-CURRENT¡£ | |
900021 | September 13, 2010 | DTrace Ôö¼ÓÓû§Ì¬¸ú×ÙÖ§³ÖÖ®ºóµÄ 9.0-CURRENT¡£ | |
900022 | October 2, 2010 | ÐÂÔöÁË BSDL man ¹¤¾ß£¬ ²¢ÌÔÌ GNU/GPL man ¹¤¾ßÖ®ºóµÄ 9.0-CURRENT¡£ | |
900023 | October 11, 2010 | ÒýÈë 20101010 git ¿ìÕÕ°æ±¾ xz Ö®ºóµÄ 9.0-CURRENT¡£ | |
900024 | November 11, 2010 | ½« libgcc.a Ìæ»»Îª libcompiler_rt.a Ö®ºóµÄ 9.0-CURRENT¡£ | |
900025 | November 12, 2010 | ÒýÈëÁËÄ£¿é»¯ÓµÈû¿ØÖÆÖ®ºóµÄ 9.0-CURRENT¡£ | |
900026 | November 30, 2010 | ÒýÈë´®ÐйÜÀíÐÒé (SMP) ֱͨ£¬ ÒÔ¼°ÓëÖ®¶ÔÓ¦µÄ CAM CCB XPT_SMP_IO ºÍ XPT_GDEV_ADVINFO Ö®ºóµÄ 9.0-CURRENT¡£ | |
900027 | December 5, 2010 | ÔÚ libm ÖÐÔö¼Ó log2 Ö®ºóµÄ 9.0-CURRENT¡£ |
×¢Òâ: Çë×¢Ò⣬ 2.2.5-RELEASE Ö®ºóÓÐÒ»¶Îʱ¼äµÄ 2.2-STABLE »áÉù³Æ×Ô¼ºÊÇ ¡°2.2.5-STABLE¡±¡£ ÕâÖÖģʽµÄ°æ±¾ºÅ±íʾµÄÊÇÄêÔ¡£ µ«Ëæºó£¬ ÎÒÃǾö¶¨£¬ ´Ó 2.2 ¿ªÊ¼£¬ ½«Ëü¸ÄΪ¸üΪ¼ò½àµÄ Ö÷/´Î °æ±¾ºÅµÄÐÎʽÀ´ÃüÃû°æ±¾¡£ ÕâÊÇÒòΪ²¢ÐеØÔÚ¶à¸ö·ÖÖ§ÉϽøÐпª·¢£¬ ʹµÃͨ¹ýʵ¼ÊµÄ·¢²¼ÈÕÆÚÀ´Çø·Ö²»Í¬µÄ°æ±¾±äµÃ²»ÔÙÏÖʵ¡£ Èç¹ûÄúÕýÔÚ×öÐ嵀 port£¬ Ó¦¸Ã²»ÐèÒªµ£ÐĽÏÔçµÄ -CURRENT£» ÔÚ´ËÁгö½ö¹©²Î¿¼¡£
¡¡¡¡²»ÒªÔÚ .include <bsd.port.mk> ÕâÐÐÖ®ºóÔö¼ÓÈκÎÄÚÈÝ¡£ Õâͨ³£¿ÉÒÔͨ¹ýÔÚÄúµÄ Makefile ÖмäµÄij´¦ÒýÓà bsd.port.pre.mk£¬ ²¢ÔÚ½áβµÄµØ·½ÒýÓà bsd.port.post.mk À´±ÜÃâ¡£
×¢Òâ: Ö»Äܹ»²ÉÓà bsd.port.pre.mk/bsd.port.post.mk »ò bsd.port.mk Á½ÖÖд·¨Ö®Ò»£» ÈκÎʱºò¶¼²»ÒªÍ¬Ê±Ê¹ÓÃÁ½ÖÖд·¨¡£
¡¡¡¡bsd.port.pre.mk Ö»¶¨ÒåÁ˺ÜÉٵıäÁ¿£¬ ËüÃÇ¿ÉÒÔÔÚ Makefile ÖÐÓÃÓÚ½øÐÐһЩ²âÊÔ£¬ ¶ø bsd.port.post.mk Ôò¶¨ÒåÁËËùÓÐÆäËüµÄ±äÁ¿¡£
¡¡¡¡ÏÂÃæÊÇһЩÓÉ bsd.port.pre.mk ¶¨ÒåµÄ±È½ÏÖØÒªµÄ±äÁ¿ (Õâ²¢²»ÊÇÒ»·ÝÍêÕûµÄÁÐ±í£¬ Äú¿ÉÒÔÔĶÁ bsd.port.mk ÒÔ»ñµÃÈ«²¿±äÁ¿µÄÃû×Ö)¡£
±äÁ¿ | ÃèÊö |
---|---|
ARCH | ÓÉ uname -m Êä³öµÃµ½µÄÓ²¼þ¼Ü¹¹µÄÃû×Ö (ÀýÈ磬 i386) |
OPSYS | ÓÉ uname -s ·µ»ØµÄ²Ù×÷ϵͳÀàÐÍ (ÀýÈ磬 FreeBSD) |
OSREL | ²Ù×÷ϵͳµÄ°æ±¾ºÅ (ÀýÈç 2.1.5 »ò 2.2.7) |
OSVERSION | ²Ù×÷ϵͳµÄ°æ±¾ºÅµÄÊýÖµÐÎʽ£» ËüµÈÓÚ __FreeBSD_version¡£ |
PORTOBJFORMAT | ϵͳĬÈϵÄÖ´ÐÐÎļþ¸ñʽ (elf »ò aout£» Çë×¢Ò⣬ ¡°ÏÖ´úµÄ¡± FreeBSD °æ±¾ÖУ¬ aout ÒÑÔÚÌÔÌÖ®ÁС£) |
LOCALBASE | ¡°local¡± Ŀ¼µÄ¸ù (ÀýÈ磬 /usr/local/) |
PREFIX | port Ó¦±»°²×°µ½ÄÄÀï (²Î¼û ¹ØÓÚ PREFIX µÄ¸ü¶à˵Ã÷)¡£ |
×¢Òâ: Èç¹ûÄúÐèÒª¶¨Òå USE_IMAKE£¬ USE_X_PREFIX£¬ »ò MASTERDIR ÕâЩ±äÁ¿£¬ ÔòÓ¦ÔÚÒýÓà bsd.port.pre.mk ֮ǰÍê³É¡£
¡¡¡¡ÏÂÃæÊÇһЩÔÚÒýÓà bsd.port.pre.mk Ö®ºó¿ÉÒÔ½øÐеÄÅжϣº
# Èç¹û perl5 ÒѾÔÚϵͳÖÐÌṩ£¬ Ôò²»±Ø±àÒë lang/perl5 .if ${OSVERSION} > 300003 BROKEN= perl is in system .endif # ELF ֻʹÓÃÒ»¸ö shlib °æ±¾ .if ${PORTOBJFORMAT} == "elf" TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR} .else TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR} .endif # Èí¼þ»á×Ô¶¯Îª ELF ´´½¨·ûºÅÁ´½Ó£¬ µ« a.out ÔòÐèÒªÁíÐд´½¨ post-install: .if ${PORTOBJFORMAT} == "aout" ${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so .endif
¡¡¡¡Äú»¹¼ÇµÃÓ¦¸ÃÔÚ BROKEN= ºÍ TCL_LIB_FILE= ºóÃæÊ¹ÓÃÖÆ±í·û£¬ ¶ø²»Êǿոñ£¬ ¶Ô°É£¿ :-)
exec
Óï¾ä¡¡¡¡Èç¹û port °²×°ÁËÓÃÒÔÆô¶¯ÆäËû³ÌÐòµÄ½Å±¾£¬
²¢ÇÒÔËÐÐÆäËû³ÌÐòÊÇÕâЩ½Å±¾µÄ×îºóÒ»Ïî²Ù×÷£¬ ÇëÎñ±ØÊ¹Óà exec
Óï¾äÀ´ÔËÐÐÕâЩ³ÌÐò£¬ ÀýÈ磺
#!/bin/sh exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"
¡¡¡¡Ê¹Óà exec
Óï¾ä±íʾִÐÐÖ¸¶¨µÄ³ÌÐòÀ´È¡´ú shell ½ø³Ì¡£
Èç¹ûÊ¡ÂÔÁË exec
£¬ Ôò shell ½ø³Ì»áÒ»Ö±ÔÚÄÚ´æÖУ¬
´Ó¶ø²»±ØÒªµØÏûºÄÁ˶îÍâµÄϵͳ×ÊÔ´¡£
¡¡¡¡ÈκΠMakefile ¶¼Ó¦¸Ã¼òµ¥²¢ÀíÐÔµØÐÐÊ¡£ Èç¹ûÄúÄÜÈÃÆäÖеÄÌõÄ¿¸üΪ¼òµ¥ºÍÒ×¶Á£¬ Ò»¶¨ÒªÕâÑù×ö¡£ ÀýÈ磬 ʹÓà make ÌṩµÄ .if ½á¹¹£¬ ¶ø²»ÒªÊ¹Óà shell µÄ if£¬ Ö»ÒªÄÜÖØ¶¨Òå EXTRACT* ¾Í²»ÒªÖØÔØ do-extract£¬ ¾¡Á¿Ê¹Óà GNU_CONFIGURE ¶ø²»ÊÇ CONFIGURE_ARGS += --prefix=${PREFIX}¡£
¡¡¡¡Èç¹ûÄúÔÚ³¢ÊÔ×öʲôÊÂÇéµÄʱºò·¢ÏÖ²»µÃ²»Ð´´óÁ¿µÄ´úÂ룬 Çë»Ø¹ýÍ·À´¸´ÉóһϠbsd.port.mk£¬ ¿´¿´ÊÇ·ñÓÐÄúÕý´òËã×öµÄÊÂÇéµÄÏÖ³ÉʵÏÖ¡£ ¾¡¹Ü¶ÁÆðÀ´¿ÉÄܷܺѾ¢£¬ µ«ÓкܶàÃ²ËÆºÜÄѵÄÎÊÌ⣬ ÔÚ bsd.port.mk Öж¼¸ø³öÁËÊ®·Ö¼ò±ãµÄ½â¾ö·½°¸¡£
¡¡¡¡port Ó¦×ñÑ CC ºÍ CXX ±äÁ¿µÄÉèÖᣠÕâÒ²¾ÍÊÇ˵£¬ port ²»Ó¦Ê¹Óþø¶ÔµÄ·½Ê½À´ÉèÖÃÕâ¸ö±äÁ¿µÄÖµ£¬ ¶øØè¹ËÒѾ´æÔÚµÄÉèÖã» Óë´ËÏà·´£¬ ËüÓ¦¸ÃÔÚÆäÖµºó¼ÓÈëÐèÒªµÄÆäËüÖµ¡£ ÕâÑù£¬ ¾Í¿ÉÒÔÉèÖÃÈ«¾ÖµÄÁª±àÑ¡Ï ÁîÆäÓ°ÏìËùÓÐµÄ port Áª±à¹ý³ÌÁË¡£
¡¡¡¡Èç¹ûʵÔÚÎÞ·¨ÕâÑù×ö£¬ ÇëÔÚ Makefile ÖмÓÈë NO_PACKAGE=ignores cflags¡£
¡¡¡¡ÏÂÃæµÄ Makefile ʵÀý¸ø³öÁËÈçºÎ×ñÑ CC ºÍ CXX ±äÁ¿µÄÉèÖᣠעÒâÕâÀïÓõ½µÄ ?=£º
CC?= gcc
CXX?= g++
¡¡¡¡ÏÂÃæÔòÊÇûÓÐ×ñÑ CC ºÍ CXX µÄÀý×Ó£º
CC= gcc
CXX= g++
¡¡¡¡ÔÚ FreeBSD ϵͳÖУ¬ CC ºÍ CXX ÕâÁ½¸ö±äÁ¿¶¼¿ÉÒÔÔÚ /etc/make.conf ÖÐ×ÔÐж¨Òå¡£ µÚÒ»¸öÀý×ÓÖ»ÓÐÔÚ /etc/make.conf ÖÐûÓж¨Òåʱ²Å¶ÔÕâÁ½¸ö±äÁ¿½øÐж¨Ò壬 ´Ó¶ø±£³ÖÁËϵͳ·¶Î§µÄÅäÖᣠ¶øµÚ¶þ¸öÀý×ÓÔò»á¸²¸ÇÈκÎÏÖÓеÄÅäÖá£
¡¡¡¡ÄúµÄ port Ó¦×ñÑ CFLAGS ±äÁ¿µÄÉèÖᣠÕâÒ²¾ÍÊÇ˵£¬ port ²»Ó¦Ê¹Óþø¶ÔµÄ·½Ê½À´ÉèÖÃÕâ¸ö±äÁ¿µÄÖµ£¬ ¶øØè¹ËÒѾ´æÔÚµÄÉèÖã» Óë´ËÏà·´£¬ ËüÓ¦¸ÃÔÚÆäÖµºó¼ÓÈëÐèÒªµÄÆäËüÖµ£¬ ÕâÑù£¬ ¾Í¿ÉÒÔÉèÖÃÈ«¾ÖµÄÁª±àÑ¡Ï ÁîÆäÓ°ÏìËùÓÐµÄ port Áª±à¹ý³ÌÁË¡£
¡¡¡¡Èç¹ûʵÔÚÎÞ·¨ÕâÑù×ö£¬ ÇëÔÚ Makefile ÖмÓÈë NO_PACKAGE=ignores cflags¡£
¡¡¡¡ÏÂÃæµÄ Makefile Àý×Ó£¬ ¿ÉÒÔ°ïÖúÎÒÃÇÀí½âÈçºÎ×ñÑ CFLAGS µÄÉèÖᣠעÒâËùÓÃµÄ +=£º
CFLAGS+= -Wall -Werror
¡¡¡¡ÏÂÃæÊÇÒ»¸öδÄÜ×ñÑ CFLAGS ÉèÖõÄÀý×Ó£º
CFLAGS= -Wall -Werror
¡¡¡¡Ò»°ãÀ´Ëµ£¬ CFLAGS ÔÚ FreeBSD ϵͳÖÐÊÇÔÚ /etc/make.conf ÀïÅäÖõġ£ µÚÒ»¸öÀý×ÓÔÚ CFLAGS ±äÁ¿ÖÐÔö¼ÓÁËһЩ²ÎÊý£¬ ²¢±£³ÖÁËËùÓÐϵͳԤ¶¨ÒåµÄ±êÖ¾¡£ ¶øµÚ¶þ¸öÀý×Ó£¬ Ôò»á¸²¸ÇµôÈκÎÏÈǰ¶¨ÒåµÄ²ÎÊý¡£
¡¡¡¡ÄúÓ¦´ÓµÚÈý·½Èí¼þµÄ Makefile ÖÐÈ¥µôÌØÊâµÄÓÅ»¯ÉèÖᣠϵͳµÄ CFLAGS ¸ø³öÁËȫϵͳ·¶Î§ÄÚµÄÓÅ»¯ÉèÖòÎÊý¡£ ÏÂÃæÊÇÒ»¸öδ¾ÐÞ¸ÄµÄ Makefile ʵÀý£º
CFLAGS= -O3 -funroll-loops -DHAVE_SOUND
¡¡¡¡Èç¹ûʹÓÃϵͳµÄÓÅ»¯²ÎÊý£¬ Ôò Makefile ÖеÄÉèÖÃÓ¦¸ÃÀàËÆÏÂÃæÕâÑù£º
CFLAGS+= -DHAVE_SOUND
¡¡¡¡ÔÚ FreeBSD ÉÏ£¬ Ïß³Ì¿â±ØÐëͨ¹ýÌØÊâµÄÁ¬½ÓÆ÷²ÎÊý -pthread Á¬½Óµ½¿ÉÖ´ÐÐÎļþ¡£ Èç¹û port Ò»¶¨ÒªÖ±½ÓÁ¬½Ó -lpthread »ò -lc_r£¬ ÔòÓ¦½«Æä¸ÄΪʹÓÃÓÉ ports ¿ò¼ÜÌṩµÄ PTHREAD_LIBS¡£ Õâ¸ö±äÁ¿µÄֵͨ³£ÊÇ -pthread£¬ µ«ÔÚÄ³Ð©ÌØ¶¨Æ½Ì¨É쵀 FreeBSD °æ±¾ÖУ¬ Ëü¿ÉÄÜÊÇÆäËüÖµ£¬ Òò´Ë£¬ ²»Òª½« -pthread Ó²±àÂëµ½ÄúµÄ²¹¶¡ÖУ¬ ¶øÓ¦Ê¹Óà PTHREAD_LIBS ±äÁ¿¡£
×¢Òâ: Èç¹ûÉèÖÃÁË PTHREAD_LIBS£¬ ¶øÔÚÁª±àʱ³öÏÖ unrecognized option '-pthread' ÕâÑùµÄ´íÎó£¬ ¿ÉÄÜÐèҪͨ¹ý½« CONFIGURE_ENV ÉèΪ LD=${CC} À´Ê¹Óà gcc ×÷ΪÁ¬½ÓÆ÷¡£ -pthread ÕâһѡÏî²¢²»Îª ld ËùÖ±½ÓÖ§³Ö¡£
¡¡¡¡Èç¹û½øÐÐÁËһЩºÜºÃµÄÐ޸ĺͲ¹¶¡£¬ Ò»¶¨Òª°ÑËüÃÇ·¢»Ø¸øÔ×÷Õߣ¬ »òά»¤Õߣ¬ ÒÔ±ãÔÚÏÂÒ»°æ±¾µÄ´úÂëÖаüº¬ËüÃÇ¡£ Õâ»áÈÃÄúÔÚÈí¼þ·¢²¼Ð°汾µÄʱºò±äµÃÇáËÉһЩ¡£
¡¡¡¡²»Òª°üº¬ README.html Îļþ¡£ Õâ¸öÎļþ²¢·Ç CVS ´úÂë¿âÖеÄÒ»²¿·Ö£¬ ËüÊÇÓÉ make readme ÃüÁîÉú³ÉµÄ¡£
¡¡¡¡Ä³Ð©Ê±ºò»áÐèÒª×èÖ¹Óû§°²×°Ä³¸ö port¡£ ÏëÒª¸æËßÓû§Ä³¸ö port ²»Ó¦±»°²×°£¬ ÓÐÐí¶à¿ÉÒÔÔÚ port µÄ Makefile ÖÐʹÓÃµÄ make ±äÁ¿¡£ ÏÂÁÐ make µÄÖµ£¬ ½«ÊÇÔÚÓû§ÊÔͼ°²×°Ê±µÃµ½µÄÌáʾÐÅÏ¢¡£ ÎñÇëʹÓÃÕýÈ·µÄ make ±äÁ¿£¬ ÒòΪÿһ¸ö¶¼±í´ïÁ˽ØÈ»²»Í¬µÄÒâÒ壬 ¶øÇÒÐí¶à×Ô¶¯»¯ÏµÍ³£¬ ÀýÈç port Áª±à¼¯Èº¡¢ FreshPorts£¬ ÒÔ¼° portsmon£¬ ¶¼ÒÀÀµÓÚ Makefile µÄÕýÈ·ÐÔ¡£
BROKEN רÃÅÓÃÓÚ±í´ïĿǰÎÞ·¨ÕýÈ·±àÒë¡¢ °²×°»òÐ¶ÔØÕâÀàÎÊÌâ¡£ Èç¹ûÊÇÁÙʱÐÔµÄÎÊÌ⣬ Ôò¿ÉÒÔʹÓÃËü¡£
Èç¹û½øÐÐÁËÏà¹ØµÄÅäÖ㬠ÔòÁª±à¼¯ÈºÈÔ½«³¢ÊÔÁª±àËü£¬ ÒÔÈ·Èϵ¼ÖÂÎÊÌâµÄÉî²ãÎÊÌâÊÇ·ñÒѱ»½â¾ö¡£ (²»¹ý£¬ Ò»°ãÇé¿öÏ£¬ Áª±à¼¯Èº²¢²»»áÕâÑù×ö¡£)
¾ÙÀýÀ´Ëµ£¬ µ± port ·¢ÉúÏÂÊöÇé¿öʱ£¬ ӦʹÓà BROKEN£º
ÎÞ·¨±àÒë (does not compile)
ÎÞ·¨ÕýÈ·½øÐÐÅäÖûò°²×°²Ù×÷
ÔÚ ${LOCALBASE} ÒÔÍâµÄµØ·½°²×°Îļþ
Ð¶ÔØÊ±ÎÞ·¨É¾³ýËù°²×°µÄÈ«²¿Îļþ (²»¹ý£¬ ÁôÏÂÓû§¸Ä¹ýµÄÎļþ¿É½ÓÊܵģ¬ ÒòΪ¿ÉÄÜÏ£ÍûÕâÑù×÷)
FORBIDDEN ÓÃÓÚ±íʾ ports Öаüº¬°²È«Â©¶´£¬ »òÕß¿ÉÄÜ»á¸ø°²×°ÁËÕâ¸ö port µÄ FreeBSD ϵͳ´øÀ´ÑÏÖØµÄ°²È«Òþ»¼ (ÀýÈ磺 Ò»¸öºÜ²»°²È«µÄ³ÌÐò£¬ »ò°üº¬ÁËÄܹ»±»ÇáÒ×¹¥ÏݵķþÎñµÄÈí¼þ)¡£ Èç¹û·¢ÏÖÁ˰²È«Â©¶´£¬ ¶øÆä×÷ÕßûÓз¢²¼Éý¼¶°æ±¾£¬ ÔòÓ¦Á¢¼´°ÑÄǸö port ±ê¼ÇΪ FORBIDDEN¡£ ÀíÏëÇé¿öÏ£¬ °üº¬°²È«Â©¶´µÄ port Ó¦±»¾¡¿ìÉý¼¶£¬ ÒÔ±ã¼õÉÙ°üº¬Â©¶´µÄ FreeBSD Ö÷»úµÄÊýÁ¿ (ÎÒÃÇÏ£Íû±£³ÖÁ¼ºÃµÄ°²È«¼Ç¼)£¬ È»¶ø£¬ ÓÐʱÔÚ°²È«Â©¶´µÄÅû¶ºÍÈí¼þ¸üÐÂÖ®¼ä¿ÉÄÜ»áÓÐÒ»¸ö¼ä¸ô£¬ ´ËʱӦÓèÒÔ˵Ã÷¡£ ³ýÁ˰²È«Ö®Í⣬ Çë²»ÒªÒÔÈÎºÎÆäËüÀíÓɽ« port ±ê¼ÇΪ FORBIDDEN¡£
IGNORE ÓÃÀ´±íʾ port ÓÉÓÚijЩÆäËüÔÒò²»Ó¦ÓèÒÔÁª±à¡£ Èç¹ûÈÏΪ·¢ÉúÁ˽ṹÐÔµÄÎÊÌ⣬ ÔòӦʹÓÃËü¡£ ÈκÎÇé¿öÏ£¬ Áª±à¼¯Èº¶¼²»»áÁª±à±ê¼ÇΪ IGNORE µÄ port¡£ ÒÔÏÂÊÇʹÓà IGNORE µÄһЩÀý×Ó£º
Äܹ»±àÒ뵫ÎÞ·¨Õý³£ÔËÐÐ
ÎÞ·¨ÓëÔËÐÐµÄ FreeBSD °æ±¾Ò»Í¬¹¤×÷
Áª±àʱÐèÒª FreeBSD Äں˵ÄÔ´´úÂ룬 µ«Óû§Ã»Óа²×°ËüÃÇ
ÓÉÓÚÊÚȨÔÒò£¬ ±ØÐëÊÖ¹¤ÏÂÔØ distfile
ÎÞ·¨ÓëµÄij¸öÒѰ²×°µÄ port һͬ¹¤×÷ (ÀýÈ磬 port ÒÀÀµÓÚ www/apache21 ¶ø°²×°µÄÔòÊÇ www/apache13)
×¢Òâ: Èç¹û port Óëij¸öÒѾ°²×°µÄ port ³åÍ» (ÀýÈ磬 ËüÃÇÔÚͬһλÖð²×°Í¬Ãûµ«¹¦Äܲ»Í¬µÄÎļþ)£¬ ÔòÓ¦ ʹÓà CONFLICTS À´±ê¼ÇËü¡£ CONFLICTS ½«×Ô¶¯µØÉèÖà IGNORE¡£
Èç¹û port Ö»Ó¦ÔÚijЩƽ̨Éϱê¼ÇΪ IGNORE£¬ »¹ÓÐÁíÍâÁ½¸ö·½±ãʹÓÃµÄ IGNORE ±äÁ¿¿É¹©Ñ¡Ôñ£º ONLY_FOR_ARCHS ºÍ NOT_FOR_ARCHS¡£ ÀýÈ磺
ONLY_FOR_ARCHS= i386 amd64
NOT_FOR_ARCHS= alpha ia64 sparc64
¿ÉÒÔʹÓà ONLY_FOR_ARCHS_REASON ºÍ NOT_FOR_ARCHS_REASON À´ÅäÖö¨ÖÆµÄ IGNORE ÏûÏ¢¡£ ´ËÍ⣬ »¹¿ÉÒÔʹÓà ONLY_FOR_ARCHS_REASON_ARCH ºÍ NOT_FOR_ARCHS_REASON_ARCH À´·Ö±ðÖ¸¶¨Óë¾ßÌåÆ½Ì¨ÓйصÄÐÅÏ¢¡£
Èç¹û port »áÏÂÔØ²¢°²×°ÓÃÓÚ i386 µÄÔ¤±àÒë¶þ½øÖÆÎļþ£¬ ÔòÓ¦ÉèÖà IA32_BINARY_PORT¡£ Èç¹ûÉèÖÃÁËÕâ¸ö±äÁ¿£¬ Ôòϵͳ»á¼ì²éÊÇ·ñÒѾÔÚ /usr/lib32 Ŀ¼Öа²×°ÁË IA32 °æ±¾µÄº¯Êý¿â£¬ ÒÔ¼°ÄÚºËÊÇ·ñÌṩÁË IA32 ¼æÈÝÖ§³Ö¡£ Èç¹ûÕâЩÒÀÀµÌõ¼þ²»Âú×㣬 Ôò»á×Ô¶¯ÉèÖà IGNORE¡£
¡¡¡¡ÕâЩ×Ö´®²»Ó¦Ê¹ÓÃÒýºÅÀ¨ÆðÀ´¡£ ´ËÍ⣬ ÓÉÓÚÏÔʾ¸øÓû§µÄ·½Ê½²»Í¬£¬ ÕâЩ×Ö´®µÄ´ë´ÇÒ²Ó¦ÓÐËù²»Í¬¡£ ÀýÈ磺
BROKEN= this port is unsupported on FreeBSD 5.x
IGNORE= is unsupported on FreeBSD 5.x
¡¡¡¡ËüÃÇ·Ö±ð»áÔÚ make describe ʱ²úÉúÏÂÃæµÄÊä³ö£º
===> foobar-0.1 is marked as broken: this port is unsupported on FreeBSD 5.x.
===> foobar-0.1 is unsupported on FreeBSD 5.x.
¡¡¡¡Ò»¶¨Òª¼ÇµÃ BROKEN ºÍ FORBIDDEN Ö»Ó¦×÷Ϊµ±Ä³¸ö port ÎÞ·¨Õý³£¹¤×÷ʱµÄÁÙʱ½â¾ö·½°¸¡£ ÓÀ¾ÃÐԵػµµôÁ赀 port Ó¦±»´Ó ports tree ÖÐÍêȫɾ³ý¡£
¡¡¡¡ÐèҪʱ»¹¿ÉÒÔʹÓà DEPRECATED ºÍ EXPIRATION_DATE À´Í¨ÖªÓû§Ä³¸ö port ²»Ó¦±»Ê¹Ó㬠²¢¼´½«±»É¾³ý¡£ ǰһ¸ö±äÁ¿ÓÃÀ´±í´ïΪʲô¼Æ»®É¾³ý port£» ¶øºóÒ»¸öÊÇÔòÊÇÒ»¸ö ISO 8601 ¸ñʽµÄÈÕÆÚ (YYYY-MM-DD)¡£ Á½Õß¶¼»áÏòÓû§³ÊÏÖ¡£
¡¡¡¡Ò²¿ÉÒÔÉèÖà DEPRECATED ¶ø²»¸ø³ö EXPIRATION_DATE (ÀýÈ磬 ½¨ÒéʹÓÃij¸öа汾µÄ port)£¬ µ«·´Ö®ÔòûÓÐÒâÒå¡£
¡¡¡¡Ä¿Ç°»¹Ã»ÓÐÈ·ÇеĹØÓÚÐèÒª¸ø³ö¶àÉÙ֪ͨµÄÕþ²ß¡£ µ±Ç°µÄʵ¼ùÊÇ£¬ ¶ÔÓÚÓ밲ȫÓйصÄÎÊÌâΪһ¸öÔ£¬ ¶øÓëÁª±àÓйصÄÎÊÌâÔòΪÁ½¸öÔ¡£ ÕâÒ²ÈÃÓÐÐËȤµÄ committer Äܹ»ÓÐÒ»µãʱ¼äÀ´ÐÞÕýÎÊÌâ¡£
¡¡¡¡ÔÚ Makefile Öиø³öÐźţ¬ ±íʾÓÉÓÚijÖÖÍâ½çÒòËØ (ÀýÈ磬 Óû§Ö¸¶¨ÁËÎÞЧµÄÁª±àÑ¡Ïî) ¶øÎÞ·¨°²×°µÄ·½·¨Êǽ«±äÁ¿ IGNORE ÉèΪһ·Ç¿ÕÖµ¡£ Õâ¸öÖµ½«±»¸ñʽ»¯£¬ ²¢ÔÚÓû§Ö´ÐÐ make install ÊǸø³öÌáʾ¡£
¡¡¡¡Óà .error ʵÏÖÕâһĿµÄÊÇÒ»ÖÖ³£¼ûµÄÎóÓᣠÕâÑù×öµÄÎÊÌâÊÇ£¬ Ðí¶àÔÚ ports Ê÷ÉÏÔËÐеÄ×Ô¶¯»¯¹¤¾ß»áÒò´Ë¶øÊ§°Ü¡£ ×î³£¼ûµÄÇé¿ö¼ûÓÚÁª±à /usr/ports/INDEX µÄ¹ý³Ì (²Î¼û µÚ 9.1 ½Ú)¡£ È»¶ø£¬ ¼´Ê¹Ê®·ÖÆÕͨµÄÃüÁ ÀýÈç make maintainer£¬ ÔÚÕâÖÖÇé¿öÏÂÒ²»áʧ°Ü¡£ ÕâÊDz»¿É½ÓÊܵġ£
¡¡¡¡³ýÁËÔÚ target ÖÐÖ®Í⣬ ÊDz»¹ÄÀøÊ¹Óà sysctl µÄ¡£ ÕâÊÇÒòΪ¼ÆËã makevar£¬ ÀýÈçÔÚ make index ÖÐËù½øÐеÄÄÇÖÖ£¬ ¶¼²»µÃ²»ÔËÐÐÒ»ÌõÃüÁ Õâ»áʹÕâÒ»²Ù×÷±äµÃ¸üÂý¡£
¡¡¡¡ÔÚʹÓà sysctl(8) ʱ£¬ Îñ±ØÍ¨¹ý SYSCTL ±äÁ¿À´½øÐУ¬ ÒòΪ´Ë±äÁ¿½«Õ¹¿ª³ÉÃüÁîµÄÍêÕû·¾¶£¬ ²¢ÇÒÓû§¿ÉÒÔ¸ù¾ÝÐèÒªÁíÐÐÖ¸¶¨¡£
¡¡¡¡ÓÐʱ£¬ һЩÈí¼þµÄ×÷Õß»áÐÞ¸ÄÒµÒÑ·¢²¼µÄ distfile µÄÄÚÈÝ£¬ ¶ø²¢²»ÐÞ¸ÄÎļþÃû¡£ ÕâÖÖÇé¿öÏ£¬ ÄúÐèÒªÑéÖ¤ÕâЩ±ä¶¯ÊÇÀ´×ÔÈí¼þ×÷ÕߵĹٷ½¸Ä¶¯¡£ ÔÚ¹ýÈ¥£¬ Ôø¾·¢Éú¹ýÏÂÔØ·þÎñÆ÷É쵀 distfile ±»ÇÄÇÄ»»³É×¢Èë¹ý¶ñÒâ´úÂëµÄ°æ±¾£¬ ²¢¸øÓû§°²È«Ôì³ÉÍþв»òË𺦵ÄÊÂÇé¡£
¡¡¡¡ÄúÓ¦±£ÁôÒ»·Ý¾ÉµÄ distfile£¬ ²¢ÏÂÔØÒ»·ÝÐµģ¬ ·Ö±ðÕ¹¿ª£¬ Óà diff(1) À´¶Ô±ÈÆäÄÚÈÝ¡£ Èç¹ûûÓз¢ÏÖ¿ÉÒɵı䶯£¬ ¾Í¿ÉÒÔ¸üРdistinfo ÁË¡£ ÇëÎñ±ØÔÚÄúµÄ PR »ò commit log ÖжÔÕâЩ²îÒì½øÐÐÃèÊö£¬ ÒÔ±ãÈñðÈËÁ˽âÄúÒѾ×Ðϸ¶Ô±È¹ý²îÒ죬 ²¢È·ÈÏûÓÐÎÊÌâÁË¡£
¡¡¡¡³ý´ËÖ®Í⣬ Ò²¿ÉÒÔÁªÏµÈí¼þµÄ×÷Õߣ¬ ÒÔÈ·ÈÏÕâЩÐÞ¸ÄÊÇ·ñÊÇËûÃÇ×öµÄ¡£
¡¡¡¡ÐèÒª×ÐϸµØ·´¸´¼ì²é pkg-descr ºÍ pkg-plist ÕâÁ½¸öÎļþ¡£ Èç¹ûÄúÕýÔÚ¸´ÉóÒ»¸ö port£¬ ²¢ÈÏΪÕâÁ½¸öÎļþÓ¦¸Ã¸Ä½ø£¬ ÇëÒ»¶¨ÒªÕâÑù×ö¡£
¡¡¡¡Çë²»ÒªÔÚϵͳÖи´Öƶà·Ý GNU General Public License¡£
¡¡¡¡Ò»¶¨Òª·Ç³£Ð¡Ðĵش¦Àí·¨ÂÉÎÊÌ⣡ ²»ÒªÈÃÎÒÃÇ·¢²¼Ã»Óеõ½ºÏ·¨ÊÚȨµÄÈí¼þ£¡
¡¡¡¡ÕâÀïÊÇÒ»¸öÄú¿ÉÒÔÔÚ½¨Á¢Ð port ʱ²Î¿¼µÄ Makefile¡£ ÇëÎñ±ØÉ¾³ý²»ÐèÒªµÄÄÇЩעÊÍ (·½À¨ºÅÖмäµÄÎÄ×Ö)£¡
¡¡¡¡½¨ÒéÄú°´ÕÕÏÂÃæÕâÑùµÄ¸ñʽ (±äÁ¿Ë³Ðò£¬ С½ÚÖ®¼äµÄ¿ÕÐеÈ) À´±àд¡£ Õâ¸ö¸ñʽµÄ×÷ÓÃÊDZãÓÚ²éÕÒÖØÒªµÄÐÅÏ¢¡£ ÎÒÃǽ¨ÒéÄúʹÓà portlint À´¼ì²é Makefile¡£
[Í·²¿... Ö÷ÒªÊÇÈÃÎÒÃǸüÈÝÒ׵طֱ治ͬµÄ port¡£] # New ports collection makefile for: xdvi [°æ±¾ÕâÐУ¬ Ö»ÓÐÔÚ PORTVERSION ±äÁ¿²»×ãÒÔÃèÊö port ʱ²ÅÐèÒª] # Date created: 26 May 1995 [ÕâÊÇ×î³õ½«Èí¼þÒÆÖ²µ½ FreeBSD ÉϵÄÈÕÆÚ£¬ Ò»°ãÀ´ËµÊǽ¨Á¢Õâ·Ý Makefile µÄÈÕÆÚ¡£ Çë×¢Òâ²»ÒªÔÚÖ®ºóÔÙ´ÎÐÞ¸ÄÕâ¸öÈÕÆÚ¡£] # Whom: Satoshi Asami <asami@FreeBSD.org> # # $FreeBSD$ [ ^^^^^^^^^ ÕâÊÇ CVS ÔÚÎļþ commit µ½ÎÒÃǵĴúÂë¿âʱ£¬ ×Ô¶¯½øÐÐÌæ»»µÄ RCS ID¡£ Èç¹ûÄúÕýÔÚÉý¼¶ port£¬ ²»Òª°ÑËü¸Ä»Ø "$FreeBSD$"¡£ CVS »á×Ô¶¯½øÐд¦Àí¡£] # [Õâ¸öС½ÚÃèÊö port ±¾ÉíÒÔ¼°Ö÷ÒªÏÂÔØÕ¾µã - PORTNAME ºÍ PORTVERSION Ó¦·ÅÔÚ×îÇ°Ãæ£¬ ËæºóÊÇ CATEGORIES£¬ È»ºóÊÇ MASTER_SITES£¬ ½ÓÏÂÀ´ÊÇ MASTER_SITE_SUBDIR¡£ Èç¹ûÐèÒªµÄ»°£¬ ½ÓÏÂÀ´Ó¦Ö¸¶¨ PKGNAMEPREFIX ºÍ PKGNAMESUFFIX¡£ ËæºóÊÇ DISTNAME£¬ EXTRACT_SUFX£¬ ÒÔ¼° DISTFILES£¬ EXTRACT_ONLY£¬ Èç¹ûÐèÒªµÄ»°¡£] PORTNAME= xdvi PORTVERSION= 18.2 CATEGORIES= print [Èç¹û²»ÏëʹÓà MASTER_SITE_* ºê£¬ Ò»¶¨²»ÒªÍü¼Ç½áβµÄбÏß ("/")£¡] MASTER_SITES= ${MASTER_SITE_XCONTRIB} MASTER_SITE_SUBDIR= applications PKGNAMEPREFIX= ja- DISTNAME= xdvi-pl18 [Èç¹ûÔ´´úÂë°ü²»ÊDZê×¼µÄ ".tar.gz" ÐÎʽ£¬ ¾ÍÐèÒªÉèÖÃÕâ¸ö] EXTRACT_SUFX= .tar.Z [·ÖÉ¢µÄ²¹¶¡ -- ¿ÉÒÔΪ¿Õ] PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/ PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz [¼à»¤ÈË(maintainer); *±ØÐëÓÐ*! ÕâÊÇij¸ö×ÊÔ´´¦Àí port ¸üС¢ Áª±àʧ°Ü£¬ ÒÔ¼°»Ø´ðÓû§Ö±½ÓÌáÎÊ»ò»ã±¨ bug µÄÈË¡£ ΪÁ˱£Ö¤ Ports Collection Óо¡¿ÉÄ܏ߵį·ÖÊ£¬ ÎÒÃDz»ÔÙ½ÓÊÜÖ¸¶¨¸ø "ports@FreeBSD.org" µÄРport¡£] MAINTAINER= asami@FreeBSD.org COMMENT= A DVI Previewer for the X Window System [ÒÀÀµµÄÆäËüÈí¼þ°ü -- ¿ÉÒÔΪ¿Õ] RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript LIB_DEPENDS= Xpm.5:${PORTSDIR}/graphics/xpm [Õâ½ÚÊÇÆäËü²»ÊʺÏÉϼ¸½ÚµÄ±ê×¼ bsd.port.mk ±äÁ¿] [Èç¹ûÐèÒªÔÚ configure¡¢ build »ò install ¹ý³ÌÖÐÌáÎÊ...] IS_INTERACTIVE= yes [Èç¹û½âѹËõµ½ ${DISTNAME} ÒÔÍâµÄĿ¼...] WRKSRC= ${WRKDIR}/xdvi-new [Èç¹û×÷Õß·¢²¼µÄ²¹¶¡²»ÊÇÏà¶ÔÓÚ ${WRKSRC} µÄ£¬ ¿ÉÄÜÐèÒªµ÷ÕûÕâ¸ö] PATCH_DIST_STRIP= -p1 [Èç¹ûÐèÒªÔËÐÐÓÉ GNU autoconf Éú³ÉµÄ "configure" ½Å±¾] GNU_CONFIGURE= yes [Èç¹ûÐèҪʹÓà GNU make£¬ ¶ø²»ÊÇ /usr/bin/make À´Íê³ÉÁª±à...] USE_GMAKE= yes [Èç¹ûÊÇÒ»¸ö X Ó¦ÓóÌÐò£¬ ²¢Ê¹Óà "xmkmf -a" À´ÔËÐÐ...] USE_IMAKE= yes [et cetera.] [½«ÔÚ½ÓÏÂÀ´µÄ²¿·ÖʹÓõķDZê×¼µÄ±äÁ¿] MY_FAVORITE_RESPONSE= "yeah, right" [½ÓÏÂÀ´ÊÇÌØÊâ¹æÔò£¬ °´µ÷ÓÃ˳ÐòÅÅÁÐ] pre-fetch: i go fetch something, yeah post-patch: i need to do something after patch, great pre-install: and then some more stuff before installing, wow [½áÓï] .include <bsd.port.mk>
¡¡¡¡FreeBSD µÄ Ports Collection ÔÚ³ÖÐøµØ½øÐÐÐ޸ġ£ ÕâÀïÌṩÁËһЩ¹ØÓÚÈçºÎ±£³Öͬ²½µÄÐÅÏ¢¡£
¡¡¡¡×î¼òµ¥µÄÁ˽âÒѾ±» commit µ½ ports ÖеĸüÐµķ½·¨£¬ ÊǶ©ÔÄ FreshPorts¡£ Äú¿ÉÒÔÑ¡Ôñ¶à¸ö ports ²¢¶ÔÆä½øÐмàÊÓ¡£ Ç¿ÁÒ½¨Òéά»¤ÈËÔ±¶©ÔÄËü£¬ ÕâÑù¾Í²»½öÄܽÓÊÕµ½ËûÃÇ×Ô¼ºËù×öµÄÐ޸ģ¬ ¶øÇÒÄÜ¿´µ½ÆäËü FreeBSD committer Ëù×öµÄ¸Ä¶¯¡£ (±£³ÖÓëËùÒÀÀµµÄ ports ¿ò¼Üͬ²½ÊDZØÒªµÄ©¤©¤ËäȻһ°ãÀ´ËµÄú»áÔÚÕâÑùµÄ commit ֮ǰÊÕµ½Ò»¸öÀñòÐÔµÄ֪ͨ£¬ µ«ÓÐʱ¿ÉÄÜ»áÓÐÈËûÓÐ×¢Òâµ½ÐèÒªÕâÑù×ö£¬ »òÕßÕâÑù×öºÜÀ§ÄÑ¡£ ÁíÍ⣬ ÓÐЩʱºò֪ͨµÄÐÞ¸ÄÒ²¿ÉÄÜÊÇ΢²»×ãµÀµÄ¡£ ÎÒÃÇÏ£Íûÿһ¸öÈËÄܹ»ÕýÈ·µØ½øÐÐÅжϡ£)
¡¡¡¡Èç¹ûÏëʹÓà FreshPorts£¬ Ö®ÐèÒª½¨Á¢Ò»¸öÕ˺š£ Èç¹ûÄú×¢²áµÄÓʼþµØÖ·ÊÇ @FreeBSD.org£¬ Äú»á¿´µ½ web Ò³ÃæÓÒ²àµÄ opt-in Á¬½Ó¡£ Èç¹ûÄúÒѾע²áÁË FreshPorts Õ˺ţ¬ µ«Ã»ÓÐʹÓà @FreeBSD.org ÓʼþµØÖ·£¬ ÔòÖ»Ðè°ÑÓʼþµØÖ·¸ÄΪ @FreeBSD.org£¬ ÖØÐ¶©ÔÄ£¬ ²¢½«Æä¸Ä»Ø¡£
¡¡¡¡FreshPorts Ò²»á¶Ôÿһ¸ö FreeBSD ports tree É쵀 commit ½øÐÐ×Ô¶¯µÄºÏ·¨ÐÔ¼ì²é¡£ Èç¹ûÄú¶©ÔÄÁËÕâÏî·þÎñ£¬ ÔòÈç¹û·¢ÏÖÁË´íÎó£¬ ¾Í»áÊÕµ½À´×Ô FreshPorts µÄ¼ì²â±¨¸æ¡£
¡¡¡¡¿ÉÒÔͨ¹ý web ½çÃæÀ´ä¯ÀÀÔ´´úÂë¿âÖеÄÎļþ¡£ Ó°ÏìÕû¸ö ports ϵͳµÄÐ޸ģ¬ ÏÖÔÚ¶¼»áÔÚ CHANGES ÎļþÖÐ˵Ã÷¡£ Ó°Ïìijһ¸ö port µÄ±ä¶¯£¬ ÔòÔÚ UPDATING ÎļþÖÐ˵Ã÷¡£ ¾¡¹ÜÈç´Ë£¬ ËùÓÐÎÊÌâ×îΪȨÍþµÄ´ð°¸£¬ ºÁÎÞÒÉÎÊÓ¦¸ÃÊÇ bsd.port.mk µÄÔ´´úÂ룬 ÒÔ¼°Ïà¹ØµÄÎļþ¡£
¡¡¡¡Èç¹ûÄúά»¤ÁËij¸ö»òijһЩ ports£¬ ÔòÓ¦¸Ã¿¼ÂǶ©ÔÄ FreeBSD ports ÓʼþÁÐ±í¡£ ¶ÔÓÚ ports ¹¤×÷·½Ê½µÄÖØÒªÐ޸ͼ»áÔÚ´ËÐûʾ£¬ ²¢Ìá½»µ½ CHANGES¡£
¡¡¡¡FreeBSD µÄÒ»¸ö×ΪÈËËùÖªµÄÇ¿ÏîÊÇ£¬ ËüÓµÓÐÒ»¸öרÓÃÓÚ³ÖÐøÁª±à Ports Collection µÄ¼¯Èº£¬ Õâ¸ö¼¯Èº»áÁª±àËùÓÐÖ÷ÒªµÄ OS °æ±¾ÔÚÿһ¸ö Tier-1 ¼Ü¹¹É쵀 package¡£ Äú¿ÉÒÔÔÚ package Áª±àºÍ´íÎóÈÕÖ¾ ÕÒµ½Æä½á¹û¡£
¡¡¡¡Ã¿Ò»¸ö port ¶¼»á±»Áª±à£¬ ³ý·Ç±ê¼ÇΪ IGNORE¡£ ±ê¼ÇÁË BROKEN µÄ port ÈÔÈ»»á±»¼ÌÐø³¢ÊÔ£¬ ÒÔÁ˽âÊÇ·ñijЩÒÀÀµ¹ØÏµµÄ±ä¶¯½â¾öÁËÆäÎÊÌâ (ÕâÊÇͨ¹ý¸ø port µÄ Makefile ´« TRYBROKEN ²ÎÊýÀ´Íê³ÉµÄ)¡£
¡¡¡¡Áª±à¼¯ÈºÊÇÒ»×éרÃÅÓÃÓÚÁª±àËùÓÐ port ×îа汾µÄ»úÆ÷£¬ ÆäÉÏÒѾÏÂÔØÁËËùÓÐµÄ distfiles¡£ È»¶ø£¬ ÓÉÓÚ Internet ÔÚ³ÖÐøµØ·¢Éú±ä»¯£¬ distfile ¿ÉÄܺܿì¾ÍÏûʧÁË¡£ FreeBSD Ports distfile ɨÃèÆ÷ ÊÔͼ²éѯÿһ¸ö port µÄËùÓÐÏÂÔØÕ¾µã£¬ ÒÔÆÚÕÒ³öÕâЩÎļþÊÇ·ñÒÀÈ»´æÔÚ¡£ ά»¤ÕßÓ¦¹æÂÉÐԵؼì²éÕâЩ±¨¸æ£¬ Õâ²»½ö»áÌá¸ßÓû§Áª±àµÄËÙ¶È£¬ ͬʱҲ±ÜÃâÁËÀË·ÑÄÇЩ¾µÏñÁËÈ«²¿ distfile µÄÖ¾Ô¸ÕߵĴø¿í¡£
¡¡¡¡ÁíÒ»¸ö·Ç³£·½±ãµÄ×ÊÔ´£¬ ¾ÍÊÇ FreeBSD Ports ×·×Ùϵͳ (Ò²±»³Æ×÷ portsmon)¡£ Õâ¸öϵͳ°üº¬ÁËÒ»¸ö´¦ÀíÈô¸ÉÐÅÏ¢À´Ô´µÄÊý¾Ý¿â£¬ ²¢ÌṩÁËÒ»¸ö¿ÉÒÔͨ¹ý web ·½Ê½ä¯ÀÀµÄ½çÃæ¡£ Ŀǰ£¬ ËüÀûÓõ½ÁËºÍ ports ÓйصÄÎÊÌⱨ¸æ (PR)¡¢ À´×ÔÁª±à¼¯ÈºµÄ´íÎóÈÕÖ¾£¬ ÒÔ¼°À´×Ô Ports Collection µÄÎļþËùÌṩµÄÐÅÏ¢¡£ δÀ´£¬ »¹»á¶ÔËü½øÐнøÒ»²½µÄÀ©Õ¹£¬ ´Ó¶øÌṩ°üÀ¨ distfile ÆÕ²é£¬ ÒÔ¼°ÆäËüÀ´Ô´ÔÚÄڵĸü¶àÐÅÏ¢¡£
¡¡¡¡ÒªÊ¹ÓÃÕâ¸ö¹¤¾ß£¬ ¿ÉÒԴӲ鿴¹ØÓÚijһ¸ö port µÄÈ«²¿×ÊÁ쵀 Port µÄ×ÝÀÀ ¿ªÊ¼¡£
¡¡¡¡±¾ÎÄ׫дʱ, ÕâÊÇΨһһ¸öÄܹ»½« GNATS PR Ï ͬ¶ÔÓ¦µÄ port Ãû×ÖÓ³ÉäÆðÀ´µÄ×ÊÔ´¡£ (Ìá½» PR µÄÓû§£¬ ÓÐʱ²¢²»ÔÚ Synopsis (¸ÅÒª) ÖÐÖ¸Ã÷ port µÄÃû×Ö£¬ ¾¡¹ÜÎÒÃÇÏ£ÍûËûÃÇÕâÑù×ö)¡£ Òò´Ë£¬ portsmon ÔÚÄúÏëÒª²éÕÒÊÇ·ñÓÐÈËÌύij¸öÏÖ´æµÄ port µÄ PR£¬ ÒÔ¼°ËüµÄÁª±àÊÇ·ñ³öÏÖÁË´íÎó£» »òÔÚÄú´´½¨Ð嵀 port ֮ǰÏëÒª²éÕÒÒ»ÏÂÊÇ·ñÒѾÓÐÈËÌá½»¹ýʱ£¬ ¾Í·Ç³£ÓÐÓÃÁË¡£