Chapter 3 ËܳÊŪ¤Ê port

Table of Contents
3.1 port ¹½ÃۤξܺÙ
3.2 ¥ª¥ê¥¸¥Ê¥ë¤Î¥½¡¼¥¹¤ÎÆþ¼ê
3.3 port ¤Î½¤Àµ
3.4 ¥Ñ¥Ã¥Á¤ÎŬÍÑ
3.5 ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó
3.6 ¥æ¡¼¥¶¤«¤é¤ÎÆþÎϤΰ·¤¤

»Äǰ¤Ê¤¬¤é°Ü¿¢¤¬¤½¤¦´Êñ¤Ç¤Ï¤Ê¤¯¡¢¤½¤ì¤òư¤«¤¹¤¿¤á¤Ë ¿¾¯¤ÎÊѹ¹¤¬É¬Íפˤʤë¾ì¹ç¤â¤¢¤ë¤Ç¤·¤ç¤¦¡£ ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢ÌÏÈÏŪ¤Ê ports ¤ÎºîË¡¤Ë½¾¤¤¡¢ ¤É¤Î¤è¤¦¤ËÊѹ¹¤ò¹Ô¤Ê¤Ã¤ÆÆ°¤¯¤è¤¦¤Ë¤¹¤ë¤Î¤«¤ò ½ç¤òÄɤäÆÀâÌÀ¤·¤Þ¤¹¡£

3.1 port ¹½ÃۤξܺÙ

¤Þ¤º¡¢¤¢¤Ê¤¿¤¬ port ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç make ¤È ÆþÎϤ·¤Æ¤«¤éµ¯¤³¤ë°ìÏ¢¤Î½ÐÍè»ö¤Ë¤Ä¤¤¤Æ¡¢ ½ç¤òÄɤäÆÀâÌÀ¤·¤Þ¤¹¡£ ¤³¤³¤òÆÉ¤à¤È¤­¤Ë¤Ï¡¢Ê̤Υ¦¥£¥ó¥É¥¦¤Ë bsd.port.mk ¤òɽ¼¨¤·¤Æ¤ª¤¯¤È Íý²ò¤Î½õ¤±¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

