LinuxÒÁµéÔ°ÂÛ̳'s Archiver

pkkj ·¢±íÓÚ 2004-8-25 20:38

¹Û¿´ ChangeLog
µ±ÕýÔÚÓÎÀÀ Portage tree ʱ,Äú½«»á¿´µ½Ã¿¸öÌ×¼þ¶¼»áÓÐÒ»¸ö ChangeLog¡£ÄúÒ²¿ÉÒÔʹÓà emerge À´²é¿´ÕâЩ°æ±¾¸ú°æ±¾Ö®¼äµÄ¸ü¶¯¡£Ê¹Óà --pretend --changelog £¨»òʹ¼ò¶ÌµÄ -pl£©Ñ¡Ïî¡£ÎÒÃǽ«Ê¹Óà gnumeric ΪÕâ´ÎµÄ·¶Àý£º
Code Listing 8: ²é¿´ gnumeric µÄ ChangeLog
# emerge --pretend --changelog gnumeric£¨ÎªÁË·½±ãÔĶÁ,ÒÆ³ýÁËһЩ²¿·Ý£©*gnumeric-1.2.2  27 Nov 2003; foser <foser@gentoo.org> gnumeric-1.2.2.ebuild :  New release, requested in #34492  updated deps  12 Nov 2003; Jason Wever <weeve@gentoo.org> gnumeric-1.2.0.ebuild:  Marked stable on sparc, fixes bug #32405.  14 Oct 2003; Jason Wever <weeve@gentoo.org> gnumeric-1.0.8.ebuild:  Added ~sparc keyword.  Fixes bug #31150.
2.b. ¸üРPortage
½éÉÜ
ËÑѰ Portage ÊǺܲ»´í,µ«ÊÇÈç¹ûÄú²»³£³£¸üÐÂÄúµÄ Portage Tree,Äú½«»á±»ÏÞÖÆÓÚÀϾɵİ汾¡£Õâ´ú±í×ÅÄúµÄϵͳºÜ¿ì¾Í»á±äµÃÀϾÉÒòΪÄúÎÞ·¨¸üÐÂһЩBUGs»òÊǰ²È«ÐԵĩ¶´¡£
¸üРPortage Tree Óжà¸ö·½·¨¡£×îÊÜ»¶Ó­µÄ·½·¨¾ÍÊÇʹÓÃÎÒÃÇµÄ rsync ¶ÔÓ³Õ¾¡£ÁíÒ»¸öÔòÊÇʹÓà Portage ¿ìÕÕ£¨ÔÚ·À»ðǽ»òÊÇÎÞ·¨Ê¹ÓÃÍøÂçÁ¬µ½ rsync ·þÎñÆ÷µÄ·½Ê½£©¡£
Ñ¡Ôñ rsync ¶ÔÓ³Õ¾
ÎÒÃǽ¨ÒéÄúÏÈÑ¡ÔñÒ»¸ö¿¿½üÄúµÄ ¶ÔÓ³Õ¾¡£Äú¿ÉÊÖ¶¯µÄ£¨É趨 /etc/make.conf ÀïÃæµÄ SYNC ±äÁ¿£©»òÊÇʹÓà mirrorselect ×Ô¶¯°ïÄúÍê³É´ËÏ×÷¡£µ± SYNC µÄ±äÁ¿½«ÔÚÉÔºó½²½â,ÎÒÃÇÏÖÔÚÏÈÌÖÂÛʹÓà mirrorselect¡£Ê×ÏȰ²×° mirrorselect£º
Code Listing 9: °²×° mirrorselect
# emerge --usepkg mirrorselect
ÏÖÔÚÖ´ÐÐ mirrorselect À´×Ô¶¯ÎªÄúÑ¡Ôñ¶ÔÓ³Õ¾£¨ËüÒ²»áÉ趨 Portage ʹÓÃԭʼÂ룩£º
Code Listing 10: Ö´ÐÐ mirrorselect
# mirrorselect -a -s3
¸üРPortage
ҪʹÓà rsync ¸üРPortage,Ö»ÒªÖ´ÐÐ emerge sync£º
Code Listing 11: ʹÓà emerge sync ¸üРPortage
# emerge sync
Èç¹ûʧ°Ü£¨ÒòÎªÍøÂç»òÊÇ·À»ðǽ£©,Äú¿ÉÒÔ³¢ÊÔʹÓà emerge-webrsync,Õ⽫»áʹÓà wget ÏÂÔØ Portage Tree ¿ìÕÕ¡£ÕâÒ²´ú±í×ÅÄú¿ÉÒÔʹÓÃÎÒÃÇÔÚ Gentoo °²×°¹ý³ÌÖÐÌÖÂÛ¹ýµÄ´úÀí·þÎñÆ÷¡£
Code Listing 12: ʹÓà emerge-webrsync ¸üРPortage
# emerge-webrsync
2.c. ά»¤Èí¼þ
±àÒ뻹ÊÇÔ¤±à£¿
Èç¹ûÄúϲ»¶,Gentoo Ìṩ×ÅÌ×¼þ ebuild¡£µ«ÊÇÈç¹ûÄúÏëÒª°²×°ÕâÖÖ ebuild,Äú¿ÉÒÔÑ¡Ôñ ±àÒë »òÊÇ Ô¤±à µÄÌ×¼þ¡£ËüÃǸö±ðÓÐʲôÓÅȱµã,²»Í¬Ä¿±ê,»¹ÊÇ¿ÉÒÔÒ»ÆðʹÓÃÄØ£¿
¾ÍÈçÄúËù²Âµ½µÄ,±àÒëÌ×¼þÐèÒªºÜ¶àʱ¼ä£¨ÌرðÊÇÄúÓкÜÉÙµÄ×ÊÔ´»òÊǺܴóµÄÌ×¼þ,Èç KDE,OpenOffice.org,µÈµÈ¡££©¡£±àÒëÕâЩÌ×¼þʱ,Äú¿ÉÒÔʹÓà USE É趨À´½øÐÐ×Ô¶©µÄ΢µ÷¡£µ±È»,ÄúÒ²¿ÉÒÔ¶¨Òå¸ßЧÄܵÄÑ¡ÏÔÚ CFLAGS ºÍ CXXFLAGS µÄ±äÁ¿£©À´±àÒëÕâЩÌ×¼þ¡£
ʹÓÃÔ¤±àµÄÌ×¼þ½«Ëõ¶Ì°²×°Ê±¼ä£¨²»ÐèÒªÈκαàÒëµÄ¶¯×÷£©,µ«ÊÇÄú½«»áȱÉÙʹÓà USE ºÍ CFLAGS & CXXFLAGS ±äÁ¿µÄÓŵ㡣
¾ÍÈç¸Õ¸ÕËù˵µÄ,Ô¤±àÌ×¼þ½«»á±»·ÅÔÚ /usr/portage/packages/All µÄĿ¼,¶øÔ­Ê¼Â뽫»á±»·ÅÔÚ /usr/portage/distfiles¡£Èç¹ûÄúÍê³É°²×°Ò»¸öÌ×¼þ,Äú¿ÉÒÔ´ÓÏà¹ØÄ¿Â¼ÒÆ³ýËüµÄԭʼÂë»òÊǰ²×°Ì×¼þ¡£µ«ÊÇÄú»òÐíÏëÒª±£Áô×îаæµÄÌ×¼þ/ԭʼÂë,Èç´ËÒ»À´Äú¾Í²»ÐèÒªÔÚÖØÐ°²×°µÄʱºòÖØÐ±àÒë»òÊÇÏÂÔØÁË¡£
´Óԭʼ·¨°²×°Èí¼þ
ºÃ°É,²»?ËôÁË¡£Òª°²×°Ò»¸öÌ×¼þ,Äú½«ÐèҪʹÓõ½ emerge µÄÖ¸Áî¡£Èç¹ûÄú²»ÏëҪʹÓÃÈκÎÔ¤±àÌ×¼þ,Äú¿ÉÒÔÖ±½ÓʹÓà emerge <Ì×¼þÃû³Æ> »òÊÇ emerge <Àà±ð>/<Ì×¼þÃû³Æ>¡£ÎÒÃǽ«°²×° gnumeric Ϊ·¶Àý£º
Code Listing 13: ±àÒë gnumeric
# emerge gnumeric
Õ⽫»áÏÂÔØÔ­Ê¼Âë,È»ºó½â¿ª,±àÒë,È»ºó°²×°Õâ¸öÌ×¼þµ½ÄúµÄϵͳÉÏ¡£ËüÒ²»áÕë¶ÔÏàÒÀÐÔ°²×°Ò»Ð©ÒÀÀµµÄÌ×¼þ¡£Èç¹ûÄúÏëÒª²é¿´ËüÒÀÀµ×ÅÄÇЩÌ×¼þ,ʹÓà --pretend ²ÎÊý£¨»òÊǼò¶ÌµÄ -p£©£º
Code Listing 14: ¼Ù×°±àÒë gnumeric
# emerge --pretend gnumeric
Èç¹ûÄúÏëÒªÏÈÏÂÔØÌ×¼þºÍÒÀÀµµÄÏà¹Øµµ°¸,µ«ÊDz»±àÒë,ÄǾÍʹÓà --fetchonly ²ÎÊý£¨»òÊǼò¶ÌµÄ -f£©£º
Code Listing 15: Ö»ÏÂÔØ gnumeric µÄԭʼÂë
# emerge --fetchonly gnumeric
Èç¹ûÄúÏëÒª²é¿´ emerge ´ÓÄÇÀïÏÂÔØÔ­Ê¼Âë,½« --fetchonly ºÍ --pretend Ñ¡ÏîÒ»Æð·ÅÈ룺
Code Listing 16: ÏÔʾ gnumeric ÒªÏÂÔØµÄԭʼÂëÍøÖ·
# emerge --fetchonly --pretend gnumeric
ÄúÒ²¿ÉÒÔÑ¡Ôñ°²×°Ä³¸ö°æ±¾µÄÌ×¼þ¡£¾ÙÀýÀ´Ëµ,ÄúÏëÒª°²×°Ò»¸ö±È gnumeric 1.2 »¹ÒªÀϾɵİ汾Äú½«ÒªÊäÈ룺
Code Listing 17: °²×°Ò»¸öÌØ¶¨µÄ gnumeric °æ±¾
# emerge "<gnumeric-1.2"
ÆäËüµÄÑ¡ÔñΪ ">" (Ö®ºóµÄ£©ºÍ "=" £¨Ò»ÑùµÄ°æ±¾£©¡£
°²×°Ô¤±àÌ×¼þ
Èç¹ûÄúÏëÒª°²×°Ô¤±àÌ×¼þ,ÄúÓ¦¸ÃʹÓà --usepkg £¨»òÊǼò¶ÌµÄ -k£©Ñ¡Ïî¡£Õ⽫»áʹÓà /usr/portage/packages/All ÀïÃæ¿ÉÓõĶþ½øÖÆÌ×¼þ¡£µ«ÊÇÖ¸ÔÚÌ×¼þºÍ°æ±¾Ò»ÑùµÄÇé¿öÏÂÓÐЧ¡£
Code Listing 18: °²×°Ô¤±àµÄ gnumeric Ì×¼þ
# emerge --usepkg gnumeric
Èç¹ûÄúÏëҪʹÓöþ½øÖƵÄÌ×¼þ,Ò²²»ÔÚºõ°æ±¾ÊÇ·ñÏàͬ,Äú¿ÉÒÔʹÓà --usepkgonly £¨»òÊǼò¶ÌµÄ -K£©Îª²ÎÊý¡£
Code Listing 19: °²×°Ô¤±àµÄ gnumeric Ì×¼þ
# emerge --usepkgonly gnumeric
Èç¹ûÄúµÄϵͳÉÏûÓÐÔ¤±àµÄÌ×¼þ,Äú¿ÉÒÔ´ÓÒ»¸ö¶ÔӳվʹÓà emerge ÏÂÔØ¡£Õ⽫»áÔÚ /etc/make.conf ÀïÃæµÄ PORTAGE_BINHOST ±äÁ¿ÄÚ¶¨Òå¡£
Èç¹ûÄúµÄϵͳÉÏûÓÐÐèÒªµÄ¶þ½øÖÆÌ×¼þ,ʹÓà --getbinpkg £¨»òÊǼò¶ÌµÄ -g£©£º
Code Listing 20: ÏÂÔØÈ»ºó°²×°¶þ½øÖÆµÄ gnumeric
# emerge --getbinpkg gnumeric
Õ⽫»áÏÂÔØÌ×¼þºÍÒÀÀµµÄÌ×¼þ,ºÍÐèÒª°²×°µ½ÄúϵͳÉϵÄÏà¹ØÐÅÏ¢¡£Èç¹ûÄúÏëÒª²é¿´ÄÇЩÒÀÀµµÄÌ×¼þ½«»á±»°²×°,ʹÓà --pretend Ñ¡Ïî £¨»òÊǼò¶ÌµÄ -p£©£º
Code Listing 21: ¼Ù×°ÏÂÔØÔ¤±àµÄ gnumeric Ì×¼þ
# emerge --getbinpkg --pretend gnumeric
ÄúÒ²¿ÉÒÔÑ¡ÔñÒªÏÂÔØµÄÔ¤±àÌ×¼þ£¨ºÍÌ×¼þÏà¹ØÐÅÏ¢£©¶ø ²»Óà ¼ì²éÄú±¾µØÏµÍ³µÄ×ÊÁÏºÍ ²» ÄúϵͳÉϵÄʹÓÃÔ¤±àÌ×¼þ,ʹÓà --getbinpkgonly Ñ¡Ïî £¨»òÊǼò¶ÌµÄ -G£©£º
Code Listing 22: ÂÔ¹ý±¾µØ×ÊÁÏÖ±½Ó°²×°Ô¤±àÌ×¼þ
# emerge --getbinpkgonly gnumeric
ÄúÒ²¿ÉÒÔÑ¡ÔñÌ×¼þµÄ°æ±¾¡£¾ÙÀýÀ´Ëµ,ÄúÒª°²×°Ò»¸ö±È gnumeric 1.2 »¹¾ÉµÄ°æ±¾,Äú½«ÒªÊäÈ룺
Code Listing 23: °²×°Ö¸¶¨µÄ gnumeric °æ±¾
# emerge --usepkg "<gnumeric-1.2"
ÆäËüµÄÑ¡ÔñΪ ">" (Ö®ºóµÄ£©ºÍ "=" £¨Ò»ÑùµÄ°æ±¾£©¡£
ʹÓÃÏàÒÀÐÔ
Portage ÓкܺõÄÏàÒÀÐÔÖ§³Ö¡£ËäÈ»Äúƽ³£²»ÐèÒª¹ËÂǵ½Õâµã£¨ÒòΪÏàÒÀÐÔ½«»á×Ô¶¯µÄ±» Portage ¹ÜÀí£©,ÓÐЩʹÓÃÕß»òÐíÏëÒªÖªµÀÈçºÎʹÓà emerge ºÍÏàÒÀÐÔ¡£
¾ÙÀýÀ´Ëµ,Èç¹ûÄúÒª Portage ¼Ù×°Ò»¸öÌ×¼þµÄÏàÒÀÐÔ¶¼Ã»Óб»°²×°,Äú¿ÉÒÔʹÓà --emptytree £¨»òÊǼò¶ÌµÄ -e£©¡£Õâ¸öÔÚ --pretend µÄʹÓÃϽ«·Ç³£ºÃÓÃ,Äú½«¿ÉÒԲ鿴¸ö±ðÌ×¼þËùÐèÒªµÄÕû¸öÏàÒÀÐÔÇåµ¥¡£Èç¹ûûÓÐ --pretend ,emerge ½«»á£¨ÖØ£©±àÒëËùÓÐÁгöµÄÌ×¼þ¡£
Code Listing 24: ÏÔʾËùÓÐ gnumeric µÄÏàÒÀÐÔ
# emerge --emptytree --pretend gnumeric
ÁíÍâÒ»¸ö²ÎÊýÔòÊÇ --nodeps,Õ⽫»áÈà Portage ÔÚ²»¹ÜÏàÒÀÐÔµÄÎÊÌâϳ£Ê¶±àÒëÕâ¸öÌ×¼þ¡£ÕâÓпÉÄÜ»áÈñàÒëʧ°Ü¡£
Code Listing 25: ²»Àí»áÏàÒÀÐÔÎÊÌâ±àÒë gnumeric
# emerge --nodeps gnumeric
--nodeps µÄÏà·´¾ÍÊÇ --onlydeps,ÕâÖ»»áÕâ¸öÌ×¼þµÄÏàÒÀÐÔ,¶ø²¿»á±àÒëÌ×¼þ£º
Code Listing 26: °²×° gnumeric µÄÏàÒÀÌ×¼þ
# emerge --onlydeps gnumeric
¸üÐÂÄúµÄϵͳ
ÎÒÃÇ֮ǰËùÌá¹ý,world µµÃ»Óаüº¬ÈκÎÏàÒÀÐÔ¡£µ±ÄúÖ´ÐÐ emerge --update world ʱ,Ö»»á¼ì²éʵʱÐèÒª¸üеÄÏàÒÀÐÔ¡£Èç¹ûÄúÏëÒª emerge ¼ì²é ËùÓÐµÄ ÏàÒÀÐÔ£¨°üÀ¨ÏàÒÀµÄÌ×¼þËùÐèÒªµÄ£©,¼ÇµÃ¼ÓÉÏ --deep µÄ²ÎÊý£º
Code Listing 27: ¸üÐÂÕû¸öϵͳ,°üÀ¨ËùÓеÄÏàÒÀÐÔ
# emerge --update --deep world
Portage ÖªµÀÁ½¸öÌØ±ðµÃ¾í±êÀ´¹ÜÀíÈí¼þÌ×¼þ£ºsystem ºÍ world¡£Èç¹ûÄú²»ÊÇ´Ó stage3 ¿ªÊ¼°²×° Gentoo ,Äú½«»á¿´¹ýÕâ¸ö¾í±ê¡£system ΪһÕûÌ×µÄ ºËÐÄ Ì×¼þ,Èà Gentoo »ù´¡ÏµÍ³ËùÓá£
world µÄ¾í±ê½«»á°ü4º¬×ÅËùÓÐÄú°²×°µÄÌ×¼þ¼ÓÉÏ system µÄÌ×¼þ¡£»»¾ä»°Ëµ,ÿ´ÎÄúʹÓà emerge <Ì×¼þÃû³Æ> À´°²×°Èí¼þ,Õâ¸ö <Ì×¼þÃû³Æ> ½«»á±»×¢²áµ½ world µÄµµ°¸£¨/var/cache/edb/workd£©¡£ÏàÒÀÐÔ²»ÊôÓÚÕâ¸ö world µµ°¸,µ«Ê¹ÎÒÃǽ«ÔÚÉԺ󽲽⡣
Èç¹ûÄúÏëÒª¸üРsystem Ì×¼þ×é,ʹÓà --update Ñ¡Ï»òÊǼò¶ÌµÄ -u£©£º
Code Listing 28: ¸üРsystem Ì×¼þ
# emerge --update system
ÁíÍâ¿ÉÒÔʹÓà world Ì×¼þ×飺
Code Listing 29: ¸üÐÂÕû¸öϵͳ
# emerge --update world
ÔÙÒ»´ÎµÄ,Èç¹ûÄúÏëÒª²é¿´ emerge »á¸üÐÂʲô,½« --pretend ºÍ --update ²ÎÊýÒ»ÆðʹÓãº
Code Listing 30: ¼Ù×°¸üÐÂÕû¸öϵͳ
# emerge --pretend --update world£¨ÎªÁË·½±ãÔĶÁ,ÒÆ³ýÁËһЩ²¿·Ý£©[ebuild     U ] net-misc/wget-1.9-r1 [1.9] [ebuild     UD] media-video/dvdauthor-0.5.0 [0.5.3] [ebuild     U ] net-analyzer/ethereal-0.9.16 [0.9.14]
ÔÚ "ebuild" µÄÅÔ±ßÄú½«»á¿´µ½Ò»¸ö×Öĸ£¨»òÊÇÒ»×é×Öĸ£©Õ⽫¸øÄú¹ØÓÚÕâ¸öÌ×¼þµÄÐÅÏ¢£º
?        B£¨×èµ²,blocks£©Õâ¸öÌ×¼þ½«×èµ²Äú¼ÌÐøÌ×¼þµÄ°²×°
?        N£¨ÐµÄ,new£©Õâ¸öÌ×¼þÊÇеÄ,²¢ÇÒÊǵÚÒ»´Î°²×°
?        R£¨¸ü»»,replace£©Õâ¸öÌ×¼þ²»ÊÇеÄ,µ«ÊÇÐèÒªÖØÐ°²×°
?        F£¨ÏÂÔØ,fetch£©Õâ¸öÌ×¼þÐèÒªÄúÊÖ¶¯ÏÂÔØÔ­Ê¼Â루ʹÓÃÖ´ÕÕÏà¹ØÎÊÌ⣩
?        U£¨¸üÐÂ,update£©Õâ¸öÌ×¼þÒѾ­´æÔÚÄúµÄϵͳÉϵ«ÐèÒª¸üÐÂ
?        UD£¨½µµÍ°æ±¾,downgrade£©Õâ¸öÌ×¼þÒѾ­ÔÚÄúµÄϵͳÉÏ´æÔÚÁ˵«ÊÇÐèÒª½µµÍ°æ±¾
?        U-£¨slot ¾¯¸æ£©Õâ¸öÌ×¼þÒѾ­°²×°µ½ÄúµÄϵͳÉÏ,µ«ÊDz»ÄÜºÍÆäËü°æ±¾¹²´æ, ËùÒÔ½«»á½«ÄúµÄÌ×¼þÉý¼¶È»ºóÒÆ³ý¾ÉµÄ°æ±¾¡£
µ±È»,ÎÒÃÇÔÚÕâ±ßËùÌÖÂÛµÄÊÇ system ºÍ world,µ«ÊÇÄúÒ²¿ÉÒÔÒ»¸öÒ»¸öÌ×¼þ×ÔÐиüС£

pkkj ·¢±íÓÚ 2004-8-25 20:39

ÒÆ³ýÈí¼þ
Èç¹ûÄúÏëÒªÒÆ³ýϵͳÉϵÄÈí¼þ,Äú¿ÉÒÔʹÓà unmerge Ñ¡Ï»òÊǼò¶ÌµÄ -C ´óд£©£º
Code Listing 31: ÒÆ³ýÈí¼þ
# emerge unmerge gnumeric
Èç¹ûÄúÏëÒª²âÊÔÒÆ³ý£¨µ«ÊDz»ÊÇÕæµÄÖ´ÐУ©,Äú¿ÉÒÔʹÓà --pretend£º
Code Listing 32: ¼Ù×°ÒÆ³ýÈí¼þ
# emerge --pretend unmerge gnumeric
Warning: Portage ûÓа취±æ±ðÒ»¸öÌ×¼þÊÇ·ñΪÁîÒ»¸öÌ×¼þËùÒÀÀµµÄ¡£ËûÒ²²»»áÔÚÄúÒÆ³ý system ÄÚµÄÌ×¼þʱ¶ø¾¯¸æÄú,Àý£ºÐèҪijЩÈí¼þ²ÅÄÜÈûù´¡ÏµÍ³ÍêºÃµÄ×÷Óã¡
µ±ÒƳýµÄ¶¯×÷¿ªÊ¼Ê±,Äú½«»á¿´µ½Ò»¸öºÜ³¤µÄÊôÓÚ¸ÃÌ×¼þµÄµµ°¸Çåµ¥¡£ÓÐЩµµ°¸µÄ×ó±ß½«»áÓÐһЩÆì±ê¡£ÕâЩÆì±êΪ !mtile,!empty ºÍ cfgpro ½«¸æËßÄúÄÇЩµµ°¸»á±»ÒƳý¶øÄÇЩ²»»á¡£Ã»ÓÐÆì±êµÄµµ°¸½«»áÍêÕûµÄ´Óµµ°¸ÏµÍ³ÄÚ±»ÒƳý¡£ÕâÈý¸öÆì±ê´ú±í×Å£º
?        !mtile£ºµÄÆì±ê´ú±í×ÅÕâ¸öµµ°¸ÔÚ°²×°ºó±ä¸ü¹ý,»òÐíÊDZ»Äú»¹ÊÇÆäËü¹¤¾ß
?        !empty£ºÏÔʾµÄĿ¼²»ÊǿյÄ
?        cfgpro£ºÕâ¸öµµ°¸ÊÇ·ÅÔÚÒ»¸ö±£»¤µÄĿ¼,ΪÁ˰²È«Æð¼û½«²»»á±»¸ü¸Ä
2.d. ʹÓ÷âËøµÄÌ×¼þ
Òª²»ÒªÒÀÕÕÓ²¼þ¼Ü¹¹£¿
Gentoo ½«ËûµÄÌ×¼þ·ÅÔÚÁ½¸ö¿ÉÄܵĵط½½Ð×ö ARCH ºÍ ~ARCH¡£Õâ¸ö½«ÒÀÕÕÄúËùÓõļܹ¹¶ø¸Ä±ä»»¾ä»°Ëµ x86 ¼Ü¹¹µÄϵͳ½«»áʹÓà x86 ºÍ ~x86, ppc ¼Ü¹¹µÄʹÓÃÕß½«»áÓÑ ppc ºÍ ~ppc µÈÒÔ´ËÀàÍÆ¡£
~ARCH ´ú±í×ÅÕⲿ·ÝµÄÌ×¼þÕýÔÚ²âÊÔÖÐ,»¹Ã»½ÓÊܹýÐí¶à²âÊÔ,ËùÒÔ²»Äܷŵ½ ARCH¡£ARCH µÄÌ×¼þµÄÎÊÌâͨ³£±È½ÏÉÙ¡£
ÄúµÄϵͳ½«»áʹÓà ARCH ΪԤÉè¡£Èç¹ûÄúÏëÒª³¢ÊÔ²¢ÇÒ²»µ£ÐÄËð»ÙµÄÌ×¼þ,ÖªµÀÈçºÎµ½ bugs.gentoo.org ÄÇÄú¿ÉÒÔÑ¡ÔñʹÓà ~ARCH µÄÌ×¼þ¡£Òª½«ÄúµÄϵͳ "ÒÆµ½" Ò»¸ö ~ARCH µÄϵͳ,½« /etc/make.conf ÀïÃæµÄ ACCEPT_KEYWORDS ±äÁ¿¸ü¸ÄΪ ~ARCH£¨ÔÙÒ»´ÎµÄ£ºx86 ϵͳ£º~x86,µÈÒÔ´ËÀàÍÆ¡££©¡£
Äú±ØÐë×¢ÒâÄúÎÞ·¨´Ó ~ARCH µÄ½×¶Î»Øµ½ ARCH¡£
Èç¹ûÄúÏÖÔÚÏëÒª¸üÐÂÄúµÄϵͳ,Äú½«»á·¢ÏÖÓÐ ·Ç³£¶à µÄÌ×¼þµÈ´ý¸üУ¡
Ëø×¡µÄÌ×¼þ£¨Masked£©
µ±ÄúÏëÒª°²×°Ò»¸öÌ×¼þ,Äú»òÐí»á¿´µ½ÒÔÏÂѶϢ£º
Code Listing 33: ¹ØÓÚ·âËø×¢µÄÌ×¼þѶϢ
Calculating dependencies   !!! all ebuilds that could satisfy <your package> have been masked.
Ò»¸öÌ×¼þ»á±»·âËø×¢ÓÐÁ½¸öÔ­Òò£º
1.        ÄúÈç¹ûÕýÔÚʹÓà ARCH,¶øÕâ¸öÌ×¼þÊÇ ~ARCH
2.        Õâ¸öÌ×¼þÊDZ»¿ÌÒâËø×¡µÄ
Èç¹ûÊǵÚÒ»¸öÔ­Òò,¶øÄú ·Ç³£ ÏëÒª°²×°Ëü,Äú¿ÉÒÔ°ÑËû¼Óµ½ /etc/portage/package.keywords µµ°¸ÖÐÔÝʱµÄ½ÓÊÜ ~ARCH Ì×¼þ£º
Code Listing 34: ÔÝʱÐԵĽÓÊÜ ~ARCH Ì×¼þ
(Èç¹û /etc/portage Ŀ¼²»´æÔڵϰ½¨Á¢Ëû) # mkdir /etc/portage         # echo "app-office/gnumeric ~x86" >> /etc/portage/package.keywords # emerge gnumeric   
Ò»¸öÌ×¼þ»á±»¿ÌÒâËø×¡½«»á±»·ÅÔÚ /usr/portage/profiles/protage.mask¡£Èç¹ûÄú²é¿´Õâ¸öµµ°¸,Äú½«»á¿´µ½Õâ¸öÌ×¼þ»á±»¿ÌÒâËø×¡µÄÔ­Òò£¨³£³£ÊǼÓÈëΪÅú×¢£©¡£Èç¹ûÄú²»¹ÜÆäËüÔ­ÒòÒª°²×°Õâ¸öÌ×¼þ£¨ÓпÉÄÜ»áÔì³Éϵͳ¼«¶È²»ÎÈ£©,Äú½«ÐèÒª½¨Á¢Ò»¸ö /etc/portage/package.unmask µµ°¸È»ºó°´ÕÕ /usr/portage/profiles/portage.mask µÄ¸ñʽ·ÅÈëÄúÏëÒª°²×°µÄÌ×¼þ¡£
Code Listing 35: ½â³ý¿ÌÒâËø×¡µÄ³ÌÐò
(Èç¹û /etc/portage Ŀ¼²»´æÔڵϰ½¨Á¢Ëû) # mkdir /etc/portage               # echo "=app-office/gnumeric-1.2.12" >> /etc/portage/package.unmask
Çë ²»Òª ¸ü¸Ä /usr/portage/profiles/package.mask µµ°¸,Õâ¸öµµ°¸»áÔÚÏ´θüРPortage tree ʱ±»¸´Ô­¡£Èç¹ûÄúÐèÒª·âËøÒ»¸öÌ×¼þ,½¨Á¢ /etc/portage/package.mask È»ºó°´ÕÕÒÔÉÏÀàËÆµÄ¸ñʽÌîÈë¡£
ÓÐʱºØÄã»ðÐí»áÏë¿ÌÒâËø×¡Ò»¸ö(»òһϵÁÐ)Ì×¼þ¡£Õâ¿ÉÄÜÊÇÈí¼þеİ汾²»Ö§³ÖÄãÏëÒªµÄ¹¦ÄÜ,»òÊÇÕâ¸ö°æ±¾¿ÉÄÜ»á»ÙÁËÄãϵͳÖÐijЩ¶«Î÷¡£
ΪÁË¿ÌÒâËø×¡Ò»¸öÌ×¼þ,½¨Á¢ /etc/portage/package.mask È»ºó°ÑÌ×¼þÁÐÔÚÀïÃæ(ʹÓÃÈçͬÉÏÃæÌáµ½µÄ¸ñʽ)¡£
Code Listing 36: ¿ÌÒâËø×¡Ò»¸öÌ×¼þ
(Èç¹û /etc/portage Ŀ¼²»´æÔڵϰ½¨Á¢Ëû) # mkdir /etc/portage     # echo ">app-office/gnumeric-1.2.10" >> /etc/portage/package.mask
±»×èµ²µÄÌ×¼þ
Äú½«»áÅöµ½ÀàËÆÒÔϵĴíÎó×´¿ö£º
Code Listing 37: ×èµ²µÄÌ×¼þ
[blocks B     ] gnome-base/bonobo-activation (from pkg gnome-base/libbonobo-2.4.0)
ÔÚÒÔÉϵÄÀý×Ó,bonobo-activation Ì×¼þÕýÔÚ×èµ²×Å emerge libbonobo µÄ¶¯×÷¡£Òª½â¾öÕâ¸öÎÊÌâ,ÒÆ³ý bonobo-activationÈ»ºó¼ÌÐø£º
Code Listing 38: ½â¾ö×èµ²µÄ×´¿ö
# emerge unmerge bonobo-activation
3. Portage ¹¦ÄÜ
3.a. DistCC
ʲôÊÇ DistCC£¿
distcc ÊÇÒ»¸öÈÃÄú¿ÉÒÔÔÚ¶ą̀,²»Ò»¶¨Í¬Ò»ÀàÐ͵ļÆËã»ú¾­ÓÉÍøÂç·Ö±ð±àÒë¡£ distcc ¿Í»§¶Ë´«Ë͸ø·þÎñÆ÷(Ö´ÐÐ distccd)±ØÒªµÄÐÅÏ¢ÈÃËü¿ÉÒÔ°ï¿Í»§¶Ë±àÒëԭʼÂëµÄÒ»²¿·Ý¡£Õâ»á°ïÄú¼Ó¿ì±àÒëʱ¼ä¡£
Äú¿ÉÒÔÔÚ Gentoo Distcc ÎļþÖÐÕÒµ½¹ØÓÚ distcc ¸üÏêϸµÄÐÅÏ¢(°üÀ¨ËûÈçºÎÔÚ Gentoo ÉϹ¤×÷)¡£
°²×° DistCC
Diskcc Ìṩһ¸öͼÐλ¯µÄ¼àÊÓ³ÌÐòÈÃÄú¼àÊÓÄúµÄ¼ÆËã»úËͳöÈ¥µÄ±àÒ빤×÷¡£Èç¹ûÄúʹÓà Gnome µÄ»°,ÔÚ USE É趨ÖмÓÈë 'gnome'¡£È»¶ø,Èç¹ûÄú²»ÊÇʹÓà Gnome µ«ÄúÏëʹÓÃËüµÄ»°,ÄúÓ¦¸ÃÔÚ USE É趨ÖмÓÈë 'gtk'¡£
°²×° distcc ¾ÍºÍÆäËüÔÚ Gentoo Portage ÖеÄÈí¼þÒ»Ñù,ÊÇÏ൱ÈÝÒ׵ġ£
Note: ´ÓÏÖÔÚ¿ªÊ¼,ÒòΪÄúÒѾ­ÖªµÀÈçºÎÓÃÒѾ­±àÒëºÃµÄÌ×¼þÀ´°²×°,ÎÒÃÇ»áÔÚ½ÓÏÂÀ´µÄÊÖ²áÖÐÊ¡ÂÔ --usepkg Ñ¡Ïî¡£
Code Listing 1: °²×° Distcc
# emerge distcc
ÏÖÔÚÉ趨 distcc ʹÓà 2G µÄ¿Õ¼ä¿ìÈ¡¡£
Code Listing 2: É趨 distcc
# ccache -M 2G
¼¤»î Portage µÄÖ§³Ö
àÅ,Èç¹û°²×°¹ý³ÌºÜ¼òµ¥µÄ»°,ÆäÓàµÄ²¿·ÖÓ¦¸ÃÒ²ºÜ¼òµ¥ :) ËùÒÔÈÃÎÒÃǺܿìµÄ¼¤»î Portage µÄ distcc Ö§³Ö¡£
Ê×ÏÈ,¿ªÆô /etc/make.conf È»ºó±à¼­ FEATURES ±äÁ¿¼ÓÈë distcc ¹Ø¼ü´Ê¡£È»ºó±à¼­ MAKEOPTS ±äÁ¿¼ÓÈë -jX,ÕâÀïµÄ X ´ú±íËùÓÐÖ´ÐÐ distccd µÄ¼ÆËã»ú CPU Êý¼ÓÒ»µÄ×ܺͣº
Code Listing 3: /etc/make.conf ÖпÉÄÜµÄ MAKEOPTS É趨
# ¼ÙÉèÄúÓÐÁ½Ì¨µ¥ CPU µÄÖ÷»ú(²»°üÀ¨×Ô¼ºµÄ¼ÆËã»ú)Ö´ÐÐ distccdMAKEOPTS="-j4"
ÏÖÔÚ,Ò»ÑùÔÚ /etc/make.conf ÖÐ,ÒÆ³ý PORTAGE_TMPDIR µÄÅúעȻºóÔÚµµ°¸½áβ¼ÓÈëÏÂÃæÕ⼸ÐУº
Code Listing 4: ÔÚ /etc/make.conf ¼ÓÈë¶îÍâµÄ distcc ÌØÊâ±äÁ¿
# ²»ÒªÍü¼ÇÒÆ³ý PORTAGE_TMPDIR ±äÁ¿µÄÅú×¢DISTCC_DIR=${PORTAGE_TMPDIR}/portage/.distcc
ÏÖÔÚÖ´ÐÐ distcc-config È»ºóÊäÈë¿ÉÓÃµÄ DistCC ·þÎñÆ÷ÁÐ±í¡£ÎÒÃǽ«»á¾ÙÒ»¸ö¼òµ¥µÄÀý×Ó¼ÙÉè¿ÉÓõķþÎñÆ÷°üÀ¨ 192.168.1.102 (ĿǰµÄ¼ÆËã»ú),192.168.1.103 ºÍ 192.168.1.104 (Á½Ì¨"Ô¶³Ì"¼ÆËã»ú):
Code Listing 5: É趨 distcc ʹÓÃÈý̨¿ÉÓÃµÄ DistCC ·þÎñÆ÷
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
µ±È»,²»ÒªÍü¼Ç¼¤»î distccd ·þÎñÆ÷³ÌÐò£º
Code Listing 6: ¼¤»î distcc ·þÎñÆ÷³ÌÐò
# /etc/init.d/distccd start
¹§Ï²,ÄúµÄ¼ÆËã»úÏÖÔÚʹÓ÷ֿªµÄ±àÒ룡Èç¹ûÄúÒª¹ØÓÚ DistCC ºÍ Gentoo ¸üÉîÈëµÄÐÅÏ¢,ÇëÔĶÁGentoo DistCC Îļþ¡£

pkkj ·¢±íÓÚ 2004-8-25 20:41

3.b. ccache
ʲôÊÇ ccache £¿
ccache ÊÇÒ»¸ö¿ìËٵıàÒëÆ÷¿ìÈ¡¡£µ±Äú±àÒë³ÌÐòʱ,Ëû»áÁ¢¼´¿ìÈ¡½á¹û,Òò´Ëµ±ÄúÖØÐ±àÒëʱ,±àÒëµÄʱ¼ä¼õÉÙÏ൱¶à¡£ÔÚÒ»°ãµÄ×´¿ö¿ÉÒÔ¼Ó¿ì 5 µ½ 10 ±¶µÄ±àÒëʱ¼ä¡£
Èç¹ûÄú¶Ô ccache µÄÏêϸÄÚÈÝÓÐÐËȤ,Çëä¯ÀÀ ccache Ê×Ò³¡£
°²×° ccache
ÔÚ Gentoo °²×° ccache ÊÇÇá¶øÒ׾ٵġ£Ö»Òª emerge È»ºó¾ÍÍê³ÉÁË :)
Code Listing 7: °²×° ccache
# emerge ccache
µ÷Õû ccache
Èç¹û ccache °²×°ºÃµÄ»°,Portage »á×Ô¶¯Ê¹Óá£Äã¿ÉÒÔÉ趨 /etc/make.conf ÖÐµÄ CCACHE_SIZE À´¸Ä±äËûµÄÔ¤Éè¿ìÈ¡´óС£º
Code Listing 8: ±à¼­ /etc/make.conf ÖÐµÄ CCACHE_SIZE
CCACHE_SIZE="2G"
ÏÖÔÚ,Portage ʹÓà ccache À´¾¡¿ÉÄܼÓËÙ±àÒë¹ý³Ì¡£Èç¹ûÄú²»È·¶¨ ccache ÊÇ·ñÔÚ¹¤×÷,Äú¿ÉÒÔÖ´ÐÐ ccache -s ²é¿´ ccache µÄ״̬£º
Code Listing 9: ²é¿´ ccache ״̬
# ccache -s
ÔÚ·Ç Portage µÄ C ³ÌÐò±àÒëʱʹÓà ccache
Èç¹ûÄãÏëÒªÔÚ·Ç Portage µÄ C ³ÌÐò±àÒëʱʹÓà ccache,ÔÚÄãµÄ PATH ±äÁ¿ÖмÓÈë /usr/lib/ccache/bin(ÔÚ /usr/bin ֮ǰ)¡£Õâ¿ÉÒÔ½åÓɱ༭ /etc/env.d/00basic À´Íê³É£º
Code Listing 10: ±à¼­ 00basic
# nano -w /etc/env.d/00basic # env-update && source /etc/profile
3.c. ±àÒëºÃµÄ³ÌÐòÌ×¼þ
½¨Á¢±àÒëºÃµÄ³ÌÐòÌ×¼þ
ÎÒÃÇÒѾ­ÌÖÂÛ¹ýÈçºÎʹÓÃÔ¤ÏȱàÒëºÃµÄÌ×¼þ,µ«ÊÇÒªÈçºÎ½¨Á¢Äú×Ô¼º±àÒëºÃµÄÌ×¼þ£¿
Èç¹ûÌ×¼þÒѾ­°²×°ºÃÁË,Äú¿ÉÒÔÖ´ÐÐ quickpkg Ö¸Áî°ÑÒѰ²×°ºÃµÄ³ÌÐò½¨Á¢ tar Îļþ¡£Õâ¶ÔÓÚ±¸·ÝÏ൱ÓÐÓã¡
Code Listing 11: ʹÓà quickpkg
# quickpkg gnumeric
Èç¹ûÌ×¼þ»¹Ã»°²×°,Äú¿ÉÒÔÔÚʹÓà emerge ʱ¸æËßËûͬʱ½¨Á¢±àÒëºÃµÄÌ×¼þ,ÏñÕâÑùʹÓà --buildpkg ²ÎÊý (»òËõд -b)£º
Code Listing 12: °²×° gnumeric ²¢ÇÒ½¨Á¢±àÒëºÃµÄÌ×¼þ
# emerge --buildpkg gnumeric
Èç¹ûÄúÏ£Íû Portage ÿ´Î¶¼ÕâÑù×ö,Äú¿ÉÒÔÔÚ /etc/make.conf ÖÐµÄ FEATURES ±äÁ¿É趨¹Ø¼ü´Ê buildpkg¡£
Code Listing 13: ×Ô¶¯½¨Á¢±àÒëºÃµÄÌ×¼þ
FEATURES="buildpkg"
Èç¹ûÄú²»Ïë°²×°Èí¼þ,Ö»Òª½¨Á¢±àÒëºÃµÄÌ×¼þ,ʹÓà --buildpkgonly ²ÎÊý (Ëõд³É-B)£º
Code Listing 14: ½¨Á¢±àÒëºÃµÄ gnumeric Ì×¼þ
# emerge --buildpkgonly gnumeric
3.d. °²È«Ïà¹Ø¹¦ÄÜ
Sandbox
µ±±àÒëºÍ°²×°Èí¼þÌ×¼þʱ,Portage ʹÓà sandbox ±£»¤Ä¿Ç°µÄϵͳ¡£Ò²¾ÍÊÇ˵,Ö»ÒªÈí¼þ»¹Ã»×°ºÃ,Ëû¾Í²»ÄܽӴ¥ sandbox Ö®ÍâµÄµµ°¸¡£ÕâÈ·±£ Portage ÖªµÀÌ×¼þ½¨Á¢»òÐÞ¸ÄÄÄЩµµ°¸¡£
µ±Ì×¼þ±àÒëÍêÖ®ºó,Portage »á"Ô¤ÏȰ²×°"ÔÚ sandbox ÖÐ,¼Í¼ÄÄЩµµ°¸·ÅÔÚÄÄÀȻºó»á´Ó sandbox ÒÆ¶¯µ½ÄúµÄϵͳÖС£
ʹÓÃÕßȨÏÞ
Portage Ò²Ö§³ÖÈÃÒ»°ãʹÓÃÕß°²×°Ì×¼þ(¸ü¾«È·µÄ˵,ʹÓÃÕß "portage",Ⱥ×é "portage") ¡£Õâ¼ÓÇ¿°²×°Ê±µÄ°²È«ÐÔ¡£Äú¿ÉÒÔÑ¡ÔñʹÓÃÕßȨÏÞ°üº¬»ò²»°üº¬ sandbox¡£µ±È»,ʹÓà sandbox ÊDZȽϺõķ½·¨ :)
¼¤»î sandbox ¶øÇÒ/»ò userpriv
Portage Ô¤ÉèʹÓà sandbox¡£Èç¹ûÄúÒªÓà userpriv,ÄúÒªÔÚ FEATURES ±äÁ¿ÖмÓÈëËû¡£×¢Ò⼤»î userpriv »áÒÆ³ý sandbox Ö§³Ö,³ý·ÇÄúÒ²¼ÓÈë usersandbox£º
Code Listing 15: ¼¤»î userpriv ÒÔ¼° usersandbox
FEATURES="userpriv usersandbox"
Warning: ²»Òª´Ó FEATURES ±äÁ¿ÖÐÒÆ³ý sandbox£¡
ÑϸñµÄ¼ì²é
Portage ¿ÉÒÔ±»ÒªÇó¶Ô¿ÉÄܵÄΣÏÕÇé¿ö·´Ó¦ºÜÇ¿(ÀýÈçÒÅʧ»ò²»ÕýÈ·µÄ Manifest ?)¡£ÔÚ FEATURES ÖмÓÈë strict ¹Ø¼ü´ÊÀ´¼¤»î£º
Code Listing 16: ¼¤»îÑϸñµÄ¼ì²é
FEATURES="strict"
´ÏÃ÷µÄµµ°¸ÏµÍ³È¨ÏÞ
Portage ¿ÉÒÔ×Ô¶¯´¦ÀíDZÔÚµÄΣÏÕµµ°¸È¨ÏÞ,¿ÉÄܵ¼Ö°²È«ÉϵÄΣ»ú¡£ËûÒÆ³ý setuid µµ°¸µÄȺ×é³ÉÔ±ºÍÆäËüÈ˵ĵµ°¸¶ÁȡȨÏÞ,ÒÔ¼°ÔÚ°²×°Ç°µÄ¹ý³ÌÒÆ³ý setgid µµ°¸ÆäËüÈ˵ĶÁȡȨÏÞ¡£ÔÚ FEATURES ±äÁ¿ÖмÓÈë sfperms ¹Ø¼ü´ÊÀ´Æð¶¯£º
Code Listing 17: ¼¤»î´ÏÃ÷µÄµµ°¸ÏµÍ³È¨ÏÞ
FEATURES="sfperms"
3.e. ÆäËü¹¦ÄÜ
Portage ÇóÖú
ÕâÀﻹÓÐÆäËüÄú¿ÉÒÔ·ÅÔÚ FEATURES ±äÁ¿ÖеĹؼü´Ê¡£ËûÃǴ󲿷ÖÊÇÕë¶Ô·¢Õ¹Õß,¶øÒ»°ãµÄʹÓÃÕß¶ÔËûÃDz¢²»»á¸Ðµ½ÐËȤ¡£Èç¹ûÄú¶ÔѧϰÆäËü¹¦ÄÜ(»ò Portage)ÓÐÐËȤ,²»ÒªÍüÁËÔĶÁÎÒÃÇÌṩµÄ make.conf ÊÖ²áÒ³¡£
Code Listing 18: ¸ü¶à Portage Ïà¹ØÐÅÏ¢
# man make.conf

