4.5 ¨Ï¥Î Ports ºÞ²z¾÷¨î

¤U­±§Ú­Ì·|¤¶²Ð¦p¦ó¨Ï¥Î Ports Collection ¨Ó¦w¸Ë¡B²¾°£³nÅ骺°ò¥»¥Îªk¡C ¦Ü©ó¨ä¥L¥i¥Îªº make ¸Ô²Ó¥Îªk»PÀô¹Ò³]©w¡A¥i°Ñ¾\ ports(7)¡C

4.5.1 °O±o¦w¸Ë Ports Collection

¦b¦w¸Ë¥ô¤@ ports ¤§«e¡A¥²¶·¥ý¸Ë¤W Ports Collection ¡X¡X ¥¦¥D­n¬O¥Ñ /usr/ports ¤º¤@°ï Makefiles, patches ¥H¤Î¤@¨Ç³nÅ鲤¶ÀɩҲզ¨ªº¡C

¦b¸Ë FreeBSD ®É¡A­Y§Ñ¤F¦b sysinstall ¤º¤Ä¿ï­n¸Ë Ports Collection ªº¸Ü¡A ¨SÃö«Y¡A¥i¥H·Ó¤U¦C¤è¦¡¨Ó¦w¸Ë ports collection¡G

CVSup ¤è¦¡

¨Ï¥Î CVSup ¬O¦w¸Ë¡B§ó·s Ports Collection ªº§Ö³t¤èªk¤§¤@¡C ­Y·Q§óÁA¸Ñ CVSup ¥Îªkªº¸Ü¡A½Ð°Ñ¾\ ¨Ï¥Î CVSup¡C

Note: csup ¬O¥H C »y¨¥¹ï CVSup ³nÅ骺­«¼g¡A¦b FreeBSD 6.2 ¤Î¤§«áª©¥»§Y¦³ªþ¦b¨t²Î¤º¡C ¥i¥Hª½±µ¥Î¨t²Î©Òªþªº csup §Y¥i¸õ¹L¨BÆJ¤@ªº°Ê§@¡A ¨Ã±N¥»¤å¬ÛÃö´£¨ì cvsup ¤§³B¡A ³£§ï¬° csup §Y¥i¡C ¦¹¥~¡A FreeBSD 6.2 ¤§«eªºª©¥»¡A«h¥i¸Ë net/csup ©ÎªÌ package ¨Ó¨Ï¥Î csup¡C