¤·¤«¤·¡¢bsd.port.mk ¤¬²¿¤ò¤·¤Æ¤¤¤ë¤Î¤« ´°Á´¤ËÍý²ò¤Ç¤­¤Ê¤¯¤Æ¤â ¿´ÇÛ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ¤½¤ì¤Û¤É¿¤¯¤Î¿Í¤¬Íý²ò¤·¤Æ¤¤¤ë ¤È¤¤¤¦¤ï¤±¤Ç¤Ï ¤¢¤ê¤Þ¤»¤ó¤«¤é¡Ä¡£ f(^_^;)

  1. ¤Þ¤º¡¢fetch ¤È¤¤¤¦ ¥¿¡¼¥²¥Ã¥È¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤³¤Î fetch ¥¿¡¼¥²¥Ã¥È¤Ï¡¢ ÇÛÉÛ¥Õ¥¡¥¤¥ë¤¬¥í¡¼¥«¥ë¤Î DISTDIR ¤Ë ¸ºß¤¹¤ë¤³¤È¤òÊݾڤ¹¤ëÌòÌܤò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤â¤·É¬Íפʥե¡¥¤¥ë¤¬ DISTDIR ¤Ë ¸ºß¤·¤Ê¤±¤ì¤Ð¡¢fetch ¥¿¡¼¥²¥Ã¥È¤Ï Makefile ¤Ç»ØÄꤵ¤ì¤¿ MASTER_SITES Ãæ¤Î URL ¤ä¡¢ FreeBSD ¤Î¥á¥¤¥ó FTP ¥µ¥¤¥È ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ (¤³¤³¤Ë¤Ï¥Ð¥Ã¥¯¥¢¥Ã¥×¤È¤·¤Æ¡¢¤ï¤ì¤ï¤ì ports ´ÉÍý¼Ô¤¬³Îǧ¤·¤¿ ÇÛÉÛ¥Õ¥¡¥¤¥ë¤òÃÖ¤¤¤Æ¤¢¤ê¤Þ¤¹) ¤òõ¤·¤Ë¤¤¤­¤Þ¤¹¡£ make ¤ò¼Â¹Ô¤¹¤ë¥Þ¥·¥ó¤¬¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ë Àܳ¤µ¤ì¤Æ¤¤¤Æ¡¢ÌÜŪ¤Î¥Õ¥¡¥¤¥ë¤ò FETCH ¤Ç ¼è¤Ã¤Æ¤³¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤ò DISTDIR ¤Ë Êݸ¤·¤Þ¤¹¡£

  2. ¼¡¤Ë extract ¥¿¡¼¥²¥Ã¥È¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ï DISTDIR ¤«¤é ÇÛÉÛ¥Õ¥¡¥¤¥ë (ÉáÄÌ¤Ï gzip ¤µ¤ì¤¿ tar ¥Õ¥¡¥¤¥ë) ¤òÆÉ¤ß¹þ¤ß¡¢ ¤½¤ÎÆâÍÆ¤òºî¶È¥Ç¥£¥ì¥¯¥È¥ê WRKDIR (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï work) ¤ËŸ³«¤·¤Þ¤¹¡£

  3. ¼¡¤Ë patch ¥¿¡¼¥²¥Ã¥È¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤Þ¤º¡¢PATCHFILES ¤Ë¥Ñ¥Ã¥Á¥Õ¥¡¥¤¥ë¤¬ »ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¤½¤Î¥Ñ¥Ã¥Á¤òŬÍѤ·¤Þ¤¹¡£ ¼¡¤Ë¡¢PATCHDIR ¥Ç¥£¥ì¥¯¥È¥ê (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï files ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê) ¤Ë patch-* ¤È¤¤¤¦ ̾Á°¤Î¥Ñ¥Ã¥Á¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¡¢ ¤³¤ì¤é¤ò¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤ËŬÍѤ·¤Þ¤¹¡£

  4. ¼¡¤Ë configure ¥¿¡¼¥²¥Ã¥È¤¬ ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ë¤Ï¡¢¤¤¤í¤¤¤í¤Ê¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£

    1. scripts/configure ¤¬ ¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥¹¥¯¥ê¥×¥È¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

    2. HAS_CONFIGURE ¤Þ¤¿¤Ï GNU_CONFIGURE ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ WRKSRC/configure ¤¬ ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

    3. USE_IMAKE ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ XMKMF (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï xmkmf -a) ¤¬ ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

  5. ºÇ¸å¤Ë build ¥¿¡¼¥²¥Ã¥È¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ïºî¶È¥Ç¥£¥ì¥¯¥È¥ê (WRKSRC) ¤Ë¹ß¤ê¤Æ¤¤¤­¡¢ ¥Ó¥ë¥É (¥³¥ó¥Ñ¥¤¥ë) ¤ò¼Â¹Ô¤¹¤ë¤Î¤¬ÌòÌܤǤ¹¡£ USE_GMAKE ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð GNU make ¤¬»ÈÍѤµ¤ì¡¢ ¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð FreeBSD ¤Î make ¤¬ »ÈÍѤµ¤ì¤Þ¤¹¡£

¾åµ­¤Ï¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ç¤¹¡£¤³¤ì¤Ë²Ã¤¨¤Æ pre- ²¿¤È¤«¤ä post- ²¿¤È¤«¤È¤¤¤¦ ¥¿¡¼¥²¥Ã¥È¤òÄêµÁ¤·¤¿¤ê¡¢¤½¤Î¤è¤¦¤Ê̾Á°¤Î¥¹¥¯¥ê¥×¥È¤ò scripts ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯¤³¤È¤â²Äǽ¤Ç¡¢ ¤½¤ì¤¾¤ì¥Ç¥Õ¥©¥ë¥È¤Îưºî¤ÎÁ°¤ä¸å¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

