1. ·¹µåÇÞ ÆÐŰ¡ ·¹µåÇÞÀÇ ÆÐÅ°Áö´Â ¾ÆÁÖ ¶Ù¾î³ª´Ù°í »ý°¢ÇÑ´Ù. ³ª¸¸ÀÇ »ý°¢ÀÏ·±Áö ¸ð¸£Áö¸¸ ¸¹ Àº »ç¶÷µéÀÌ ·¹µåÇÞ ±×¸®°í µ¥ºñ¾È ÆÐŰ¡¿¡ Âü¿© ÇßÀ¸¸é ÇÏ´Â ¹Ù·¥µµ ÀÖ´Ù. ³ª´Â ·¹µåÇÞ ÆÐŰ¡¿¡ ´ëÇؼ­ ¹Û¿¡ Áö½ÄÀÌ ¾ø±â ¶§¹®¿¡ ±× ºÎºÐ¿¡ ´ëÇؼ­¸¸ ±Û À» ÀûÀ»·Á°í ÇÑ´Ù. µ¥ºñ¾È ÆÐŰ¡Àº ¶Ç ´Ù¸¥ »ç¶÷ÀÌ ³ª¼³ °ÍÀ̶ó ¹Ï´Â´Ù. RPM ÆÐÅ°Áö¸¦ ´Ù·ç´Â Àü¹ÚÀûÀÎ ¹æ¹ýµîÀº ÀÌ¹Ì Çѱ۷Π¹ø¿ªµÈ RPM ¸Þ´º¾ó ÆäÀÌÁö ¿Í RPM ÇÏ¿ìÅõ ¹®¼­¸¦ º¸¸é °£´ÜÈ÷ ¾Ë ¼ö ÀÖÀ»°ÍÀÌ´Ù. ÇѱÛÀ̴ϱî. ±×³É ³ª´Â ÆÐŰ¡À» ÇÏ´Â ²Ç¼ö Á¤µµÀÇ ±ÛÀ» ÀûÀ» °ÍÀÌ´Ù. ÀÌ¹Ì ÇÏ¿ìÅõ ¹®¼­¿¡ ¸¹Àº ºÎºÐÀÌ Çѱ۷Π¹ø¿ª µÇ¾î¼­ Àоî Áֱ⸸À» ¼Õ²Å¾Æ ±â´Ù¸®°í ÀÖÀ»Å״ϱî Áß º¹Àº ÇÇÇÒ·Á°í ÇÏÁö¸¸ ¾Æ¸¶ ¸ø ÇÇÇÒ²¨ °°À½. ÈåÈå 2. ÆÐŰ¡À» À§ÇÑ Áغñ ÆÐŰ¡¿¡¼­ ±âº»À¸·Î ¾²´Â µð·ºÅ丮µéÀº /usr/src/redhat ÀÌÇÏ¿Í /var/tmp ÀÌ´Ù. ¹°·Ð ¹Ù²Ü¼ö ÀÖ´Ù. /usr/lib/rpmrc ¸¦ »ìÆì º¸±â ¹Ù¶õ´Ù. ¿©±â¿¡ ±âº»ÀûÀÎ ¼³Á¤ ÀÌ µé¾î°£´Ù. ¿ì¸®´Â /etc/rpmrc ¶ó´Â ÆÄÀÏÀ» ¸¸µé¾î¼­ ¼³Á¤À» ¹Ù²Ù¾î ÁÙ¼ö ÀÖ ´Ù. (lib ¾Æ·¡´Â °Çµå¸®Áö ¾Ê±â ¹Ù¶ó´Ù.) topdir: /pkg/redhat ÀÌ·±½ÄÀÇ ¼³Á¤ÀÌ °¡´ÉÇÏ´Ù. ±×¿Ü ¿©·¯°¡Áö ¼³Á¤ ¹æ¹ýÀº man page ¶Ç´Â ÇÏ¿ìÅõ¸¦ Âü°í Çϱ⠹ٶõ ´Ù. ¶Ç´Â rpm --showrc ¸¦ ÇÏ¸é ¾µ¼ö ÀÖ´Â ¼³Á¤µéÀ» º¼ ¼ö ÀÖÀ»°ÍÀÌ´Ù. °¡Àå ½±°Ô ÆÐŰ¡¿¡ Àͼ÷ÇØÁö´Â ¹æ¹ýÀº ³²ÀÌ ÇÑ°ÍÀ» º¸°í µû¶óÇØ º¸´Â°ÍÀÌ´Ù. ±×°Í¸¸Å­ ºü¸£°Ô ¹è¿ì´Â ±æÀÌ ¾ø´Ù. ´Ù¸¥ °Íµµ ¸¶Âù°¡Áö´Ù ½© ½ºÅ©¸³Æ®, ÇÁ·Î±× ·¡¹Ö... ´çÀå ÀÚ½ÅÀÌ Á÷Á¢ ¸¸µç´Ù´Â »ý°¢º¸´Ü ³²ÀÌ ¸¸µé¾î ³õÀº spec ÆÄÀÏÀ» Âù ÂùÈ÷ ¶â¾î º¸°í ±×°ÍÀ» ¹Ù²ã °¡¸ç ½ÃµµÇØ º¸´Â°ÍÀÌ ÁÁÀ»°ÍÀÌ´Ù. /usr/src/redhat ÀÌÇÏÀÇ µð·ºÅ丮 ±¸¼ºÀ» Àá±ñ »ìÆì º¸ÀÚ. ÃÑ ´Ù¼¸°³ÀÇ µð·ºÅä ¸®°¡ ÀÖ´Ù. Çϳª Çϳª ¾î¶² ¿¬È°À» ÇÏ´ÂÁö »ìÆì º¸±â·Î ÇÏÀÚ. BUILD : ÆÐÅ°Áö¸¦ ¸¸µé¶§ ÀÌ°÷¿¡ ¼Ò½º¸¦ Ç®°í ¿©±â¼­ ÄÄÆÄÀÏÀ» ÇÏ°Ô µÈ´Ù. RPMS : ¸¸µé¾îÁø RPM ÆÐÅ°Áö È­ÀÏÀÌ ÀÌ µð·ºÅ丮¿¡ ÀúÀåµÈ´Ù. SOURCES : ÆÐÅ°Áö¸¦ ¸¸µé±â À§ÇØ ÇÊ¿äÇÑ ¼Ò½º ÆÄÀϵéÀÌ ÀÌ°÷¿¡ À§Ä¡ÇÑ´Ù. SPECS : ÆÐÅ°Áö Á¦ÀÛÀ» À§ÇÑ °¡Àå ±âº»ÀûÀÎ ÆÄÀÏÀÌ ¿©±â¿¡ À§Ä¡ÇÑ´Ù. spec ÆÄ ÀÏÀ̶ó°í Çϴ°ÍÀε¥ ÆÐÅ°Áö¸¦ ¸¸µå´Â ¸ðµç ¼ø¼­¿Í Á¤º¸¸¦ ±â·ÏÇÑ´Ù. SRPMS : RPM ÆÐÅ°Áö¿Í ÇÔ²² ¸¸µé¾îÁö´Â ¼Ò½º ÆÐÅ°Áö°¡ À§Ä¡Çϴ°÷ÀÌ´Ù. 3. spec ÆÄÀÏ ±¸¼ºÇϱ⠿츮°¡ ÇÒÀÏÀº ¼Ò½º (¹ÙÀ̳ʸ®¸¸ À־ ¾Æ¹«·± »ó°üÀÌ ¾ø´Ù ÈÄ¿¡ ¼³¸í ÇÏ°Ú´Ù) ¸¦ °¡Á®¿Í SOURCES µð·ºÅ丮¿¡ ³õ°í spec ÆÄÀÏÀ» ¸¸µå´Â °ÍÀÌ´Ù. ½±Áö¸¸Àº ¾Ê ´Ù. ÇÏÁö¸¸ ¾î¶»°Ô º¸¸é ½±´Ù°í »ý°¢ÇÑ´Ù. spec ÆÄÀÏÀÇ ±¸¼ºÀº °¡Àå Èûµé°í ¶Ç, Â¥ÁõÀÌ ³ª´Â ºÎºÐÀ̱⵵ ÇÏ´Ù. ±×¸®°í ¼ö¸¸°¡Áö ²Ç¼ö°¡ ³­¹«ÇÏ´Â °÷À̱⵵ ÇÏ°í º°ÀÇ º° ½© ¸í·ÉÀÌ ¾²À̴°÷ÀÌ´Ù. ¾Æ¸¶ ½ºÅ©¸³Æ®¸¦ À߸¸µéÁÙ ¾È´Ù¸é ÇÑ°á ½±°Ô »ç¿ëÇÒ¼ö ÀÖÀ»°ÍÀÌ´Ù. ±×¾ß¸»·Î ½ºÅ©¸³Æ®¸¦ Â¥´Â ±âºÐÀ¸·Î ÇÏ¸é µÈ´Ù. Áß¿äÇÑ°Í Çϳª ¸»ÇÏ°í ½ÍÀº°ÍÀÌ ÀÖ´Ù. Àýµ¥·Î ¼Ò½º¸¦ º¯°æÇÏÁö´Â ¸»¶ó´Â °ÍÀÌ´Ù. ¼Ò½º¸¦ º¯°æÇÒ ºÎºÐÀÌ ÀÖ´Ù¸é patch ·Î ¸¸µé¾î¼­ ÆÐÅ°Áö¸¦ ¸¸µé¶§ ÆÐÄ¡¸¦ ÇÏ´Â ½ÄÀ¸·Î »ç¿ëÇ϶ó. ¼Ò½º ÀÚü¸¦ °Çµå¸®°Ô µÈ´Ù¸é ¾Æ¸¶ ³ªÁß¿¡ ÈÄȸ¸¦ ÇÒ °ÍÀÌ´Ù. ¿Ö ±×·±°ÍÀÎÁö´Â °õ°õÈ÷ »ý°¢Çغ¸¶ó. ÇÏÁö¸¸ ÀÌ ¸»À» ±×³É ³Ñ±âÁö´Â ¾Ê´Â°Ô... spec ÆÄÀÏÀÇ ±¸¼ºÀº ÆÐÅ°Áö¿¡ °üÇÑ Á¤º¸ ±×¸®°í ¸¸µé°í ¼³Ä¡Çϱ⠸¶Áö¸·À¸·Î ¼³ Ä¡µÈ ÆÄÀϵéÀ» Çϳª·Î ¹¬±â ÀÌ·¸°Ô ±¸¼ºµÈ´Ù°í º¸¸é µÈ´Ù. ¿ì¼± ÆÐÅ°Áö¿¡ ´ëÇÑ Á¤º¸¸¦ Àû´Â ºÎºÐÀ» »ìÆì º¸µµ·Ï ÇÏÀÚ. ¿©±â¼­ ¼³Á¤ÇѰ͵éÀº rpm -qi À¸·Î º¼¼ö ÀÖ´Â °ÍµéÀÌ´Ù. ¼ÖÁ÷È÷ ±×·¸°Ô ½Å°æ ¾µ ºÎºÐÀº ¾Æ´Ï¶ó°í º»´Ù. ±× ÇÁ·Î±×·¥¿¡ ´ëÇÑ Á¤È®ÇÑ Á¤º¸¸¦ Àü´Þ ÇÑ´Ù°í »ý°¢ÇÏ¸é µÈ´Ù. ¾Æ ÀÇÁ¸¼º ºÎºÐÀº Á¦µ¥·Î ÇؾßÁö ^^ Summary: °£·«ÇÑ ¼³¸íÀ» ÇÑÁÙ·Î Àû´Â´Ù. ¾È ÀûÀ¸¸é ³Ê¹« ÇãÀüÇÏ´Ù. ¿©±ä ¿Ø ¸¸ Çϸé Àû´Â°ÍÀÌ ÁÁ´Ù. Name: ÇÁ·Î±×·¥ÀÇ À̸§À» Àû´Â°÷ÀÌ´Ù. Ʋ¸®°Ô ÀûÀ¸¸é Æò»ý °í»ýÇÑ´Ù. Version: ¹öÁ¯À» Àû´Â°÷ÀÌ´Ù. ±¦È÷ ½É½ÉÇÏ´Ù°í ¿Ã·Á¼­ Àû°Å³ª ÇÏÁö ¸»±â¸¦! Release: ÀÌ°÷Àº ¸±¸®Áî ¹øÈ£Àε¥ ÆÐŰ¡ÀÇ ½Ç¼ö·Î ÀçÆÐŰ¡À» Çß´Ù¸é ¿Ã¶ó °£´Ù. ¸Ó ¾È ¿Ã·Áµµ »ó°ü ¾ø´Âµ¥ ±¦È÷ µý »ç¶÷ ÁÖ°í ³ª¼­ ¹ö±× °í Ãƴµ¥µµ ¾È ¿Ã¸®¸é ²Ï³ª ¿å ¸ÔÀ»²¨¶ó°í ÀÌ ¿¬»ç ÁÖÀåÇÕ´Ï´Ù. Group: ¼ÓÇÑ ±×·ìÀ» Àû´Â°÷ÀÌ´Ù. glint °°Àº GUI À¯Æ¿¿¡¼­ »ç¿ëÇϱâ ÆíÇÏ ±â À§ÇÔ À̱⵵ ÇÏ°í ¶ÇÇÑ ÆÐÅ°Áö¸¦ ±¸ºÐÇϱâ À§ÇÔÀ̱⵵ ÇÏ´Ù. Source: ¼Ò½ºÀÇ À̸§À» ÀûÀ¸¸é µÈ´Ù. º¸Åë ±¸ÇÒ¼ö ÀÖ´Â Ãâó°¡ ÇÔ²² ±â·Ï µÈ´Ù. ftp://ftp.foobar.com/pub/foobar.tgz ÀÌ·±½ÄÀ¸·Î ¸»ÀÌ´Ù. ²À °¡Á®¿Â °÷À» Á¤È®ÇÏ°Ô ÀûÁö ¾Ê¾Æµµ µÈ´Ù. ½ÇÁ¦ SOURCE µð·ºÅä ¸®¿¡ À§Ä¡ÇÑ ÆÄÀÏ°ú À̸§¸¸ °°À¸¸é µÇ´Ù. ¼Ò½º°¡ ÇÑ°³°¡ ¾Æ´Ï¶ó¸é Source1,Source2 ÀÌ·±½ÄÀ¸·Î ÇÏ¿© Àû¾î ÁÖ¸é µÈ´Ù. Patch: ¿ª½Ã ÆÐÄ¡ ÆÄÀÏÀÇ À̸§À» ÀûÀ¸¸é µÈ´Ù. À§¸¦ Âü°íÇ϶ó. Copyright: ÀÌ ÇÁ·Î±×·¥ÀÇ ¶óÀ̼¾½º¸¦ ³ªÅ¸³½´Ù. ÀÌ ÇÁ·Î±×·¥ÀÇ ¶óÀ̼¾½º°¡ ¸ÕÁö ¸ð¸£Áö¸¸ ¹èÆ÷Çصµ µÈ´Ù¸é distributable ÀÌ·±½ÄÀ¸·Î ¾²¸é µÈ´Ù. ¸ð¸£¸é ±×³É Àú·¸°Ô Å©Å©, »ó¿ëÀº ¾Æ¿¹ ÆÐŰ¡ ÇÏÁö ¸»°Í!! BuildRoot: ÀÌ°÷Àº ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÒ¶§ ½Ã½ºÅÛ¿¡ µ¤¾î ¾²´Â°ÍÀÌ ½È´Ù¸é Àû¾î ÁÖ°í ´ßÁúÀ» Á» ÇϸéµÈ´Ù. /tmp/program ÀÌ·±½ÄÀ¸·Î Á¤ÇØÁÖ¸é ¹« ¸®°¡ ¾øÀ»°ÍÀÌ´Ù. ÀÌ ÇÑÁÙÀ» ³ÖÀº°Í ¶§¹®¿¡ ´ßÁúÀÌ ½ÃÀ۵ȴÙ. ±× °Íµµ °³´ßÁúÀÌ ¸»ÀÌ´Ù. ÈåÈå Icon: glint °°Àº ÆÐÅ°Áö °ü¸® µµ±¸ ÇÏ¿¡¼­ ¾ÆÀÌÄÜÀ» ³ªÅ¸³»±â À§ÇØ »ç ¿ëÇÑ´Ù. gif Æ÷¸ËÀ̾î¾ß Çϸç SOURCE µð·ºÅ丮 ÇÏ¿¡ À§Ä¡ ÇÏ¿©¾ß ÇÑ´Ù. ÁöÁ¤ÇØÁÖ°í ¾ø´Ù¸é ÆÐÅ°Áö´Â ¸¸µé¾îÁöÁöµµ ¾Ê´Â´Ù. Packager: ÆÐÅ°Áö¸¦ Á¦ÀÛÇÑ »ç¶÷ÀÇ À̸§, À̸ÞÀÏ ÁÖ¼Ò Á¤µµ¸¦ ÀûÀ¸¸é µÈ´Ù. ¸Ó º¸À̴°Š¾Æ´Ï´Ï±î ¾È Àû¾îµµ µÇ°í Áö ¸¾ÀÌÁö ¸Ó ^^ Requires: ÀÇÁ¸¼º °ü°è¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ ÆÐÅ°Áö´Â ¾î¶°ÇÑ ÆÐÅ°Áö¿¡ ´ëÇØ ÀÇÁ¸ ¼ºÀÌ ÀÖ´Ù´Â°É ³ªÅ¸³»´Â °ÍÀÌ´Ù. ´Ü ÆÐÅ°Áö°£¿¡¸¸ ÀÇÁ¸¼ºÀ» °É ¼ö ÀÖ´Ù. ÆÐÅ°ÁöÀ§ ¹öÁ¯¿¡µµ ¿ª½Ã ÀÇÁ¸¼º °ü°è¸¦ ¼³Á¤ ÇÒ ¼ö Àִµ¥ foobar >= 1.0 ¶Ç´Â = 1.0 ÀÌ·±½ÄÀÇ ¼³Á¤ÀÌ °¡´ÉÇÏ´Ù. ¹®Á¦´Â ³ô °Å³ª °°Àº ¸¸ ¼³Á¤ÇÒ¼ö Àִٴ°ÍÀÌ´Ù. ÈåÀ¹ ´öºÐ¿¡ HanX ÆÐŰ¡ÇÒ ¶§ ¹®Á¦°¡ Á» ÀÖ¾ú´Ù. È÷À× T_T %description ÆÐÅ°Áö¿¡ °üÇÑ ±ä ¼³¸íÀ» Àû´Â´Ù. Summary ¿Í ¶È°°´Ù°í ¿åÇÏ´Â »ç ¶÷Àº ¾ø´Ù. ±×·¡µµ ¿­½ÉÈ÷ ±æ°Ô Àû¾î ÁÖ´Â°Ô ÁÁ´Ù°í »ý°¢ÇÑ´Ù. ÀÌ À¯´Â rpm -qi ·Î ºÃÀ»¶§ ªÀ¸¸é ÇãÀüÇϴϱî. Âü Çѱ۷δ ÀûÁö ¸» ÀÚ. Çѱ¹Àθ¸ ¾²´Â°Íµµ ¾Æ´Ï´Ï±î ÈåÈå %changelog ¹«¾ùÀÌ ¹Ù²î¾ú´ÂÁö ¾Ë·Á ÁÖ°íÀÚ ÇÒ¶§ »ç¿ëÇÒ¼ö ÀÖ´Ù. ±¦½Ã¸® ¸±¸® Áî ¹öÁ¯ÀÌ 1 ¿Ã¶ú½À´Ï´Ù. ÀÌ·±°Ç ÀûÁö ¸»±â ¹Ù¶õ´Ù. ¹«Áö ¿å¸ÔÀ½ À̹ø¿¡´Â ÆÐŰ¡ÇÒ ÇÁ·Î±×·¥ÀÇ ¼Ò½º¸¦ Ç®°í ÄÄÆÄÀÏ ±×¸®°í ¼³Ä¡¸¦ ÇÏ´Â °úÁ¤ÀÌ ´Ù. ÀÌ °÷Àº Á¤¸» º°ÀǺ° ²Ç¼ö°¡ µ¿¿øµÇ´Â °÷ÀÌ´Ù. ±×¸®°í »ç½Ç ÀÌ ºÎºÐÀº »© ¸Ô¾îµµ ÆÐŰ¡Àº µÈ´Ù. ÆÐŰ¡À» ÇÒ¶§ ÇÊ¿äÇÑ°ÍÀº À§¿¡ ¼³¸íÇÑ Á¤º¸ ºÎºÐ°ú ¸¶ Áö¸·¿¡ ³ª¿Ã ÆÄÀÏÀ» ã¾Æ³»¼­ ½»½» ¹­¾î ¹ö¸®´Â °÷ÀÌ´Ï±î ¸»ÀÌ´Ù. ÀÌ ºÎºÐµµ ¼¼°³·Î ³ª´©¾î º¼¼ö Àִ٠ù°°¡ ¼Ò½º¸¦ Ç®°í ÆÐÄ¡¸¦ °¡ÇÏ°í ÇÏ´Â ÄÄ ÆÄÀÏ ÀÌÀüÀÇ Áغñ°úÁ¤, µÎ¹ø°´Â ½ÇÁ¦·Î ÄÄÆÄÀÏÀ» ÇÏ´Â °úÁ¤, ¸¶Áö¸·À¸·Î ÄÄÆÄ ÀÏÇÑ ÇÁ·Î±×·¥À» ¼³Ä¡ÇÏ´Â °úÁ¤ÀÌ´Ù. (¿Ö BuildRoot ¸¦ ¾²¸é °³´ßÁúÀ» ÇÏ°Ô µÇ ´ÂÁö ¾ó¸¶ ¾È À־ ¾Ë°Ô µÉ°ÍÀÌ´Ù.) ÀÌ ºÎºÐ¿¡¼­´Â rpm ¾È¿¡ Á¤ÀÇµÈ º¯¼ö¸¦ ¸¹ÀÌ »ç¿ëÇÏ°Ô µÉ°ÍÀÌ´Ù. ´ëÃæ Çѹø ¸»ÇØ º¼±î³ª? $RPM_SOURCE_DIR: º¸½Ã´Ù ½ÃÇÇ SOURCES µð·ºÅ丮¸¦ ³ªÅ¸³½´Ù. $RPM_BUILD_DIR : ÄÄÆÄÀÏÀ» ÇÏ´Â µð·ºÅ丮ÀÌ´Ù. BUILD µð·ºÅ丮 ¹× $RPM_BUILD_ROOT: À§ ¼³Á¤ ºÎºÐ¿¡¼­ BuildRoot ¸¦ ¾µ¶§ ±× µð·ºÅ丮¸¦ ³ªÅ¸³½´Ù. $RPM_OPT_FLAGS : ÄÄÆÄÀÏ ÇÒ¶§ ¾²ÀÌ´Â ¿É¼ÇÀÌ´Ù. /usr/lib/rpmrc ¸¦ º¸¸é ¾Ë ¼ö ÀÖÀ»°ÍÀÌ´Ù. optflags: i386 -O2 -m486 -fno-strength-reduce ÀÌ·±½ÄÀ¸·Î ÁöÁ¤µÇ¾î ÀÖ´Â ºÎºÐÀÌ´Ù. $NAME : ÇÁ·Î±×·¥ÀÇ À̸§À» ³ªÅ¸³½´Ù. ¿ì¸®°¡ ÁöÁ¤Çß´ø À̸§ ¸»ÀÌ´Ù. $VERSION : ¹öÁ¯À» ³ªÅ¸³½´Ù ¿ª½Ã ¿ì¸®°¡ ÁöÁ¤Çß´ø ¹öÁ¯ÀÌ´Ù. ^^ ÀÌ Á¤µµ¸¸ ¾Ë°í ÀÌÁ¦ ½ÇÁ¦ÀûÀ¸·Î ±¸¼ºÇÏ´Â ¹ýÀ» »ìÆì º¸µµ·Ï ÇÏÀÚ. ¿ì¼± ¼Ò½º¸¦ Ç®°í ÆÐÄ¡¸¦ °¡ÇÏ´Â ±×·¯ÇÑ ÄÄÆÄÀÏ ÀÌÀüÀÇ Áغñ¸¦ ÇÏ´Â °úÁ¤ÀÌ´Ù. %prep À̶ó´Â ¸í·É¾î¸¦ ÅëÇؼ­ Áغñ°úÁ¤¿¡ µé¾î°£´Ù°í ¸»ÇÑ´Ù. ¿©±â¼­ ¾²ÀÌ´Â rpm ³»ºÎ ¸í·É¾î·Î´Â %setup ±×¸®°í %patch °¡ ÀÖ´Ù. ÀÌ µÎ°³¸¸ ¾²¸é µý°Ç ¾µ ¸í·ÉÀÌ ¾ø´Ù°í º»´Ù. (Àú°É Æí¸® ·çƾÀ̶ó°í ºÎ¸¥´Ù°í ¸¸¿ëÇü¿¡°Ô µé¾ú´Ù. ±×°Ô ¸ÕÁö ¸ð¸£Áö¸¸ ÈåÈåÈå) »ç½Ç Àú·¯ÇÑ ¸í·ÉÀ» »ç¿ëÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ±×³É ÀϹÝÀûÀ¸·Î Çϴ½ÄÀ¸·Î (±âº»ÀûÀ¸·Î %prep ÀÌÈÄÀÇ ¸í·ÉÀº BUILD µð·ºÅ丮 ¹×¿¡¼­ ÀÌ·ç¾î Áö°Ô µÈ´Ù.) tar xvzf foobar.tgz cd foobar ÀÌ·±½ÄÀ¸·Î Àû¾îµµ »ó°üÀÌ ¾ø´Ù. ¾îÂ÷ÇÇ ¸¸µå´Â»ç¶÷ ¸¶À½ÀÌ´Ù. ¶ÇÇÑ %setup ¸í ·ÉÀ¸·Ð tgz ÀÌ¿ÜÀÇ ÆÄÀÏÀ» Ç®¼ö°¡ ¾ø±â ¶§¹®¿¡ ¾î¿¼ö ¾øÀÌ Àú·¸°Ô »ç¿ëÇØ¾ß ÇÏ ´Â °æ¿ìµµ ¸¹´Ù. ±×·³ %setup ¸í·ÉÀÇ »ç¿ë¿¡ ´ëÇؼ­ ¾Ë¾Æº¸ÀÚ. %setup ¸í·ÉÀÌ ³»·ÁÁö°Ô µÇ¸é rpm Àº Source ¿¡¼­ ÁöÁ¤ÇÑ À̸§°ú °°Àº ÆÄÀÏÀ» ã°Ô µÈ´Ù. ±×¸®°í ±× ÆÄÀÏÀ» BUILD µð·ºÅ丮 ¹×À¸·Î Ç®°í ±× µð·ºÅ丮·Î À̵¿ÇÏ°Ô µÇÀÖ´Ù. ±×·±µ¥ ¿©±â¼­ Àç¹Õ´Â°Ç ¹«Á¶°Ç $NAME-$VERSION ÀÌ·±½ÄÀÇ µð·ºÅ丮¸¦ ã°Ô µÈ´Ù´Â °ÍÀÌ´Ù. Áï rpm ÀÌ ¿ø ÇÏ´Â À̸§À¸·Î µð·ºÅ丮°¡ ¸¸µé¾îÁöÁö ¾Ê´Â´Ù¸é ¿ì¸®°¡ ÁöÁ¤ÇØ Áà¾ß ÇÑ´Ù. À̶§ ¿¡ -n ¿É¼ÇÀ» ¾´´Ù. %setup -n foobar ÀÌ·±½ÄÀ¸·Î ÁöÁ¤ÇÑ´Ù¸é ¿ì¸®ÀÇ È£ÇÁ rpm Àº foobar ¶õ µð·ºÅ丮¸¦ ã¾Æ ±â¾î µé¾î°¡°Ô µÉ°ÍÀÌ´Ù. Çϳª´õ ¸»ÇÏÀÚ¸é Á¤¸» Â¥Áõ³ª´Â °æ¿ìÀε¥ ¾ÐÃàÀ» Ç®¸é µð·ºÅ丮¸¦ ¸¸µé°í ±â¾î µé¾î°¡´Â°Ô ¾Æ´Ï¶ó ±× µð·ºÅ丮¿¡´Ù µ¥°í ¸¶±¸ Ç®¾î ¹ö¸®´Â ¸ô»ó½ÄÇÑ °ÍµéÀÌ ÀÖ´Ù. ÀÌ·²¶§´Â ¾î¶»°Ô ÇØ¾ß Çϴ°¡? -c ¿É¼ÇÀ» »ç¿ëÇ϶ó. -n ¿É¼Ç¿¡¼­ ÁöÁ¤ÇÑ À̸§À¸·Î µð·ºÅ丮¸¦ ¸¸ µé°í ±× °÷À¸·Î µé¾î°¡¼­ ¾ÐÃàÀ» Ǭ´Ù. ±× ¿Ü¿¡ -a ¿É¼Ç°ú -b ¿É¼ÇÀÌ ÀÖ´Ù. À̰͵éÀº ¾ÐÃàµÈ ¼Ò½º°¡ ¿©·¯°³ ÀÖÀ»¶§ ¾² ´Â ¿É¼ÇÀε¥ -a ´Â ù¹ø° ¼Ò½º°¡ Ç®¸° µð·ºÅ丮·Î ±â¾î µé¾î°£ ÈÄ¿¡ ¾ÐÃàÀ» Ǫ ´Â°ÍÀÌ°í -b ´Â ¾È ±â¾î µé¾î°¡°í ¹Û¿¡¼­ Ç®°Ô µÈ´Ù. ±Ùµ¥ -c ¿É¼ÇÀ̶ûÀº °°ÀÌ »ç¿ëÇÒ ¼ö°¡ ¾ø´Ù°í ÇÏ¿ìÅõ¿¡¼­ ÁÖÀåÇÏ°í ÀÖ´Ù. ÀÌ°Ç À̸¸ ÁÙÀÌ°í (¿Í ±æ´Ù.) %patch ¸¦ º¸±â·Î ÇÏÀÚ. ¿ª½Ã %setup ºÎºÐ°ú ¸¶Âù°¡Áö·Î ¼ÕÀ¸·Î ¿­¶ó°Ô Àû¾îÁÖ ¾îµµ µÈ´Ù. ¹º »ó°üÀΰ¡ ¸ð·Î °¡µµ ¼­¿ï¸¸ °¡¸é µÇ´Â°Å ¾Æ´Ñ°¡. ÀÌ»óÇÑ ¿¹±â´Â ±×¸¸ ÇÏ°í ´Ù½Ã ´Ù½Ã... ÀÌ ¸í·É¿¡¼­ ¾Ë¾Æ¾ß ÇÒ ¿É¼ÇÀº -p Çϳª¸é µÈ´Ù. -p ´Â µµµ¥Ã¼ ¹«¾úÀΰ¡? ¸Ó¶ó°í ¸»ÇØ¾ß ÇÒÁö ³­°¨ÇÏ´Ù. Àá½Ã ³ª¿ì´©¸®¿¡ ¿Ã¶ó¿Â ±ÛÀ» µÚÁö·¯ ÈÖÀ×~ ¿ª½Ã ³ª¿ì¿¡ ´äÀÌ ÀÖ¾ú´Ù. "¾ø¾Ù ½½·¡½¬ °¹¼ö" ¶ó°í ÇѴµ¥ µµµ¥Ã¼ ¸Õ ¸»Àΰ¡ ¿¹°¡ ÀÖÀ¸´Ï Çѹø ´Ù½Ã ±Ü¾î¿Í ºÁ¾ß¡. ÈåÀ½ µµÀúÈ÷ ±Ü¾î¼­ ÀÌÇØÇÒ ±ÛÀÌ ¾Æ´Ï´Ù. Çѹø ±×³É Àû¾î ºÁ¾ßÁö ^^; patch ÆÄÀÏÀ» º¸¸é ¸Ç À§Âë¿¡¼­ ÀÌ·¯ÇÑ ÁÙÀ» ¹ß°ßÇÒ ¼ö ÀÖÀ»°ÍÀÌ´Ù. --- usr/src/foobar/foobar.c.orig Mon Aug 11 02:10:23 1997 +++ usr/src/foobar/foobar.c Mon Aug 11 02:03:59 1997 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ÆÐÄ¡ÇÒ ÆÄÀÏÀÇ À§Ä¡¸¦ ³ªÅ¸³×´Âµ¥ ¸¸¾à ¿ì¸®°¡ /usr/src/foobar ¶ó´Â µð·ºÅ丮 ¿¡ À§Ä¡ÇÏ°í ÀÖ´Ù¸é patch < foobar.patch ÀÌ·±½ÄÀ¸·Î ¾Æ¹«¸® ÇغÁµµ ÆÄÀÏÀ» ã À»¼ö ¾ø´Ù´Â ¿¡·¯°¡ ³¯°ÍÀÌ´Ù. Á×¾î¶ó ÇöÀç À§Ä¡¿¡¼­ usr/src/foobar ¶õ µð·ºÅä ¸®¸¦ ãÀ»Å×´Ï±î ¸»ÀÌ´Ù. ÀÌ·±½ÄÀ¸·Î ÇÏ¸é µÈ´Ù. patch -p3 < foobar.patch ÀÌ ÇØ°¡ °¡´Â°¡? usr/src/foobar/foobar.c ¶ó´Â ÆÄÀÏÀ» ãÀ¸¶ó´Â °ÍÀ» p3 À» ÁÜÀ¸ ·Î½á ½½·¡½¬ 3°³ ¸¸Å­ Åõ¿í À߶󳻰í foobar.c ¸¦ ãÀ¸¶ó°í Çϴ°ÍÀÌ´Ù. ÀÌ°ÍÀÌ ¿Ö rpm ÆÐŰ¡¿¡¼­ ÀÚÁÖ ¾²À̴°¡? ±âº»ÀûÀ¸·Î %patch ¸í·ÉÀ» ½ÇÇàÇÏ´Â À§Ä¡´Â BUILD ¾Æ·¡¿¡ ¾ÐÃàÀÌ Ç®¸° µð·ºÅ丮ÀÌ´Ù. patch ÆÄÀÏÀÇ ³»¿ëÀ» º¸¸é º¸ Åë foobar/src/foobar.c ÀÌ·±½ÄÀ¸·Î ÇÁ·Î±×·¥ÀÌ Ç®¸± µð·ºÅ丮±îÁö Æ÷Ç﵂ ÀÖ´Ù. (µµµ¥Ã¼ ³»°¡ ¸Õ ¸»À» Çϴ°ÅÁö? ±×³É °¡ÀÚ.) ±×·¡¼­ foobar/ ¶õ ºÎºÐÀ» ½ºÀ¹ Àß¶ó¼­ src/foobar.c ·Î ¸¸µé¾î¾ß ÇÏ´Â ÀÏÀÌ ¸¹À»°ÍÀÌ´Ù. (ÀÌÀü ¹öÁ¯ºÎÅÍ ¾²´ø patch ¸¦ °è¼Ó ¾²´Â °æ¿ìµµ ¸¹°í µð·ºÅ丮ÀÇ À̸§ÀÌ Æ²¸±¶§µµ ¸¹°í Çϴϱî) ±× ·¡¼­ º¸Åë %patch -p1 ¸í·ÉÀ» ÁÖ°í »ç¿ëÇÑ´Ù. Á÷Á¢ Çغ¸¸é¼­ ¸ö¿¡ ÀÍÈ÷¸é µÈ´Ù. ÀÌÁ¦´Â ºôµå ±×·¯´Ï±î ÄÄÆÄÀÏÀ» ÇÏ´Â °úÁ¤ÀÌ´Ù. %build ¶õ ¸í·ÉÀ¸·Î ÀÌ ºÎºÐÀÌ ½ÃÀÛ µÇ¾úÀ½À» ¿ì¼± rpm ¿¡ ¾Ë¸®°Ô µÈ´Ù. ÀϹÝÀûÀ¸·Î ÄÄÆÄÀÏÀ» ÇÏ´Â °úÁ¤À» Àû °Ô µÇ´Âµ¥ ¸Ó ÀÌ·±½ÄÀÌ´Ù. ./configure make ¾ÆÁÖ °£´ÜÇÏ´Ù. º¸Åë ÄÄÆÄÀÏ Çϴ½ÄÀ¸·Î Àû¾îÁÖ¸é µÇ´Âµ¥ ´Ù¸¸ configure °°Àº °ÍÀ» »ç¿ëÇÒ¶§¿¡ ÆÐÅ°ÁöÀÇ ÆÄÀϵéÀÌ ¼³Ä¡µÉ À§Ä¡¸¦ Á¦µ¥·Î ¼³Á¤ÇÏ°í ¸Ó CFLAGS °°Àº°É Àâ¾ÆÁÖ¸é µÈ´Ù. ¿©±â¼­ RPM_OPT_FLAGS ¶ó´Â°Ô ¾²À̴µ¥ ÆÒƼ¾ö ÇÁ·Î °° Àºµ¥¼­ ÄÄÆÄÀÏÀ» ÇÒ¶§ ÆÒƼ¾ö ÇÁ·Î¿¡ ÃÖÀûÈ­µÇ¾î ÄÄÆÄÀÏ µÈ´Ù¸é 486 »ç¿ëÀÚµéÀº Âü ¾²±â °í´ÞÇðÍÀÌ´Ù. ±×·¡¼­ 486 ½Ã½ºÅÛ¿¡ ¸ÂÃß¾î ÄÄÆÄÀÏÀ» ÇÏ°Ô µÇ´Â°Ô º¸Åë À̸ç CFLAGS=$RPM_OPT_FLAGS ./configure ÀÌ·±½ÄÀ¸·Î ÇÒ¼ö ÀÖ´Ù. ¶Ç´Â ÀÌ·±½ÄÀ¸ ·Îµµ ÇÒ¼ö ÀÖ´Ù. make CFLAGS=$RPM_OPT_FLAGS ¹°·Ð ÀÌ·±½ÄÀ¸·Î »ç¿ëÇϱâ ÀÌÀü¿¡ ¼Ò½º³»ÀÇ Makefile ÀÌ ¾î¶»°Ô ±¸¼ºµÇ¾î ÀÖ´ÂÁö ¾î¶°ÇÑ FLAG ¸¦ »ç¿ëÇÏ´ÂÁö ¾Ë¾Æ µÎ¾î¾ß ÇÑ´Ù ¹«ÀÛÁ¤ Àú·±½ÄÀ¸·Î »ç¿ëÇÑ´Ù°í Çؼ­ Á¦µ¥·Î µÇ¶ó´Â ¹ýÀº ¾øÀ¸´Ï±î make Çϳª·Î ¸ðµç ÄÄÆÄÀÏÀÌ ¾È ³¡³­´Ù¸é? ÀÏÀÏÀÌ Àû¾î ÁÖ¸é µÈ´Ù. cd src ln -sf Makefiles/Makefile.Linux Makefile make sendmail cd ../mailstats rm -f Makefile make CFLAGS="$RPM_OPT_FLAGS -I../src -DNEWDB" LDFLAGS=-s mailstats cd ../rmail rm -f Makefile make CFLAGS="$RPM_OPT_FLAGS -I../src -DNEWDB" LDFLAGS=-s rmail ÀÌ·±½ÄÀÇ °³´ßÁúÀ» ÇÒ¼öµµ ÀÖ´Ù. Â¥Áõ³ªµµ ¾î¼°Ú´Â°¡ ÄÄÆÄÀÏÀº ÇØ¾ß µÇ´Âµð ¸Ó ²À ÀÌ°÷¿¡¼­ ÄÄÆÄÀϸ¸ Ç϶ó´Â ¹ýÀº ¾ø´Ù. Ä«ÇǸ¦ ÇÏ°í ÆÄÀÏ À̸§À» ¹Ù²Ù°í ¸Õ ÁþÀ» Çصµ Á¦µ¥·Î¸¸ µÇ¸é µÇ´Â°ÍÀÌ´Ù. ¸ð·Î °¡µµ ¼­¿ï¸¸ °¡¸é µÈ´Ù¸¦ »ó±â Çϱ⠹ٶõ´Ù. ±Ùµ¥ ±¦È÷ ÀÌ»óÇÑÁþ Çϳª°¡ »ß²ýÇϸé óÀ½ºÎÅÍ ´Ù½Ã ÇØ¾ß ÇÑ´Ù. ²À ±â¾ïÇϱ⠹ٶõ´Ù. °°Àº ÇÁ·Î±×·¥ ¸î¹ø¾¿ ÄÄÆÄÀÏ ÇÏ´Â°Ç Á¤¸» Èå À̹ø¿¡´Â %install ¼³Ä¡ ºÎºÐÀÌ´Ù. º¸Åë make install À» ¾²°Å³ª Á÷Á¢ ÆÄÀÏÀ» ÀÏÀÏÀÌ Ä«ÇÇÇÏ¸é µÈ´Ù. ¿©±â¼­ BuildRoot ¸¦ »ç¿ëÇß´Ù¸é °³´ßÁúÀ» ÇÏ°Ô µÈ´Ù. ±×³É Áö³ª¿Ô´Ù¸é make install ¾ÆÁÖ °£´ÜÇÏ´Ù. ÇÊ¿äÇÑ ÆÄÀÏÀ» ±¸¼ºÇÏ°í ¸µÅ©¸¦ ¸¸µé¾î¾ß Çϴ°÷Àº ¸µÅ©ÇÏ°í ÇÏ´Â ÀÚÁú±¸·¡ÇÑ ÀÏÀÌ´Ù. echo "# sendmail.cw - include all aliases for your machine here." > \ $RPM_BUILD_ROOT/etc/sendmail.cw ÀÌ·±½ÄÀ¸·Î ±¦È÷ ÆÄÀÏ Çϳª ¸¸µé±âµµ ÇÏ°í ÈåÈå. BuildRoot ¸¦ »ç¿ëÇÒ¶§ÀÇ ´ß Áú ÇÏ´Â ¹æ¹ý¸¸ Àû¾î º¸°Ú´Ù. ¿ì¼± BuildRoot ¸¦ »ç¿ëÇÏ´Ù¸é ¼³Ä¡Çϱâ ÀÌÀü¿¡ ÀÌ¹Ì ±× µð·ºÅ丮¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÀÖ´ø ¾ø´ø Áö¿öÁִ°ÍÀÌ ±âº»ÀÌ´Ù. rm -rf $RPM_BUILD_ROOT °£´ÜÇÏ°Ô ½½Â½ Áö¿ì°í ³ª¼­ ¼³Ä¡ÇÒ µð·ºÅ丮¸¦ ¸¸µé¾î ÁÖ¾î¾ß ÇÑ´Ù. ±×³É ±ñ ´Ù¸é ÀÌ¹Ì µð·ºÅ丮µéÀÌ ´ëºÎºÐ ¸¸µé¾îÁ® Àֱ⠶§¹®¿¡ º°·Î ½Å°æ ¾²Áö ¾Ê¾Æµµ µÇ°ÚÁö¸¸ ÈåÀ¹ Çϳªµµ ¾È ¸¸µé¾îÁ® ÀÖÀ¸´Ï ÇϳªÇϳª ¸¸µé¾î¾ß ÇÏ´Â°Ç ´ç¿¬ÇÑ ¿¹±â ¾Æ´Ñ°¡. mkdir -p $RPM_BUILD_ROOT/usr/{bin,lib,man/man1} Àç¹Õ´Â°É Çϳª ¹ß°ßÇßÀ»°ÍÀÌ´Ù. { }·Î ¹¬Àº ºÎºÐ ¿Ö Àú·¸°Ô ¾²´ÂÁö ¾Ë »ç¶÷Àº ÀÌ¹Ì ´Ù ÁüÀÛÇß°ÚÁö¸¸ ¹¬±â ÀÌÀüÀÇ ºÎºÐ ÇÏÀ§·Î Á¸£¸¤ ¸¸µé¾î ³»´Â °ÍÀÌ´Ù. ½ÇÁ¦·Î´Â $RPM_BUILD_ROOT/usr/bin, $RPM_BUILD_ROOT/usr/lib ÀÌ·±½ÄÀ¸·Î ¸¸ µé¾îÁö´Â °ÍÀÌ´Ù. ¾ÆÂü -p ¿É¼ÇÀº ¸¸µé µð·ºÅ丮±îÁöÀÇ °æ·Î°¡ Á¸ÀçÇÏÁö ¾ÊÀ¸ ¸é ½Î±×¸® ´Ù ¸¸µå´Â°ÍÀÌ´Ù. ^^ ($RPM_BUILD_ROOT ÁÖÀÇ Çϱ⠹ٶõ´Ù.) ÀÚ ±×¸®°í ÀÌÁ¦ ÆÄÀÏÀ» ¼³Ä¡ ÇÑ´Ù. make install À» ¾µ±î? ±×·¯¸é ¿ÂÅë ½Ã½º ÅÛ¿¡¸¸ ±ò¸®°í $RPM_BUILD_ROOT ¹×À¸·Î´Â ÀüÇô ¾È µé¾î°¥ÅÙµ¥? ¿ä·±½ÄÀ¸·Î ÇØ º¼¼ö ÀÖ´Ù. ¿ì¼± Makefile À» Çѹø »ìÆì º¸±â ¹Ù¶õ´Ù. Á«½Î°Ô install ºÎºÐÀ» »ìÆì º¸¸é ¿ä·±½ÄÀ¸·Î ´ëºÎºÐ »ç¿ëÇÒ°ÍÀÌ´Ù. install: foobar ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} foobar ${BINDIR} ÀÌ·±½ÄÀ¸·Î ´ëºÎºÐ º¯¼ö?¸¦ »ç¿ëÇؼ­ ÇÑ´Ù. Makefile À§¿¡¼­ ÀÌ°ÍÀ» ´Ù Á¤ÀÇ ÇØ ÁÖ°Ô µÇ´Âµ¥ ±×°É ½½Â½ ¹Ù²Ü¼ö ÀÖÁö ¾Ê°Ú´Â°¡? $BINDIR Àº ¾î¶»°Ô Á¤ÀÇ µÇ ¾î ÀÖ´ÂÁö Çѹø º¼±î³ª? BINDIR= ${DESTDIR}/usr/sbin ¿À ÀÌ·¸°Ô µÇ ÀÖ´Ù. Èå À½ ±×·±µ¥ DESTDIR Àº ¾Æ¹«°Íµµ ÁöÁ¤µÇ¾î ÀÖÁö ¾Ê´Ù ±×·³ ½ÇÁ¦ BINDIR Àº ÀÌ ·¸°Ô µÇ°Ú±¸³ª /usr/sbin, ÈÄ¿ì ¿ì¸®´Â DESTDIR À» ÁöÁ¤Çؼ­ ½ºÀ¹ ±ò¸®´Â À§ Ä¡¸¦ ¹Ù²Ü¼ö ÀÖÀ»°Í °°´Ù. ¾È ±×·±°¡? ¿ä·¸°Ô Çغ¸¸é ¾î¶³±î? make DESTDIR=$RPM_BUILD_ROOT install ÈÄÈÄ Àç¹ÕÁö ¾Ê´Â°¡? BuildRoot ¶§¹®¿¡ ÆÈÀÚ¿¡ ¾ø´Â Makefile µµ ½Ç½Ç µé¿©ºÁ ¾ß Çϱ¸ ¸»ÀÌ´Ù. ¸ðµç Makefile ¿¡¼­ DESTDIR À» ¾²´Â°Ç ¾Æ´Ï´Ï °Í¶ÇÇÑ »ìÆì º¸¾ß¾ß ÇÑ´Ù. ÀüÇô Àú·±°É ¾È ¾²´Â Makefile Àε¥ BuildRoot ¸¦ »ç¿ë ÇÏ°í ½Í ´Ù¸é? ¾î¼°Ú´Â°¡ patch ÆÄÀÏÀÌ¶óµµ ¸¸µé¾î¼­ Makefile À» °íÄ¡´Â ¼ö¹Û¿¡, ÇÑ °¡Áö °­Á¶ÇÏÁö¸¸ Àýµ¥·Î ¿Ø¸¸Çؼ± »ì°í ½ÍÀ¸¸é ¼Ò½º¸¦ Á÷Á¢ °Çµå·Á¼­ ´Ù½Ã ¾Ð ÃàÇÏ°í ÇÏ´ÂÀÏÀº ÇÏÁö ¾Ê±â ¹Ù¶õ´Ù. ±×³É ÆÐÄ¡·Î ¸¸µé¾î¼­ ÆÐÅ°Áö¸¦ ¸¸µé¶§¿¡ »ç¿ëÇÏ°í ¿ø ¼Ò½º´Â º¯°æÇÏÁö ¾Ê´Â°ÍÀÌ ÁÁ´Ù ´ëÃæ ÀÌÇØ°¡ °¡´Â°¡? ²À make install À» »ç¿ëÇÒ ÇÊ¿äµµ ¾ø´Ù. cp ³ª install ¸í·ÉÀ» ÀÌ¿ëÇؼ­ Á÷Á¢ ±ò¾Æ ¹ö·Áµµ µÈ´Ù. for l in 1 2 3 4 5 6 7 8 9 n; do mkdir -p $RPM_BUILD_ROOT/usr/man/ko/man$l mkdir -p $RPM_BUILD_ROOT/var/catman/ko/cat$l if [ `ls --color=no| grep -c \\\\.$l` -gt 0 ]; then install -c -m 644 *.$l* $RPM_BUILD_ROOT/usr/man/ko/man$l fi done º°ÀÇ º° ¹æ¹ýÀ» µ¿¿øÇؼ­ ÀÏÀ» ÁÙ¸±·Á°í ÇÏÁö ¾Ê´Â°¡? ÀÌ·±½ÄÀ¸·Î »ç¿ëÇصµ Àýµ¥·Î ÁöÀåÀÌ ¾ø´Ù. ±ò¸®±â¸¸ ÇϸéµÈ´Ù. ¸ð·Î °¡µµ ¾îµð¸¸ °¡¸é µÈ´Ù°í? Âü ÀÌ°Å ÁÖÀÇÇØ¾ß ÇÑ´Ù. ¾î¶² ÆÄÀÏÀ» ¸µÅ©¸¦ ½ÃÄÑ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖÀ»°ÍÀÌ´Ù. sendmail °°Àº°É Çѹø ¸¸µé¾îº¸¸é ¿ÂÅë ¸µÅ©¸¦ º¸°ÔµÈ´Ù. À̶§ ÁÖÀÇ ÇÒÁ¡ÀÌ ÀÖ´Ù. ln -s $RPM_BUILD_ROOT/bin/foobar $RPM_BUILD_ROOT/lib/foobar2 Àú·±½ÄÀ¸·Î ¸µÅ© Çß´Ù°£ ´Ù½Ã ÆÐŰ¡À» ÇÏ´Â ºÒ»ó»ç¸¦ ÃÊ·¡ÇÒ°ÍÀÌ´Ù. ¸µÅ© Á¤ º¸°¡ ¾û¸ÁÀ¸·Î µÇ±â ¶§¹®ÀÌ´Ù. ½ÇÁ¦·Î ÆÐÅ°ÁöÀÇ ¼³Ä¡´Â /bin ¿¡´Ù µÇ´Âµ¥ ¸µ Å© Á¤º¸´Â $RPM_BUILD_ROOTÀÇ bin µð·ºÅ丮¿¡¼­ ÆÄÀÏÀ» ãÀ¸´Ï µ¹¾Æ°¡½Ã´Â ÀÏ ÀÌÁö ¹«¾ùÀΰ¡? ÀÌ·±½ÄÀ¸·Î Çϱ⠹ٶõ´Ù. cd $RPM_BUILD_ROOT/lib ln -s ../bin/foobar ./foobar2 ÀÌ·¸°Ô Çϸé Ç®Æнº°¡ ¾È ÀûÈ÷´Ï±î ÈåÈî (¿Ø ²Ç¼öÁö?) ¾î¶µç ÀÌ ºÎºÐÀº Á¤¸» ·Î ÁÖÀÇÇØ¾ß ÇÑ´Ù. ´©±¸Ã³·³ ÄÄÆÄÀÏÀ» ¸î¹ø ´Ù½Ã ÇÏ±â ½È´Ù¸é ¸»ÀÌ´Ù. ²Ç¼ö Çϳª´õ, ÄÄÆÄÀÏ ºÎºÐÀÌ À߸øµÇ¾î¼­ ´Ù½Ã ÆÐŰ¡ ÇÏ¿©¾ß ÇÑ´Ù¸é ¸ð¸¦±î ¼³Ä¡ ºÎºÐÀ» À߸ø Àû¾ú°Å³ª ÆÄÀÏ ÁöÁ¤ ¸Ó ÀÌ·¯ÇÑ ºÎºÐ¿¡¼­ ¿¡·¯³ª¸é ´Ù½Ã ÄÄ ÆÄÀÏÀ» ÇØ¾ß ÇÑ´Ù°í »ý°¢Çϸé À¸ Á¤¸» ¹ÌÄ¥ ³ë¸©ÀÏ °ÍÀÌ´Ù. ÀÌ·± ¹æ¹ýÀ» »ç¿ë ÇÏ¸é µÈ´Ù. BUILD µð·ºÅ丮¿¡ ÄÄÆÄÀÏµÈ ÆÄÀϵéÀÌ ÀÖ´Â µð·ºÅ丮ÀÇ À̸§À» ½½ Àû ¹Ù²Û´Ù. %prep ºÎºÐ¿¡¼­ À̸§ÀÌ °°Àº µð·ºÅ丮´Â Áö¿ö¹ö¸®´Ï±î ´ëÇÇ ½ÃÅ° ´Â °ÍÀÌ´Ù. ±×·±ÈÄ rpm -ba foobar.spec °°ÀÌ ÆÐŰ¡À» ½ÃÀÛÇÑ´Ù. ¼Ò½ºÆÄÀÏÀÇ ¾ÐÃàÀ» Ç®°í ÆÐÄ¡¸¦ ÇÑÈÄ¿¡ ÄÄÆÄÀÏ¿¡ µ¹ÀÔÇϱâ Á÷Àü ctrl+z ¸¦ ´©¸¥´Ù. ´ç¿¬ È÷ ÀÛ¾÷Àº ¸ØÃâ°ÍÀÌ°í ÀÌ¹Ì ÄÄÆÄÀÏµÈ ³»¿ëÀ» ±× µð·ºÅ丮·Î Ä«ÇǸ¦ Çعö¸®¸é ÈåÈå º¸Åë ÀÌ¹Ì µÇ ÀÖÀ¸¸é make °¡ ¾Ë¾Æ¼­ ÄÄÆÄÀÏÀ» ÇÏÁö ¾Ê´Â´Ù. ÈÄÈÄ ÀÌ·± ½ÄÀ¸·Î ÄÄÆÄÀÏÀÌ ¿À·¡ °É¸®´Â ÇÁ·Î±×·¥Àº Áö°Ü¿î ÄÄÆÄÀÏ °úÁ¤À» ´Ù½Ã ÇÏÁö ¾Ê °í ÀçÆÐŰ¡À» ÇÒ¼ö ÀÖ´Ù. ÀÚ ±×·³ ´Ù½Ã Á¦ÀÚ¸®·Î µ¹¾Æ¿Í¼­... ´Ù ¼³Ä¡ÇßÀ¸¸é ¿¹ÀÇ»ó ±ò¸° µð·ºÅ丮¸¦ Áö¿öÁà¾ß Çϴ°Š¾Æ´Ï°Ú´Â°¡? %clean À̶ó´Â ¸í·ÉÀº ¸ðµç°Ô ³¡³­ÈÄ Á¤¸® ÇѴٴ°ÍÀÌ´Ï ±â¾ïÇØ µÎ¸é ÁÁÀ»°ÍÀÌ´Ù. %clean rm -rf $RPM_BUILD_ROOT ¾Æ »©¸ÔÀ»»· Ç߳׿ä ÆÐÅ°Áö¿¡ Æ÷ÇԵǴ ½ºÅ©¸³Æ®¿¡ ´ëÇØ Àá½Ã ¾Ë¾Æ º¸µµ·Ï ÇÏÁö¿ä. RPM ÆÐÅ°Áö¿¡´Â 4°¡ÁöÀÇ ½ºÅ©¸³Æ®°¡ ÀÖ½À´Ï´Ù. ¼³Ä¡Àü, ¼³Ä¡ÈÄ, Áö ¿ì±âÀü, Áö¿îÈÄ ÀÌ·¸°Ô 4°¡ÁöÀε¥ ¿Ö ÇÊ¿äÇϳı¸¿ä? ¸Ó ¸µÅ©¸¦ Çѵ¥´øÁö ¶ó À̺귯¸®¸¦ ³ÖÀº ÆÐÅ°Áö´Â ldconfig À» ÇØÁֱ⵵ ÇÏ°í ÀúÀÇ i18n ÆÐÅ°Áö °° Àº °æ¿ì´Â ¿ø·¡ ±ò¸°°Í°ú Ãæµ¹À» ÇÇÇϱâ À§ÇØ º°ÁþÀ» ´ÙÇØ ³õ¾ÒÁö¿ä. %pre Ç׸ñÀº ¼³Ä¡Çϱâ ÀÌÀü¿¡ ½ÇÇàÇÒ ½ºÅ©¸³Æ®ÀÔ´Ï´Ù. ¼³Ä¡ ÀÌÀü¿¡ ÀÌ¹Ì ±ò ·Á ÀÖ´Â ÆÄÀϵéÀ» ¹é¾÷ ÇÑ´Ù´øÁö ¸Ó ´Ù¾çÇÑ ¿ëµµ·Î »ç¿ëÇÒ¼ö ÀÖ½À´Ï´Ù. Çѹø ¿¹¸¦ º¼±î¿ä? if [ ! -d /usr/X11R6/lib/HanX ]; then mkdir -p /usr/X11R6/lib/HanX if [ -f /usr/X11R6/lib/libX11.a ]; then mv /usr/X11R6/lib/libX11.a /usr/X11R6/lib/HanX/libX11.a.orig fi mv /usr/X11R6/lib/libX11.so.6.1 \ /usr/X11R6/lib/HanX/libX11.so.6.1.orig fi HanX ÆÐÅ°Áö´Â XÀ©µµ¿ìÀÇ ¶óÀ̺귯¸®¸¦ µ¤¾î ¾¹´Ï´Ù. ±×·¯´Ï±î ¿ø·¡ÀÇ ÆÄÀϵé À» ¹é¾÷À» ½ÃÅ°´Â ¼ö¸¦ ¾²°í ÀÖ½À´Ï´Ù. HanX µð·ºÅ丮 ¾Æ·¡·Î ¿ø ÆÄÀϵéÀ» ÀÌ µ¿ ½ÃÄѼ­ ¼Õ»óÀÌ °¡Áö ¾Ê°Ô ÇÏÁö¿ä. %post ´Â ¼³Ä¡ÈÄ¿¡ ½ÇÇàÇÒ ½ºÅ©¸³Æ®¸¦ Àû´Â °÷ÀÌÁö¿ä. ¿ª½Ã HanX ÆÐÅ°Áö¿¡¼­ »ç¿ë Çß´ø °ÍÀ» º¸±â·Î ÇÏÁö¿ä. cd /usr/X11R6/lib ln -sf HanX/libX11.a . ln -sf HanX/libX11.so.6.1 . ldconfig HanX ÆÐÄ¡µÈ ¶óÀ̺귯¸® µéÀÌ /usr/X11R6/lib/HanX ¹×¿¡ libX11.so.6.1 ÀÌ·± À̸§À» À§Ä¡ÇÏ°Ô µË´Ï´Ù. (¿ø·¡ ÆÐÅ°Áö¿ÍÀÇ Ãæµ¹À» ÇÇÇϱâ À§Çؼ­) ±×°ÍÀ» ¸µ Å©¸¦ ÀÌ¿ëÇؼ­ /usr/X11R6/lib ¹×¿¡¼­ ãÀ»¼ö ÀÖ°Ô ÇØÁÖ°í ldconfig À» ½ÇÇà ÇÏ¿©¼­ ¶óÀ̺귯¸®¸¦ ¾Ë¾Æ ¸Ô°Ô ÇØÁÖÁö¿ä. %preun Àº Á¦°ÅÇϱâÀü¿¡ ÇàÇÏ´Â ½ºÅ©¸³Æ®¸¦ Àû´Â°÷ÀÌÁö¿ä. %postun Àº ÆÐÅ°Áö¸¦ Áö¿îÈÄ¿¡ ¾²´Â ½ºÅ©¸³Æ®ÀÔ´Ï´Ù. º¸Åë ¿ø·¡ÀÇ »óÅ·ΠµÇ µ¹·Á ³õ±â À§Çؼ­ »ç¿ëÇÏ°ÙÁö¿ä? ¿ª½Ã HanX ÆÐÅ°Áö¿¡¼­ »ç¿ëÇÑ°ÍÀ» »ìÆì º¸°Ú ½À´Ï´Ù. if [ -d /usr/X11R6/lib/HanX ]; then mv -f /usr/X11R6/lib/HanX/libX11.a.orig /usr/X11R6/lib/libX11.a mv -f /usr/X11R6/lib/HanX/libX11.so.6.1.orig \ /usr/X11R6/lib/libX11.so.6.1 rm -rf /usr/X11R6/lib/HanX fi ldconfig ¹é¾÷Çß´ø ÆÄÀϵéÀº ¿ø»óº¹±Í ½ÃŲÈÄ¿¡ ldconfig À¸·Î ´Ù½Ã ¶óÀ̺귯¸®¸¦ ÀÎ ½Ä½ÃÅ°Áö¿ä ^^; ¶óÀ̺귯¸®¸¦ ±³Ã¼ ÇßÀ¸´Ï±î¿ä. ÀÌ ºÎºÐÀ» Àß »ç¿ëÇÏ¸é »ý°¢º¸´Ù Àç¹ÌÀÖ°í ½±°Ô ÆÐÅ°Áö¸¦ ¸¸µé¼ö ÀÖ½À´Ï´Ù. Âü Çϳª ÁÖÀÇ Çϼ¼¿ä. ¾¾µð·Ò¿¡ µé¾î°¡´Â ÆÐÅ°ÁöÀÇ °æ¿ì¿¡¿ä. ƯÁ¤ ÆÄÀÏÀ» °Çµå·Á¾ß Çϴµ¥ ÀÌ ÆÄÀÏÀÌ ¼ÓÇÑ ÆÐÅ°Áö°¡ Áö±Ý ¸¸µå´Â°Íº¸´Ù ´Ê°Ô ¼³Ä¡ µÈ ´Ù¸é? ¿¡·¯¸¸ º¸°í ¸»°Ì´Ï´Ù. ¾ËÆĺª ¼øÀ¸·Î ¼³Ä¡µÇ´Â°Å ¾Æ½ÃÁÒ. »ç¶÷ Á¤¸» ´ä´äÇØ Áö´Â°ÅÁÒ. ÈåÀ¹ T_T ¶Ç Çϳª, cat À» ÀÌ¿ëÇؼ­ ÆÄÀÏ¿¡ ³»¿ëÀ» Ãß°¡ ½ÃÅ°´Â ¹æ¹ýÀ» ½áºÃ´Âµ¥ ÀÌ°Ô Àß ¾ÈµÇ´õ±º¿ä. nh2ps ¿¡¼­ »ç¿ëÇѰǵ¥ ±×·¡¼­ °á±¹¿£ echo ¸¦ ÀÌ¿ëÇß½À´Ï´Ù. cat ÀÌ ¾¾µð·Ò¿¡¼­ install À̶ó´Â ÇÁ·Î±×·¥°ú ¸µÅ©°¡ µÇ Àִµ¥ Èå ÀÌ°Ô Á¦ µ¥·Î ¾È µ¹¾Æ°¡´Â°ÇÁö °ñ Àâ½À´Ï´Ù. ÈÄ¿ì ´ëÃæ ³¡³µ´Ù°í º¸À̴µ¥? ÀÌÁ¦ ÆÄÀÏÀÇ À§Ä¡¸¦ Àû¾îÁÖ´Â ºÎºÐÀÌ´Ù. Á¦ÀÏ Áß¿äÇÑ ºÎºÐÀÌ´Ù. ÀÌ°Ô ¾øÀ¸¸é ÆÐŰ¡ÀÌ ¾ÈµÇ°í À̰͸¸ À־ ÆÐŰ¡ÀÌ µÈ ´Ù. ÈåÈå ±×·¡¼­ ¹ÙÀ̳ʸ®¸¸ À־ ÆÐŰ¡Àº ÇÒ¼ö ÀÖ´Ù´Â ¸»ÀÌ´Ù. ^^ %files ¶ó´Â ¸í·ÉÀÌ ³»·ÁÁö¸é¼­ ÆÄÀÏÀÇ À§Ä¡¸¦ ã´Â°ÍÀº ½ÃÀ۵ȴÙ. Á¤È®ÇØ¾ß ÇÑ´Ù. /usr/doc/HOWTO/translations/ko/Assembly-HOWTO.gz /usr/doc/HOWTO/translations/ko/Installation-HOWTO.gz /usr/doc/HOWTO/translations/ko/Sound-HOWTO.gz /usr/doc/HOWTO/translations/ko/Firewall-HOWTO.gz /usr/doc/HOWTO/translations/ko/NET-3-HOWTO.gz /usr/doc/HOWTO/translations/ko/Sound-Playing-HOWTO.gz ÀÌ·±½ÄÀ¸·Î ÀÏÀÏÀÌ ´Ù Àû¾î Áà¾ß ÇÑ´Ù. ÈåÀ¹ ¶Ç´Â ¾î´À µð·ºÅ丮 ÀÌÇÏÀÇ ¸ð µç°ÍÀ» ÁöÁ¤ÇÏ°íÀÚ Çϸé /usr/doc/HOWTO/translations/ko/mini ÀÌ·¸°Ô µð·ºÅ丮 À̸§À» Àû¾î ÁÖ¸é ±× ÀÌÇÏ´Â ½Î±×¸® ¹¬°Ô µÈ´Ù. Âü À̺κп¡´Â BuildRoot ¸¦ ½è´Ù°í Çؼ­ $RPM_BUILD_ROOT ¸¦ ¾Õ¿¡ ºÙÀÏ ÇÊ ¿ä°¡ ¾ø´Ù. ¾Ë¾Æ¼­ ´Ù Çϴϱî ^^ ¿©±â¿£ ¸î°¡Áö ¿¹¾àµÈ ¸í·ÉµéÀÌ ÀÖ´Ù. %config, %dir, %doc ÀÌ·¸°Ô 3°³Àε¥ (3°³ ¹Û¿¡ ¾ø´ø°¡?) %config Àº ¼³Á¤ ÆÄÀÏÀÓÀ» ³ªÅ¸³½´Ù. ÀÌ°ÍÀº rpm -Uvh ·Î ¼³Ä¡µÉ¶§ rpm ÀÌ Ã£¾Æ¼­ °°Àº ÆÄÀÏÀÌ ÀÖ´Ù¸é ¹é¾÷À» ÇÏ°Ô µÈ´Ù. %config /usr/X11R6/lib/X11/app-defaults/Xmag-ko ÀÌ·±½ÄÀ¸·Î »ç¿ëÇÑ´Ù. À̹ø¿¡ %dir À̶õ ¸í·ÉÀº ±×³É ±× µð·ºÅ丮¸¸ ³ÖÀ»¶§ »ç¿ëÇÑ´Ù ±×·¯´Ï±î ¾Æ±îó·³ µð·ºÅ丮¸¦ ÁöÁ¤ÇÏ¸é ±× ÀÌÇÏ´Â ¸ðµÎ ÆÐÅ°Áö¿¡ Æ÷ÇÔµÇ°Ô µÇÁö¸¸ %dir /usr/doc/HOWTO/translations/ko/mini ÀÌ·±½ÄÀ¸·Î ÇÑ´Ù¸é mini µð·ºÅ丮 ¹×¿¡ ¹«¾ùÀÌ Àֵ簣¿¡ mini µð·ºÅ丮¸¸ Æ÷ÇÔÇÏ°Ô µÈ´Ù. ¸¶Áö¸·À¸·Î %doc ÀÌ´Ù. ¾ðÁ¦ Çѹø /usr/doc ¹×À» °¡ºÃÀ¸¸é ¼ö ¸¹Àº µð·ºÅ丮µéÀ» º¼¼ö ÀÖÀ»°ÍÀÌ´Ù. modules-2.0.0-5/ ¸Ó ÀÌ·±½ÄÀÇ µð ·ºÅ丮µéÀÌ ³Î·Á Àִµ¥ $NAME-$VERSION-$RELEASE ÀÌ·±½ÄÀÇ µð·ºÅ丮µéÀε¥ ¿©±â¿¡ µé¾î°¥ ÆÄÀϵéÀ» ÁöÁ¤Çϴ°ÍÀÌ %doc ÀÌ´Ù. %doc ÀÌ·±½Ä À¸·Î ÁöÁ¤µÈ ÆÄÀϵéÀº /usr/doc/$NAME-$VERSION-$RELEASE ¹×À¸·Î µé¾î°¡°Ô µÇ´Â°ÍÀÌ´Ù. ¾î´À µð·ºÅ丮 Àüü¸¦ ¼³Á¤ÇÒ¼öµµ ÀÖ´Ù. 4. ¸¶Áö¸· ÆÐÅ°Áö ¸¸µé±â ÆÐÅ°Áö¸¦ ¸¸µå´Â ¹æ¹ýÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. rpm -ba ÀÌ·¯¸é ³¡ÀÌ´Ù. ¹°·Ð ¼Ò½º³ª ÆÐÄ¡µéÀÌ ´Ù Á¦ÀÚ¸®¿¡ ÀÖ¾î¾ß ÇÏ°í spec ÆÄÀϵµ Á¦µ¥·Î ±¸¼ºµÇ ¾î ÀÖ¾î¾ß ÇÑ´Ù. ½É½ÉÇÏ°í ÇÒÀÏÀÌ ¾ø´Ù¸é rpm -ba --test ¶ó´Â ¸í·ÉÀ» ¿ì¼± »ç¿ëÇØ º¸´Â°Ô ±×³ª¸¶ Á» ¼ÒÆíÇÒ°ÍÀÌ´Ù. rpm -ba --sign À¸·Î ÆÐÅ°Áö¸¦ ¸¸µé°Ô µÇ¸é PGP »çÀÎÀ» ³Ö°Ô µÈ´Ù. »ç¿ëÇÒ keyring ÀÇ À§Ä¡¸¦ /etc/rpmrc ¿¡ Á¤È®È÷ ÁöÁ¤ÇØÁÖ¾î¾ß¸¸ ÇÑ´Ù. ÁÖÀÇ Çϱ⠹ٶõ´Ù. ÆÐÅ°Áö¸¦ ¸ðµÎ Á¦ÀÛÇÑÈÄ¿¡µµ PGP »çÀÎÀº ÷°¡ÇÒ¼ö ÀÖ´Ù. --resign °ú --addsign À» »ç¿ëÇϴµ¥ ÀüÀÚ´Â ¸» ±×µ¥·Î ´Ù½Ã »çÀÎ ÇÏ´Â °Í ÀÌ°í ÈÄÀÚ´Â ÇöÀç ÀÖ´Â »çÀÎ À§¿¡ ¶Ç Çϳª ´õ ÇÏ´Â °ÍÀÌ´Ù. Àß ±¸º°Çؼ­ »ç ¿ëÇϱ⠹ٶõ´Ù. ´©±¸Ã³·³ µÎ¹ø¾¿ »çÀÎ ÇÏ´Â ÀÏÀÌ ¹ú¾î ÁöÁö ¾Êµµ·Ï... 5. ³¡À¸·Î º° ½Ã´þÁö ¾ÊÀº °­Á¸¦ Àоî Áּż­ °¨»çÇÕ´Ï´Ù. ¹Ý¸»µµ ¸¶±¸ ³²¿ëÇÏ°í ^^ ÀÌ ±ÛÀÌ µµ¿òÀÌ µÉ·±Áö ¸ð¸£°Ù½À´Ï´Ù. ¼ÖÁ÷È÷ ÀÌ¹Ì ÇÏ¿ìÅõ³ª ¸Ç ÆäÀÌÁö¿¡ ÀÖ´Â ³»¿ëÀε¥ ±¦È÷ ´õ ÀûÀº°Å °°±âµµ ÇÕ´Ï´Ù. º°¹Ý »õ·Î¿ï²² ¾ø´Â ±ÛÀ» ¶Ç Çѹø Àû´Â°Å °°¾Æ¼­... ¾î¶µç µµ¿òÀÌ µÇ¾úÀ¸¸é ÇÕ´Ï´Ù.