²Ä¤@¦¸¶] CVSup ¤§«e¡A½Ð¥ý½T»{ /usr/ports ¬O°®²bªº¡I ­Y§A¤w¸g¸Ë¤F Ports Collection ¡A¦ý¤S¦Û¦æ¥[¤W¨ä¥L patch ÀÉ¡A¨º»ò CVSup ¨Ã¤£·|§R°£§A¦Û¦æ¥[¤Wªº patch ÀÉ¡A³o¼Ë¥i¯à·|¾É­P­n¦w¸Ë¬Y¨Ç³nÅé®É¡A µo¥Í patch ¥¢±Ñ©Î½sĶ¥¢±Ñ¡C

  1. ¦w¸Ë net/cvsup-without-gui package¡G

    # pkg_add -r cvsup-without-gui
    

    ²Ó¸`¥Îªk½Ð°Ñ¾\ ¦w¸Ë CVSup(Section A.5.2)¡C

  2. °õ¦æ cvsup¡G

    # cvsup -L 2 -h cvsup.tw.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
    

    ½Ð§â cvsup.tw.FreeBSD.org ½Ð§ï¦¨Â÷§A¤ñ¸ûªñ (§Ö)ªº CVSup ¥D¾÷¡C ³o³¡¤À¥i¥H°Ñ¾\§¹¾ãªº CVSup mirror ¯¸¦Cªí(Section A.5.7)¡C

    Note: ­Y·Q§ï¥Î¦Û¤v³]ªº ports-supfile¡A¤ñ¦p»¡¡A ¤£·Q¨C¦¸³£±o¥´«ü¥O¨Ó«ü©w©Ò¨Ï¥Îªº CVSup ¥D¾÷¡C

    1. ³oºØ±¡ªp¤U¡A½Ð¥H root Åv­­§â /usr/share/examples/cvsup/ports-supfile ½Æ»s¨ì¨ä¥L¦ì¸m¡A¤ñ¦p /root ©ÎªÌ¦Û¤v±b¸¹ªº®a¥Ø¿ý¡C

    2. ­×§ï·sªº ports-supfile ÀÉ¡C

    3. §â CHANGE_THIS.FreeBSD.org §ï¬°Â÷§A¤ñ¸ûªñ(§Ö)ªº CVSup ¥D¾÷¡C ³o³¡¤À¥i¥H°Ñ¾\§¹¾ãªº CVSup Mirrors (Section A.5.7) ¯¸¦Cªí

    4. µM«á´N¶}©l¥HÃþ¦ü¤U¦C«ü¥O¶] cvsup¡G

      # cvsup -L 2 /root/ports-supfile
      
  3. °õ¦æ cvsup(1) ¤§«á¡A´N·|¶}©l§ó·s Ports Collection¡C ¤£¹L³o°Ê§@¥u¬O¡y§ó·s¡z¨Ã¤£¬O¡y¤É¯Å¡z¡A¤£·|§â¤w¸Ëªº³nÅé­«·s½sĶ¡B¤É¯Å¡C

Portsnap ¤è¦¡

portsnap(8) ¤]¬O§ó·s Ports Collection ªº¤è¦¡¤§¤@¡C FreeBSD 6.0 °_¶}©l¤º«Ø Portsnap ¾÷¨î¡A¦Ó¸ûªº¨t²Î¡A«h¥i³z¹L ports-mgmt/portsnap port ¨Ó¦w¸Ë¡G

# pkg_add -r portsnap

Portsnap ²Ó¸`¥\¯à¡A½Ð°Ñ¾\ Portsnap ¨Ï¥Î½g¡C

  1. ­Y /usr/ports ¥Ø¿ý¤£¦s¦bªº¸Ü¡A ´N«Ø¥ß¤@¤U§a¡G

    # mkdir /usr/ports
    
  2. ±µ¤U¨Ó¡A¤U¸üÀ£ÁYªº Ports Collection ©w´Á§ó·sÀɨì /var/db/portsnap ¥Ø¿ý¡C §¹¦¨¤U¸ü«á¡A­nÂ_½u»P§_³£¥i¥H¡C

    # portsnap fetch
    
  3. ­Y¬O²Ä¤@¦¸¶] Portsnap ªº¸Ü¡A «h»Ý­n¥ý¸ÑÀ£¨ì /usr/ports¡G

    # portsnap extract
    

    ­Y¤w¦³ /usr/ports ¦Ó¥B¥u¬O·Q§ó·s¦Ó¤w¡A ¨º»ò´N·Ó¤U­±§@¡G

    # portsnap update
    

Sysinstall ¤è¦¡

³o¤è¦¡­n¥Î sysinstall ³z¹L¦w¸Ë¨Ó·½¨Ó¸Ë Ports Collection¡C ½Ðª`·N¡G©Ò¦w¸Ëªº Ports Collection ª©¥»¥u¬O¸Ó release µo§G®Éªºª©¥»¦Ó¤w¡A¦Ó«D³Ì·s¡C ­Y¯à¤Wºô(Internet)ªº¸Ü¡A½Ð¨Ï¥Î¤W­z¤è¦¡¤§¤@·|¤ñ¸û¦n¡C

  1. ¥H root Åv­­°õ¦æ sysinstall (¦b FreeBSD 5.2 ¤§«eª©¥»«h¬O /stand/sysinstall) ¡A¤è¦¡¦p¤U¡G

    # sysinstall
    
  2. ½Ð¥H¤è¦VÁä²¾°Ê¿ï¾Ü¶µ¥Ø¡A¿ï¾Ü Configure¡AµM«á«ö Enter Áä¡C

  3. ¿ï¾Ü Distributions¡AµM«á«ö Enter Áä¡C

  4. ¿ï¾Ü ports¡AµM«á«ö Space Áä¡C

  5. ¿ï Exit¡AµM«á«ö Enter Áä¡C

  6. ¿ï¾Ü­n¥Îªº¦w¸Ë¨Ó·½¡A¤ñ¦p¡GCDROM(¥úºÐ)¡BFTP µ¥¤è¦¡¡C

  7. ¿ï Exit¡AµM«á«ö Enter Áä¡C

  8. «ö¤U X Áä´N¥iÂ÷¶} sysinstall µ{¦¡¡C

4.5.2 Ports ªº¦w¸Ë¤è¦¡

´£¨ì Ports Collection¡A­º¥ý­n¥ý»¡©úªº¬O¡G¦ó¿× ¡§skeleton¡¨¡C ²³æ¨ÓÁ¿¡Aport skeleton ´N¬OÅý³nÅé¦p¦ó¦b FreeBSD ¶¶§Q½sĶ¡B¦w¸Ëªº³Ì°ò¥»ÀɮײզX¡C ¨C¥÷ port skeleton °ò¥»¤W·|¦³¡G

¦³¨Ç port ÁÙ·|¦³¨ä¥LÀɮסA¹³¬O pkg-message ÀÉ¡C port ¨t²Î¦b¤@¨Ç±¡ªp®É¡A·|¥Î³o¨ÇÀɮסC ¦pªG·Qª¾¹D³o¨ÇÀɮתº§ó¦h²Ó¸`¥Î³~¡A¥H¤Î port ¤@¯ë¥Îªk¡A½Ð°Ñ¾\ FreeBSD Porter's Handbook¡C

port ¤º¼gªº¬O§i¶D¨t²Î¦p¦ó½sĶ source code ªº¬ÛÃö«ü¥O¡A ¦ý¨Ã¤£¬O¯u¥¿ªº source code¡C ¦Ó source code ¥i¥H±q¥úºÐ©Îºô¸ô(Internet)¨Ó¨ú±o¡A ¸Ó³nÅé¶}µoªÌ¥i¯à·|§â source code ¥H¦UºØ®æ¦¡¨Óµo§G¡C ³q±`¬O¥H tar ¥H¤Î gzip ³o¨âªÌ¤u¨ã¤@°_À£ÁYªºÀɮסA ¤]¦³¥i¯à¬O¥H¨ä¥L¤u¨ãÀ£ÁY¡A©Î®Ú¥»¨SÀ£ÁY¡C ¦Ó³nÅ骺 source code µL½×¬O¥H­þ¤@ºØÀ£ÁYÀÉ«¬ºA¡A§Ú­Ì³£ºÙ¤§¬° ¡§distfile¡¨¡C ¤U­±±N¤¶²Ð¨âºØ¦w¸Ë FreeBSD port ªº¤è¦¡¡C

Note: ­n¦w¸Ë port ªº¸Ü¡A½Ð°È¥²¤Á¬° root ¨­¥÷¡C

Warning: ¦b¦w¸Ë¥ô¦ó port ¤§«e¡A½Ð°È¥²½T»{¦³§ó·s Ports Collection ¨ì³Ì·sª©¡A ¦¹¥~½ÐÀ˾\ http://vuxml.freebsd.org/ ¨ÓÀˬd©Ò­n¸Ëªº port ¬O§_¦³¬ÛÃö¦w¥þº|¬}ijÃD»Ý­nª`·Nªº¡C

portaudit ·|¦b¦w¸Ë¥ô¦ó port ¤§«e¡A ¥ý¦Û°ÊÀˬd¬O§_¦³¬ÛÃö¤wª¾ªº¦w¥þº|¬}¡C³o­Ó¤u¨ã¦b Ports Collection ¤º¦³ (ports-mgmt/portaudit)¡C ¦b¦w¸Ë port ¤§«e¡A¥i¥H¥ý¶] portaudit -F «ü¥O¡A ¦p¦¹¤@¨Ó´N·|§ì³Ì·sªº¸ê¦wº|¬}¸ê®Æ®w¦^¨Ó®Ö¹ï¡C ¨C¤Ñªº¨t²Î©w´Á¦wÀË·|¦Û°Ê§ó·s¸ê®Æ®w¡A¨Ã§@¦w¥þ½]®Ö¡C ¸Ô±¡½Ð°Ñ¾\ portaudit(1) ¥H¤Î periodic(8) ªº½u¤W»¡©ú¡C