pkkj ·¢±íÓÚ 2004-8-25 20:42

4. ¿ØÖÆ Portage µÄÔË×÷
4.a. É趨µµ°¸±£»¤
±£»¤£¿
Portage ÖªµÀ "±£»¤µµ°¸" µÄµÀÀí¡£Õâ´ú±í×Å,µ±Äú¸üÐÂÈí¼þʱ,Ëü²»»á¼´¿ÌµÄ½«ÀϾɵÄÉ趨µµ¸²¸Ç,µ«ÊÇ»á֪ͨÄúÓиüеİ汾¡£Õâ¼´½«³ÉΪÉ趨µµµÄºÃÓù¤¾ß£¨µµ°¸¶¼·ÅÔÚ /etc£©¡£
ËäÈ»Ëü²»»á¸²¸ÇÕâЩÉ趨µµ,µ«ÊÇËü½«»á½¨Á¢Ðµĵµ°¸ÃüÃûΪ ._cfg000_<name> <name> Ϊ±¾À´µÄµµÃû¡£È»ºó½«»áËæ×ÅʹÓÃÕ߱ȽϺ͸ü¸Ä¡£Äú¿ÉÒÔʹÓà etc-update Ö¸ÁîÀ´ÈÃÄúµÄ¸üж¯×÷¸ü¼Ó±ãÀû¡£ÎÒÃǽ«ÔÙÉÔºó½²½â etc-update¡£
¶¨Òå CONFIG_PROTECT
Portage ²»ÄÜÒÔ¸ö±ðµµ°¸µÄ·½Ê½±£»¤¡£µ«ÊÇËû¿ÉÒÔ±£»¤Õû¸öĿ¼¡£ CONFIG_PROTECT µÄ±äÁ¿½«»áÊÇ´¢´æÕâЩĿ¼µÄ±äÁ¿,°üÀ¨±£»¤Ä¿Â¼ÒÔϵÄ×ÓĿ¼¡£CONFIG_PROTECT ±äÁ¿ÊÇÔÚ /etc/make.globals µÄµµ°¸ÄÚ¶¨Òå,µ«ÊÇÈç¹ûÄúÏëÒª¸ü¸ÄËü,ÄúÓ¦¸Ã¶¨Òå /etc/make.conf £¨ÎªÁËÈ·±£Í³Ò»ÐÔ,ËùÓÐµÄ Portage É趨¶¼»áÔÚ /etc/make.conf µÄµµ°¸ÄÚ£©¡£
Code Listing 1: É趨 CONFIG_PROTECT ·¶Àý
CONFIG_PROTECT="/etc /usr/share/config /usr/kde/3.1/share/config"
Èç¹ûÄúÏëÒª±£»¤Ä³¸öĿ¼,µ«ÊDz»ÊÇËùÓеÄ×ÓĿ¼,Äú¿ÉÒÔ¶¨Òå CONFIG_PROTECT_MASK µÄ±äÁ¿À´ "·´±£»¤" ÕâЩ¡£µ± /etc/make.globals ½«¶¨ÒåΪԤÉèµÄ±äÁ¿,ÄúÓ¦¸Ã´Ó /etc/make.conf ÄÚ½øÐиü¸Ä£º
Code Listing 2: É趨 CONFIG_PROTECT_MASK ·¶Àý
CONFIG_PROTECT_MASK="/etc/init.d"
¹ØÓÚ¸ü¶àµÄµµ°¸±£»¤¿ÉÒÔÔÚ emerge µÄÏÖÔÚ˵Ã÷ÕÒµ½£º
Code Listing 3: Ë÷È¡¸ü¶à¹ØÓÚµµ°¸±¨»§µÄ˵Ã÷
# emerge --help config
etc-update
etc-update ÊÇÒ»¸öÓÃÀ´ÈÚºÏ ._cfg0000_<name> É趨µµ¡£ËüÌṩµÄÊÇ»¥¶¯ÐÔµÄÉ趨Ȼºó¿ÉÒÔ×Ô¶¯ÈÚÈëÉ趨µµ¸ü±ä¡£
Ö´ÐÐ etc-update ÊǷdz£Ö±½ÓµÄ£º
Code Listing 4: Ö´ÐÐ etc-update
# etc-update
µ±ÒªÈÚÈëһЩ¸ü±äʱ,Äú½«»á¿´µ½Ò»¸öµÈ´ý¸üб£»¤µµ°¸µÄÁÐ±í»­Ãæ¡£ÒÔÏÂÄú½«»á¿´µ½Ò»Ð©¿ÉÄܵÄÑ¡Ï
Code Listing 5: etc-update Ñ¡Ïî
Please select a file to edit by entering the corresponding number.              (-1 to exit) (-3 to auto merge all remaining files)                           (-5 to auto-merge AND not use 'mv -i'):
µ±ÄúÊäÈë -1,etc-update ½«²»»á²ÉÈ¡Èκζ¯×÷È»ºóÀ뿪¡£Èç¹ûÄúÊäÈë -3 »òÊÇ -5,ËùÓÐ ±»ÁгöµÄÉ趨µµ½«»á±»¸²¸Çµ½Ðµİ汾¡£µ«ÊǸüÖØÒªµÄÊÇÄú֮ǰËùÉ趨µÄÉ趨µµ½«²»»á±»×Ô¶¯¸üС£Òª²é¿´¸ü±äºÜ¼òµ¥,Ö»ÒªÊäÈëÄǸöµµ°¸×ó±ßµÄ±àºÅ¡£
ÎÒÃǽ«Ñ¡Ôñ /etc/pear.conf Ϊ½²½â·¶Àý£º
Code Listing 6: ¸üÐÂÏà¹ØÉ趨µµ
Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf[...]End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf1) Replace original with update2) Delete update, keeping original as is3) Interactively merge original with update4) Show differences again
Äú½«¿ÉÒԲ鿴Á½¸öµµ°¸Ö®¼äµÄ²î±ð¡£Èç¹ûÄúÈÏΪ¿ÉÒÔûÓÐÎÊÌâµÄÖ±½Ó¸üÐÂÉ趨µµ,ÊäÈë 1¡£Èç¹ûÄúÈÏΪ¸üеÄÉ趨µµ²»±ØÒª,ÊäÈë 2¡£Èç¹ûÄúÏëÒª½»»¥Ê½µÄ¸üÐÂÄúĿǰµÄÉ趨µµ,ÊäÈë 3¡£
ËäÈ»½²½â½»»¥Ê½µÄÈÚÈëºÜÖØÒª¡£µ«ÊÇΪÁËÍêÕû,ÎÒÃǽ«»áÁгöÒÔÏÂÄú¿ÉÒÔʹÓõÄÖ¸Áî½øÐн»»¥Ê½µÄÈÚÈëÁ½¸öµµ°¸¡£Äú½«»á¿´µ½Á½ÐÐ×Ö£¨Ò»¸öΪԭÀ´µÄ,ÁíÒ»¸öΪ¸üеģ©È»ºóÊäÈëÖ¸Áî½øÈë»­Ãæ£º
Code Listing 7: ½»»¥Ê½ÈÚÈëÖ¸Áî
ed:     ±à¼­Á½¸ö°æ±¾,²¢ÇÒʹÓÃÒ»¸ö header¡£eb:     ±à¼­È»ºóʹÓÃÁ½¸ö°æ±¾¡£el:     ±à¼­È»ºóʹÓÃ×ó±ßµÄ°æ±¾¡£er:     ±à¼­È»ºóʹÓÃÓұߵİ汾¡£e:      ±à¼­Ðµİ汾¡£l:      Ê¹ÓÃ×ó±ßµÄ°æ±¾¡£r:      Ê¹ÓÃÓұߵİ汾s:      °²¾²µÄ°üº¬³£Ê¹ÓõÄÐÐÊý¡£v:      ÏêϸµÄÏÔʾ°üº¬³¤Ê¹ÓõÄÐÐÊý¡£q:      À뿪¡£
µ±ÄúÍê³ÉÖØÒªµÄÉ趨µµ¸üÐÂʱ,ÄúÏÖÔÚ¿ÉÒÔ×Ô¶¯¸üÐÂÆäËüµÄÉ趨µµÁË¡£etc-update ½«»á¹Ø±Õ,ÒòΪËûÕÒ²»µ½¸ü¶à¿É¸üеÄÉ趨µµÁË¡£
4.b. ÍøÂçÑ¡Ïî
È«Çò¶ÔÓ³Õ¾
µ± Gentoo Õý³ÉΪÊÜ»¶Ó­µÄ°æ±¾,Ñ¡ÔñµÄ¶ÔÓ³Õ¾Ò²ÊÇÏ൱±ØÒªµÄ¡£Portage ʹÓÃÈý¸ö±äÁ¿À´Ö´ÐиüÐµĹ¤×÷£ºÒ»¸öÊÇ rsync ¶ÔÓ³£¨ÓÃÀ´Í¬²½ÄúµÄ Portage£©,Ò»¸öÊÇ distfile £¨ÓÃÀ´ÏÂÔØÔ­Ê¼Â룩ÁíÒ»¸öÔòÊÇÒѱàÒëµÄÌ×¼þ¶ÔÓ³¡£
ËùÓпÉÓÃµÄ distfiles ¶ÔÓ³Õ¾½«¿ÉÒÔµ½ Gentoo ¶ÔÓ¦Õ¾ÍøÒ³ ÕÒµ½¡£ÄúÒ²¿ÉÒÔʹÓà mirrorselect ·½±ãÄúÉ趨¡£µ«ÊÇÈÃÎÒÃÇÏÈ¿´¿´ÕâЩ¸ö±ðµÄ±äÁ¿©ì
SYNC ±äÁ¿°üº¬×ÅÄúËùÏëʹÓÃµÄ rsync ¶ÔÓ³Çåµ¥¡£¾ÙÀýÀ´Ëµ,ҪѡÔñʹÓà rsync://rsync.namerica.gentoo.org/gentoo-portage,Äú½«ÐèÒª°´ÕÕÒÔÏ·½Ê½ÔÚ /etc/make.conf ¶¨Ò壺
Code Listing 8: ÔÚ /etc/make.conf ¶¨Òå SYNC
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
GENTOO_MIRRORS ±äÁ¿½«°üº¬×ÅÄúËùÏëʹÓÃµÄ distfiles ¶ÔÓ³Çåµ¥¡£¾ÙÀýÀ´Ëµ, [url]ftp://ibiblio.org/pub/Linux/distributions/gentoo[/url] ΪµÚһѡÔñ,¶ø [url]http://www.gtlib.cc.gatech.edu/pub/gentoo[/url] ΪµÚ¶þ,Äú½«ÐèÒª°´ÕÕÒÔÏ·½Ê½ÔÚ /etc/make.conf ¶¨Ò壺
Code Listing 9: ÔÚ /etc/make.conf ¶¨Òå GENTOO_MIRRORS
GENTOO_MIRRORS="ftp://ibiblio.org/pub/Linux/distributions/gentoo                [url]http://www.gtlib.cc.gatech.edu/pub/gentoo[/url]"
PORTAGE_BINHOST ±äÁ¿½«°üº¬×ÅÄúËùÏëʹÓõÄÒѱàÒëÌ×¼þ¶ÔÓ³Çåµ¥¡£¾ÙÀýÀ´Ëµ,ҪʹÓà [url]ftp://login:pass@grp.mirror.site/pub/grp/i686/athlon-xp,Äú½«ÐèÒª°´ÕÕÒÔÏ·½Ê½ÔÚ[/url] /etc/make.conf ¶¨Ò壺
Code Listing 10: ÔÚ /etc/make.conf ¶¨Òå PORTAGE_BINHOST
PORTAGE_BINHOST="ftp://login:pass@grp.mirror.site/pub/grp/i686/athlon-xp"
Ì×¼þ¾µÏñ
Ðí¶àÌ×¼þÓаüº¬ "mirror://" µÄ SRC ±äÁ¿¡£ÕâÖÖÌ×¼þÔÚÐí¶àÖ÷»úÉÏÓÐËûµÄԭʼÂë (¾ÍÏñ sourceforge,gnu,...)¡£µ± Portage Óöµ½ÕâÖÖµÄ SRC ±äÁ¿,Ëû»á´Ó /etc/portage/mirrors ÖÐÕÒ³öÕæÕýµÄ¾µÏñÕ¾,¶øÈç¹ûûÕÒµ½µÄ»°,¾ÍÔÚ /usr/portage/profiles/thirdpartymirrors Ö®ÖÐÕÒ¡£
Äã¿ÉÒÔÔÚ /etc/portage/mirrors ÖÐÐû¸æÄã×î³£ÓõľµÏñÕ¾¡£ÀýÈç˵,ÄãÏ£ÍûÌ×¼þÐèÒª´Ó sourceforge ÏÂÔØÊ±Ê¹Óà [url]http://keihanna.dl.sourceforge.net/[/url] ,Äã¿ÉÒÔÊäÈ룺
Code Listing 11: /etc/portage/mirrors ·¶Àý
sourceforge [url]http://keihanna.dl.sourceforge.net[/url]
ÄãÒ²¿ÉÒÔÐû¸æÌØÊâµÄ local ¾µÏñ,Õâ¸ö¾µÏñ×ÜÊǻᱻÏȼì²é,¼´Ê¹ÊÇËû±¾ÉíµÄ SRC ±äÁ¿Ã»ÓÐ "mirror://" »òÊÇËûÒѾ­Ðû¸æËû²»Ó¦¸Ã±»¾µÏñ¡£
Mirrorselect
Èç¹ûÄúÏëʹÓà mirrorselect,ÏȰ²×°Ëü£¨Èç¹ûÄú»¹Ã»°²×°£©¡£
Code Listing 12: °²×° mirrorselect
# emerge mirrorselect
ÏÖÔÚÄú¿ÉÒÔʹÓà mirrorselect ×Ô¶¯Ñ¡Ôñ×îÊʺÏÄúµÄ¶ÔÓ³Õ¾,»òÊÇÊÖ¶¯µÄ´ÓÇåµ¥ÄÚѡȡ¡£¹ØÓÚ¸ü¶àµÄ mirrorselect ˵Ã÷,´ÓÎÄ×ÖģʽִÐÐ mirrorselect,Äú½«»á¿´µ½ mirrorselect µÄ½éÉÜ¡£
Code Listing 13: Ö´ÐÐ mirrorselect
# mirrorselect
ÏÂÔØ
Portage ʹÓà FETCHCOMMAND ºÍ RESUMECOMMAND µÄ±äÁ¿À´ÏÂÔØµµ°¸¡£Äú½«¿ÉÒÔÔÚ /etc/make.conf ºÍ /etc/make.globals ¿´µ½¡£Portage ½«Ê¹Óà wget ΪԤÉ裺
Code Listing 14: Ô¤ÉèµÄ FETCHCOMMAND & RESUMECOMMAND
FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp -P \${DISTDIR} \${URI}"RESUMECOMMAND="/usr/bin/wget -c -t 5 --passive-ftp -P \${DISTDIR} \${URI}"
{DISTDIR} µÄ±äÁ¿ÊÇËùÒÔÏÂÔØµÄµµ°¸µÄ´¢´æÄ¿Â¼£¨ /usr/portage/distfiles£©,¶ø ${URI} µÄ±äÁ¿Îª Portage ÐèÒªÏÂÔØµµ°¸¡£
µ± Portage ʹÓÃÔ¤ÉèµÄ wget,Äú¿ÉÒÔÀûÓö¨Òå http_proxy ºÍ ftp_proxy£¨È«²¿Ð¡Ð´£©µÄ·½Ê½¿ªÆô wget µÄ´úÀí·þÎñÆ÷É趨¡£ËäÈ»ÄúÒ²¿ÉÒÔÔÚ /etc/make.conf ÀïÃæÉ趨,µ«ÊÇÎÒÃǽ¨ÒéÄú½« http_proxy ºÍ ftp_proxy ¶¨Òå³É»·¾³±äÁ¿¡£Çë²Î¿¼ »·¾³±äÁ¿ ½âÊÍÈçºÎ¶¨ÒåϵͳµÄ»·¾³±äÁ¿¡£
É趨 rsync
rsync ÊÇÓÃÀ´ÔÚ emerge sync µÄʱºò¸üРPortage Óá£Portage µÄ rsync ʹÓÃ×ÅÈý¸ö±äÁ¿,ËüÃÇ·Ö±ðÊÇ RSYNC_EXCLUDEFROM, RSYNC_RETIRESºÍRSYNC_TIMEOUT¡£
Ò»¸ö·ÀÖ¹ÔÚ emerge sync ʱ"±£»¤"°²×°³ÌÐò±»¸üлòÊÇÒÆ³ýµÄ·½·¨¾ÍÊÇʹÓà RSYNC_EXLUDEFROM ±äÁ¿¡£Ëû¿ÉÒÔÔÚ /etc/portage/rsync_excludes ÄÚÉ趨һ¸ö rsync µÄµµ°¸±£»¤¡£ËäÈ»ÎÒÃDz»½¨ÒéÄúʹÓÃÕâ¸ö·½·¨,ÒòΪÄúÈç¹û²»Ð¡Ðĵϰ»áÆÆ»µÏµÍ³µÄÏàÒÀÐÔ¡£ÎÒÃǽ«ÔÚÉԺ󽲽⽨ÒéʹÓõķ½Ê½, PORTDIR_OVERLAY ¡£
Code Listing 15: RSYNC_EXCLUDEFROM ±äÁ¿
RSYNC_EXCLUDEFROM="/etc/portage/rsync_excludes"
µ± rsync ʧ°ÜµÄʱºò,Ëû½«»á°´ÕÕËùÉ趨´ÎÊýÈ¥ÖØ¸´³¢ÊÔ¡£Õâ¸ö¿ÉÒÔÔÚ RSYNC_RETRIES ÀïÃæÉ趨,Ô¤ÉèΪ 3£º
Code Listing 16: RSYNC_RETRIES ±äÁ¿
RSYNC_RETRIES="3"
Èç¹ûÄúÕýÔÚʹÓÃµÄ rsync ·þÎñÆ÷·Ç³£µÄÂý,rsync ¿ÉÒÔÉ趨ֹͣ½ÓÊÕµÄʱ¼äÉ趨¡£Õ⽫ÊÇÔÚ»¹Ã»µÈµ½ÏìӦǰµÄµÈ´ýÃëÊý¡£Õ⽫ʹÓà RSYNC_TIMEOUT ±äÁ¿,Ô¤ÉèΪ 180£º
Code Listing 17: RSYNC_TIMEOUT ±äÁ¿
RSYNC_TIMEOUT="180"