¤¿¤È¤¨¤Ð¡¢post-extract ¥¿¡¼¥²¥Ã¥È¤¬ Makefile ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¢ scripts ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë pre-build ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ post-extract ¥¿¡¼¥²¥Ã¥È¤Ï Ä̾ï¤ÎŸ³«Æ°ºî¤Î¸å¤Ë¸Æ¤Ó½Ð¤µ¤ì¡¢ pre-build ¥¹¥¯¥ê¥×¥È¤Ï ¥Ç¥Õ¥©¥ë¥È¤Î¥³¥ó¥Ñ¥¤¥ëưºî¤ÎÁ°¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¼Â¹Ô¤¹¤ëưºî¤¬´Êñ¤Ç¤¢¤ì¤Ð¡¢¥¹¥¯¥ê¥×¥È¤è¤ê¤â Makefile ¤Î¥¿¡¼¥²¥Ã¥È¤ò»ÈÍѤ¹¤ë¤³¤È¤¬ ¿ä¾©¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤Ê¤¼¤Ê¤é¡¢¤½¤Î port ¤Ç¤Ï ¤É¤Î¤è¤¦¤ÊÈóɸ½à¤Îưºî¤¬É¬ÍפȤµ¤ì¤ë¤Î¤«¡¢ °ì²Õ½ê¤Ë¤Þ¤È¤á¤Æ½ñ¤¤¤Æ¤¢¤Ã¤¿Êý¤¬Â¾¤Î¿Í¤ËÍý²ò¤·¤ä¤¹¤¤¤«¤é¤Ç¤¹¡£

¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï bsd.port.mk ¤Î do- ²¿¤È¤«¤È¤¤¤¦ ¥¿¡¼¥²¥Ã¥È¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð port ¤òŸ³«¤¹¤ë¥³¥Þ¥ó¥É¤Ï do-extract ¥¿¡¼¥²¥Ã¥È¤Ë½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ ¤â¤·¥Ç¥Õ¥©¥ë¥È¤Î¥¿¡¼¥²¥Ã¥È¤ËÉÔËþ¤¬¤¢¤ì¤Ð¡¢ Makefile Ãæ¤Ç do- ²¿¤È¤«¤È¤¤¤¦ ¥¿¡¼¥²¥Ã¥È¤òºÆÄêµÁ¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ ¹¥¤­¤Ê¤è¤¦¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

Note: ``¥á¥¤¥ó''¤Î¥¿¡¼¥²¥Ã¥È (¤¿¤È¤¨¤Ð extract, configure¡¢¤½¤Î¾) ¤Ï¡¢ ¤¹¤Ù¤Æ¤ÎÁ°Ãʳ¬¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤«¤é¡¢ ¼ÂºÝ¤Î¥¿¡¼¥²¥Ã¥È¤ä¥¹¥¯¥ê¥×¥È¤ò¸Æ¤Ó½Ð¤¹°Ê³°¤Î¤³¤È¤Ï ¹Ô¤Ê¤¤¤Þ¤»¤ó¤·¡¢¤³¤ì¤é¤¬Êѹ¹¤µ¤ì¤ë¤³¤È¤âÁÛÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¤â¤·Å¸³«¤ÎÊýË¡¤òÊѹ¹¤·¤¿¤¤¤È¤­¤Ë¤Ï do-extract ¤ÎÊѹ¹¤Ë¤è¤Ã¤Æ¼Â¸½¤·¡¢ ÀäÂÐ¤Ë extract ¤Ë¤Ï ¼ê¤ò¿¨¤ì¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£

¤³¤ì¤Ç¡¢¥æ¡¼¥¶¤¬ make ¤È ÆþÎϤ·¤¿¤È¤­¤Ë²¿¤¬µ¯¤³¤ë¤Î¤«¤¬Íý²ò¤Ç¤­¤¿¤È»×¤¤¤Þ¤¹¡£ ¤Ç¤Ï¡¢´°àú¤Ê port ¤òºîÀ®¤¹¤ë¤¿¤á¤Î¿ä¾©¼ê½ç¤ò ½ç¤Ë¸«¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£

FreeBSD ports ¥·¥¹¥Æ¥à¤Ë´Ø¤¹¤ë¼ÁÌä¤Ï¡¢(±Ñ¸ì¤Ç) <ports@FreeBSD.org> ¤Ø¡¢
¤³¤Îʸ½ñ¤Î¸¶Ê¸¤Ë´Ø¤¹¤ë¤ªÌ䤤¹ç¤ï¤»¤Ï¡¢(±Ñ¸ì¤Ç) <doc@FreeBSD.org> ¤Þ¤Ç¤ª´ê¤¤¤·¤Þ¤¹¡£