Ports Collection ·|°²³]§Aªººô¸ô¬O¥i¥¿±`³s½uªº¡C ¦pªG¨S¦³ªº¸Ü¡A¨º»ò»Ý¤â°Ê§â©Ò»Ýªº distfile Àɽƻs¨ì /usr/ports/distfiles ¤~¦æ¡C

¶}©l¾Þ§@¤§«e¡A­n¥ý¶i¤J¥´ºâ¦w¸Ëªº port ¥Ø¿ý¤º¡G

# cd /usr/ports/sysutils/lsof

¤@¥¹¶i¤J lsof ¥Ø¿ý«á¡A´N¥i¥H¬Ý¨ì³o­Ó port ªº skeleton µ²ºc¡C ±µ¤U¨Ó¡A´N¬O½sĶ¡A¤]´N¬O ¡§build¡¨ ³o­Ó port¡C ¥u»Ý²³æ¿é¤J make «ü¥O¡A´N¥i»´ÃP§¹¦¨½sĶ¡C §¹¦¨«á¡AÀ³¸Ó¥i¥H¬Ý¨ìÃþ¦ü¤U­±°T®§¡G

# make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===>  Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===>  Patching for lsof-4.57
===>  Applying FreeBSD patches for lsof-4.57
===>  Configuring for lsof-4.57
...
[configure output snipped]
...
===>  Building for lsof-4.57
...
[compilation output snipped]
...
#

½Ðª`·N¡G½sͧ¹¦¨«á¡A´N·|¦^¨ì´£¥Ü¦C(prompt)¡C±µ¤U¨Ó´N¬O¦w¸Ë¸Ó port ¤F¡A­n¸Ëªº¸Ü¡A¥u»Ý¦b­ì¥»ªº make «ü¥O«á­±¦A¥[¤W¤@­Ó¦r§Y¥i¡A ¨º­Ó¦r´N¬O install¡G

# make install
===>  Installing for lsof-4.57
...
[installation output snipped]
...
===>   Generating temporary packing list
===>   Compressing manual pages for lsof-4.57
===>   Registering installation for lsof-4.57
===>  SECURITY NOTE: 
      This port has installed the following binaries which execute with
      increased privileges.
#

¤@¥¹¦^¨ì´£¥Ü¦C(prompt)¡A´N¥i¥H°õ¦æ­è¸Ëªºµ{¦¡¤F¡C ¥t¥~¡A¦]¬° lsof ³oµ{¦¡°õ¦æ®É·|¦³ÃB¥~Åv­­¡A ©Ò¥H·|¥X²{¦w¥þĵ§i¡C¦b½sĶ¡B¦w¸Ë port ªº®É­Ô¡A ½Ð¯d·N¥ô¦ó¥X²{ªºÄµ§i¡C

¦¹¥~¡A«ØÄ³§R°£½sĶ¥Îªº¤u§@¥Ø¿ý(¹w³]¬O work)¡A ³o¥Ø¿ý¤º¬°¦b½s͹Lµ{¤¤©Ò¥Î¨ìªº¤@¨ÇÁ{®ÉÀɮסA ³o¨ÇÀɮפ£¥u¦ûµwºÐªÅ¶¡¡A¦Ó¥B¤]¥i¯à·|¦b¸Ó port ¤É¯Å·sª©®É¡A ³y¦¨¤£¥²­nªº§xÂZ¡C

# make clean
===>  Cleaning for lsof-4.57
#

Note: ¥Î make install clean ´N¥i¥H¤@¤f®ð§¹¦¨­è©Ò»¡ make¡Bmake install¡B make clean ³o¤T­Ó¨BÆJ¤F¡C

Note: ¦³¨Ç shell ·|¨Ì¾Ú PATH Àô¹ÒÅܼƪº¸ô®|¡A §â¨º¨Ç¸ô®|ªº°õ¦æÀÉ cache °_¨Ó¡A¨Ó¥[³t·j´M°õ¦æÀÉ¡C ¦pªG§A¥Îªº¬O³oÃþªº shell¡A¨º»ò¦b¸Ë§¹ port «á»Ý­n¥´ rehash «ü¥O¡A¤~¯à°õ¦æ·s¸Ëªº°õ¦æÀÉ¡A¦Ó rehash «ü¥O¥i¥H¦b tcsh ¤§Ãþªº shell ¤W¨Ï¥Î¡A­Y¬O sh ªº¸Ü¡A«h¬O hash -r¡C ¸Ô±¡½Ð°Ñ¾\§A©Ò¨Ï¥Îªº shell ¬ÛÃö¤å¥ó¡C

¦³¨Ç¥Ñ©Ò¿× third-party ©Òµo¦æªº DVD-ROM ²£«~¡A¹³¬O FreeBSD Mall ©Òµo¦æªº FreeBSD Toolkit ·|¥]¬A distfiles ÀɮסA ³o¨ÇÀÉ®×¥i¥Î¨Ó·f°t Ports Collection¡C §â DVD-ROM ±¾¸ü¦b /cdrom¡C ­Y¨Ï¥Î¨ä¥L±¾¸üÂIªº¸Ü¡A­n°O±o³]©w CD_MOUNTPTS Àô¹ÒÅܼƬ°¬Û¹ïÀ³ªº±¾¸üÂI¡C ¦p¦¹¤@¨Ó¡A¥úºÐ¤W­Y¦³©Ò»Ýªº distfiles ´N·|¦Û°Ê¨Ï¥Î¥úºÐªºÀɮסC

Note: ½Ðª`·N¡A¦³¤Ö¼Æ port ¨Ã¤£¤¹³\³z¹L¥úºÐ¨Óµo§GÀɮסC ¥i¯àªº­ì¦]¦³¡G»Ý¥ý¶ñµù¥U³æ¤~¯à¤U¸ü©Î´²§GÀɮסA©Î¨ä¥L­ì¦]¡C ¦pªG·Q¦w¸Ë¦b¥úºÐ¤W¨Sªþ¤Wªº port¡A´N»Ý³s¤Wºô¸ô¤~¯àÄ~Äò¶i¦æ¦w¸Ë¡C

ports ¨t²Î±Ä¥Î fetch(1) ¨Ó¤U¸üÀɮסA ¥¦¦³³\¦h¥i½Õ¾ãªºÀô¹ÒÅܼơA¥]¬A¡G FTP_PASSIVE_MODE¡BFTP_PROXY¡B FTP_PASSWORD¡C ¦pªG¬O³B©ó¦³¨¾¤õÀðªºÀô¹Ò¡A ©ÎªÌ»Ý­n¨Ï¥Î FTP/HTTP proxy¡A¨º»ò´N»Ý­n³]©w³o¨ÇÅܼơC ¨Ï¥Î²Ó¸`½Ð°Ñ¾\ fetch(3) »¡©ú¡C

­YµLªkÀH®É¤@ª½¤Wºôªº¸Ü¡A¨º»ò¥i¥H§Q¥Î make fetch¡C ¥u­n¦b port ªº³Ì¤W¼h¸ô®|(/usr/ports) ¥´³o«ü¥O¡A¨º»ò©Ò¦³»Ý­n¥Î¨ìªºÀɮ׳£·|¤U¸ü¡C ³o«ü¥O¤]¥i¥H¦b¤U¼h¥Ø¿ý¨Ï¥Î¡A¨Ò¦p¡G /usr/ports/net¡C ½Ðª`·N¡A­Y¸Ó port ¦³¬Û¨Ìªº library ©ÎªÌ¨ä¥L port ªº¸Ü¡A ¨º»ò¥¦¨Ã¤£·|¸òµÛ¤@°_¤U¸ü¨ä¥L©Ò¬Û¨ÌªºÀɮסC ­Y·Q¤@¦¸¤U¸ü©Ò¦³¬Û¨Ìªº port ©Ò¦³ÀɮסA¨º»ò«ü¥O°Ñ¼Æ½Ð§ï¥Î fetch-recursive ¦Ó«D fetch¡C

Note: ¥i¥H¦b¬YÃþ§O©Î³Ì¤W¼h¸ô®|¥´ make «ü¥O¨Ó½sĶ©Ò¦³ªº port¡A©ÎªÌ¥H¤W­zªº make fetch «ü¥O¨Ó¤U¸ü©Ò¦³ÀɮסC µM¦Ó¡A³o¼Ë¬O¬Û·í¦MÀI¡A¦]¬°¦³¨Ç port ¤£¯à¨Ã¦s¡C ¤]¦³¥t¤@ºØ±¡ªp¡A¦³¨Ç port ¥i¯à·|¥H¬Û¦PÀɦW¡A ¦ý¬O¹ê»Ú¤W«o¬O¤£¦P¤º®eªºÀɮסC

¦b¬Y¨Ç¨u¨£±¡ªp¡A¥i¯à»Ý¥[¤W MASTER_SITES (Àɮתº­ì©l¤U¸ü³B)¤§¥~ªº¤U¸üÂI¡A¥H¤U¸ü©Ò»ÝªºÀɮסC ¥i¥H¥Î¤U¦C«ü¥O¡A¨Ó§ó§ï¹w³]ªº MASTER_SITES ¤U¸üÂI¡G

# cd /usr/ports/directory
# make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch

¤W­±³o¨Ò¤l¡A¬O§â MASTER_SITES §ï³] ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ ¬°¤U¸üÂI¡C

Note: ¦³¨Ç port ¤¹³\(©Î­n¨D)±z±o«ü©w½sĶ¿ï¶µ¡A ¥H±Ò¥Î¡B°±¥Î¸Ó³nÅ餤«D¥²¶·ªº¥\¯à¡B¦w¥þ¿ï¶µ¥H¤Î¨ä¥L¥i¦Û­qªº¿ï¶µ¡C ¨ã¦³¥Nªí©Êªº¥]¬A¤F www/mozilla¡Bsecurity/gpgme¡Bmail/sylpheed-claws¡C ­Y¦³³oÃþ¿ï¶µ®É¡A³q±`¦b½sͮɷ|¥X²{¬ÛÃö´£¥Ü°T®§¡C

4.5.2.1 §ó§ï(Override)¹w³]ªº Ports ¥Ø¿ý

¦³®É­Ô¡A·|µo²{¨ì¨Ï¥Î¨ä¥L¥Ø¿ý§@¬° port¡Bdistfiles ¥Ø¿ý¥i¯à¬Û·í¦³¥Î(¬Æ¦Ü¬O¥²¶·)¡A¥i¥H³]©w PORTSDIR ¤Î PREFIX Àô¹ÒÅܼƥH­×§ï¹w³]ªº port ¥Ø¿ý¡CÁ|¨Ò¡G

# make PORTSDIR=/usr/home/example/ports install

¥H¤W·|¦b /usr/home/example/ports ¤º¶i¦æ½sĶ¡A ¨Ã§â©Ò¦³Àɮצw¸Ë¨ì /usr/local ¤º¡C

# make PREFIX=/usr/home/example/local install

«h·|¦b /usr/ports ¥Ø¿ý¤º½sĶ¡A ¨Ã§â©Ò¦³Àɮצw¸Ë¨ì /usr/home/example/local ¤º¡C

·íµMÅo¡A

# make PORTSDIR=../ports PREFIX=../local install

«h·|¦P®É¥]§t¨âºØ³]©w(ÁÙ¦³«Ü¦hÅܤƥH­PµLªk¦b¥»­¶¥þ³¡³£¦³¼g¨ì¡A ¦ý±zÀ³¸Ó¤w¸g¦³§ì¨ì¤j·§·§©À¤F§a)¡C