pkkj ·¢±íÓÚ 2004-8-25 20:43

4.c. Ŀ¼λÖÃ
½éÉÜ
¹ØÓÚ Portage µÄËùÓж«Î÷¶¼ÊÇ¿ÉÉ趨µÄ,°üÀ¨ËùÓÐ Portage ÐèÒª´æ·Åµµ°¸µÄĿ¼¡£Òª¸ü¸Ä /etc/make.globals Ô¤ÉèµÄĿ¼,ÄúÐèÒªÕýÈ·µÄÔÚ /etc/make.conf ÄÚ½øÐиü¸Ä¡£
Warning: Èç¹ûÄúÐèÒª¸ü¸Äµ½±ðµÄĿ¼,¼ÇµÃĿ¼µÄ×îºó²»¿ÉÒÔÊÇ /£¡
Portage Tree
Portage tree ÊǶ¨ÒåÔÚ PORTDIR µÄ±äÁ¿¡£Ô¤ÉèΪ /usr/portage£º
Code Listing 18: PORTDIR ±äÁ¿
PORTDIR="/usr/portage"
Èç¹ûÄúÏëÒªÔÚ¹Ù·½µÄ Portage ÅԱ߷ÅÖÃÒ»¸ö±¾µØ Portage tree,ÄúÐèÒª¶¨Òå PORTDIR_OVERLAY ±äÁ¿¡£ÕâЩ¶¨ÒåÔÚÕâ¸ö±äÁ¿ÄÚµÄĿ¼½«²»»áÔÚ emerge sync ʱ±»Ó°Ï죺·ÅÔÚ±¾µØµÄĿ¼ÄÚ½«²»»á±»¸üлòÊÇÒÆ³ý,ÊÇÄú×Ô¼ºµÄ Portage tree¡£
Code Listing 19: PORTDIR_OVERLAY ±äÁ¿
PORTDIR_OVERLAY="/usr/local/portage"
Distfiles
ÏÂÔØÔ­Ê¼ÂëµÄĿ¼£¨½Ð×ö distfiles£©ÊÇÓÉ DISTDIR µÄ±äÁ¿Ëù¶¨Òå¡£ËüµÄÔ¤ÉèΪ #{PORTDIR}/distfiles£º
Code Listing 20: DISTDIR ±äÁ¿
DISTDIR="${PORTDIR}/distfiles"
Ì×¼þºÍ RPM
ÒѾ­±àÒëÍê³ÉµÄÌ×¼þÊÇÓÉ PKGDIR µÄ±äÁ¿¶¨ÒåµÄ¡£Ô¤ÉèÊÇ·ÅÔÚ ${PORTDIR}/packages£º
Code Listing 21: PKGDIR ±äÁ¿
PKGDIR="${PORTDIR}/packages"
RPM µÄλÖã¨Ã»´í,ÓÐЩÌ×¼þ±»ÌṩΪ RPM£©ÊǶ¨ÒåÔÚ RPMDIR µÄ±äÁ¿¡£ËüµÄÔ¤ÉèÊÇ·ÅÔÚ ${PORTDIR}/rpm£º
Code Listing 22: The RPMDIR variable
RPMDIR="${PORTDIR}/rpm"
ÔÝʱÐ﵀ Portage µµ°¸
Portage ʹÓÃÔÝʱÐԵĵØÖ·À´´æ·Å±àÒëʱÐèÒªµÄµµ°¸¡£Õâ¸öλÖÃÊǶ¨ÒåÔÚ PORTAGE_TMPDIR µÄ±äÁ¿¡£ËüµÄÔ¤ÉèÊÇ·ÅÔÚ /var/tmp£º
Code Listing 23: PORTAGE_TMPDIR ±äÁ¿
PORTAGE_TMPDIR="/var/tmp"
ÒÔÔ¤ÉèÀ´Ëµ,Portage ½«»á½¨Á¢Ò»¸ö portage µÄĿ¼ÔÚ PORTAGE_TMPDIR ÄÚ¡£Õ⽫¿ÉÒÔÔÚ BUILD_PREFIX µÄ±äÁ¿ÄÚ¶¨Ò壺
Code Listing 24: BUILD_PREFIX ±äÁ¿
BUILD_PREFIX="${PORTAGE_TMPDIR}/portage"
Èç¹ûÄú´òËãÒª¸ü¸ÄλÖÃ,¼ÇµÃÈ·ÈÏÄúµÄÔÝʱÐÔĿ¼ÓÐ×ã¹»µÄÊ£Óà¿Õ¼ä£ºµ±±àÒë´óµÄÈí¼þÌ×¼þʱ,Õâ¸öĿ¼ÓпÉÄÜ»áÔö¼Óµ½ 2Gb »òÊǸü¶à£¡
¼Í¼
PORT_LOGDIR ÊÇÒ»¸öÌØ±ðµÄ±äÁ¿¡£Ô¤É轫¹Ø±ÕËü¡£µ±Äú¶¨ÒåËüʱ,Porage ½«»áÕë¶Ôÿ¸öÌ×¼þ½¨Á¢¼Í¼Îļþ²¢ÇÒ·ÅÔÚÕâ¸öĿ¼Ï£º
Code Listing 25: PORT_LOGDIR ±äÁ¿
PORT_LOGDIR="/var/log/portage"
4.d. ÆäËü Portage Ñ¡Ïî
Nice Value
Portage ÌṩµÄ±àÒë nice-value£¨±àÒëÌ×¼þµÄÓÅÏȶȣ©¡£Èç¹ûÄúÏëÒª½«±àÒë·ÅÔڱȽÏÓÅÏȵÄλÖÃ,Äú½«ÐèÒªÔÚ PORTAGE_NICENESS µÄ±äÁ¿¶¨ÒåÒ»¸öÕýÖµµÄºÅÂ룺
Code Listing 26: PORTAGE_NICENESS ±äÁ¿
PORTAGE_NICENESS="3"
SLOT Ì×¼þºÍ×Ô¶¯Çå³ý
ÔÚ¶àÊýµÄÇé¿öÏÂ,ÄúÐèÒª¶à¸ö²»Í¬°æ°æµÄÌ×¼þ¿ÉÓÃÓÚÄúµÄϵͳ¡£Portage ÈÃÄú¿ÉÒÔ¶¨Òå SLOT ±äÁ¿À´Ö§³Ö¡£ÉíΪһ¸öʹÓÃÕß,Äú²»ÐèÒªÖªµÀËûÊÇÈçºÎ¹¤×÷,µ«ÊÇÄú±ØÐëÖªµÀËüµÄ´æÔÚ¡£
Èç¹ûÄúÕýÔÚ°²×°Ò»¸ö¸üа汾µÄÌ×¼þ,Portage½«»á¼ì²é SLOT ±äÁ¿ÊÇ·ñÕë¶Ô´ËÌ×¼þ¶¨Òå¡£Èç¹ûÊÇÕæµÄ,ÄÇô SLOT ±äÁ¿¾Í»á½«Õâ¸öÌ×¼þÇø·Ö³¤Á½¸ö²»Í¬µÄÌ×¼þ£¨Ð°漰¾É°æ£©,Portage ½«²»»áÓ°Ïìµ½¾ÉµÄÌ×¼þ¡£
µ«ÊÇ,Èç¹û SLOT µÄ±äÁ¿Ò»Ñù£¨´ó²¿·Ý¶¼ÊÇÕâÑù£©,ÄÇô¾ÉµÄÌ×¼þ½«»á±»Ò»³ýµô¡£Èç¹ûʹÓÃÕßÐèÒª¸ÉÉæ´ËÏîÒÆ³ý¶¯×÷,Portage ½«»áÔÚÒÆ³ý¶¯×÷ǰ½øÐе¹Êý¡£Õâ¸öµ¹ÊýµÄ±äÁ¿ÊǶ¨ÒåÓÚ CLEAN_DELAY ±äÁ¿,Ô¤ÉèΪ 5 Ã룺
Code Listing 27: CLEAN_DELAY ±äÁ¿
CLEAN_DELAY="5"
Èç¹ûÄú²»ÏëÒª Portage ×Ô¶¯ÒƳý¾ÉµÄ°æ±¾£¨½Ð×ö"Çå³ý"£©,Äú¿ÉÒÔ½« AUTOCLEAN µÄ±äÁ¿ÉèΪ no£º
Code Listing 28: AUTOCLEAN ±äÁ¿
AUTOCLEAN="no"
±àÒëÏà¹Ø±äÁ¿
ÎÒÃÇÒѾ­Á˽âÁ˲»ÉÙ±äÁ¿,µ«ÊÇ»¹Ã»½áÊø¡£°²×°¹ý Gentoo µÄʹÓÃÕßÒ»¶¨¶¼ÖªµÀ CHOST,CFLAGS ºÍ CXXFLAGS ±äÁ¿,ÕâЩÊDZ»À´Ê¹ÓÃÓÚ±àÒëÆ÷À´Õë¶Ô×Ô¶©ºÍЧÄÜ»¯Ì×¼þ¡£
¹ØÓÚ¸ü¶àÕâЩµÄ±äÁ¿¿ÉÒÔÔÚ gcc ˵Ã÷Ò³»òÊÇÏßÉ쵀 GCC ÏßÉÏ˵Ã÷ ÄÚÕÒµ½¡£
Code Listing 29: Ë÷È¡¹ØÓÚCHOST,CFLAGS ºÍ CXXFLAGS µÄÐÅÏ¢
# info gcc£¨Ñ¡Ôñ "Invoking gcc"£©£¨Ñ¡Ôñ "Optimize options"£©
Èç¹û DEBUGBUILD ±»¶¨ÒåÁË,Portage ½«»áΪÁËÈóý³ô¸ü¼òÒ×¶ø²»±àÒë¶þ½øÖƵµ°¸¡£Õ⽫»áÍÏÂýÄúµÄϵͳ²¢ÇÒÔö¼ÓÄúµÄ´ÅÅ̿ռ䡣
Code Listing 30: DEBUGBUILD ±äÁ¿
# ²»Òª½«Õâ¸öÉèΪ "false"; Ö±½ÓÒÆ³ýµ÷Õâ¸ö±äÁ¿¡£Portage# ²»»á¼ì²éËüµÄÊýÖµ,Ö»¼ì²éËüÊÇ·ñ´æÔÚ¡£DEBUGBUILD="true"
MAKEOPTS ±äÁ¿ÊÇÔÚÖ´ÐÐ make ʱËùʹÓÃ,Õâ¸ö¹¤¾ßÄÜÔÚ±àÒëʱ¼õÉÙÐí¶à¸´ÔӵIJ½Öè¡£¶¨Òåʱ,ͨ³£ÊÇΪÁËÒª¿ÉÒÔÔÚͬʱִÐжà¸ö±àÒ빤×÷£¨ÌرðÊÇÄúÓжà¸ö CPU,»òÊÇÕýÔÚʹÓà distcc£©¡£
ÒªÈà make ¿ÉÒÔͬʱִÐÐÈý¸ö±àÒë,½« MAKEOPTS ±äÁ¿ÉèΪ -j3£º
Code Listing 31: MAKEOPTS ±äÁ¿
MAKEOPTS="-j3"
/etc/make.conf ÄÚµÄ ROOT ±äÁ¿²»Ó¦¸Ã±»¶¨Òå¡£µ«ÊÇ Portage ½«»á¼ì²éÕâ¸ö²»Ì«Ëã»·¾³±äÁ¿µÄ±äÁ¿È»ºó¿´Ì×¼þÓ¦¸Ã±»°²×°µ½ÄÇÀï¡£µ±È»Ô¤ÉèµÄĿ¼Ϊ /¡£¾ÍºÍÄúµ±³õËù¿´µ½µÄ gnumeric ·¶ÀýÀïÃæ¿´µ½µÄ /mnt/gentoo Ò»Ñù¡£¶ø²»ÊÇÔÚÄú°²×°Ê±ËùÖ´ÐеÄϵͳÉÏ£º
Code Listing 32: ROOT ±äÁ¿
# ROOT="/mnt/gentoo" emerge gnumeric
Êä³ö¸ñʽ
By default, Portage colors its output to improve readability. If you do not want this, set the NOCOLOR variable to true: Ô¤ÉèµÄ Portage ½«»áÊä³öÑÕÉ«À´Ôö¼ÓÔĶÁʱµÄ¼ò±ãÐÔ¡£Èç¹ûÄú²»ÏëÒªÕâ¸ö¹¦ÄÜ,½« NOCOLOR µÄ±äÁ¿ÉèΪ true£º
Code Listing 33: NOCOLOR ±äÁ¿
NOCOLOR="true"
4.e. ×ÊÔ´
˵Ã÷Îļþ
Èç¹ûÄúÐèÒªÒ»¸ö¿ìËٵĿɲο¼±äÁ¿Çåµ¥,Çë²Î¿¼ make.conf µÄ˵Ã÷Îļþ£º
Code Listing 34: ²é¿´ make.conf µÄ˵Ã÷Îļþ
# man make.conf
Åú×¢µÄ·¶Àý
/etc/make.conf µµ°¸°üº¬×źܶàÅú×¢,°üÀ¨Äú»á¸ÐÐËȤµÄ·¶Àý¡£µ«ÊÇ,ºÜ¶àʹÓÃÕß²»»á½»»¥Ê½µÄ¸üÐÂËûÃÇµÄ /etc/make.conf,Äú¿ÉÒÔÔÚ Online ViewCVS Repository ²é¿´ÏßÉÏ×îÐ嵀 /etc/make.conf µµ°¸

