Software Release Practice HOWTO Eric S. Raymond 1.0, 21 November 1998 ÀÓÁ¾È£ 1999³â 5¿ù 8ÀÏ beta-2 ÀÌ ¹®¼­´Â ¸®´ª½º ¿ÀÇÂ-¼Ò½º ÇÁ·ÎÁ§Æ®¸¦ À§ÇÑ ¹Ù¶÷Á÷ÇÑ °ø°³ ¹ßÇ¥ÀÇ °ü·Ê¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. ÀÌ·¯ÇÑ °ü·Ê¸¦ µû¸¥´Ù¸é ´ç½ÅÀÇ Äڵ带 »ç¿ëÇÏ´Â »ç¿ëÀÚ¿Í ´ç½ÅÀÇ Äڵ带 ÀÌÇØÇϰųª °³¼±Çϱâ À§ÇØ µµ¿òÀ» ÁÖ°í ½Í¾îÇÏ´Â ´Ù¸¥ °³¹ßÀÚµéÀ» °¡´ÉÇÑ ½±°Ô µµ¿ÍÁÙ ¼ö ÀÖ´Ù. ÀÌ ¹®¼­¸¦ Ãʺ¸ °³¹ßÀÚ´Â ¹Ýµå½Ã Àоî¾ß ÇÏ¸ç ¼÷·ÃµÈ °³¹ßÀÚ ¶ÇÇÑ »õ·Î¿î ÇÁ·ÎÁ§Æ®¸¦ ¹ßÇ¥ÇÏ·Á°í ÇÒ ¶§ ´Ù½Ã Çѹø ¼÷ÁöÇØ¾ß ÇÑ´Ù. ¹Ù¶÷Á÷ÇÑ Ç¥ÁØÀÇ °ü·Ê¸¦ ¹Ý¿µÇϱâ À§ÇØ ÀÌ ¹®¼­´Â Á¤±âÀûÀ¸·Î °³Á¤µÉ °ÍÀÌ´Ù. ______________________________________________________________________ ¸ñÂ÷ 1. ¼Ò°³ 1.1 ¿Ö ÀÌ ¹®¼­Àΰ¡? 1.2 ÀÌ ¹®¼­ÀÇ »õ ¹öÀü 2. ¹Ù¶÷Á÷ÇÑ ÇÁ·ÎÁ§Æ® À̸§°ú ¾ÐÃà ÆÄÀÏ À̸§À» Áþ´Â °ü·Ê 2.1 GNU-½ºÅ¸ÀÏÀÇ À̸§ »ç¿ë. Á¢µÎ»ç-major¹øÈ£.minor¹øÈ£.patch¹øÈ£ 2.2 ÀÔ·ÂÇϱ⠽±°í °íÀ¯ÇÑ À̸§ÀÇ Á¢µÎ»ç¸¦ °í¸£´Âµ¥ ½ÅÁßÇ϶ó 3. ¹Ù¶÷Á÷ÇÑ °³¹ßÀÇ °ü·Ê 3.1 ANSI C ³ª À̽İ¡´ÉÇÑ ½ºÅ©¸³ ¾ð¾î·Î ÀÛ¼ºÇ϶ó 3.2 C°¡ À̽İ¡´ÉÇϵµ·Ï °ü·Ê¸¦ µû¶ó¶ó 3.3 autoconf/automake/autoheader ¸¦ »ç¿ëÇ϶ó 3.4 °ø°³ ¹ßÇ¥ Àü¿¡ Äڵ尡 ¿ÂÀüÇÑÁö °Ë»çÇ϶ó 4. ¹Ù¶÷Á÷ÇÑ ¹èÆ÷º» Á¦ÀÛÀÇ °ü·Ê 4.1 tar ÆÄÀÏÀÌ Ç×»ó »õ·Î¿î ÇÑ °³ÀÇ µð·ºÅ丮¿¡ Ç®¸®µµ·Ï ¸¸µé¾î¶ó 4.2 README¸¦ Æ÷ÇÔ½ÃÄѶó 4.3 ÀϹÝÀûÀÎ ÆÄÀÏ À̸§À» Áþ´Â °ü·Ê¸¦ Á¸ÁßÇÏ°í µû¶ó¶ó 5. ¹Ù¶÷Á÷ÇÏ°Ô ¾Ë¸®´Â ¹æ¹ý¿¡ ´ëÇÑ °ü·Ê 5.1 c.o.l.a ¿¡ ¾Ë·Á¶ó 5.2 ÁÖÁ¦¿Í °ü·ÃµÈ ´º½º±×·ì¿¡ ¾Ë·Á¶ó 5.3 À¥»çÀÌÆ®¸¦ °¡Á®¶ó 5.4 ÇÁ·ÎÁ§Æ® ¸ÞÀϸµ ¸®½ºÆ®¸¦ ¿î¿µÇ϶ó 5.5 ÁÖ¿äÇÑ º¸°ü¼Ò(major archives)¿¡ °ø°³(release)Ç϶ó 5.6 RPMÀ» Á¦°øÇ϶ó ______________________________________________________________________ 1. ¼Ò°³ 1.1. ¿Ö ÀÌ ¹®¼­Àΰ¡? ¿ÀÇÂ-¼Ò½º Äڵ带 ¿î¿µÇÏ°í »ç¿ëÇÏ¸ç ¹ßÀü½Ã۱â À§ÇØ Çù·ÂÇÏ´Â »ç¶÷À» µ½±â À§ÇÑ ¹Ù¶÷Á÷ÇÑ °ü·Ê°¡ ÀÖ´Ù. ÀÌ °ü·Êµé Áß¿¡ ¾î¶² °ÍÀº À¯´Ð½º ÂÊÀÇ °ü·ÊÀ̰ųª ¸®´ª½º°¡ ³ª¿À±â ÀüÀÇ °ü·ÊµéÀÌ¸ç ´Ù¸¥ °ÍµéÀº ÃÖ±Ù¿¡ »õ·Î¿î ÅøÀÇ °³¹ßÀ̳ª À¥(WWW)°ú °°Àº ±â¼úÀÇ ¹ßÀüÀ» ÅëÇØ »ý°Ü³­ °ÍµéÀÌ´Ù. ÀÌ ¹®¼­´Â ´ç½ÅÀÌ ¹Ù¶÷Á÷ÇÑ °ü·Ê¸¦ ¹è¿ì´Â °ÍÀ» µ½´Â´Ù. Áß¿äÇÑ ´Ü¶ô¿¡´Â Á¡°Ë Ç׸ñÀÌ Æ÷ÇԵǾî ÀÖÀ¸¸ç À̰ÍÀº ´ç½ÅÀÇ ¹èÆ÷º»À» À§ÇÑ »çÀü Á¡°Ë (pre-flight checklist for your distribution)ÀÌ´Ù. 1.2. ÀÌ ¹®¼­ÀÇ »õ ¹öÀü ÀÌ ¹®¼­´Â ¸Å¿ù comp.os.linux.answers ´º½º±×·ì¿¡ °Ô½ÃµÉ °ÍÀ̸ç sunsite.unc.edu ¿¡ ÀÖ´Â pub/Linux/docs/HOWTO¸¦ Æ÷ÇÔÇÑ ¸¹Àº ¸®´ª½º FTP »çÀÌÆ®¿¡¼­ ±¸ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¶Ç, À¥À» ÅëÇØ¼­ ¸¶Áö¸· ¹öÀüÀÇ ÇÏ¿ìÅõ¸¦ º¼ ¼ö ÀÖ´Ù. ÀÌ ÇÏ¿ìÅõ¿¡ ´ëÇÑ ¾î¶°ÇÑ Áú¹®À̳ª ºñÆòµµ ²¨¸³±è ¾øÀÌ Eric S. Raymond esr@snark.thyrsus.com ¿¡°Ô º¸³»Áֱ⠹ٶõ´Ù. 2. ¹Ù¶÷Á÷ÇÑ ÇÁ·ÎÁ§Æ® À̸§°ú ¾ÐÃà ÆÄÀÏ À̸§À» Áþ´Â °ü·Ê Sunsite¿Í PSA, CPAN °ú °°Àº º¸°ü¼Ò¸¦ À¯ÁöÇÏ´Â »ç¶÷ÀÇ ÀÛ¾÷·®ÀÌ Áõ°¡Çϸ鼭 ºÎºÐÀûÀ¸·Î³ª ÀüÀûÀ¸·Î(¿ÏÀüÈ÷ »ç¶÷¿¡ ÀÇÇØ¼­°¡ ¾Æ´Ï¶ó) ÇÁ·Î±×·¥¿¡ ÀÇÇÑ ÀÛ¾÷ÀÌ Áõ°¡ÇÏ´Â Ãß¼¼ÀÌ´Ù. ÀÌ·¯ÇÑ »óȲ¿¡¼­´Â ÆÄÀÏ ºÐ·ùÇÏ´Â ÀÛ¾÷À» ÇÏ´Â ÄÄÇ»ÅÍ ÇÁ·Î±×·¥ÀÌ ÇØ¼®Çϰí ÀÌÇØÇÒ ¼ö ÀÖ´Â ±ÔÄ¢ÀûÀÎ ÇüÅ¿¡ ¾Ë¸ÂÀº ÇÁ·ÎÁ§Æ®¿Í ¾ÐÃà ÆÄÀÏÀÇ À̸§ÀÌ Áß¿äÇÏ°Ô µÇ¾ú´Ù. 2.1. GNU-½ºÅ¸ÀÏÀÇ À̸§ »ç¿ë. Á¢µÎ»ç-major¹øÈ£.minor¹øÈ£.patch¹øÈ£ ´ç½ÅÀÇ ¾ÐÃà ÆÄÀÏÀÌ ¼Ò¹®ÀÚ ¾ËÆÄºª°ú ¼ýÀÚ·Î µÈ Á¢µÎ»ç ±× ´ÙÀ½ ÀÌÀ½¼±(dash) ±×¸®°í ¹öÀü ¹øÈ£, È®ÀåÀÚ(extension)¿Í ´Ù¸¥ Á¢¹Ì»ç·Î µÇ¾î ÀÖ´Â GNU½ÄÀÇ À̸§À» °¡Áö°í ÀÖ´Ù¸é ¸ðµç ÀÌ¿¡°Ô µµ¿òÀÌ µÉ °ÍÀÌ´Ù. version 1, release 2, level 3 ÀÎ `foobar'¶ó´Â ÇÁ·ÎÁ§Æ®¸¦ °¡Áö°í ÀÖ´Ù°í °¡Á¤Çغ¸ÀÚ. ¸¸¾à ±×°ÍÀÌ ÇϳªÀÇ ¾ÐÃà ÆÄÀÏÀÇ ÇѺκÐ(¾Æ¸¶ ¼Ò½º°ÚÁÒ)À̶ó¸é ¾ÐÃà ÆÄÀÏÀÇ À̸§Àº ´ÙÀ½°ú °°À» °ÍÀÌ´Ù. foobar-1.2.3.tar.gz ¼Ò½º ¾ÐÃà ÆÄÀÏ foobar.lsm LSM ÆÄÀÏ (asuming you're submitting to Sunsite). Á¦¹ß ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏÁö ¸¶¶ó: foobar123.tar.gz ¸¹Àº ÇÁ·Î±×·¥¿¡°Ô `foobar123'À̶ó°í ºÒ¸®´Â ¹öÀü ¹øÈ£°¡ ¾ø´Â ÇÁ·ÎÁ§Æ®ÀÇ ¾ÐÃà ÆÄÀÏó·³ º¸ÀÏ °ÍÀÌ´Ù. foobar1.2.3.tar.gz ¸¹Àº ÇÁ·Î±×·¥¿¡°Ô `foobar1'À̶ó°í ºÒ¸®´Â ¹öÀü 2.3 ÀÎ ÇÁ·ÎÁ§Æ®ÀÇ ¾ÐÃà ÆÄÀÏó·³ º¸ÀÏ °ÍÀÌ´Ù. foobar-v1.2.3.tar.gz ¸¹Àº ÇÁ·Î±×·¥ÀÌ ÇÁ·ÎÁ§Æ® À̸§À» `foobar-v1'À̶ó°í »ý°¢ÇÒ °ÍÀÌ´Ù. foo_bar-1.2.3.tar.gz ¹ØÁÙ(underscore)Àº ¸»Çϰí, ÀÔ·ÂÇϰí, ±â¾ïÇϱâ Èûµé´Ù. FooBar-1.2.3.tar.gz ´ç½ÅÀÌ ¹Ùº¸(marketing weenie)°¡ ¾Æ´Ñ ÇÑ ÀÌ°Í ¶ÇÇÑ ¸»Çϰí, ÀÔ·ÂÇϰí, ±â¾ïÇϱâ Èûµé´Ù. ¼Ò½º¿Í ¹ÙÀ̳ʸ® ¶Ç´Â ´Ù¸¥ Á¾·ùÀÇ ¹ÙÀ̳ʸ®¸¦ ±¸ºÐÇϰųª ÆÄÀÏ À̸§¿¡ ¾î¶² Á¾·ùÀÇ Á¦ÀÛ ¿É¼ÇÀ» Ç¥ÇöÇÏ·Á¸é Á¦¹ß ¹öÀü ¹øÈ£ µÚ¿¡ ¿À´Â ÆÄÀÏ È®ÀåÀÚ(extension)·Î ¼³¸íÇØ¶ó. ±×°ÍÀº ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù: foobar-1.2.3.src.tar.gz ¼Ò½º foobar-1.2.3.bin.tar.gz Á¾·ù¸¦ ¾Ë ¼ö ¾ø´Â ¹ÙÀ̳ʸ® foobar-1.2.3.bin.ELF.tar.gz ELF ¹ÙÀ̳ʸ® foobar-1.2.3.bin.ELF.static.tar.gz ELF Á¤Àû ¸µÅ©µÈ ¹ÙÀ̳ʸ® foobar-1.2.3.bin.SPARC.tar.gz SPARC ¹ÙÀ̳ʸ® Á¦¹ß `foobar-ELF-1.2.3.tar.gz'¿Í °°ÀÌ »ç¿ëÇÏÁö ¸¶¶ó. ¿Ö³ÄÇϸé ÇÁ·Î±×·¥Àº Á¢µÎ»ç¿¡ »ðÀÔµÈ Á¾·ù¸¦ ³ªÅ¸³»´Â ºÎºÐ(`-ELF'¿Í °°Àº)À» ÀÌÇØÇϱ⠸øÇϱ⠶§¹®ÀÌ´Ù. ÀϹÝÀûÀ¸·Î ¹Ù¶÷Á÷ÇÑ À̸§ÀÇ ÇüÅ´ ´ÙÀ½°ú °°Àº ¼ø¼­·Î µÇ¾î ÀÖ´Ù: 1. ÇÁ·ÎÁ§Æ® Á¢µÎ»ç 2. ÀÌÀ½¼±(dash) 3. ¹öÀü ¹øÈ£ 4. ¸¶Ä§Ç¥(dot) 5. "src" ¶Ç´Â "bin" (¼±ÅûçÇ×) 6. ¸¶Ä§Ç¥(dot) ¶Ç´Â ÀÌÀ½¼±(dash) (¸¶Ä§Ç¥¸¦ ¼±È£ÇÔ) 7. ¹ÙÀ̳ʸ® Á¾·ù¿Í ¿É¼Çµé (¼±ÅûçÇ×) 8. ¾ÐÃà È®ÀåÀÚ 2.2. ÀÔ·ÂÇϱ⠽±°í °íÀ¯ÇÑ À̸§ÀÇ Á¢µÎ»ç¸¦ °í¸£´Âµ¥ ½ÅÁßÇ϶ó Á¢µÎ»ç´Â ¸ðµç ÇÁ·ÎÁ§Æ® ÆÄÀϵ鿡°Ô °øÀ¯µÇ¾î¾ß Çϰí Àаí ÀÔ·ÂÇÏ°í ±â¾ï Çϱ⠽¬¿ö¾ß ÇÑ´Ù. ±×·¯¹Ç·Î ¹ØÁÙ(underscore)Àº »ç¿ëÇÏÁö ¸¶¶ó. ±×¸®°í ¾ÆÁÖ Æ¯º°ÇÑ ÀÌÀ¯°¡ ¾ø´Ù¸é ´ë¹®ÀÚ·Î ½ÃÀÛÇϰųª °¡¿îµ¥¿¡ ´ë¹®ÀÚ¸¦ »ç¿ëÇÏÁö¸¶¶ó. -- ÀÌ·¯ÇÑ °ÍµéÀº ´«À¸·Î ÀÚ¿¬½º·´°Ô Àд °ÍÀ» ¹æÇØÇϰí, ¹Ùº¸°¡ ¿µ¸®ÇØ º¸ÀÌ·Á´Â °Íó·³ º¸ÀδÙ. Á¢µÎ»ç°¡ °íÀ¯ÇÑ °ÍÀÌ ¾Æ´Ï¶ó¸é ±×°Í°ú °°Àº À̸§ÀÇ Á¢µÎ»ç¸¦ °¡Áø ÇÁ·ÎÁ§Æ®¸¦ ¿î¿µÇÏ´Â »ç¶÷µéÀ» È¥¶õ½º·´°Ô ¸¸µé °ÍÀÌ´Ù. ±×·¡¼­ ¸Ç óÀ½ ¹ßÇ¥Çϱâ Àü¿¡ À̸§ÀÌ Áߺ¹µÇ´ÂÁö È®ÀÎÇØ º¸¶ó. È®ÀÎÇϱâ ÁÁÀº °÷Àº index file of Sunsite ÀÌ´Ù. 3. ¹Ù¶÷Á÷ÇÑ °³¹ßÀÇ °ü·Ê ÀÌ¿¡ °üÇÑ ³»¿ëµé Áß ´ëºÎºÐÀº ¸®´ª½º»Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥ À¯´Ð½º¿¡¼­µµ À̽İ¡´ÉÇϵµ·Ï ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â °Í°ú °ü·ÃÀÌ ÀÖ´Ù. ´Ù¸¥ À¯´Ð½º¿¡ À̽İ¡´ÉÇÏ°Ô ÇÏ´Â °ÍÀº ´ÜÁö Àü¹®ÀûÀ̰í ÇØÄ¿ÀÇ °í»óÇÑ °¡Ä¡ÀÇ ÇüŰ¡ ¾Æ´Ï¶ó, ¸®´ª½º ½º½º·Î ¹Ì·¡ÀÇ º¯È­¿¡ ´ëºñÇÏ´Â °Í¿¡ °¡Ä¡°¡ ÀÖ´Ù. ¸¶Áö¸·À¸·Î, ´Ù¸¥ »ç¶÷ÀÌ ´ç½ÅÀÇ Äڵ带 ¸®´ª½º ½Ã½ºÅÛÀÌ ¾Æ´Ñ °÷¿¡¼­ »ç¿ëÇÏ·Á°í ÇÑ´Ù¸é, À̽ļºÀº ´ç½ÅÀÌ ¹ÞÀ» ¼º°¡½Ã°í ³­Ã³ÇÑ ¸ÞÀϵéÀ» ÃÖ¼ÒÇÑÀ¸·Î ÁÙÀÏ ¼ö ÀÖÀ» °ÍÀÌ´Ù. 3.1. ANSI C ³ª À̽İ¡´ÉÇÑ ½ºÅ©¸³ ¾ð¾î·Î ÀÛ¼ºÇ϶ó À̽ļº°ú ¾ÈÀü¼ºÀ» À§ÇØ ANSI C ³ª À̽İ¡´ÉÇÑ ½ºÅ©¸³ ¾ð¾î·Î ÀÛ¼ºÇØ¾ß ÇÑ´Ù. ¿Ö³ÄÇÏ¸é ´Ù¸¥ Ç÷§Æû¿¡¼­ÀÇ ½ÇÇàÀ» À§Çؼ­ÀÌ´Ù. ½ºÅ©¸³ ¾ð¾î·Î Àû´çÇÑ °ÍÀº Python, Perl, Tcl, ±×¸®°í Emacs LispµîÀÌ´Ù. °£´ÜÇÑ ¿¾³¯ shell Àº Àû´çÇÏÁö ¾Ê´Ù. ±¸º°Çϱâ Èûµç ƯÀÌÇÑ Ç¥Çö¹ý°ú shell aliases¿Í °°Àº »ç¿ëÀÚ ¼³Á¤ÀÇ È¥¶õ¿¡ ¿µÇâÀ» ¹Þ´Â shell ȯ°æ ¶§¹®¿¡ ½ÇÇà¿¡ ¸¹Àº ¾î·Á¿òÀÌ ÀÖ´Ù. ÀÚ¹Ù´Â À̽İ¡´ÉÇÑ ¾ð¾î¶ó°í ¹Ï¾îÁ®ÁöÁö¸¸ ¸®´ª½º¿¡¼­ÀÇ ½ÇÇàÀº ¾ÆÁ÷±îÁö ¼­Åø°í ºÎÁ·ÇÏ´Ù. ÀÚ¹ÙÀÇ ¼ºÀåÀ¸·Î ³¯·Î ÀαⰡ ³ô¾ÆÁöÁö¸¸ ÀÚ¹Ù´Â ¿©ÀüÈ÷ Èûµç ¼±ÅÃÀÌ´Ù. 3.2. C°¡ À̽İ¡´ÉÇϵµ·Ï °ü·Ê¸¦ µû¶ó¶ó ¸¸¾à C·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù¸é ¿ÏÀüÇÑ ANSI ±ÔÁ¤(´Ù¸¥ ¸ðµâ°úÀÇ ºÒÀÏÄ¡¸¦ ¾Ë ¼ö ÀÖµµ·Ï µµ¿ÍÁÖ´Â ÇÔ¼ö ÇÁ·ÎŸÀÔÀ» Æ÷ÇÔÇÑ)À» µû¸¥ °ÍÀ» »ç¿ëÇØµµ ±¦Âú´Ù. ±¸½ÄÀÇ K&R ÄÄÆÄÀÏ·¯°¡ °íÀüÀûÀÌ´Ù. ±× ¹Ý¸é, GCC-specific ±ÔÁ¤(`-pipe' ¿É¼Ç°ú °°Àº)¶Ç´Â nested ÇÔ¼ö°¡ À̽İ¡´ÉÇÒ °ÍÀ̶ó°í ÃßÃøÇÏÁö¸¶¶ó. À̰͵éÀº °©Àڱ⠳ªÅ¸³ª¼­ ¸®´ª½º ½Ã½ºÅÛ, GCC ½Ã½ºÅÛÀÌ ¾Æ´Ñ °÷¿¡ ¿Å±â·Á´Â »ç¶÷ÀÌ ´ç½ÅÀ» ±«·ÓÈ÷°Ô ¸¸µé °ÍÀÌ´Ù. 3.3. autoconf/automake/autoheader ¸¦ »ç¿ëÇ϶ó C¸¦ »ç¿ëÇØ¼­ ÇÁ·Î±×·¥À» ÀÛ¼ºÇß´Ù¸é ´Ù¸¥ °÷¿¡ À̽ÄÇÒ ¼ö ÀÖµµ·Ï Á¶Á¤ÇÏ°í ½Ã½ºÅÛ ¼³Á¤¿¡ ÀûÀÀÇÏ°í ¶Ç makefileÀ» °íÄ¡±â À§Çؼ­ autoconf/automake/ autoheaderÀ» »ç¿ëÇØ¶ó. ¿äÁò ¼Ò½º¸¦ ÇÁ·Î±×·¥À» »ç¿ëÇϰí(build) ½Í¾îÇÏ´Â »ç¶÷µéÀº "configure; make"¶ó°í Ä¡¸é ±ú²ýÇÏ°Ô ÇÁ·Î±×·¥ÀÌ ¸¸µé¾îÁö±â¸¦ ¹Ù¶õ´Ù -- ±×¸®°í ±×·¸°Ô ÇØ¾ß ÇÑ´Ù. 3.4. °ø°³ ¹ßÇ¥ Àü¿¡ Äڵ尡 ¿ÂÀüÇÑÁö °Ë»çÇ϶ó C·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿´´Ù¸é `-Wall' ¿É¼ÇÀ» »ç¿ëÇÏ¿© Å×½ºÆ®-ÄÄÆÄÀÏ·¯¸¦ ÇØº¸°í °ø°³Çϱâ Àü¿¡ ÃÖ¼ÒÇÑ ÇѹøÀÌ¶óµµ ¿À·ù¸¦ Á¦°ÅÇØ¾ß ÇÑ´Ù. ÀÌ·¸°Ô ÇÏ¸é ¸¹Àº ¾öû³­ ¿À·ùµéÀ» ¹ß°ßÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. öÀúÇÏ°Ô `-pedantic' ¿É¼ÇÀ» »ç¿ëÇØ ÄÄÆÄÀÏ·¯ ÇÏ´Â °Íµµ ÁÁÀº ¹æ¹ýÀÌ´Ù. PerlÀ» »ç¿ëÇÏ¿´´Ù¸é °ø°³ Àü¿¡ perl -c, perl -w, ±×¸®°í perl -T¸¦ »ç¿ëÇØ¼­ Äڵ带 °Ë»çÇØ¾ß ÇÑ´Ù. (Perl¿¡ °üÇÑ ¹®¼­¸¦ Âü°íÇ϶ó) 4. ¹Ù¶÷Á÷ÇÑ ¹èÆ÷º» Á¦ÀÛÀÇ °ü·Ê ÀÌ ÁöħµéÀº ´Ù¸¥ À̵éÀÌ ´ç½ÅÀÇ ¹èÆ÷º»À» ´Ù¿î·Îµå ¹Þ°í, °Ë»öÇϰí, ¾ÐÃàÀ» Ç® ¶§¿¡ ´ç½ÅÀÇ ¹èÆ÷º»ÀÌ ¾î¶»°Ô º¸¿©Á®¾ß ÇÏ´ÂÁö¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. 4.1. tar ÆÄÀÏÀÌ Ç×»ó »õ·Î¿î ÇÑ °³ÀÇ µð·ºÅ丮¿¡ Ç®¸®µµ·Ï ¸¸µé¾î¶ó Ãʺ¸ °³¹ßÀÚµéÀÌ ÇÏ´Â °¡Àå ¼º°¡½Å ½Ç¼ö ÁßÀÇ Çϳª°¡ tar ÆÄÀÏÀ» ¹èÆ÷º»ÀÌ ÀÖ´Â ÇöÀçÀÇ µð·ºÅ丮¿¡ ¾ÐÃàÀÌ Ç®¸®µµ·Ï ¸¸µå´Â °ÍÀÌ´Ù. À̰ÍÀº ÇöÀç µð·ºÅ丮¿¡ ÀÌ¹Ì Á¸ÀçÇÏ´Â ÆÄÀÏÀ» µ¤¾î¾µ À§ÇèÀÌ ÀÖ´Ù. ÀÌ·± ½Ç¼ö¸¦ Àý´ë·Î ÇÏÁö¸¶¶ó! ±× ´ë½Å, ÇÁ·ÎÁ§Æ®ÀÇ À̸§À» µû¼­ ¸¸µç ÇϳªÀÇ °øÅë µð·ºÅ丮¸¦ ¼ÒÀ¯ÇÏ´Â ¾ÐÃà ÆÄÀÏÀ» ¸¸µé¾î ÃÖ»óÀ§ µð·ºÅ丮ÀÇ ¹Ù·Î ¾Æ·¡ µð·ºÅ丮¿¡ ¾ÐÃàÀÌ Ç®¸®µµ·Ï ¸¸µé¾î¶ó. ¿©±â makefile Æ®¸¯(trick)ÀÌ ÀÖ´Ù. `foobar'À̶ó´Â ¹èÆ÷º»ÀÇ µð·ºÅ丮¸¦ °¡Áö°í ÀÖÀ¸¸ç SRC°¡ ¹èÆ÷º»ÀÇ ÆÄÀÏ ¸®½ºÆ®¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù°í °¡Á¤ÇÏ¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù. ÀÌ·¸°Ô Çϱâ À§Çؼ­´Â GNU tar 1.13ÀÌ ÇÊ¿äÇÏ´Ù. VERS=1.0 foobar-$(VERS).tar.gz: tar --name-prefix='foobar-$(VERS)/' -czf foobar-$(VERS).tar.gz $(SRC) ¸¸¾à ¿À·¡µÈ tar ÇÁ·Î±×·¥À» °¡Áö°í ÀÖ´Ù¸é ÀÌ·¸°Ô ÇÏ¸é µÈ´Ù: foobar-$(VERS).tar.gz: @ls $(SRC) | sed s:^:foobar-$(VERS)/: >MANIFEST @(cd ..; ln -s foobar foobar-$(VERS)) (cd ..; tar -czvf foobar/foobar-$(VERS).tar.gz `cat foobar/MANIFEST`) @(cd ..; rm foobar-$(VERS)) 4.2. README¸¦ Æ÷ÇÔ½ÃÄѶó README ¶Ç´Â READ.ME ÆÄÀÏÀ» Æ÷ÇÔ½ÃŰ¸é ±×°ÍÀº ¼Ò½º ¹èÆ÷º»ÀÇ Áöħ¼­°¡ µÉ °ÍÀÌ´Ù. ¿À·£ °ü·Ê¿¡ µû¶ó À̰ÍÀº ¼Ò½ºÀÇ ¾ÐÃàÀ» Ç®Àº ¿ë°¨ÇÑ Å½Çè°¡°¡ °¡Àå ¸ÕÀú Àоî¾ß ÇÏ´Â ÆÄÀÏÀÌ´Ù. README ÆÄÀÏ¿¡ Æ÷ÇԵǾî¾ß ÇÒ ¹Ù¶÷Á÷ÇÑ °Íµé: o ÇÁ·ÎÁ§Æ®ÀÇ °£´ÜÇÑ ¼³¸í. o ÇÁ·ÎÁ§Æ® À¥»çÀÌÆ®ÀÇ ÁÖ¼Ò(¸¸¾à °¡Áö°í ÀÖ´Ù¸é). o °³¹ßÀÚÀÇ Á¦ÀÛ È¯°æ°ú ÀáÀçÇϰí ÀÖ´Â ¹®Á¦Á¡. o Áß¿äÇÑ ÆÄÀÏ¿¡ ´ëÇÑ ¼³¸í°ú ÇÏÀ§ µð·ºÅ丮. o Á¦ÀÛ/¼³Ä¡¿¡ °üÇÑ ¼³¸íÀ̳ª ±×·¯ÇÑ ³»¿ëÀ» Æ÷ÇÔÇÑ ÆÄÀÏÀÇ À̸§ (º¸Åë INSTALL). o ÇÁ·ÎÁ§Æ®¸¦ ²Ù·Á ³ª°¡´Â »ç¶÷/Áö¿øÇØ ÁÖ´Â »ç¶÷ÀÇ ¸®½ºÆ®³ª ±×·¯ÇÑ ³»¿ëÀ» Æ÷ÇÔÇÑ ÆÄÀÏÀÇ À̸§(º¸Åë CREDITS). o ÃÖ±Ù ÇÁ·ÎÁ§Æ®ÀÇ ¼Ò½ÄÀ̳ª ±×·¯ÇÑ ³»¿ëÀ» Æ÷ÇÔÇÑ ÆÄÀÏÀÇ À̸§ (º¸Åë NEWS). 4.3. ÀϹÝÀûÀÎ ÆÄÀÏ À̸§À» Áþ´Â °ü·Ê¸¦ Á¸ÁßÇÏ°í µû¶ó¶ó README ÆÄÀÏÀ» º¸±â Àü¿¡µµ ´ç½ÅÀÇ ¿ë°¨ÇÑ Å½Çè°¡(»ç¿ëÀÚ)´Â ¹èÆ÷º»ÀÇ ÃÖ»óÀ§ µð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀϵéÀ» ÈȾ °ÍÀÌ´Ù. ÆÄÀÏÀÇ À̸§Àº ±×°Í ÀÚü·Î Á¤º¸¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù. È®½ÇÇÑ ÀϹÝÀû À̸§ Áþ´Â ¹æ¹ýÀÇ °ü·Ê¸¦ µû¸§À¸·Î¼­ ŽÇè°¡¿¡°Ô ´ÙÀ½¿¡ ¹«¾ùÀ» º¸¾Æ¾ß ÇÒÁö ½Ç¸¶¸®¸¦ Á¦°øÇØ ÁÙ ¼ö ÀÖ´Ù. ¿©±â ¸î °³ÀÇ ÀϹÝÀûÀÎ ÃÖ»óÀ§ ÆÄÀÏ À̸§°ú ±×°ÍµéÀÌ ÀǹÌÇÏ´Â °ÍÀÌ ÀÖ´Ù. ¸ðµç ¹èÆ÷º»ÀÌ ´ÙÀ½ ¸ðµÎ¸¦ ÇÊ¿ä·Î ÇÏÁø ¾Ê´Â´Ù. README ¶Ç´Â READ.ME °¡Àå ¸ÕÀú Àоî¾ß ÇÒ Áöħ ÆÄÀÏ INSTALL ¼³Á¤, Á¦ÀÛ(build) ±×¸®°í ¼³Ä¡¿¡ °üÇÑ Á¤º¸ CREDITS ÇÁ·ÎÁ§Æ®¸¦ Áö¿øÇØ ÁÖ´Â »ç¶÷ÀÇ ¸®½ºÆ® NEWS ÃÖ±Ù ÇÁ·ÎÁ§Æ® ¼Ò½Ä HISTORY ÇÁ·ÎÁ§Æ® º¯Ãµ °úÁ¤ COPYING ÇÁ·ÎÁ§Æ® ¶óÀ̼¾¼­ (GNU °ü½À) LICENSE ÇÁ·ÎÁ§Æ® ¶óÀ̼¾¼­ MANIFEST ¹èÆ÷º»ÀÇ ÆÄÀÏ ¸®½ºÆ® FAQ ÇÁ·ÎÁ§Æ®¿¡ °üÇÑ `Áú¹®°ú ´ë´ä'ÀÇ ÅØ½ºÆ® Çü½ÄÀÇ ÆÄÀÏ TAGS Emacs³ª viÀÇ »ç¿ëÀ¸·Î »ý±ä ÆÄÀÏ »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ´Â ¸ðµç ÆÐŰÁö¿¡ °üÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÑ ÆÄÀÏÀÇ À̸§Àº ¸ðµÎ ´ë¹®ÀÚ¸¦ »ç¿ëÇÑ´Ù´Â °ÍÀ» ±â¾ïÇØ Áֱ⠹ٶõ´Ù. 5. ¹Ù¶÷Á÷ÇÏ°Ô ¾Ë¸®´Â ¹æ¹ý¿¡ ´ëÇÑ °ü·Ê ´ç½ÅÀÇ ¼ÒÇÁÆ®¿þ¾î°¡ Á¸Àç ÇÑ´Ù´Â °ÍÀ» ´ç½Å¸¸ ¾Ë°í ´Ù¸¥ ´©±¸µµ ¾ËÁö ¸ø ÇÑ´Ù¸é ¼¼»ó¿¡ ÁÁÀº ÀÏÀ» ÇÏÁö ¸øÇÒ °ÍÀÌ´Ù. ÀÎÅͳݻóÀÇ ÇÁ·ÎÁ§Æ®ÀÇ Á¸À縦 ¾Ë¸®¹Ç·Î¼­ Ãʺ¸»ç¿ëÀÚµé°ú °øµ¿°³¹ßÀÚµéÀÇ µµ¿òÀ» ¹ÞÀ» ¼ö ÀÖ´Ù. ¿©±â ±×·¸°Ô ÇÏ´Â ÀϹÝÀûÀÎ ¹æ¹ýÀÌ ÀÖ´Ù. 5.1. c.o.l.a ¿¡ ¾Ë·Á¶ó »õ·Î¿î °ø°³(releases)¸¦ comp.os.linux.announce ¿¡ ¾Ë·Á¶ó. ±×¸®°í ¸¹Àº »ç¶÷µéÀÌ ¾Ë ¼ö ÀÖ°Ô Freshmeat °ú °°Àº À¥±â¹ÝÀÇ what's-new »çÀÌÆ®¿¡µµ ÆÛÆ®·Á¶ó. 5.2. ÁÖÁ¦¿Í °ü·ÃµÈ ´º½º±×·ì¿¡ ¾Ë·Á¶ó ´ç½ÅÀÇ ÇÁ·Î±×·¥°ú Á÷Á¢ÀûÀ¸·Î °ü·ÃµÈ ÁÖÁ¦ÀÇ USENET ±×·ìÀ» ã¾Æ¼­ ±×°÷¿¡ ¾Ë·Á¶ó. ÄÚµåÀÇ ±â´É°¡ Á÷Á¢ °ü·ÃµÈ °÷¿¡¸¸ °Ô½ÃÇÏ°í ¾Æ¹« °÷¿¡³ª °Ô½ÃÇÏÁö¸¶¶ó. ¿¹¸¦ µé¾î ¸¸¾à IMAP servers ¿¡ °ü·ÃµÈ ÇÁ·Î±×·¥À» PerlÀ» ÀÌ¿ëÇØ¼­ ÀÛ¼ºÇß´Ù¸é, comp.mail.imap¿¡ È®½ÇÈ÷ °Ô½ÃÇØ¾ß ÇϰÚÁö¸¸, »õ·Î¿î Perl ±â¼úÀÇ ±³À°ÀûÀÎ ¿¹°¡ ¾Æ´Ï¶ó¸é comp.lang.perl¿¡ °Ô½ÃÇÏ¸é ¾È µÉ °ÍÀÌ´Ù. ´ç½ÅÀÌ ¾Ë¸± ¶§¿¡´Â ¹Ýµå½Ã ÇÁ·ÎÁ§Æ® À¥»çÀÌÆ®ÀÇ ÁÖ¼Ò¸¦ ÇÔ²² ¾Ë·Á¾ß ÇÑ´Ù. 5.3. À¥»çÀÌÆ®¸¦ °¡Á®¶ó ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ® ÁÖÀ§¿¡ ¸¹Àº »ç¿ëÀÚµé°ú °³¹ßÀÚµéÀÇ Áý´ÜÀ» ¸¸µé°í ½Í´Ù¸é À¥»çÀÌÆ®°¡ ÇÊ¿äÇÒ °ÍÀÌ´Ù. À¥»çÀÌÆ®´Â ÀϹÝÀûÀÎ ´ÙÀ½°ú °°Àº °ÍÀ» Æ÷ÇÔÇϰí ÀÖ¾î¾ß ÇÑ´Ù: o ÇÁ·ÎÁ§Æ®ÀÇ °³°ü (±×°ÍÀÌ Á¸ÀçÇÏ´Â ÀÌÀ¯, ÀÌ¿ëÇØ¾ß ÇÏ´Â »ç¶÷ µî). o ÇÁ·ÎÁ§Æ® ¼Ò½º¸¦ ´Ù¿î·Îµå¹ÞÀ» ¼ö ÀÖ´Â ¸µÅ©. o ÇÁ·ÎÁ§Æ® ¸ÞÀϸµ ¸®½ºÆ®¿¡ Âü¿©ÇÏ´Â ¹æ¹ý. o FAQ (ºó¹øÇÏ°Ô Á¢ÇÏ´Â Áú¹®) ¸®½ºÆ®. o ÇÁ·ÎÁ§Æ® ¹®¼­ÀÇ HTML ¹öÀü. o °ü·ÃÀÌ Àְųª °æÀï °ü°è¿¡ ÀÖ´Â ÇÁ·ÎÁ§Æ®ÀÇ ¸µÅ©. ¾î¶² ÇÁ·ÎÁ§Æ® »çÀÌÆ®´Â ¾Æ¹«³ª ¸¶½ºÅÍ(master) ¼Ò½º¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ÁÖ¼Ò¸¦ °¡Áö°í ÀÖ´Ù. 5.4. ÇÁ·ÎÁ§Æ® ¸ÞÀϸµ ¸®½ºÆ®¸¦ ¿î¿µÇ϶ó ÇÁ·ÎÁ§Æ®¸¦ µ½´Â ¿©·¯ »ç¶÷µéÀÌ Á¤º¸¸¦ ±³È¯ÇÏ°í ÆÐÄ¡¸¦ ±³È¯Çϱâ À§ÇÑ »çÀûÀÎ °³¹ß ¸®½ºÆ®¸¦ °¡Áö´Â °ÍÀº ÀϹÝÀûÀÎ °ü·ÊÀÌ´Ù. ¶Ç ÇÁ·ÎÁ§Æ®ÀÇ ÁøÇà »óȲÀ» ±Ã±ÞÇØ ÇÏ´Â »ç¶÷µéÀ» À§ÇÑ °ø°³ ¸®½ºÆ®¸¦ °¡Áö´Â °Íµµ ÁÁÀ» °ÍÀÌ´Ù. 5.5. ÁÖ¿äÇÑ º¸°ü¼Ò(major archives)¿¡ °ø°³(release)Ç϶ó Áö³­ ¸î ³â µ¿¾È Sunsite archive ´Â ¸®´ª½º ¼ÒÇÁÆ®¿þ¾îÀÇ °¡Àå Áß¿äÇÑ ±³È¯ Àå¼Ò°¡ µÇ¾ú´Ù. ´Ù¸¥ Áß¿äÇÑ °÷µéÀÇ ÁÖ¼ÒÀÌ´Ù: o the Python Software Activity site (PythonÀ¸·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥À» À§ÇÑ). o the CPAN , the Comprehensive Perl Archive Network, (Perl·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥À» À§ÇÑ). 5.6. RPMÀ» Á¦°øÇÏ¶ó ¼³Ä¡ÇÒ ¼ö ÀÖ´Â ¹ÙÀ̳ʸ® ÆÐŰÁöÀÇ »ç½Ç»óÀÇ Ç¥ÁØ ÇüÅ·Π·¹µåÇÞ ÆÐŰÁö ¸Å´ÏÀú, RPMÀÌ »ç¿ëµÈ´Ù. °¡Àå Àαâ ÀÖ´Â ¸®´ª½º ¹èÆ÷º»¿¡ »ç¿ëµÇ¸ç ´Ù¸¥ ¸ðµç ¸®´ª½º ¹èÆ÷º»(µ¥ºñ¾È°ú ½½·¢¿þ¾î´Â Á¦¿Ü)¿¡¼­µµ »ç¿ëµÈ´Ù. µû¶ó¼­, ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ® »çÀÌÆ®¿¡¼­ ¼³Ä¡ °¡´ÉÇÑ RPMÀ» Á¦°øÇÏ´Â °ÍÀº ¼Ò½º tar ÆÄÀÏÀ» Á¦°øÇÏ´Â °Í°ú °°ÀÌ ¹Ù¶÷Á÷ÇÑ »ý°¢ÀÌ´Ù.