¦¹¥~¡A³o¨ÇÅܼƤ]¥H§@¬°Àô¹ÒÅܼƨӳ]©w¡C ½Ð¨Ì±z©Ò¨Ï¥Îªº shell ¥h°Ñ¾\¬ÛÃö»¡©ú¡A¥HÁA¸Ñ¦p¦ó³]©w¡C

4.5.2.2 ³B²z imake

¦³¨Ç port ·|¨Ï¥Î imake(X Window ¨t²Îªº¤@³¡¥÷) µLªk¥¿±`¹B¥Î PREFIX ÅܼơA ¥¦­Ì·|°í«ù§âÀɮ׳£¦w¸Ë¨ì /usr/X11R6 ¥Ø¿ý¡C ¦P¼Ë¦a¡A¤]¦³¤@¨Ç Perl port ·|©¿²¤ PREFIX ¨Ã§âÀɮצw¸Ë¨ì Perl ¥Ø¿ý¬[ºc¤º¡C Åý³o¨Ç ports respect PREFIX ¬O¬Û·í§xÃø¡A¬Æ¦Ü¬O¤£¥i¯àªº¨Æ¡C

4.5.2.3 ­«·s³]©w Ports ¿ï¶µ

¦b½sͬY¨Ç port ®É·|¥X²{¿ï³æµe­±(ncurses-based)¡A ¥i¥H¥Î¨Ó¿ï¾Ü¦w¸Ë¿ï¶µ¡C ³q±`¸Ë¦n¸Ó port ¤§«á¡A«K¤£¤Ó·|»Ý­n­«¥[¡B ²¾°£¡B§ó§ï¤@¨Ç·íªì¦w¸Ëªº¿ï¶µ¡C ¦ý¤é«á­Y¦³»Ý­nªº¸Ü¡A ¤]¦³³\¦h¤è¦¡¥i¥H½Õ¾ã³o¨Ç¿ï¶µ¡C ¨ä¤¤¤@ºØ¤è¦¡«K¬O¤Á¨ì¸Ó port ¥Ø¿ý¡A ¨Ã¥´ make config §Y¥i¦A¦¸¦^¨ì¿ï¶µµe­±¥h§@½Õ¾ã¡C ¥t¥~ÁÙ¥i¥Î make showconfig ¥HÅã¥Ü¸Ó port ¦w¸Ë®É©Ò¥Îªº¿ï¶µ¡C ¤]¥i¥H¥Î make rmconfig ¨Ó§â©Ò¦³¿ï¶µ¦^¨ìªì©l³]©w¡C ³o¨Ç¿ï¶µ¸ò¨ä¥L°Ê§@³£¥i°Ñ¾\ ports(7) ¤ºªº¸Ô²Ó»¡©ú¡C