pkkj ·¢±íÓÚ 2004-8-25 20:45

5. Æðʼ³ÌÐò£¨Initscripts£©
5.a. Ö´Ðн׶Σ¨Runlevels£©
ÆôÓÃÄúµÄϵͳ
µ±Äú¿ªÆôÄúµÄϵͳ,Äú½«»á¿´µ½ºÜ¶àÎÄ×ÖÌø¹ý¡£Èç¹ûÄú×¢ÒâÒ»µã,Äú½«»á·¢ÏÖÄÇЩÎÄ×Ö¶¼ÊÇÒ»ÑùµÄ¡£ÕâЩ¶¯×÷½Ð×ö¹Ì¶¨Ê½µÄ ¿ª»úÐòÁС£
Ê×ÏÈ,ÄúµÄ¿ª»ú³ÌÐò½«»á¼ÓÔØÄúËù¶¨Òåµ½É趨µµÄڵĺËÐÄÓ³Ïñµµ,²¢ÇÒ½«Ëû·Åµ½ÄÚ´æÄÚ¡£ÕâÊÇΪÁËÒª¸æËß CPU ¸ÃÖ´ÐкËÐÄ¡£µ±ºËÐļÓÔØÍê±Ï¿ªÊ¼Ö´Ðкó,Ëü½«»áÆðʼºËÐÄÏà¹ØµÄ¼Ü¹¹ºÍ³ÌÐòÈ»ºó¿ªÊ¼ init µÄ³ÌÐò¡£
Õâ¸ö²½ÖèÊÇΪÁËÈ·±£ËùÓеĵµ°¸ÏµÍ³£¨±»¶¨ÒåÔÚ /etc/fstab£©Óб»¼ÓÔØ²¢ÇÒ¿ÉÒÔʹÓá£È»ºó½«Ö´ÐÐһЩ·ÅÔÚ /etc/init.d µÄ¸ø¸ö³ÌÐò,½«ÆôÓÃËùÓÐÄú´òË㿪ÆôµÄ·þÎñ¡£
×îºó,µ±ËùÓеijÌÐò¶¼Ö´Ðкó,init ½«»áÆôÓÃÖÕ¶Ë£¨ÔÚ´ó¶àµÄÀý×ÓÀï,Ö»ÊǼ¸¸ö²ØÔÚ Alt-F1 ϵÄÐéÄâÖÕ¶Ë,Alt-F2,µÈµÈ¡££©°üº¬×ÅÒ»¸öÌØ±ðµÄ³ÌÐò½Ð×ö agetty¡£È»ºóÕâ¸ö³ÌÐò½«»áʹÓà login ÈÃÄú¿ÉÒÔµÇÈëµ½ÕâЩÖÕ¶ËÄÚ¡£
Init ³ÌÐò
ÏÖÔÚ init ²»Ö»ÊÇÖ´ÐÐ /etc/init.d ÀïÃæµÄ³ÌÐò¡£¸ü¶àµÄÊÇ,Ëû»¹»áÒÀÕÕ /etc/runlevels À´Ñ¡ÔñÒªÖ´ÐеijÌÐò¡£
Ê×ÏÈ,init ½«Ö´ÐÐËùÓÐ /etc/runlevels/boot ÄÚµÄÁ¬½Ó,ÕâЩÁ¬½Ó½«»áÁ¬µ½ /etc/init.d ÀïÃæµÄ³ÌÐò¡£´ó²¿·ÝÀ´Ëµ,ÕâЩ½«»á°´ÕÕ×ÖĸÅÅÁзֱðÆðʼ,µ«ÊÇÓÐЩ»áÒòΪÏàÒÀÐԵĹØÏµ¶øÏÈÖ´ÐÐÆäËüµÄ³ÌÐò¡£
µ± /etc/runlevels/boot ÄڵijÌÐò¶¼±»Ö´Ðкó,init ½«¼ÌÐøÖ´ÐÐ /etc/runlevels/default ÄÚµÄÁ¬½Ó¡£ÔÚÒ»´Î,ÕâЩ½«»á°´ÕÕ×ÖĸÅÅÁзֱðÆðʼ,µ«ÊÇÓÐЩ»áÒòΪÏàÒÀÐԵĹØÏµ¶øÏÈÖ´ÐÐÆäËüµÄ³ÌÐò¡£
Init ÊÇÈçºÎÖ´ÐеÄ
µ±È» init ²»ÄÜ×Ô¼º¾ö¶¨ËùÓеÄÑ¡Ôñ¡£ËûÐèÒªÒ»¸öÉ趨µµÀ´¸æËßÒªÓÐÄÇЩ¶¯×÷¡£Õâ¸öÉ趨µµÎª /etc/inittab¡£
Èç¹ûÄú¼ÇµÃ¸Õ¸Õ½âÊ͹ýµÄ¿ª»úÐòÁÐ,Äú½«»á¼ÇµÃ init µÄµÚÒ»¸ö¶¯×÷¾ÍÊǹÒÔØËùÓеĵµ°¸ÏµÍ³¡£Õ⽫»á°´ÕÕÒÔϵķ½Ê½¶¨ÒåÔÚ /etc/inittab£º
Code Listing 1: /etc/inittab µÄϵͳÆðʼ
si::sysinit:/sbin/rc sysinit
ÕâÐн«¸æËß init Ò»¶¨ÒªÖ´ÐÐ /sbin/rc sysinitÀ´Æðʼϵͳ¡£ /sbin/rc µÄ³ÌÐò½«ÕÆ¹ÜÆðʼµÄ¶¯×÷,ÄúÒ²¿ÉÒÔ˵ init µÄ¹¤×÷Æäʵ²»¶à -- ËüÖ»ÊÇÖ¸ÅÉÆðʼϵͳµÄ¹¤×÷¸øÁíÍâÒ»¸ö³ÌÐò¡£
µÚ¶þ,init ½«Ö´ÐÐ /etc/runlevels/boot ÄÚËùÓеÄÁ¬½Ó¡£½«°´ÕÕÒÔ϶¨Ò壺
Code Listing 2: ¼ÌÐøÏµÍ³Æðʼ
rc::bootwait:/sbin/rc boot
rc ³ÌÐòÔÙÒ»´ÎµÄÖ´ÐÐÏà¹Ø¹¤×÷¡£µ«ÊÇÕâÊÇÊÇ rc £¨boot£©½«»áÈ¥Ö´ÐÐ /etc/runlevels µÄÏà¹ØÄ¿Â¼¡£
ÏÖÔÚ init ½«¼ì²ìËûµÄÉ趨µµÈ»ºó²é¿´ËûÓ¦¸ÃÖ´ÐÐÄǸö½×¶Î¡£Òª¾ö¶¨Õâ¸ö,Ëü½«»á´Ó /etc/inittab È¡ÒÔÏÂÕâÐУº
Code Listing 3: initÔ¤É裨initdefault£©
id:3:initdefault:

