Gentoo Doc List/Gentoo Distcc Doc
1. ¼Ò°³ ¶distcc ´Â ¹«¾ùÀԴϱî?
Distcc´Â ¿¬°áµÈ È£½ºÆ®¿¡°Ô ³×Æ®¿öÅ©¸¦ ÅëÇØ ÄÄÆÄÀÏ ÀÛ¾÷À» ºÐ»êÇϵµ·Ï µðÀÚÀÎµÈ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ÀÌ ÇÁ·Î±×·¥Àº ¼¹öÀÎ distccd¿Í Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥ÀÎ distcc¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. distcc´Â ¾à°£ÀÇ ¼³Á¤À» ÅëÇØ ccache, portage, automake¸¦ ÀÌ¿ëÇÏ¿© Åõ¸íÇÏ°Ô ÀÛµ¿ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ºÎÆ®½ºÆ®·¦(stage1)¿¡ distcc »ç¿ëÇϱâ
¸¸¾à ¿©·¯ºÐµéÀÌ Á¨Åõ ¼³Ä¡¸¦ À§ÇÑ ºÎÆ®½ºÆ®·¾¿¡ distcc¸¦ »ç¿ëÇÒ °èȹÀ̽öó¸é, ÀÌ ¹®¼ ¾Æ·¡¿¡ À§Ä¡ÇÑ 'ºÎÆ®½ºÆ®·¦¿¡ distcc »ç¿ëÇϱâ' ºÎºÐÀ» Àоú´ÂÁö È®ÀÎÇϽñ⠹ٶø´Ï´Ù.
2. ¼³Ä¡ ¶ÀÇÁ¸°ü°è
distcc¸¦ »ç¿ëÇϱâ À§Çؼ´Â ¿©·¯ºÐÀÇ ³×Æ®¿öÅ©¿¡ ÀÖ´Â ¸ðµç ÄÄÇ»ÅÍ°¡ °°Àº ¹öÀüÀÇ gcc¸¦ °¡Áö°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, 3.3.* ¹öÀüÀ» »ç¿ëÇÏ´Â °ÍÀº ±¦ÂúÁö¸¸, 3.3.*°ú 3.2.* ¹öÀüÀ» »ç¿ëÇÏ´Â °ÍÀº ÄÄÆÄÀÏ ¿¡·¯³ª ½ÇÇà ¿¡·¯¸¦ ÀÏÀ¸Å³ ¼ö ÀÖ½À´Ï´Ù.
distcc ¼³Ä¡Çϱâ
distccÀÇ ¼³Ä¡¸¦ ½ÃÀÛÇϱâ Àü¿¡ ¿©·¯ºÐÀº 2°¡Áö ¿É¼ÇÀ» ÀÎÁöÇØ¾ß ÇÕ´Ï´Ù. distcc´Â ¿©·¯ºÐÀÇ ÄÄÇ»ÅÍ°¡ ÄÄÆÄÀÏÇÏ´Â µ¿¾È º¸³»´Â ¸ð´ÏÅ͸µ ÀÛ¾÷¿¡ ´ëÇØ ±×·¡ÇÈ È¯°æÀÇ ¸ð´ÏÅ͸¦ Á¦°øÇÕ´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ GnomeÀ» »ç¿ëÇÑ´Ù¸é ¿©·¯ºÐÀÇ USE Ç÷¡±×¿¡ 'gnome'À» ³Ö¾îµÎ½Ê½Ã¿À. ÇÏÁö¸¸, GnomeÀ» »ç¿ëÇÏÁö ¾ÊÀ¸¸é¼ ¸ð´ÏÅ͸¦ ¾²±æ ¿øÇϽŴٸé, 'gtk'¸¦ USE Ç÷¡±×¿¡ ³Ö¾îµÎ½Ê½Ã¿À.
distcc¸¦ »ç¿ëÇϵµ·Ï portage ¼³Á¤Çϱâ
ÄÚµå ¸ñ·Ï 2.1 : distcc ¼³Ä¡Çϱâ # emerge distccÁß¿ä: ¿©·¯ºÐÀÇ ¸ðµç ÄÄÇ»ÅÍ¿¡ distcc°¡ ¼³Ä¡µÇ¾î ÀÖ´ÂÁö È®ÀÎÇÏ´Â °ÍÀ» ÀØÁö ¸¶½Ê½Ã¿À. distcc¸¦ »ç¿ëÇϵµ·Ï portage¸¦ ¼³Á¤ÇÏ´Â °ÍÀº ½±½À´Ï´Ù. ´ÙÀ½ÀÇ ´Ü°è¸¦ °¢ ½Ã½ºÅÛ¿¡¼ µû¶óÇÏ½Ã¸é ºÐ»êµÈ ÄÄÆÄÀÏ ÀÛ¾÷¿¡ ¿¬°áÇϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¬°áÇÒ È£½ºÆ® ÁöÁ¤Çϱâ
ÄÚµå ¸ñ·Ï 2.2: distcc¿Í portage ÅëÇÕÇϱâ # emerge distcc distcc-config # nano -w /etc/make.conf (¿©·¯ºÐ °³°³ÀÇ ¼³Á¤¿¡ ¸Â´Â ÀûÇÕÇÑ ¼ö NÀ» ¼³Á¤ÇϽʽÿÀ.) (ÀϹÝÀûÀÎ °æ¿ì NÀº Àüü CPUÀÇ ¼ýÀÚÀÇ µÎ¹è¿¡ 1À» ´õÇÑ ¼ýÀÚ¸¦ ¾µ ¼ö ÀÖ½À´Ï´Ù.) MAKEOPTS="-jN" (¿©·¯ºÐÀÇ FEATURES¿¡ distcc¸¦ Ãß°¡ÇϽʽÿÀ.) FEATURES="distcc" È£½ºÆ®ÀÇ ¸ñ·ÏÀ» ¼³Á¤Çϱâ À§ÇØ distcc-config ¸í·ÉÀ» »ç¿ëÇϽʽÿÀ. ¿©±â ¿©·¯ºÐÀÇ ¼³Á¤°ªÀÌ µÉ ¸î¸î È£½ºÆ®µéÀÇ ¿¹°¡ ÀÖ½À´Ï´Ù.
automake¿Í ÇÔ²² distcc ÀÛµ¿Çϵµ·Ï ¼³Á¤Çϱâ
ÄÚµå ¸ñ·Ï 2.3: È£½ºÆ® Á¤ÀÇÀÇ ¿¹ 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.1/2 192.168.0.2 192.168.0.3/10 192.168.0.1:4000/2 192.168.0.2/1 192.168.0.3:3632/4 @192.168.0.1 @192.168.0.2:/usr/bin/distccd 192.168.0.3(¿©±â È£½ºÆ®¸¦ ¼³Á¤ÇÏ´Â ¸î°¡Áö ¹æ¹ýµéÀÌ ÀÖ½À´Ï´Ù. ´õ ÀÚ¼¼ÇÑ ¼³Á¤À» À§ÇØ distcc ¸Þ´º¾ó ÆäÀÌÁö¸¦ º¸½Ê½Ã¿À.) ¸ðµÎ º¹ÀâÇÏ°Ô º¸ÀÌÁö¸¸, ´ëºÎºÐÀÇ °æ¿ì ù¹ø° ÁÙ°ú 2¹ø° ÁÙÀÇ °æ¿ì·Î ÃæºÐÈ÷ ÀÛµ¿ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ »ç¶÷µéÀÌ 3¹ø° ȤÀº 4¹ø°ÀÇ ÁÙÀ» ¾²±æ ¿øÄ¡ ¾Ê±â ¶§¹®¿¡ ÀÌ¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº distcc ¸Þ´º¾ó ¹®¼¿¡ ±âÀçÇÒ °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ÀÌÀü ¿¹Á¦¿¡¼ ù¹ø° ÇàÀ» ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» º¸ÀÚ. ÄÚµå ¸ñ·Ï 2.4: È£½ºÆ®¸¦ ¼³Á¤Çϱâ À§ÇÑ ¸í·É # /usr/bin/distcc-config --set-hosts "192.168.0.1 192.168.0.2 192.168.0.3" ÀÌÁ¦ ÄÄÇ»Å͵éÀÇ distcc µ¥¸óÀ» ½ÃÀÛÇϽʽÿÀ. ÄÚµå ¸ñ·Ï 2.5: distcc µ¥¸ó ½ÃÀÛÇϱâ (±âº» runlevel¿¡ distccd Ãß°¡Çϱâ) # rc-update add distccd default (distcc µ¥¸ó ½ÃÀÛÇϱâ) # /etc/init.d/distccd start ÀÌ °æ¿ì ÀÌ°ÍÀº portage ¼³Á¤º¸´Ù ½±½À´Ï´Ù. ¿©·¯ºÐÀÌ ÇØ¾ß ÇÏ´Â °ÍÀº ¿©·¯ºÐÀÇ PATH º¯¼ö¿¡¼ gcc¸¦ Æ÷ÇÔÇÏ´Â µð·ºÅ͸®(/usr/bin)¾Õ¿¡ /usr/lib/distcc/bin À» Æ÷ÇÔÇϵµ·Ï ¾÷µ¥ÀÌÆ® ÇÏ´Â °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ¿©±â¼ ÁÖÀÇÁ¡ÀÌ ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ccache¸¦ »ç¿ëÇÑ´Ù¸é ¿©·¯ºÐµéÀº ccache ºÎºÐ µÚ¿¡ distcc¸¦ ³õ¾Æ¾ß¸¸ ÇÕ´Ï´Ù.
ÄÚµå ¸ñ·Ï 2.6: ¿©·¯ºÐÀÇ PATH ¼³Á¤ # export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}" (·Î±×ÀÎ ÇÒ ¶§¸¶´Ù PATH¸¦ ¼³Á¤Çϵµ·Ï Çϱâ À§ÇØ ÀÌ ¼³Á¤À» ¿©·¯ºÐÀÇ ~/.bashrc³ª ºñ½ÁÇÑ ÆÄÀÏ¿¡ Ãß°¡ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.) 3. Å©·Î½º ÄÄÆÄÀÏ ¶Å©·Î½º ÄÄÆÄÀÏÀº ´Ù¸¥ ¾ÆÅ°ÅØÃÄ¿¡ ´ëÇØ ÇÁ·Î±×·¥À» ºôµåÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº Athlon(i686)À» »ç¿ëÇÏ¿© K6-2(i586)¿¡ ´ëÇÑ ÇÁ·Î±×·¥À» ºôµåÇÏ´Â °ÍÀ̳ª, SparcÀ» »ç¿ëÇÏ¿© ppc¿¡ ´ëÇÑ ÇÁ·Î±×·¥À» ºôµåÇÏ´Â °Íó·³ °£´ÜÇÕ´Ï´Ù. ÀÌ°ÍÀº Á¨ÅõÀÇ DistCC Å©·Î½º ÄÄÆÄÀÏ °¡À̵忡 ¹®¼ÈµÇ¾î ÀÖ½À´Ï´Ù.
4. distcc ¸¦ ºÎÆ®½ºÆ®·¦¿¡ »ç¿ëÇϱ⠶1´Ü°è: portage ¼³Á¤Çϱâ
Á¨Åõ¸®´ª½º LiveCD°¡ µé¾î°£ »õ·Î »ê ÄÄÇ»Å͸¦ ºÎÆÃÇÏ°í ºÎÆ®½ºÆ®·¦ ºÎºÐ±îÁö ´ÙÀ½ÀÇ ¼³Ä¡ ¸í·ÉÀ» µû¶óÇϽʽÿÀ. (ºÎÆ®½ºÆ®·¦¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¾ò°íÀÚ ÇϽŴٸé Gentoo FAQ¸¦ º¸½Ê½Ã¿À.) ´ÙÀ½ distcc¸¦ »ç¿ëÇϵµ·Ï portage¸¦ ¼³Á¤ÇϽʽÿÀ.
2´Ü°è: distcc ¾ò±â
ÄÚµå ¸ñ·Ï 4.1: Áغñ ¼³Á¤ # nano -w /etc/make.conf (FEATURES¿¡ distcc¸¦ Ãß°¡) FEATURES="distcc" (MAKEOPTS¿¡ -jNÀ» Æ÷ÇÔÇϵµ·Ï ¼öÁ¤. NÀº Àüü CPU °¹¼öÀÇ 2¹è + 1ÀÌ °¡´É) MAKEOPTS="-jN" ÄÚµå ¸ñ·Ï 4.2: ¿©·¯ºÐÀÇ °æ·Î ¼³Á¤ # export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}" distcc ¼³Ä¡ÇϽʽÿÀ.
3´Ü°è: distcc ¼³Á¤Çϱâ
ÄÚµå ¸ñ·Ï 4.3: »õ·Î¿î ±â±â¿¡¼ distcc ¾ò±â # USE='-*' emerge --nodeps sys-devel/distcc sys-devel/distcc-config distcc¸¦ ¼³Á¤Çϱâ À§ÇØ distcc-config --install À» ½ÇÇà
ÄÚµå ¸ñ·Ï 4.4: ÃÖÁ¾ distcc ¼³Á¤ (host1, host2, ... ´ë½Å ¿¬°áÇÒ È£½ºÆ®ÀÇ IP ¼ýÀÚ·Î ´ëüÇϽʽÿÀ.) # /usr/bin/distcc-config --set-hosts "localhost host1 host2 host3 ..." /usr/bin/distcc-config --set-hosts "localhost 192.168.0.4 192.168.0.6" 5. ¹®Á¦Á¡ ¹ß»ý ¶¸î¸î ÆÐÅ°ÁöµéÀº distcc¸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ¿©·¯ºÐµéÀÌ ´Ù¾çÇÑ ÆÐÅ°ÁöµéÀ» emergeÇÔ¿¡ µû¶ó, ¿©·¯ºÐµéÀº ÆÐÅ°ÁöµéÁß ¸î¸îÀÌ ºÐ»ê󸮵ÇÁö ¾Ê´Â´Ù´Â Á¡(±×¸®°í º´·Ä·Î ºôµåµÇÁö ¾Ê´Â´Ù´Â Á¡)À» ÁÖÀÇÇÏ¼Å¾ß ÇÒ °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº ÆÐÅ°ÁöÀÇ MakefileÀÌ º´·Ä 󸮸¦ Áö¿øÇÏÁö ¾Ê°Å³ª ebuildÀÇ °ü¸®ÀÚ°¡ ¾Ë·ÁÁø ¹®Á¦Á¡¶§¹®¿¡ È®½ÇÇÏ°Ô º´·Ä󸮸¦ »ç¿ëÇÏÁö ¾Êµµ·Ï Ç߱⠶§¹®ÀÔ´Ï´Ù. ¶§¶§·Î distcc´Â ÄÄÆÄÀÏ¿¡ ½ÇÆÐÇÏ´Â ¿äÀÎÀÌ µÇ±âµµ ÇÕ´Ï´Ù. ¸¸¾à ÀÌ·±ÀÏÀÌ ¿©·¯ºÐµé¿¡°Ô ÀϾٸé, ÀúÈñ¿¡°Ô ¾Ë·ÁÁֽñ⠹ٶø´Ï´Ù.
GCC ¹öÀüÀÇ È¥Àç
¸¸¾à ¿©·¯ºÐÀÇ È£½ºÆ®µéÀÌ ´Ù¸¥ GCC ¹öÀüµéÀ» °¡Áö°í ÀÖ´Ù¸é, ¾ÆÁÖ ±â¹¦ÇÑ ¹®Á¦°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÇØ°áÃ¥Àº ¸ðµç È£½ºÆ®µéÀÌ È®½ÇÈ÷ °°Àº GCC ¹öÀüÀ» °®µµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. ÃÖ±Ù portage ¾÷µ¥ÀÌÆ®µéÀº portage°¡ gcc´ë½Å $(CHOST)-gcc¸¦ »ç¿ëÇϵµ·Ï ÇÏ¿´½À´Ï´Ù. ÀÌ°ÍÀº ¸¸¾à ¿©·¯ºÐµéÀÌ ´Ù¸¥ Çü½Ä(i386, i586)À» °®´Â i686 ÀåÄ¡µéÀ» ¼¯¾î ½èÀ» ¶§, ³ªÁß¿¡ ¹®Á¦°¡ µÉ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇÇÇϱâ À§Çؼ± export CC='gcc' CXX='c++'À» ½ÇÇàÇϰųª /etc/make.conf¿¡ Àû¿ëÇØ¾ß ÇÕ´Ï´Ù.
Áß¿ä: ÀÌ·¯ÇÑ ¼³Á¤À» ÇÏ´Â °ÍÀº ¸í¹éÇÏ°Ô portageÀÇ ¸î¸î µ¿ÀÛÀ» ÀçÁ¤ÀÇÇÏ´Â °ÍÀÌ¸ç ³ªÁß¿¡ ±â¹¦ÇÑ °á°ú¸¦ °®°Ô µÉ °ÍÀÔ´Ï´Ù. ¿À·ÎÁö CHOSTµéÀ» ¼¯¾î ¾µ ¶§¿¡¸¸ ÀÌ·¸°Ô ÇϽʽÿÀ.
6. distcc Ãß°¡Á¡ ¶distcc ¸ð´ÏÅ͵é
distcc´Â µÎ°¡Áö ¸ð´ÏÅ͸¦ ÇÔ²² Æ÷ÇÔÇÕ´Ï´Ù. ÅؽºÆ® ±â¹ÝÀÇ Çϳª´Â distccmon-text¶ó ºÒ¸®¸ç, Ç×»ó ¼³Ä¡µË´Ï´Ù. ÀÌ°ÍÀ» óÀ½ ½ÇÇàÇÏ´Â °ÍÀº ¾à°£ È¥µ¿½º·¯¿ï ¼öµµ ÀÖÁö¸¸, »ç¿ëÇÏ´Â °ÍÀº ¾ÆÁÖ ½±½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐµéÀÌ ÇÁ·Î±×·¥À» ¾Æ¹«·± ÆĶó¸ÞÅ;øÀÌ ½ÇÇàÇÑ´Ù¸é óÀ½ ÇÑ ¹øÀº ½ÇÇàÇÒ °ÍÀÔ´Ï´Ù. (°ªÀÌ º¯ÇÏÁö´Â ¾Ê°í ±×´ë·Î ÀÖ°Ô µË´Ï´Ù.) ÇÏÁö¸¸, ¸¸¾à ¿©·¯ºÐµéÀÌ ¼ýÀÚ¸¦ Àü´ÞÇÑ´Ù¸é ¸Å NÃʸ¶´Ù ¾÷µ¥ÀÌÆ® ÇÒ °ÍÀÔ´Ï´Ù. ¿©±â¿¡¼ NÀº ¿©·¯ºÐÀÌ Àü´ÞÇÏ´Â ¼ýÀÚ ÀÎÀÚÀÔ´Ï´Ù. ´Ù¸¥ ¸ð´ÏÅÍ´Â ¿©·¯ºÐµéÀÌ gtk³ª gnomeÀ» ¿©·¯ºÐÀÇ USE Ç÷¡±×¿¡ µÎ¾úÀ» ¶§¿¡¸¸ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº GTK+ ±â¹ÝÀÇ ÇϳªÀ̸ç, Xȯ°æ¿¡¼ ±¸µ¿µÇ°í ¾ÆÁÖ »ç¶û½º·´½À´Ï´Ù. Á¨Åõ¿¡¼ÀÇ GUI ¸ð´ÏÅʹ ȥµ¿À» ÇÇÇϱâ À§ÇØ distccmon-gui ·Î ºÒ¸³´Ï´Ù. ´Ù¸¥°÷¿¡¼ ÀÌ ¸ð´ÏÅÍ´Â distccmon-gnomeÀ¸·Î ÂüÁ¶µË´Ï´Ù.
ÄÚµå ¸ñ·Ï 6.1: ¸ð´ÏÅÍ ½ÃÀÛÇϱâ # distccmon-text N (ȤÀº) # distccmon-gui # DISTCC_DIR="/var/tmp/portage/.distcc/" distccmon-text N (ȤÀº) # DISTCC_DIR="/var/tmp/portage/.distcc/" distccmon-gui |
If it pours before seven, it has rained by eleven. |