4.5.3 ²¾°£¤w¦w¸Ëªº Ports

²{¦b±z¤w¸gª¾¹D¦p¦ó¦w¸Ë port¡A¦Ó¶}©l·QÁA¸Ñ¦p¦ó²¾°£¡C ¤ñ¦p¸Ë¤F¤@­Ó port «á¤~·NÃѨì¸Ë¿ù port ¤F¡C ¦b¦¹¡A§Ú­Ì±N²¾°£«e­±¨Ò¤l©Ò¸Ëªº¨º­Ó port (¨S¥J²Óª`·Nªº¸Ü¡A§Ú­Ì¦A´£¿ô¤@¤U´N¬O lsof)¡C ¸ò²¾°£ package ®É¬Û·íÃþ¦ü(¦b Packages section ¦³¤¶²Ð)¡A³£¬O¨Ï¥Î pkg_delete(1) «ü¥O¡G

# pkg_delete lsof-4.57

4.5.4 ¤É¯Å¤w¦w¸Ëªº Ports

­º¥ý¡A¥Î pkg_version(1) «ü¥O¨Ó¦C¥X¥Ø«e Ports Collection ¤¤´£¨Ñ¤F¨º¨Ç¥i¤É¯Åªº port ª©¥»¡G

# pkg_version -v

4.5.4.1 /usr/ports/UPDATING

¨C¦¸§ó·s§¹ Ports Collection ¤§«á¡A½Ð°È¥²°O±o¦b¤É¯Å port «e¡A ¥ý¬Ý¬Ý /usr/ports/UPDATING¡A ³o¸Ì·|¼g¤É¯Å¤è­±ªº¦U¦¡°ÝÃD¡A¤ñ¦p¡GÀɮ׮榡§ïÅÜ¡BÅܧó³]©wÀɦì¸m¡B »Pª©¤£¬Û®eªº°ÝÃDµ¥¡A¥H¤Î«ç»ò¸Ñ¨Mªº§¹¾ã¨BÆJ¡C

­Y UPDATING ¤º®e»P§A¬Ý¨ìªº¨ä¥L¤å¥ó¦³¨Ç¤£¦P ¡B¬Û½Äªº¸Ü¡A ¨º»ò½Ð¥H UPDATING ¬°·Ç¡C

4.5.4.2 ¥H Portupgrade ¨Ó¤É¯Å¤w¦w¸Ëªº Ports

portupgrade ¥i¥H»´ÃP¤É¯Å¤w¸Ëªº³nÅé¡C ¸Ó¤u¨ã¥i±q ports-mgmt/portupgrade port ¦w¸Ë¡A ¦w¸Ë¤è¦¡´N¦p¦P¨ä¥L port ¤@¼Ë¡A¥Î make install clean «ü¥O´N¥i¥H¤F¡G

# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

­º¥ý³Ì¦n¥ý¥H pkgdb -F ¨Ó±½ºË¤w¸Ëªº ports ¸ê®Æ®w¬O§_¦³»~¡A¨Ã­×¥¿¦³°ÝÃDªº¦a¤è¡C ¦b¨C¦¸°µ¤É¯Å¤§«e¡A³Ì¦n©w´Á°µ¤@¤U pkgdb -F °Ê§@·|¸û¬°§´·í¡C

¶] portupgrade -a ªº¸Ü¡A portupgrade ·|¤É¯Å¨t²Î¤W©Ò¦³¤w¸Ëªº¹L ports¡C ­Y¥Î -i «h¦b¤É¯Å¨C­Ó port ¹Lµ{·í¤¤¡A ·|­n¨D½T»{¬ÛÃö°Ê§@¬O§_²Å¦X©Ò»Ý¡C

# portupgrade -ai

­Y¥u·Q¤É¯Å¬Y¯S©wµ{¦¡¦Ó«D¥þ³¡¡A¨º»ò¥i¥H¥Î portupgrade pkgname ¨Ó°µ«ü©w¡C ­Y·Q­n portupgrade Àu¥ý¤É¯Å¬Y port ©Ò¬Û¨Ìªº¬ÛÃö®M¥ó¡A«h½Ð¥Î -R °Ñ¼Æ§Y¥i¡C

# portupgrade -R firefox

­Y­n¥Î package ¦Ó«D port ¨Ó¦w¸Ë¡A«h»Ý«ü©w -P ¤~¥i¥H¡C ­Y¦³«ü©w³o¿ï¶µ¡A«h portupgrade ·|·j´M PKG_PATH ÅܼƩҫü©wªº¥»¾÷¥Ø¿ý¡A ­Y§ä¤£¨ì«h³z¹Lºô¸ô¨Ó¤U¸ü¦w¸Ë¡C ­Y¥»¾÷¸òºô¸ô³£¨S¦³¥i¥Îªº package ªº¸Ü¡A«h portupgrade ·|¨Ï¥Î port ¤è¦¡¦w¸Ë¡C ­Y¤£·Q¦p¦¹¤SÅܦ¨¨Ï¥Î port ¤è¦¡¦w¸Ë¡A«h¥Î -PP §Y¥i±j¨îÁ×§K¨Ï¥Î port ¤è¦¡¦w¸Ë¡C

# portupgrade -PP gnome2

­Y¥u·Q¤U¸ü distfiles(©ÎªÌ­Y«ü©w -P ªº¸Ü¡A«h¬O package)¦Ó¤£·Q½sĶ©Î¦w¸ËÀɮסA¥i¥H¨Ï¥Î -F¡C ¸Ô±¡½Ð°Ñ¾\ portupgrade(1) ªº»¡©ú¡C

4.5.4.3 ¥H Portmanager ¨Ó¤É¯Å¤w¦w¸Ëªº Ports

Portmanager ¤]¥i¥H¥Î¨Ó»´ÃP¤É¯Å¤w¸Ëªº³nÅé¡C ¸Ó¤u¨ã¥i±q ports-mgmt/portmanager port ¦w¸Ë¡G

# cd /usr/ports/ports-mgmt/portmanager
# make install clean

©Ò¦³¤w¸Ëªº³nÅé¡A³£¥i¥H»´ÃP¥ÎÃþ¦ü¤U¦C«ü¥O¨Ó¤É¯Å¡G

# portmanager -u

¦¹¥~¡A¨Ï¥Î°Ñ¼Æ¥i¥H§ï¬° -ui¡A¦p¦¹¤@¨Ó Portmanager ¦b¤É¯Å¤@¨Ç¦³¯S®í¿ï¶µªº³nÅé®É ¡A´N·|¸ß°Ý¸Ó¦p¦ó¤É¯Å¡C Portmanager ¤]¥i¥H¥Î¨Ó¸Ë·s port¡C»P¥H©¹±`¥Îªº make install clean «ü¥O¤£¦P¤§³B¦b©ó¡G ¥¦·|¥ý¤É¯Å§A­n¸Ëªº port ©Ò¬Û¨Ìªº©Ò¦³ ports¡AµM«á¤~¶}©l½sĶ¡B ¦w¸Ë­n¸Ëªº port¡C