pkkj ·¢±íÓÚ 2004-8-25 20:48

ʲôÊÇÖ´Ðн׶Σ¨runlevel£©£¿
ÄúÒѾ­ÖªµÀÁË init ÈçºÎʹÓúÅÂëÀ´¾ö¶¨¸ÃÆôÓÃÄǸöÖ´Ðн׶Ρ£Ò»¸ö Ö´Ðн׶Π½«»á´ú±í×ÅÄúµÄϵͳ½«Ö´ÐÐÄÇЩ³ÌÐò£¨Ö´Ðн׶γÌÐò»òÊÇ Æðʼ³ÌÐò£¨initscripts£©£©¡£
ÔÚ Gentoo ÄÚ¹²Óж¨ÒåÆß¸öÖ´Ðн׶ΣºÈý¸öÄÚ²¿Ö´Ðн׶Î,ºÍËĸöʹÓÃÕß¶¨ÒåµÄÖ´Ðн׶Ρ£ÄÚ²¿µÄÖ´Ðн׶νÐ×ö sysinit,shoutdown ºÍ reboot ¾ÍºÍËûÃǵÄÃû×ÖÒ»Ñù£º
ʹÓÃÕß¶¨ÒåµÄÖ´Ðн׶ΰüº¬×Å /etc/runlevels µÄ×ÔĿ¼£º boot,default,nonetwork ºÍ single¡£boot µÄÖ´Ðн׶ν«Æðʼ°üº¬ÆäËüËùÓÐϵͳÏà¹ØµÄ·þÎñ¡£Ê£ÏµÄÈý¸öÖ´Ðн׶ÎÔòÊÇÒÀÕÕ²»Í¬µÄ·þÎñ¶øÀà±ð£ºdefault ÊÊÓÃÓÚÈÕ³£ÔË×÷ËùÐè,nonetwork ÊÊÓÃÓÚûÓÐÍøÂçÁª»úµÄÐèÇó,ºÍ single ÔòÊÇÔÚÄúÐèÒªÕûÀíϵͳʱËùÓá£
ʹÓà Init Scripts
rc µÄ³ÌÐò½Ð×ö init scripts¡£Ã¿¸öÔÚ /etc/init.d µÄ³ÌÐò¶¼¿ÉÒÔʹÓà start,stop,restart,pause,zap, status,ineed,iuse,needsme,usesme »òÊÇ broken Ϊ²ÎÊý¡£
Òª¿ªÊ¼,Í£Ö¹,»òÊÇÖØÐ¼¤»îÒ»¸ö·þÎñ£¨ºÍËùÓÐÏàÒÀµÄ·þÎñ£©,ÄúÓ¦¸ÃʹÓà start ,stop ºÍ restart£º
Code Listing 6: ÆôÓÃ Postfix
# /etc/init.d/postfix start
Note: Ö»ÓÐ Ö¸¶¨ µÄ·þÎñ»á±»Í£Ö¹»òÊÇÖØ¿ª¡£ÆäËüÏàÒÀµÄ³ÌÐò£¨ÄÇЩʹÓÃÕâ¸ö·þÎñµ«ÊDz»ÐèÒªËûµÄ£©½«²»»á±»Ó°Ïìµ½¡£
Èç¹ûÄúҪֹͣһ¸ö·þÎñ,µ«ÊDz»ÊÇÒÀÀµ×ÅËüµÄÆäËü·þÎñ,Äú¿ÉÒÔʹÓà pause£º
Code Listing 7: Í£Ö¹ Postfix µ«ÊǼÌÐøÖ´ÐÐÆäËüÏàÒÀµÄ·þÎñ
# /etc/init.d/postfix pause
Èç¹ûÄúÒª²é¿´Ä³¸ö·þÎñµÄ״̬£¨ÆôÓÃ,Í£Ö¹,ÔÝÍ£©ì£©Äú¿ÉÒÔʹÓà status£º
Code Listing 8: ¹ØÓÚ postfix µÄ״̬
# /etc/init.d/postfix status
Èç¹û״̬¸æËßÄúÕâ¸ö·þÎñÕýÔÚÖ´ÐÐ,µ«ÊÇÄúÖªµÀÕâÊÇ´íµÄ,ÄÇÄú½«¿ÉÒÔʹÓà zap ½«×´Ì¬ÖØÉèΪ "Í£Ö¹"£º
Code Listing 9: ÖØÉè postfix µÄ״̬
# /etc/init.d/postfix zap
Èç¹ûÒª²é¿´Ä³¸ö·þÎñµÄÏàÒÀÐÔÓÐÄÇЩ,Äú¿ÉÒÔʹÓà iuse »òÊÇ ineed¡£Äú¿ÉÒÔʹÓà ineed À´¹Û¿´·þÎñµÄÏà¹Ø¹¦ÄÜ¡£iuse ÔòÊDz鿴·þÎñÊÇ·ñÓб»ÆäËü·þÎñÒÀÀµ×Å¡£
Code Listing 10: ²éѯ Postfix ÒÀÀµµÄ·þÎñ
# /etc/init.d/postfix ineed
ÀàËÆµÄ,Äú¿ÉÒÔ²éѯÄÇЩ·þÎñÐèÒªÄÇЩ·þÎñ£¨needsme£©»òÊÇ£¨usesme£©£º
Code Listing 11: ÐèÒªÓõ½ Postfix µÄ·þÎñ
# /etc/init.d/postfix needsme
×îºóÄú¿ÉÒԲ鿴ÒÀÀµ×Åij¸ö·þÎñµ«ÊÇ»µËðµÄÆäËü·þÎñ£º
Code Listing 12: ²éѯ Postifx ÐèÒªµ«ÊÇËð»ÙµÄÏàÒÀÐÔ
# /etc/init.d/postfix broken

pkkj ·¢±íÓÚ 2004-8-25 20:49

5.b. ʹÓà rc-update
ʲôÊÇ rc-update£¿
Gentoo µÄ init ϵͳʹÓõÄÊÇÏàÒÀÐÔÁбíÀ´¾ö¶¨ÄǸö·þÎñÐèÒªÏÈÆôÓá£ÕâÊÇÒ»¸ö¸´ÔӵŤ×÷,ËùÒÔÎÒÃDz»»áÈÃÎÒÃǵÄʹÓÃÕßÊÖ¶¯Íê³ÉÕâÏ×÷¡£ËùÒÔÎÒÃǽ¨Á¢ÁËÏà¹ØµÄÖ´Ðн׶ι¤¾ßºÍ init ¹¤¾ß·½±ã¹ÜÀí¡£
ʹÓà rc-update,Äú¿ÉÒÔ´ÓÖ´Ðн׶ÎÐÂÔö»òÊÇÒÆ³ý init ³ÌÐò¡£rc-update µÄ¹¤¾ß½«×Ô¶¯Èà depscan.sh ³ÌÐòÖØÐ½¨Á¢ÏàÒÀÐÔ×ÊÁÏ¡£
ÐÂÔö»òÊÇÒÆ³ý·þÎñ
ÄúÒѾ­ÔÚ°²×° Gentoo ʱ½« init ³ÌÐò¼ÓÈë¹ý "default" µÄÖ´Ðн׶ÎÁË¡£µ±Ê±ÄúÓ¦¸Ã¶Ô "default" ûÓÐÈκÎÁ˽â,µ«ÊÇÄúÏÖÔÚÓ¦¸ÃÖªµÀÁËËüµÄÒâÒå¡£rc-update ³ÌÐòÐèÒªµÚ¶þ¸ö²ÎÊýÀ´¸æËßËüÒªÖ´Ðе͝×÷£ºadd,del »òÊÇ show¡£
ÒªÔö¼Ó»òÊÇÒÆ³ýÒ»¸ö init ³ÌÐò,Ö»ÐèÒªÔÚ rc-update ºóÃæ·ÅÈë add »òÊÇ del µÄ²ÎÊý,È»ºó½ÓמÍÊÇÒª¼ÓÈëµÄ init ³ÌÐòµÄÃû×Ö¡£¾ÙÀýÀ´Ëµ£º
Code Listing 13: Ö´Ðн׶ÎÒÆ³ý Postfix
# rc-update del postfix default
rc-update show µÄÖ¸Á»á0°´ÕÕÖ´ÐÐ˳ÐòÏÔʾ³öËùÓпÉÄÜµÄ init ³ÌÐòÇåµ¥£º
Code Listing 14: ÏÔʾ init ³ÌÐò×ÊÁÏ
# rc-update show
5.c. É趨·þÎñ
ΪʲôÐèÒª¶àÓàµÄÉ趨£¿
Init ³ÌÐò¿ÉÒÔÊǺܸ´Ôӵġ£ËùÒÔÖ±½Ó±à¼­ init ³ÌÐò»áÈÃʹÓÃÕ߸е½À§ÄÑ¡£µ«ÊÇÒª¿ÉÒÔÕýÈ·µÄÉ趨ÕâЩ·þÎñÊǼ«ÎªÖØÒªµÄ¡£¾ÙÀýÀ´Ëµ,Äú»òÐí»áÏëÔÚ¼¤»î·þÎñʱ¼ÓÈëij¸ö²ÎÊý¡£
µÚ¶þ¸öÔ­ÒòÊÇΪÁËÒªÈà init ³ÌÐò¿ÉÒÔ¸üÐÂԭʼÉ趨ÎļþÒÔÍâµÄÉ趨,¶ø²»»áÖ±½Ó¸Äµ½ÖØÒªµÄÉ趨µµ¡£
/etc/conf.d Ŀ¼
Gentoo Ìṩһ¸ö¼òµ¥µÄ·½·¨É趨Ïà¹Ø·þÎñ£ºÃ¿¸ö init ³ÌÐò¶¼ÓÐÒ»¸ö¿ÉÒÔÉ趨µÄÉ趨µµ·ÅÔÚ /etc/conf.d¾ÙÀýÀ´Ëµ, apache2 µÄ init ³ÌÐò£¨½Ð×ö /etc/init.d/apache2£©µÄÉ趨µµ»á·ÅÔÚ /etc/conf.d/apache2,ÕâÑù¿ÉÒÔÔÚ¼¤»î Apache 2 ·þÎñÆ÷ʱ¼ÓÊýÄúÐèÒªµÄ²ÎÊý£º
Code Listing 15: /etc/conf.d/apache2 µÄ±äÁ¿¶¨Òå
APACHE2_OPTS="-D PHP4"
ÕâÖÖÉ趨Îļþ°üº¬µÄ±äÁ¿£¨¾ÍºÍ /etc/make.conf ÀàËÆ£©,ÊÇΪÁËÒªÈ÷þÎñµÄÉ趨¸ü¼Ó¼òÒס£ËüÒ²ÒÔÅú×¢µÄ·½Ê½Ìṩ×ÅһЩÏà¹ØµÄ×ÊÁϺͱäÁ¿Ó÷¨¡£
5.d. ±àд Init ³ÌÐò
ÎÒÐèÒªÂð£¿
²»¡£Gentoo ÌṩÁËÕâЩ init ³ÌÐò,ËùÒÔÄú²»ÐèÒª×Ô¼º±àдһ¸ö¡£µ«ÊÇ,Èç¹ûÄú°²×°ÁË·Ç Portage ÌṩµÄ·þÎñ,ÄÇôÄú¾ÍÐèÒª±àдһ¸öÀàËÆ init µÄ³ÌÐò¡£
Èç¹û²»ÊÇÕë¶Ô Gentoo ËùÉè¼ÆµÄ³ÌÐò,Ç벻ҪʹÓãºGentoo µÄ init ³ÌÐòºÍÆäËü°æ±¾µÄ init ³ÌÐò²»¼æÈÝ£¡
¹æ»®
ÒÔÏÂΪһ¸ö init ³ÌÐòµÄ¹æ»®¡£
Code Listing 16: Basic layout of an init script
#!/sbin/runscriptdepend() {  £¨ÏàÒÀÐÔÐÅÏ¢£©}start() {  £¨¼¤»î·þÎñµÄÏà¹ØÖ¸Á}stop() {  £¨Í£Ö¹·þÎñµÄÏà¹ØÖ¸Á}restart() {  £¨ÖØÐ¼¤»î·þÎñµÄÏà¹ØÖ¸Á}
ÈκΠinit ³ÌÐò ¶¼ÐèÒª start() ¹¦Ä͍ܵÒå¡£ÆäËüµÄÔòÊǷDZØÐè¡£
ÏàÒÀÐÔ
Äú×ܹ²ÓÐÁ½ÖÖÏàÒÀÐÔ¿ÉÒÔ¶¨Ò壺use ºÍ need¡£¾ÍÈçÎÒÃÇ֮ǰÌáµ½µÄ, need µÄÏàÒÀÐÔ±È use À´µÄÑÏÀ÷¡£È»ºóʹÓà virtual À´Ñ¡ÔñËùÒÀÀµµÄÏàÒÀÐÔ¡£
virtual ÊÇÒ»¸öÌṩ·þÎñµÄÏàÒÀÐÔ,µ«ÊDz¢²»ÊÇÍêÈ«ÓÉÕâ¸ö·þÎñÌṩ¡£ÄúµÄ init ³ÌÐò¿ÉÒÔÒÀÀµ×Åϵͳ¼Ç¼Æ÷,µ«ÊÇÎÒÃÇÌṩ×ÅÐí¶àϵͳ¼Ç¼Æ÷£¨metalogd,syslog-ng, sysklogd,©ì£©µ±ÄúÎÞ·¨ need ËùÓеģ¨Ö´ÐÐÈ«²¿µÄϵͳ¼Ç¼Æ÷²¢²»ºÏÀí£©ÎÒÃǽ«È·¶¨ÕâЩ·þÎñ¿ÉÒÔ Ìṩ Ò»¸öÐéÄâÏàÒÀÐÔ¡£