# portmanager x11/gnome2

­Y­n¸Ëªº port ¤§³nÅé¬Û¨ÌÃö«Y¦³°ÝÃD®É¡A¤]¥i¥H¥Î Portmanager ¨Ï¥¦­Ì­«Âk¥¿­y¡C ¦Ó Portmanager ¸Ñ¨M¬Û¨Ì°ÝÃD§¹²¦¤§«á¡A¸Ó port ¤]·|­«·s½sĶ¡A¥H¦]À³¥¿½Tªº¬Û¨ÌÃö«Y¡C

# portmanager graphics/gimp -f

¨ä¾l¹B¥Îªkªù¡A½Ð°Ñ¾\ portmanager(1) »¡©ú¡C

4.5.5 Ports »PµwºÐªÅ¶¡

¦]¬°¨Ï¥Î Ports Collection ¿ð¦­¥i¯à·|¥Î¥úµwºÐªÅ¶¡¡A ©Ò¥H¦b¸Ë§¹³nÅé«á¡A°O±o­n¥H make clean «ü¥O¨Ó²M°£Á{®Éªº work ¥Ø¿ý¡C ¦¹¥~¡A¥i¥H¥Î¤U¦C«ü¥O¨Ó²M°£¾ã­Ó Ports Collection ¤ºªºÁ{®É¥Ø¿ý¡G

# portsclean -C

ports ¥Î¤[¤F¡A±z¥i¯à·|¦b distfiles ¥Ø¿ý¤º·|²Ö¿nµÛ³\¦hªº­ì©l½XÀɮסC ¥i¥H¤â°Ê§R°£³o¨ÇÀɮסA ©ÎªÌ¥Î¤U¦C«ü¥O¨Ó²M°£©Ò¦³ port ³£¤£¨Ï¥ÎªºÂÂÀÉ¡G

# portsclean -D

©ÎªÌ­n²M°£©Ò¦³¤w¸Ëªº port ³£¤£¦A¨Ï¥ÎªºÂÂÀÉ¡G

# portsclean -DD

Note: portsclean ³o¤u¨ã¤D¬O portupgrade ®M¥óªº¤@³¡¤À¡C

¤£­n§Ñ¤F²¾°£¨º¨Ç¤w¸g¦w¸Ë¡A¦ý¤£¦A»Ý­n¥Î¨ìªº ports¡C ¦³­Ó ports-mgmt/pkg_cutleaves port¡A¥¿¬O¥i¦Û°Ê§¹¦¨³o¥\¯àªº¦n¤u¨ã¡C

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

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