pkkj ·¢±íÓÚ 2004-8-25 20:50

ÏÖÔÚÈÃÎÒÃÇÀ´¿´¿´Ò»¸ö postfix ·þÎñËùÒÀÀµµÄÏàÒÀÐÔ¡£
Code Listing 17: Postfix µÄÏàÒÀÐÔ
depend() {  need net  use logger dns  provide mta}
ÈçÄâ¿É¼û,postfix£º
?        ÐèÒªËùÓеģ¨ÐéÄ⣩net ÏàÒÀÐÔ £¨ÊÇÓÉ /etc/init.d/net.eth0 ËùÌṩ£©
?        ÐèҪʹÓã¨ÐéÄ⣩ logger ÏàÒÀÐÔ£¨ÊÇÓÉ /etc/init.d/syslog-ng Ìṩ£©
?        ÐèҪʹÓã¨ÐéÄ⣩ dns ÏàÒÀÐÔ£¨ÊÂÓÉ /etc/init.d/named Ìṩ£©
?        Ìṩ£¨ÐéÄ⣩ mta ÏàÒÀÐÔ£¨³£ÓõÄÓʼþ·þÎñÆ÷ËùÐ裩
¿ØÖÆË³Ðò
ÔÚijЩÇé¿öÏÂÄú²»ÐèÒªÒ»¸ö·þÎñ,Èç¹ûÔÚϵͳ¿ÉÒÔÌṩµÄ»·¾³Ï£¨Ã»ÓÐÏàÒÀµÄÎÊÌ⣩,µ«ÊÇÄúÏëÒªÔÚÕâ¸ö·þÎñ֮ǰ befre£¨¿ªÊ¼£© £¨»òÊÇ after£¨Ö®ºó£© ʹÓÃÁíÍâÒ»¸ö·þÎñ È»ºó ·Åµ½Í¬Ò»¸öÖ´Ðн׶Σ¨Ö»ÓÐִͬÐн׶εķþÎñ£©¡£Äú¿ÉÒÔʹÓà before »òÊÇ after É趨À´Íê³ÉÕâЩÉ趨¡£
ÎÒÃǽ«²é¿´ Portmap µÄÉ趨Ϊ·¶Àý£º
Code Listing 18: Portmap ·þÎñµÄ depend() ¹¦ÄÜ
depend() {  need net  before inetd  before xinetd}
ÄúÒ²¿ÉÒÔʹÓà "*" À´Ñ¡Ôñͬһ¸öÖ´Ðн׶ÎÄÚËùÓеķþÎñ,µ«ÊÇÎÒÃDz¢²»½¨Òé¡£
Code Listing 19: É趨³ÉΪµÚÒ»¸öִͬÐÐ½×¶ÎµÄ init ³ÌÐò
depend() {  before *}
·ûºÏ±ê×¼µÄ¹¦ÄÜ
depend() Ö®ºó,Äú½«ÐèÒª¶¨Òå start() µÄ¹¦ÄÜ¡£Õâ¸ö½«°üº¬×ÅËùÓÐÏà¹Ø¼¤»î·þÎñµÄÖ¸Áî¡£ÎÒÃǽ¨ÒéÄúʹÓà ebegin ºÍ eend ¹¦ÄÜÀ´Í¨ÖªÊ¹ÓÃÕßÕýÔÚ·¢ÉúʲôÊ£º
Code Listing 20: start() ¹¦ÄÜ·¶Àý
start() {  ebegin "Starting my_service"  start-stop-daemon --start --quiet --exec /path/to/my_service  eend $?}
Èç¹ûÄúÐèÒª¸ü¶àµÄ start() ¹¦Äܵķ¶Àý,Çë²é¿´ÄúϵͳÖзÅÔÚ /etc/init.d Ŀ¼ÀïÃæµÄ init ³ÌÐò¡£¹ØÓÚ start-stop-daemon,ÎÒÃÇÓÐÌṩ×ÅÒ»¸öºÜ°ôµÄ˵Ã÷Ò³ÈÃÄú²éÔÄ£º
Code Listing 21: ²éѯ¸ü¶à¹ØÓÚstart-stop-daemon µÄ˵Ã÷Ò³
# man start-stop-daemon
ÆäËüÄú¿ÉÒÔ¶¨ÒåµÄ¹¦ÄÜΪ£ºstop() ºÍ restart()¡£Äú²»Ò»¶¨Òª¶¨ÒåÕâЩ¹¦ÄÜ£¡Èç¹ûÄúʹÓà start-stop-daemon,ÎÒÃÇ init ϵͳ½«»á×Ô¶¯ÌîÈëÕâЩ¹¦ÄÜ¡£
Adding Custom Options¼ÓÈë×Ô¶©Ñ¡Ïî
Èç¹ûÄúÏëÒªÈÃÄúµÄ init ³ÌÐòÖ§³Ö¸ü¶àÎÒÃÇÒѾ­ÌṩµÄÑ¡Ïî,ÄúÓ¦¸Ã½«ÕâЩѡÏî¼ÓÈëµ½ opts ±äÁ¿,È»ºó½¨Á¢Ò»¸ö¹¦Äܽ«´Ë¹¦ÄܵÄÃüÃûΪ opt ±äÁ¿ÄÚËù¶¨ÒåµÄ¡£¾ÙÀýÀ´Ëµ,ÒªÌṩһ¸ö restartdely µÄ¹¦ÄÜ£º
Code Listing 22: Ìṩ restartdely Ñ¡Ïî
opts="${opts} restartdelay"restartdelay() {  stop()  sleep 3    # µÈ´ýÈýÃë²Å¿ªÊ¼  start()}
ϵͳÉ趨±äÁ¿
Äú²»ÐèÒªÈκζ¯×÷À´Ìṩһ¸ö /etc/conf.d µÄÉ趨µµ£ºÈç¹ûÄúµÄ init ³ÌÐòÖ´ÐÐÁË,ÒÔϽ«»á×Ô¶¯µÄ¼ÓÔØ£¨Àý£º¿ÉÓõıäÁ¿£©£º
?        /etc/conf.d/<ÄúµÄ init ³ÌÐò>
?        /etc/conf.d/basic
?        /etc/rc.conf
ÁíÍâ,Èç¹ûÄúµÄ init ³ÌÐòÐèÒªÒ»¸öÐéÄâµÄÏàÒÀÐÔ£¨Èç net£©,ÄÇôÏà¹ØµÄµµ°¸½«»áÒ²»á±»¼ÓÔØ£¨Èç /etc/conf.d/net£©¡£

pkkj ·¢±íÓÚ 2004-8-25 20:52

5.e. ¸ü¸ÄÖ´Ðн׶Σ¨RunLevel£©µÄ̬¶È
Ë­»áÊÜÒæ£¿
ºÜ¶àʹÓÃÊÖÌáµçÄÔµÄʹÓÃÕß½«»áÃ÷°×Õâ¸ö×´¿ö£ºÔÚ¼ÒÀïÄúÐèÒª¼¤»î net.eth0,ÔÚÍâÃæÒòΪûÓÐÍøÂç,ËùÒÔÄú²»Ï뼤»î net.eth0¡£Òò´ËÄú¿ÉÒÔÒÀÕÕÄúµÄÐèÇ󶸏ıä Gentoo µÄÖ´Ðн׶Ρ£
¾ÙÀýÀ´Ëµ,Äú¿ÉÒÔ½¨Á¢µÚ¶þ¸ö "default" Ö´Ðн׶ÎÀ´ÈÃÄúÖ´ÐÐÆäËüµÄÆðʼ³ÌÐò£¨Init Scripts£©¡£È»ºóÔÚ¿ª»úʱѡÔñʹÓÃÔ¤ÉèµÄÖ´Ðн׶Ρ£
ʹÓà SOFTLEVEL
Ê×ÏÈ,½¨Á¢µÚ¶þ¸ö "default" Ö´Ðн׶Ρ£ÎÒÃǽ«½¨Á¢ offline Ö´Ðн׶ÎΪÕâ´ÎµÄ·¶Àý£º
Code Listing 23: ½¨Á¢Ò»¸öÖ´Ðн׶ÎĿ¼
# mkdir /etc/runlevels/offline
È»ºó¼ÓÈëÏà¹ØµÄÆðʼ³ÌÐòµ½¸Õ½¨Á¢Íê³ÉµÄĿ¼ÄÚ¡£¾ÙÀýÀ´Ëµ,Èç¹û³ýÁË net.eth0 ÒÔÍâ,ÄúÏëÒª½«ÆäËü default Ö´Ðн׶εÄÄÚÈݶ¼¸´ÖƵ½ÐµÄÖ´Ðн׶Σº
Code Listing 24: ¼ÓÈëÏà¹ØÆðʼ³ÌÐò
# ls /etc/runlevels/defaultacpid  domainname  local  net.eth0  netmount  postfix  syslog-ng  vixie-cron# rc-update add acpid offline# rc-update add domainname offline# rc-update add local offline# rc-update add syslog-ng offline# rc-update add vixie-cron offline
ÏÖÔڱ༭ÄúµÄ¿ª»ú³ÌÐòÉ趨ÎļþÈ»ºó¼ÓÈëÒ»¸öÐ嵀 offline Ö´Ðн׶Ρ£¾ÙÀýÀ´Ëµ,ÔÚ /boot/grub/grub.conf£º
Code Listing 25: ¼ÓÈë offline Ö´Ðн׶Î
title Gentoo Linux Offline Usage  root (hd0,0)  kernel hd(0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline
µ±à¥£¡Íê³ÉÁË¡£µ±ÄúÖØÐ¼¤»îϵͳȻºóÑ¡Ôñ¸Õ¼ÓÈëµÄÑ¡Ïî, offline ½«»á±»Ö´Ðжø²»ÊDZ¾À´µÄ default¡£
ʹÓà BOOTLEVEL
ʹÓà bootlevel ºÍ softlevel µÄ·½·¨ÍêÈ«ÀàËÆ¡£Î¨Ò»²»Ò»ÑùµÄ¾ÍÊÇÄúÐèÒª¶¨ÒåÁíÍâÒ»¸ö "boot" Ö´Ðн׶ζø²»Êǵڶþ¸ö "default" Ö´Ðн׶Ρ£

tseteen ·¢±íÓÚ 2005-3-29 18:04

ÅŰæ×öµÄ²»ÊǺܺ㬿´ÆðÀ´Óеã¿Ö²À£¬ºÇºÇ

½¨Òé¿´¹Ù·½µÄ°²×°Îĵµ:
Ó¢ÎÄ£º[url]http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#book_id41416842_chap3[/url]
ÖÐÎÄ£º
[url]http://www.gentoo.org/doc/zh_tw/handbook/handbook-x86.xml?full=1#book_id41416842_chap3[/url]

[url]http://www.gentoo.org/doc/en/index.xml[/url]

HellBOYzz ·¢±íÓÚ 2006-1-20 01:08

Ò»Ö±ºÜÏë×°¸öGentoo
¿ÉϧûÓÐÌ«¶àµÄʱ¼äÈ¥ÕûÀíËû.....
555555555555555555~~~~~~~~~~~~

zfd19790220 ·¢±íÓÚ 2006-2-6 02:31

ºÃºÃѧϰѧϰÏÈ Â¥Ö÷ÐÁ¿àÁË£¡£¡

dgkgnrt ·¢±íÓÚ 2007-1-25 21:44

ΪºÎÉÙÁËÒ»²¿·Ý(3-15Ìû)?

Ò³: 1 [2]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.