· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Software-Building-HOWTO

<!doctype linuxdoc system>


<article>

<!-- Title information -->

<title>¸®´ª½º¿ë ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁö¸¦ ÄÄÆÄÀÏÇϰí ÀνºÅçÇϱâ

<author>
<em><url url="mailto:thegrendel@theriver.com"
name="Mendel Cooper"></em>
---
<url url="http://personal.riverusers.com/~thegrendel/"
name="http://personal.riverusers.com/~thegrendel/">

<date>v1.91, 27 July 1999

<trans>¹ø¿ª: ¹Ú¹Î¼® <tt/mpark@hrl.hitachi.co.jp/

<abstract>
ÀÌ ±ÛÀº ¸®´ª½º¿¡¼­ "ÀϹÝÀûÀÎ" À¯´Ð½º ¼ÒÇÁÆ®¿þ¾î ¹èÆ÷º»À» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â
¹æ¹ý¿¡ ´ëÇÑ ¾È³»¼­ÀÌ´Ù.  ¾Æ¿ï·¯ "rpm"°ú "deb" Çü½ÄÀ¸·Î ¹Ì¸® ÆÐŰÁöÈ­µÈ 
¹ÙÀ̳ʸ®µé¿¡ ´ëÇØ¼­µµ Á¶±Ý ´Ù·é´Ù.
</abstract>

<!-- Table of contents -->
<toc>

<!-- Begin the document -->

<sect>µµÀÔ
<p>
À¯´Ð½º¿Í ¸®´ª½º¿ëÀÇ ¸¹Àº ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁö°¡ ¾ÐÃàµÈ ¼Ò½º ÆÄÀÏ »óÅ·Π¹èÆ÷µÈ´Ù.  
¶È°°Àº ÆÐŰÁö°¡ ¼­·Î ´Ù¸¥ Á¾·ùÀÇ ÄÄÇ»ÅÍ¿¡¼­ µ¹¾Æ°¡µµ·Ï ÄÄÆÄÀ쵃 ¼ö ÀÖ°í, 
µû¶ó¼­ ¼ÒÇÁÆ®¿þ¾î Á¦ÀÛÀÚ´Â ¿©·¯ ¹öÁ¯À» ¸¸µå´Â ¼ö°í¸¦ ´ú ¼ö ÀÖ´Ù.
ÀÌ·¸°Ô ÇØ¼­, ÇÑ ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁöÀÇ ¹èÆ÷º»ÀÌ ÀÎÅÚÀ» ºñ·ÔÇØ DECÀÇ ¾ËÆÄ, 
RISC ¿öÅ©½ºÅ×À̼ǿ¡¼­ ¸ÞÀÎ ÇÁ·¹ÀÓ¿¡ À̸£´Â ÄÄÇ»ÅÍ¿¡¼­ ÄÄÆÄÀÏµÇ°í »ç¿ëµÈ´Ù.
ÇÏÁö¸¸ ºÒÇàÇϰԵµ ÀÌ·± ¹æ½Ä¿¡¼­´Â »ç¿ëÀÚ -- ¹Ù·Î ´ç½Å -- ¿¡°Ô ¼ÒÇÁÆ®¿þ¾î¸¦ 
ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÒ Ã¥ÀÓÀ» Á®¾ß ÇÑ´Ù.  ÇÏÁö¸¸, ÀÌ °úÁ¤À» ÀÌÇØÇÏ´Â °ÍÀº º¸±âº¸´Ù
¾î·Æ°Å³ª ½Åºñ·Î¿î ÀÏÀÌ ¾Æ´Ï´Ù.  ÀÌ ¾È³»¼­°¡ º¸¿©ÁÖµíÀÌ ¸»ÀÌ´Ù.



<sect>ÆÄÀÏÀ» Ç®±â
<p>
´ç½ÅÀº ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁö¸¦ ´Ù¿î¹Þ´Â µîÀÇ ¹æ¹ýÀ¸·Î ±¸Çß´Ù.  ´ë°³ ±× ÆÐŰÁö´Â
<tt>.tar.gz</tt> À̳ª <tt>.tgz</tt> À̶ó´Â ÇüÅ·ΠÇÑ ÆÄÀÏ·Î 
¸ð¾Æ¼­(<em>tarred</em>) ¾ÐÃàÇÑ(<em>gzipped</em>) °ÍÀÌ´Ù.
(ÈçÈ÷ "tarball"À̶ó°í ¾Ë·ÁÁ®ÀÖ´Ù)  ¿ì¼± ÀÌ ÆÄÀÏÀ» Àû´çÇÑ ÀÛ¾÷ µð·ºÅ͸®·Î 
º¹»çÇÑ´Ù.  ´ÙÀ½¿£ ¾ÐÃàÀ» Ç®°í(<em>gunzip</em>) ¿ø·¡ÀÇ ¿©·¯ ÆÄÀÏ·Î 
Ç®¾î³õ´Â´Ù(<em>untar</em>).
<bf>tar xzvf <em>ÆÄÀÏÀ̸§</em></bf> À̶ó°í ÇÏ¸é µÈ´Ù.  ¹°·Ð <em>ÆÄÀÏÀ̸§</em> 
À̶õ ¼ÒÇÁÆ®¿þ¾î ÆÄÀÏÀÇ À̸§ÀÌ´Ù.  
tar¸¦ Ç®¸é º¸Åë ÇÏÀ§ µð·ºÅ͸®µéÀ» ¸¸µé°í °Å±â¿¡ Àû´çÈ÷ ÆÄÀϵéÀ» ¼³Ä¡ÇÑ´Ù.  
Ȥ½Ã ÆÐŰÁö ÆÄÀÏÀÇ È®ÀåÀÚ°¡ <em>.Z</em> ¶ó°í ÇØµµ À§ÀÇ ¹æ¹ýÀ» ¾µ ¼ö ÀÖ´Ù.
<bf>uncompress</bf>¸¦ ¼öÇàÇÑ ´ÙÀ½ <bf>tar xvf</bf> ¶ó°í ÇØµµ µÈ´Ù.  
<bf>tar tzvf ÆÄÀÏÀ̸§</bf>À̶ó°í Çϸé ÀÌ °úÁ¤À» ¹Ì¸® º¼ ¼ö ÀÖ´Ù.  
ÀÌ ¸í·ÉÀº ½ÇÁ¦·Î ¾ÐÃàÀ» ÇØÁ¦Çϰųª ÇÏÁö´Â ¾Ê°í ÆÐŰÁö ¾ÈÀÇ ÆÄÀÏ ¸ñ·ÏÀ» º¸¿©ÁØ´Ù.

"tarball"À» Ç®¾î³»´Â À§ ¹æ¹ýÀº ´ÙÀ½ÀÇ µÎ °¡Áö¿Í µ¿µîÇÏ´Ù.
<itemize>
<item>gzip -cd filename | tar xvf -
<item>gunzip -c filename | tar xvf -
</itemize>
('-'´Â <em>tar</em> ¸í·ÉÀÇ ÀÔ·ÂÀ» <tt>Ç¥ÁØÀÔ·Â</tt>À¸·ÎºÎÅÍ ÀÐ°Ô ÇÑ´Ù.)

»õ·Î¿î <em>bzip2</em>(<tt>.bz2</tt>) Çü½ÄÀÇ ¼Ò½º ÆÄÀÏÀº <bf>bzip2 -cd ÆÄÀÏÀ̸§ 
| tar xvf -</bf> ·Î Ç® ¼ö ÀÖ´Ù.  
¶Ç tar¿¡ ÀûÀýÇÑ ÆÐÄ¡¸¦ Çß´Ù¸é (ÀÚ¼¼ÇÑ °ÍÀº 
<htmlurl url="ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/mini/Bzip" name="Bzip2
HOWTO"> ¸¦ Âü°í)
°£´ÜÈ÷ <bf>tar xyvf ÆÄÀÏÀ̸§</bf> À̶ó´Â ¸í·ÉÀ¸·Î ÇÒ ¼öµµ ÀÖ´Ù.  
µ¥ºñ¾È ¸®´ª½º´Â È÷·Î½Ã ´ÙÄÉÄ«¿Í°¡ ¸¸µç ´Ù¸¥ <tt>tar</tt> ÆÐÄ¡¸¦ ¾²¹Ç·Î 
<em>-I, --bzip2, --bunzip2</em> °°Àº ¿É¼ÇÀ» »ç¿ëÇÑ´Ù.

[ À§ Á¤º¸¸¦ Á¤Á¤ÇÏ°í ¾÷µ¥ÀÌÆ®Çϵµ·Ï ÇØÁØ °Í¿¡ ´ëÇØ R. Lynn°ú Fabrizio 
Stefani¿¡°Ô °¨»çÇÑ´Ù.]



ÆÐŰÁöÀÇ ¼³Á¤ Á¤º¸¿¡ ÁöÁ¤µÈ °Í ¶§¹®¿¡, ¾î¶² ¶§´Â ¾ÐÃàµÈ ÆÄÀÏÀ» »ç¿ëÀÚÀÇ È¨ 
µð·ºÅ͸®³ª  <tt>/</tt>, <tt>/usr/src</tt>, <tt>/opt</tt> µîÀÇ ´Ù¸¥ 
µð·ºÅ͸®¿¡ Ç®¾î ¼³Ä¡ÇØ¾ß ÇÑ´Ù.
¾ÐÃàÀ» Ç® ¶§(untar) ¿¡·¯ ¸Þ½ÃÁö°¡ ³ª¿Â´Ù¸é, ÀÌ µð·ºÅ͸® ÁöÁ¤ ¶§¹®ÀÏ ¼ö ÀÖ´Ù.
ÆÐŰÁöÀÇ ¹®¼­ ÆÄÀÏ, ƯÈ÷ <tt>README</tt>¿Í Ȥ½Ã ÀÖ´Ù¸é <tt>INSTALL</tt> ÆÄÀÏÀ» 
ÀÐ¾î º¸¶ó.
±×¸®°í ¼³Ä¡ ¿ä·É¿¡ ¸Â°Ô config ÆÄÀϰú <tt>Makefile</tt>µéÀ» Çʿ信 µû¶ó 
°íÄ¡µµ·Ï ÇÏÀÚ.
<tt>Imake</tt> ÆÄÀÏÀº ´ë°³ °Çµå·Á¼­´Â <tt>¾ÈµÈ´Ù</tt>´Â Á¡¿¡ ÁÖÀÇÇ϶ó.  
°ÑÀ¸·Î µå·¯³ªÁö ¾Ê´Â °á°ú¸¦ °¡Áö°í ÀÖÀ» ¼ö Àֱ⠶§¹®ÀÌ´Ù.  
´ëºÎºÐÀÇ ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁö´Â <tt>make install</tt> À» ¼öÇàÇÏ¸é ¹ÙÀ̳ʸ® 
ÆÄÀϵéÀ» ½Ã½ºÅÛÀÇ ÀûÀýÇÑ ÀÚ¸®¿¡ °®´ÙµÎµµ·Ï ÇÏ¿© ¼³Ä¡ µð·ºÅ͸® ¹®Á¦¸¦ 
ÀÚµ¿ÀûÀ¸·Î ó¸®ÇÑ´Ù.

<itemize>

<item>ÀÎÅͳÝÀÇ ´º½º±×·ì °°Àº °÷¿¡¼­´Â <tt>shar</tt> ÆÄÀÏÀ̳ª 
<em>shell archive</em> ÇüÅÂÀÇ ¼Ò½ºÆÄÀϵéÀ» º¼ ¼ö ÀÖ´Ù.  
ÀÌ Çü½ÄµéÀº »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ´Ù´Â Á¡ ¶§¹®¿¡ »ç¿ëµÇ°í ÀÖ´Ù.
´º½º±×·ìÀÇ °ü¸®ÀÚ°¡ ¼Ò½ºÆÄÀÏÀ» Àаí Á¤¸®Çϰųª, ºÎÀûÀýÇÑ °ÍÀÏ °æ¿ì¿¡´Â
»èÁ¦ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.  ÀÌ Çü½ÄÀº <bf>unshar ÆÄÀÏÀ̸§.shar</bf> ¸í·ÉÀ¸·Î 
Ç®¾î¾ß ÇÑ´Ù.  ´Ù¸¥ °ÍÀº "tarball"°ú °°´Ù.

</itemize>


<itemize>

<item>¾î¶² ¼Ò½º ÆÄÀϵéÀº <em>zip</em>, <em>arc</em>, <em>lha</em>, 
<em>arj</em>, <em>zoo</em>, <em>rar</em>, <em>shk</em>¿Í °°ÀÌ DOS, Mac, Amiga 
ÀÇ ºñÇ¥ÁØÀûÀÎ ¾ÐÃà À¯Æ¿¸®Æ¼·Î 󸮵Ǿî ÀÖ´Ù.  ´ÙÇàÈ÷ ÀÌµé ´ëºÎºÐÀ» ó¸®ÇÒ ¼ö 
ÀÖ´Â ¸®´ª½º¿ë À¯Æ¿¸®Æ¼°¡ <url url="http://metalab.unc.edu" name="sunsite"> µî¿¡
ÀÖ´Ù.

</itemize>

¶§·Î´Â Ç®¾î³õÀº ¼Ò½º ÆÄÀÏÀ» ¾÷µ¥ÀÌÆ®Çϰųª ¹ö±× ¼öÁ¤»çÇ×À» Àû¿ëÇÒ Çʿ䰡 ÀÖ´Ù.
ÀÌ·² ¶§´Â º¯°æ »çÇ×À» ³ª¿­ÇÑ <tt>patch</tt>³ª <tt>diff</tt> ÆÄÀÏÀ» »ç¿ëÇÑ´Ù. 
À̰ÍÀº <tt>README</tt>³ª ±âŸ ¹®¼­¸¦ ÅëÇØ ¾Ë ¼ö ÀÖ´Ù.  
Larry WallÀÇ ¸·°­ÇÑ À¯Æ¿¸®Æ¼ <em>patch</em>¸¦ »ç¿ëÇÏ´Â º¸Åë ¹æ¹ýÀº 
<bf>patch < patchfile</bf> ÀÌ´Ù.

ÀÌÁ¦´Â ¼³Ä¡ °úÁ¤ °¡¿îµ¥ ÄÄÆÄÀÏ ´Ü°è·Î ³Ñ¾î°¥ ¼ö ÀÖÀ» °ÍÀÌ´Ù.




<sect>make ¾²±â
<p>
<tt>Makefile</tt>Àº ÄÄÆÄÀÏ °úÁ¤ÀÇ ¿­¼è´Ù.  °¡Àå °£´ÜÇÑ ÇüÅ·Πº¸¸é, MakefileÀº
ÆÐŰÁöÀÇ ½ÇÇà °¡´ÉÇÑ ºÎºÐÀÎ "¹ÙÀ̳ʸ® ÆÄÀÏ"À» ÄÄÆÄÀÏÇϱâ À§ÇÑ ÇϳªÀÇ
½ºÅ©¸³Æ®´Ù.  MakefileÀº ¼Ò½º ÆÄÀÏÀ» ¸ðµÎ ´Ù½Ã ÄÄÆÄÀÏÇÏÁö ¾Ê°í ¼ÒÇÁÆ®¿þ¾î
ÆÐŰÁö¸¦ °»½ÅÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÒ ¼öµµ ÀÖÁö¸¸, ±×°ÍÀº ¶Ç ´Ù¸¥ À̾߱â(ȤÀº
¶Ç ´Ù¸¥ ±Û)ÀÌ´Ù.

¾î´À ½ÃÁ¡¿¡  MakefileÀº <tt>cc</tt>³ª <tt>gcc</tt>¸¦ ½ÇÇà½ÃŲ´Ù.  
<tt>cc</tt>³ª <tt>gcc</tt>´Â »ç½ÇÀº ¼ø¼­¿¡ µû¶ó È£ÃâµÈ Àü󸮱â¿Í C(ȤÀº C++) 
ÄÄÆÄÀÏ·¯, ¸µÄ¿ÀÇ ÁýÇÕÀÌ´Ù.  ÀÌ °úÁ¤À» ÅëÇØ ¼Ò½º´Â ½ÇÁ¦·Î ½ÇÇà½Ãų ¼ö ÀÖ´Â 
¹ÙÀ̳ʸ®·Î º¯È¯µÈ´Ù.

´ë°³ <bf>make</bf> ¶ó°í Ä¡±â¸¸ Çϸé <em>make</em>¸¦ ½ÃÀÛÇÒ ¼ö ÀÖ´Ù.  
ÀÌ·¸°Ô Çϸé ÀϹÝÀûÀ¸·Î ¼³Ä¡ÇÏ·Á°í ÇÏ´Â ÆÐŰÁö¿¡ ÇÊ¿äÇÑ ¸ðµç ½ÇÇà ÆÄÀϵéÀ» 
ÄÄÆÄÀÏÇÑ´Ù.  ÇÏÁö¸¸ make´Â ÆÄÀϵéÀ» Àû´çÇÑ µð·ºÅ͸®¿¡ ¼³Ä¡ÇѴٰųª
(<bf>make install</bf>), ¹¬Àº object ÆÄÀÏÀ» »èÁ¦ÇÏ´Â µî(<bf>make clean</bf>), 
´Ù¸¥ ÀÛ¾÷µéµµ ÇÒ ¼ö ÀÖ´Ù.  <bf>make -n</bf> À̶ó°í Çϸé make¿¡ ÀÇÇØ ¼öÇàµÉ 
¸ðµç ¸í·ÉµéÀ» ½ÇÇàÇÏÁö´Â ¾Ê°í º¸¿©Áֱ⸸ ÇϹǷΠÄÄÆÄÀÏ °úÁ¤À» ¹Ì¸® º¼ ¼ö ÀÖ´Ù.

ÀϹÝÀûÀÎ MakefileÀ» ¾²´Â °ÍÀº ¸Å¿ì °£´ÜÇÑ ¼ÒÇÁÆ®¿þ¾î »ÓÀÌ´Ù.  Á»´õ º¹ÀâÇÑ
¼³Ä¡ °úÁ¤¿¡´Â ¶óÀ̺귯¸®¿Í include ÆÄÀϵéÀÇ À§Ä¡, °³º° ÄÄÇ»ÅÍÀÇ ÀÚ¿ø µî¿¡ µû¶ó
MakefileÀ» ¸ÂÃâ Çʿ䰡 ÀÖ´Ù.  ƯÈ÷ ÄÄÆÄÀÏ¿¡ <tt>X11</tt> ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÒ 
°æ¿ì°¡ ÀÌ¿¡ ÇØ´çµÈ´Ù.  ÀÌ ÀÛ¾÷Àº <em>Imake</em>¿Í <em>xmkmf</em>°¡ ó¸®ÇÑ´Ù.

man ÆäÀÌÁö¿¡¼­´Â <tt>Imakefile</tt>Àº MakefileÀÇ "ÅÛÇø´"À̶ó Çϰí ÀÖ´Ù.  
imake À¯Æ¿¸®Æ¼´Â Imakefile·ÎºÎÅÍ ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â´Â MakefileÀ» ±¸¼ºÇÑ´Ù.  
ÇÏÁö¸¸ ´ëºÎºÐÀÇ °æ¿ì ´ç½ÅÀº imake À¯Æ¿¸®Æ¼ÀÇ ÇÁ·±Æ® ¿£µå(front end)·Î¼­  
imake¸¦ ºÒ·¯³»´Â ½© ½ºÅ©¸³Æ®ÀÎ <bf>xmkmf</bf>¸¦ ¼öÇà½Ãų °ÍÀÌ´Ù.  
±¸Ã¼ÀûÀÎ Áö½Ã´Â ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁö¿¡ µé¾îÀÖ´Â README³ª INSTALL ÆÄÀÏÀ» 
Àо¾Æ¶ó. (Ȥ½Ã ¼Ò½º ÆÄÀϵéÀÇ ¾ÐÃàÀ» Ǭ ´ÙÀ½¿¡ ±âº» µð·ºÅ͸®¿¡ <tt>Imake</tt>
ÆÄÀÏÀÌ ÀÖ´Ù¸é, <bf>xmkmf</bf>¸¦ ¼öÇàÇ϶ó´Â ¾ê±â´Ù.)
ÀÌ °úÁ¤¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ ºÐ¼®Àº <tt>Imake</tt>¿Í <tt>xmkmf</tt>ÀÇ man ÆäÀÌÁö¸¦ 
Àо¾Æ¶ó.

<tt>xmkmf</tt>¿Í <tt>make</tt>´Â root°¡ ½ÇÇà½ÃÄÑ¾ß ÇÒ ¼öµµ ÀÖ´Ù´Â Á¡¿¡ 
À¯ÀÇÇ϶ó.  ƯÈ÷ ¹ÙÀ̳ʸ® ÆÄÀϵéÀ» <tt>/usr/bin</tt>À̳ª <tt>/usr/local/bin</tt> 
µð·ºÅ͸®·Î ¿Å±â±â À§Çؼ­ <bf>make install</bf>À» ½ÇÇà½Ãų ¶§ ±×·¸´Ù.  
rootÀÇ ±ÇÇÑÀÌ ¾ø´Â ÀÏ¹Ý »ç¿ëÀڷμ­ make¸¦ »ç¿ëÇϸé <em>write access denied</em>
¶ó´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ º¸°Ô µÇ±â ½±´Ù.  ½Ã½ºÅÛ µð·ºÅ͸®¿¡ ¾²±â Çã°¡±ÇÀ» °®°í ÀÖÁö 
¾Ê±â ¶§¹®ÀÌ´Ù.  ¸¸µé¾îÁø ¹ÙÀ̳ʸ® ÆÄÀϵéÀÌ ´ç½Å°ú ´Ù¸¥ ÀûÀýÇÑ »ç¿ëÀڵ鿡°Ô 
ÀûÇÕÇÑ ½ÇÇà Çã°¡±ÇÀ» °®°í ÀÖ´ÂÁöµµ È®ÀÎÇØ¾ß ÇÑ´Ù.

<bf>xmkmf</bf>´Â ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â´Â »õ·Î¿î MakefileÀ» ¸¸µé±â À§Çؼ­ 
<tt>Imake</tt> ÆÄÀÏÀ» »ç¿ëÇÑ´Ù.  º¸Åë <bf>xmkmf</bf>´Â <bf>-a</bf> ¿É¼Ç°ú 
ÇÔ²² »ç¿ëÇÑ´Ù.  <em>make Makefiles, make includes, make depend</em> ¸¦ 
ÀÚµ¿ÀûÀ¸·Î ½ÇÇàÇϱâ À§Çؼ­´Ù.  ÀÌ·¸°Ô Çϸé ÄÄÆÄÀÏ·¯¿Í ¸µÄ¿¸¦ À§ÇØ º¯¼öµéÀ» 
¼³Á¤ÇÏ°í ¶óÀ̺귯¸®ÀÇ À§Ä¡¸¦ Á¤ÀÇÇÑ´Ù.
¶§·Î´Â <tt>Imake</tt> ÆÄÀÏÀÌ ¾ø°í ´ë½Å °°Àº ¿ªÇÒÀ» ÇÏ´Â <tt>INSTALL</tt> À̳ª 
<tt>configure</tt> ¶ó´Â ½© ½ºÅ©¸³Æ®°¡ ÀÖÀ» ¼öµµ ÀÖ´Ù.  
<tt>configure</tt>¸¦ ½ÇÇà½ÃŰ·Á¸é <bf>./configure</bf> ¶ó°í ÇØ¾ß ÇÑ´Ù´Â Á¡¿¡ 
ÁÖÀÇÇØ¾ß ÇÑ´Ù.  ÇöÀç µð·ºÅ͸®ÀÇ Á¤È®ÇÑ <tt>configure</tt> ½ºÅ©¸³Æ®¸¦ 
È£ÃâÇϱâ À§Çؼ­´Ù.  ´ëºÎºÐÀÇ °æ¿ì ¹èÆ÷º»ÀÇ <tt>README</tt> ÆÄÀÏ¿¡ ¼³Ä¡ °úÁ¤¿¡ 
´ëÇÑ ¼³¸íÀÌ µé¾î ÀÖ´Ù.

º¸Åë <tt>xmkmf</tt>³ª ¼³Ä¡ ½ºÅ©¸³Æ®°¡ ¸¸µé¾î³½ <tt>Makefile</tt> ¼ÓÀ» Á÷Á¢ 
»ìÆìº¸´Â °ÍÀÌ ÁÁ´Ù.  ´ë°³ MakefileÀº ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ÀûÇÕÇÏÁö¸¸, °æ¿ì¿¡ 
µû¶ó¼­´Â MakefileÀ» º¯°æÇϰųª, ¿¡·¯¸¦ ¼ÕÀ¸·Î ¼öÁ¤ÇÒ Çʿ䰡 ÀÖÀ» ¼öµµ ÀÖ´Ù.


´ë°³ ·çÆ®·Î¼­ <bf>make install</bf>À» Çϸé, »õ·Î ¸¸µç ¹ÙÀ̳ʸ®  ÆÄÀϵéÀ» 
ÀûÀýÇÑ ½Ã½ºÅÛ µð·ºÅ͸®¿¡ ¼³Ä¡ÇÏ°Ô µÈ´Ù.  ¿äÁòÀÇ ¸®´ª½º ¹èÆ÷º»ÀÇ °æ¿ì, 
½Ã½ºÅÛ Àüü¿ëÀÇ ¹ÙÀ̳ʸ® ÆÄÀϵéÀº º¸Åë <tt>/usr/bin</tt>, 
<tt>/usr/X11R6/bin</tt>, <tt>/usr/local/bin</tt>¿¡ ¼³Ä¡µÈ´Ù.
¿ø·¡ ¼³Ä¡Çß´ø ¸®´ª½ºÀÇ ÀϺΰ¡ ¾Æ´Ï±â ¶§¹®¿¡ º°µµÀÇ ¹ÙÀ̳ʸ® ÆÄÀÏ·Î ³²°ÜµÎ±â 
À§Çؼ­ »õ·Î¿î ÆÐŰÁö´Â <tt>/usr/local/bin</tt>¿¡ ¼³Ä¡ÇÏ´Â °ÍÀÌ ÁÁ´Ù.

¿ø·¡ »ó¾÷¿ë UNIX¸¦ À§ÇØ ¸¸µé¾îÁø ÆÐŰÁö´Â <tt>/opt</tt>³ª ±âŸ ³¸¼± µð·ºÅ͸®¿¡ 
¼³Ä¡µÇµµ·Ï µÇ¾î ÀÖÀ» ¼öµµ ÀÖ´Ù.  ÀÌ °æ¿ì, ÁöÁ¤µÈ µð·ºÅ͸®°¡ ¾ø´Ù¸é, 
´ç¿¬È÷ ¼³Ä¡ ¿¡·¯ ¸Þ½ÃÁö°¡ ³ª¿À°Ô µÈ´Ù.  ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ´Â °¡Àå °£´ÜÇÑ ¹æ¹ýÀº 
root ·Î¼­ <tt>/opt</tt> µð·ºÅ͸®¸¦ ¸¸µé¾î¼­ ÆÐŰÁö¸¦ ¼³Ä¡Çϰí, ÇØ´ç µð·ºÅ͸®¸¦ 
<tt>PATH</tt> ȯ°æº¯¼ö¿¡ ³Ö´Â °ÍÀÌ´Ù.
¶Ç´Â <tt>/usr/local/bin</tt> µð·ºÅ͸®·Î ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé ¼öµµ ÀÖ´Ù.



ÀϹÝÀûÀÎ ¼³Ä¡ ¼ø¼­¸¦ Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù.
<itemize>
<item><tt>README</tt> ÆÄÀÏ ¹× ±×¹ÛÀÇ °¡´ÉÇÑ ¹®¼­¸¦ Àд´Ù.
<item><bf>xmkmf -a</bf>³ª, <tt>INSTALL</tt>, <tt>configure</tt>¸¦ ½ÇÇàÇÑ´Ù.
<item><tt>Makefile</tt>À» È®ÀÎÇÑ´Ù.
<item>ÇÊ¿äÇϸé, <bf>make clean</bf>, <bf>make Makefiles</bf>, 
<bf>make includes</bf>, <bf>make depend</bf>¸¦ ½ÇÇàÇÑ´Ù.
<item><bf>make</bf>¸¦ ½ÇÇàÇÑ´Ù.
<item>ÆÄÀÏÀÇ Çã°¡±ÇÀ» È®ÀÎÇÑ´Ù.
<item>ÇÊ¿äÇϸé <bf>make install</bf>¸¦ ½ÇÇàÇÑ´Ù.
</itemize>


<em>ÁÖÀÇÁ¡:</em>

<itemize>
<item>º¸Åë ÆÐŰÁöÀÇ ÄÄÆÄÀÏÀº root·Î¼­ ÇÏÁö ¾Ê´Â´Ù.  root·Î <bf>su</bf>¸¦ ÇÏ´Â 
°ÍÀº ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ® ÆÄÀϵéÀ» ½Ã½ºÅÛ µð·ºÅ͸®¿¡ ¼³Ä¡ÇÒ ¶§¿¡¸¸ ÇÊ¿äÇÏ´Ù.

<item><em>make</em>¿Í ±× »ç¿ë¹ý¿¡ Àͼ÷ÇØÁø ´ÙÀ½¿¡´Â, ¼³Ä¡ÇÏ·Á´Â ÆÐŰÁö¿¡ Æ÷ÇÔµÈ
ȤÀº »õ·Î ¸¸µé¾îÁø Ç¥ÁØ <tt>Makefile</tt>¿¡ <tt>gcc</tt>¸¦ À§ÇÑ ÃÖÀûÈ­ ¿É¼ÇÀ» 
Ãß°¡ÇÏ°í ½ÍÀ» ¼öµµ ÀÖ´Ù.  ÈçÇÑ ¿É¼ÇÀº <em>-O2</em>, 
<em>-fomit-frame-pointer</em>, <em>-funroll-loops</em>, (ÆæÆ¼¾ö cpu¶ó¸é)
<em>-mpentium</em> µîÀÌ´Ù.  <em>Makefile</em>À» º¯°æÇÒ ¶§¿¡´Â ÁÖÀÇÇØ¾ß ÇÑ´Ù.

<item><em>make</em>·Î ¹ÙÀ̳ʸ® ÆÄÀÏÀ» ¸¸µç ´ÙÀ½¿¡´Â <bf>strip</bf>À» Çϰí 
½ÍÀ» ¼ö°¡ ÀÖ´Ù.  <bf>strip</bf>À̶õ ¹ÙÀ̳ʸ® ÆÄÀÏ¿¡¼­ ½Éº¼¸¯ µð¹ö±ë Á¤º¸¸¦ 
Á¦°ÅÇØ¼­ ±× Å©±â¸¦ »ó´çÈ÷ ÁÙ¿©ÁÖ´Â ¸í·ÉÀÌ´Ù.  
¹°·Ð ÀÌ·¸°Ô ÇÏ¸é µð¹ö±ëÀº ºÒ°¡´ÉÇÏ´Ù.

<item><url url="http://sunsite.auc.dk/pack/" name="Pack Distribution 
Project">´Â º°µµÀÇ <em>Ä÷º¼Ç µð·ºÅ͸®</em>¿¡ ¼³Ä¡µÈ ÆÄÀÏµé »çÀÌÀÇ
½Éº¼¸¯ ¸µÅ©¸¦ ó¸®Çϵµ·Ï Python ½ºÅ©¸³Æ®·Î ÀÛ¼ºµÈ µµ±¸µé¿¡ ±â¹ÝÇϴµ¥,
¾ÐÃàµÈ ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁö¸¦ ¸¸µå´Â ¶Ç´Ù¸¥ ¹æ¹ýÀ» Á¦°øÇÑ´Ù.  ÀÌ ¾ÐÃà ÆÐŰÁöµéÀº
º¸ÅëÀÇ <em>tarball</em>ÀÌÁö¸¸, <tt>/coll</tt>°ú <tt>/pack</tt> µð·ºÅ͸®¿¡ 
¼³Ä¡µÈ´Ù.  ÀÌ ¹èÆ÷º»µéÀ» ¾²·Á¸é À§ÀÇ »çÀÌÆ®¿¡¼­ <em>Pack-Collection</em> À» 
´Ù¿î¹Þ¾Æ¾ß ÇÑ´Ù.
</itemize>



<sect>¹Ì¸® ÆÐŰÁöÈ­µÈ ¹ÙÀ̳ʸ® ÆÄÀÏ
<p>

<sect1>rpms, ¹«¾ùÀÌ À߸øµÇ¾ú³ª?
<p>

¼Ò½º·ÎºÎÅÍ ¼öµ¿À¸·Î ÆÐŰÁö¸¦ ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â °ÍÀº ºÐ¸íÈ÷ ¾î¶² ¸®´ª½º 
»ç¿ëÀڵ鿡°Ô´Â ¸Å¿ì °Ì³ª´Â ÀÏÀÌ´Ù.  ±×·¡¼­ ÀαâÀÖ´Â <em>rpm</em>°ú 
<em>deb</em> ȤÀº ´õ »õ·Î¿î Stampede <em>slp</em> ÆÐŰÁö Æ÷¸ËÀ» »ç¿ëÇϰï ÇÑ´Ù.
<em>rpm</em> ¼³Ä¡°¡ º¸ÅëÀº ºÎµå·´°í ºü¸¦ ¼ö ÀÖ´Ù.  ¾î´À ¾Ç¸í³ôÀº ¿î¿µ üÁ¦¿¡¼­
¼ÒÇÁÆ®¿þ¾î¸¦ ¼³Ä¡ÇÏ´Â °Í ¸¸Å­À̳ª ¸»ÀÌ´Ù. 
ÇÏÁö¸¸ ÀÚµ¿À¸·Î ¼³Ä¡µÇ´Â ¹Ì¸® ÆÐŰÁöÈ­µÈ ¹ÙÀ̳ʸ® ÆÄÀÏÀÇ ¾àÁ¡¿¡ ´ëÇØ¼­µµ ºÐ¸íÈ÷
»ý°¢ÇØ º¸¾Æ¾ß ÇÑ´Ù.

ù°, ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁö°¡ º¸ÅëÀº ¸ÕÀú "tarball"·Î ¹èÆ÷µÇ¸ç, ¹Ì¸® ÆÐŰÁöÈ­µÈ
¹ÙÀ̳ʸ® ÆÄÀÏÀº ¸çÄ¥¿¡¼­ ¸îÁÖ ½ÉÁö¾î´Â ¸î´Þ µÚ´Ê°Ô ³ª¿Â´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÑ´Ù.
ÇöÀçÀÇ <em>rpm</em> ÆÐŰÁö´Â ÃÖ½ÅÀÇ "tarball"¿¡ ºñÇØ Àû¾îµµ ¸¶ÀÌ³Ê ¹öÁ¯ 2 
Á¤µµ ´Ê´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù.  µû¶ó¼­ ¼ÒÇÁÆ®¿þ¾îÀÇ Ã·´ÜÀ» µû¶ó°¡°í ½ÍÀº 
»ç¶÷À̶ó¸é, <em>rpm</em>À̳ª <em>deb</em>°¡ ³ª¿À±â¸¦ ±â´Ù¸± ¼ö ¾øÀ» °ÍÀÌ´Ù.  
´ú ÀαâÀÖ´Â ÆÐŰÁö¶ó¸é ¾Æ¿¹ <em>rpm</em>À¸·Î ¸¸µé¾îÁöÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù.

µÑ°, "tarball" ÆÐŰÁö°¡ º¸´Ù ¿ÏÀüÇϸç, ´õ ¸¹Àº ¿É¼ÇÀ» °¡Áö°í ÀÖ°í, 
´õ ÃÖÀûÈ­½ÃŰ±â ½±´Ù.  ¹ÙÀ̳ʸ® ÆÄÀÏÀÇ rpm ¹èÆ÷º»Àº ¿ø·¡ ¹èÆ÷º»ÀÇ ±â´É °¡¿îµ¥ 
ÀϺθ¦ °¡Áö°í ÀÖÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù.  ¼Ò½º <em>rpm</em>Àº Àüü ¼Ò½º Äڵ带 
Æ÷ÇÔÇϰí ÀÖÀ¸¸ç, <bf>rpm --recompile ÆÐŰÁöÀ̸§.rpm</bf> À̳ª 
<bf>rpm --rebuild ÆÐŰÁöÀ̸§.rpm</bf> ¿É¼ÇÀ¸·Î ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ¿©¾ß ÇÑ´Ù.

¼Â°, ¾î¶² ¹Ì¸® ÆÐŰÁöÈ­µÈ ¹ÙÀ̳ʸ® ÆÄÀϵéÀº Á¦´ë·Î ¼³Ä¡µÇÁö ¾ÊÀ¸¸ç, ¼³Ä¡°¡
µÇ¾ú´Ù°í ÇØµµ Á¤»óÀûÀ¸·Î Á¾·áµÇÁö ¸øÇϰí core-dump¸¦ ³¾ ¼ö ÀÖ´Ù.  À̰ÍÀº
ÀÇÁ¸Çϰí ÀÖ´Â ¶óÀ̺귯¸®ÀÇ ¹öÁ¯ÀÌ ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ÀÖ´Â °Í°ú ´Ù¸£±â ¶§¹®ÀÏ ¼öµµ
ÀÖ°í, Á¦´ë·Î ÆÐŰÁöÈ­µÇÁö ¾Ê¾ÒÀ» ¼öµµ ÀÖÀ¸¸ç, ȤÀº ±×Àú ½ÇÇà¿¡ ½ÇÆÐÇÑ °Í(plain
broken)ÀÏ ¼öµµ ÀÖ´Ù.  ¾î¶² °æ¿ì°Ç, <em>rpm</em>À̳ª <em>deb</em>¸¦ ¼³Ä¡Çß´Ù¸é, 
´ç½ÅÀº ±× <em>rpm</em>À̳ª <em>deb</em> ÆÐŰÁö¸¦ ¸¸µç »ç¶÷ÀÇ ¼÷·Ãµµ¸¦ 
¹Ï¾î¾ß¸¸ ÇÑ´Ù.

³¡À¸·Î, ¼Ò½º¸¦ ¸¸Áö°í ±×°ÍÀ¸·ÎºÎÅÍ ¹è¿ì±â À§Çؼ­´Â, ¼Ò½º Äڵ带 ¼Õ À§¿¡ °®°í
ÀÖ´Â ÆíÀÌ ÁÁ´Ù.  ¼Ò½º Äڵ带 ¾ÐÃà ÆÄÀÏ·Î °®°í ÀÖ´Â ÆíÀÌ º°µµÀÇ ¼Ò½º 
<em>rpm</em>À¸·Î °®°í ÀÖ´Â Æí¿¡ ºñÇØ ÈξÀ ´õ ¼ö¿ùÇÏ´Ù.


<em>rpm</em> ÆÐŰÁö¸¦ ¼³Ä¡ÇÏ´Â °ÍÀÌ ²À ¾Æ¹« »ý°¢¾øÀÌ °¡´ÉÇÑ °ÍÀº ¾Æ´Ï´Ù.  
ÀÇÁ¸¼º¿¡ ¹®Á¦°¡ ÀÖÀ¸¸é <em>rpm</em> ¼³Ä¡´Â ½ÇÆÐÇÒ °ÍÀÌ´Ù.  ºñ½ÁÇÑ °æ¿ì·Î, 
<em>rpm</em>ÀÌ ´ç½Å ½Ã½ºÅÛ¿¡ ÀÖ´Â °Í°ú ´Ù¸¥ ¹öÁ¯ÀÇ ¶óÀ̺귯¸®¸¦ ¿ä±¸ÇÑ´Ù¸é, 
¼³Ä¡´Â Á¦´ë·Î µÇÁö ¾ÊÀ» °ÍÀÌ´Ù.  ´ç½ÅÀÌ Áö±Ý ÀÖ´Â ¶óÀ̺귯¸®¿¡¼­ ¾ø´Â 
¶óÀ̺귯¸®·ÎÀÇ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾îÁØ´Ù ÇØµµ ¸»ÀÌ´Ù.  
<em>rpm</em> ¼³Ä¡°¡ Æí¸®Çϱâ´Â ÇÏÁö¸¸, "tarball" ¼³Ä¡°¡ ½ÇÆÐÇÏ´Â °Í°ú
°°Àº ÀÌÀ¯·Î ½ÇÆÐÇÏ´Â °æ¿ì°¡ ÀÚÁÖ ÀÖ´Ù.

´ç½ÅÀº ÇÊ¿äÇÑ ¾²±â Çã°¡±ÇÀ» °®±â À§Çؼ­ <em>rpm</em>°ú <em>deb</em>ÀÇ ¼³Ä¡¸¦ 
root·Î¼­ ÇØ¾ß¸¸ Çϴµ¥, À̰ÍÀº ½É°¢ÇÑ ÀáÀçÀû º¸¾È ¹®Á¦¸¦ ¾ß±âÇÑ´Ù.  
´ç½ÅÀÌ »ý°¢¾øÀÌ ½Ã½ºÅÛÀÇ ¹ÙÀ̳ʸ® ÆÄÀϰú ¶óÀ̺귯¸®µéÀ» ¸ÁÃĹö¸®°Å³ª, 
½ÉÁö¾î ´ç½Å ½Ã½ºÅÛÀ» ÆÄ±«ÇÒ <em>Æ®·ÎÀÌ ¸ñ¸¶</em>¸¦ ¼³Ä¡ÇÒ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù.
µû¶ó¼­ <em>rpm</em>°ú deb ÆÐŰÁö¸¦ "¹ÏÀ» ¼ö ÀÖ´Â ÀÚ·á¿ø"À¸·ÎºÎÅÍ ¾ò´Â °ÍÀÌ 
Áß¿äÇÏ´Ù.  ¾î¶² °æ¿ì¿¡³ª ´ç½ÅÀº <em>rpm</em> ÆÐŰÁö¸¦ ¼³Ä¡Çϱâ Àü¿¡, 
<bf>rpm --cecksig ÆÐŰÁöÀ̸§.rpm</bf> ¸í·ÉÀ¸·Î (MD5 checksum°ú ´ëÁ¶ÇÏ¿©)
'¼­¸í È®ÀÎ'À» ÇØ¾ß¸¸ ÇÑ´Ù.  ¸¶Âù°¡Áö·Î <bf>rpm -K --nopgp ÆÐŰÁöÀ̸§.rpm</bf>À»
¼öÇàÇÒ °ÍÀ» °­·ÂÇÏ°Ô ±ÇÇÑ´Ù.  <em>deb</em> ÆÐŰÁö¿¡¼­ ÀÌ¿¡ ÇØ´çÇÏ´Â ¸í·ÉÀº
<bf>dpkg -I | --info ÆÐŰÁöÀ̸§.deb</bf> ¿Í <bf>dpkg -e | --control 
ÆÐŰÁöÀ̸§.deb</bf> ÀÌ´Ù.

<itemize>
<item><tt>rpm --checksig gnucash-1.1.23-4.i386.rpm</tt>
<tscreen><verb>
</verb></tscreen>
<tt>gnucash-1.1.23-4.i386.rpm: size md5 OK</tt>
</itemize>

<itemize>
<item><tt>rpm -K --nopgp gnucash-1.1.23-4.i386.rpm</tt>
<tscreen><verb>
</verb></tscreen>
<tt>gnucash-1.1.23-4.i386.rpm: size md5 OK</tt>
</itemize>

ÁøÂ¥ ÆíÁýÁõ ȯÀÚ(ÀÌ Á¤µµ¶ó¸é ÆíÁý±¤À̶ó°í ºÎ¸£´Â °æ¿ì°¡ ´õ ¸¹´Ù)¶ó¸é,
ÆÐŰÁö¸¦ Ç®¾î¼­ ±× ±¸¼º¿ä¼Ò¸¦ È®ÀÎÇϱâÀ§ÇÑ <em>unrpm</em>°ú <em>rpmunpack</em> 
À¯Æ¿¸®Æ¼¸¦ <htmlurl url="ftp://metalab.unc.edu/pub/Linux/utils/package" 
name="Sunsite utils/package directory">ÀÇ utils/package µð·ºÅ͸®¿¡¼­ ±¸ÇÒ ¼ö 
ÀÖ´Ù.

<url url="mailto:klee@debian.org" name="Klee Diene">Àº ¼³Ä¡µÈ <em>.deb</em> 
ÆÄÀÏ¿¡ ¹®Á¦°¡ ÀÖ´ÂÁö MD5 checksum°ú ºñ±³ÇÏ¿© È®ÀÎÇÏ´Â <em>dpkgcert</em>¶ó´Â 
½ÇÇèÀûÀÎ ÆÐŰÁö¸¦ ÀÛ¼ºÇß´Ù.  
<htmlurl url="ftp://ftp.debian.org/pub/debian/project/experimental"
name="Debian ftp archive">¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.  ÇöÀçÀÇ ÆÐŰÁö À̸§ ¹× ¹öÁ¯Àº 
<em>dpkgcert_0.2-4.1_all.deb</em> ÀÌ´Ù.  
<htmlurl="http://dpkgcert.jimpick.com" name="Jim Pick Software">»çÀÌÆ®´Â 
<em>dpkgcert</em>°¡ ÀüÇüÀûÀÎ µ¥ºñ¾È ½Ã½ºÅÛ ³»ÀÇ ÆÐŰÁöµéÀ» °ËÁõÇϵµ·Ï ÇÏ´Â
½ÇÇèÀûÀÎ ¼­¹ö µ¥ÀÌÅͺ£À̽º¸¦ ¿î¿µÇϰí ÀÖ´Ù.

°¡Àå ´Ü¼øÇϰԴÂ, <bf>rpm -i ÆÐŰÁöÀ̸§.rpm</bf> °ú <bf>dpkg --install 
ÆÐŰÁöÀ̸§.deb</bf> ¸í·ÉÀ¸·Î ÀÚµ¿ÀûÀ¸·Î ¼ÒÇÁÆ®¿þ¾î¸¦ Ç®¾î¼­ ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù.  
ÇÏÁö¸¸ ÀÌ ¸í·ÉÀ» ¸Í¸ñÀûÀ¸·Î ¾²¸é ´ç½Å ½Ã½ºÅÛÀ» ÇØÄ¥ ¼öµµ ÀÖÀ¸¹Ç·Î ÁÖÀÇÇØ¾ß ÇÑ´Ù.

À§ÀÇ °æ°í´Â Á¤µµ´Â ´ú ÇÏÁö¸¸ ½½·¢¿þ¾îÀÇ <em>pkgtool</em> ¼³Ä¡ À¯Æ¿¸®Æ¼¿¡µµ ¿ª½Ã 
Àû¿ëµÈ´Ù.  ¸ðµç "ÀÚµ¿È­µÈ" ¼ÒÇÁÆ®¿þ¾î ¼³Ä¡´Â ÁÖÀǸ¦ ¿äÇÏ´Â °ÍÀÌ´Ù.

<url url="http://www.people.cornell.edu/pages/rc42/program/martian.html"
name="martian">¿Í <url url="http://kitenet.net/programs/alien/" name ="alien">
ÇÁ·Î±×·¥Àº <em>rpm</em>, <em>deb</em>, StampedeÀÇ <em>slp</em>, <em>tar.gz</em> 
ÆÐŰÁö Çü½ÄÀ» ¼­·Î º¯È¯ÇØÁØ´Ù.  ÀÌ ÇÁ·Î±×·¥µéÀ» ¾²¸é ÀÌ ÆÐŰÁöµéÀ» ¸ðµç 
¸®´ª½º ¹èÆ÷º»¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

´õ ÀÚ¼¼ÇÑ Á¤º¸°¡ ÇÊ¿äÇϸé <em>rpm</em>°ú <em>dpkg</em> ¸í·ÉÀÇ man ÆäÀÌÁö¸¦ 
ÁÖÀÇÇØ¼­ Àаí, 
<htmlurl url="ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/RPM-HOWTO" name="RPM
HOWTO">¿Í TFUGÀÇ <url url="http://www.tfug.org/helpdesk/linux/rpm.html"
name="Quick Guide to Red Hat's Package Manager">, <url
url="http://www.debian.org/doc/FAQ/debian-faq-7.html" name="The Debian
Package Management Tools">¸¦ ÂüÁ¶Ç϶ó.


<sect1>rpmsÀÇ ¹®Á¦: ÇÑ °¡Áö ¿¹
<p>

<url url="mailto:hubicka@paru.cas.cz" name="Jan Hubicka">´Â
<em>xaos</em>¶ó´Â ¸Å¿ì ÈǸ¢ÇÑ ÇÁ·¢Å» ÆÐŰÁö¸¦ ¸¸µé¾ú´Ù.
<url url="http://www.paru.cas.cz/~hubicka/XaoS" name="±×ÀÇ È¨ÆäÀÌÁö">¿¡¼­ 
<tt>.tar.gz</tt>°ú <tt>rpm</tt>·Î µÈ ÆÐŰÁöµéÀ» ±¸ÇÒ ¼ö ÀÖ´Ù.  ÆíÀǸ¦ À§Çؼ­
"tarball" º¸´Ù´Â rpm ¹öÁ¯À» »ç¿ëÇϱâ·Î ÇÏÀÚ.

ºÒÇàÇϰԵµ rpm ¹öÁ¯ÀÇ <em>xaos</em>¸¦ ¼³Ä¡Çϴµ¥ ½ÇÆÐÇß´Ù.  µÎ º°°³ÀÇ rpm ÆÇÀÌ 
¸ðµÎ Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê¾Ò´Ù.

<bf>rpm -i --test XaoS-3.0-1.i386.rpm</bf>
<tscreen><verb>
error: failed dependencies:
        libslang.so.0 is needed by XaoS-3.0-1
        libpng.so.0 is needed by XaoS-3.0-1
        libaa.so.1 is needed by XaoS-3.0-1
</verb></tscreen>

<bf>rpm -i --test xaos-3.0-8.i386.rpm</bf>
<tscreen><verb>
error: failed dependencies:
        libaa.so.1 is needed by xaos-3.0-8
</verb></tscreen>

ÀÌ»óÇÑ °ÍÀº <tt>libslang.so.0</tt>, <tt>libpng.so.0</tt>, <tt>libaa.so.1</tt>ÀÌ
¸ðµÎ ½ÃÇèµÈ ½Ã½ºÅÛÀÇ <tt>/usr/lib</tt> µð·ºÅ͸®¿¡ ÀÖ¾ú´Ù´Â °ÍÀÌ´Ù.  
<em>xaos</em>ÀÇ rpmµéÀº ¸±¸®Áî ¹øÈ£´Â °°¾Æµµ Á¶±Ý ´Ù¸¥ ¹öÁ¯ÀÇ ¶óÀ̺귯¸®¸¦ 
¾²µµ·Ï ÄÄÆÄÀϵǾúÀ½ÀÌ Æ²¸²¾ø´Ù.

½ÃÇè»ï¾Æ <tt>xaos-3.0-8.i386.rpm</tt>À» <em>--nodeps</em> ¿É¼ÇÀ» ÁÖ¾î °­Á¦·Î 
¼³Ä¡ÇØ º¸ÀÚ.  <em>xaos</em>¸¦ ½ÇÇà½ÃÄÑ º¸Áö¸¸, ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù.
<tscreen><verb>
xaos: error in loading shared libraries: xaos: undefined symbol: __fabsl
</verb></tscreen>

¿Ö ÀÌ·¸°Ô µÇ´ÂÁö ¾Ë¾Æº¸±â À§ÇØ, °è¼Ó ½ÃµµÇØ º¸±â·Î ÇÏÀÚ.  <em>xaos</em> 
½ÇÇàÆÄÀÏÀÌ ¾î¶² ¶óÀ̺귯¸®¿¡ ÀÇÁ¸Çϰí ÀÖ´ÂÁö ã¾Æº¸±â À§ÇØ <em>ldd</em>¸¦ 
½ÇÇà½ÃÄÑ º¸¸é, ÇÊ¿äÇÑ °øÀ¯ ¶óÀ̺귯¸®°¡ ¸ðµÎ ÀÖ´Ù´Â °ÍÀ» º¸¿©ÁØ´Ù.  
<tt>/usr/lib/libaa.so.1</tt> ¶óÀ̺귯¸®¿¡ <em>nm</em>À» ½ÇÇàÇØ¼­ ±× ½Éº¼¸¯ 
·¹ÆÛ·±½º ¸ñ·ÏÀ» º¸¸é, ÀÌ ¶óÀ̺귯¸®¿¡´Â Á¤¸» <em>__fabsl</em>ÀÌ ºüÁ®ÀÖ´Ù´Â 
°ÍÀ» ¾Ë ¼ö ÀÖ´Ù.  ¹°·Ð ÀÌ ºüÁ®ÀÖ´Â ·¹ÆÛ·±½º´Â ´Ù¸¥ ¶óÀ̺귯¸®¿¡¼­ ºüÁø °ÍÀÏ 
<em>¼öµµ</em> ÀÖÁö¸¸...  ¶óÀ̺귯¸®¸¦ ¹Ù²ÙÁö ¾Ê´Â ÇÑ, ´õ ÀÌ»ó ¾î¿ ¼ö°¡ ¾ø´Ù.

rpmÀº ÀÌÁ¤µµ·Î ÃæºÐÇÏ´Ù.  ÀÌÁ¦ "tarball" Áï <tt>XaoS-3.0.tar.gz</tt>À» 
Ȩ ÆäÀÌÁö³ª <url url="ftp://ftp.ta.jcu.cz/pub/linux/hubicka/XaoS/3.0" 
name="ftp »çÀÌÆ®">¿¡¼­ ´Ù¿î¹Þ´Â´Ù.  ÀÌ ÆÐŰÁö¸¦ ÄÄÆÄÀÏÇØº¸±â·Î ÇÏÀÚ.  
<bf>./configure</bf>, <bf>make</bf>¸¦ ½ÇÇà½Ã۰í, ¸¶Áö¸·À¸·Î (·çÆ®·Î¼­) 
<bf>make install</bf>À» ½ÇÇàÇÑ´Ù.  ¹®Á¦¾øÀÌ ÀÛµ¿ÇÑ´Ù.

À̰ÍÀº ¹Ì¸® ÄÄÆÄÀÏµÈ ÆÐŰÁö°¡ ±× ÀåÁ¡ º¸´Ù ´õ ¸¹Àº ¹®Á¦¸¦ ÀÏÀ¸Å°´Â ¸¹Àº ¿¹ ÁßÀÇ
ÇϳªÀÏ »ÓÀÌ´Ù.




<sect>Termcap °ú Terminfo¿¡ °ü·ÃµÈ À̽´
<p>


man ÆäÀÌÁö¿¡ ÀÇÇϸé, <em>"terminfo´Â ½ºÅ©¸° ÁöÇâÀûÀÎ ÇÁ·Î±×·¥µé¿¡ ÀÇÇØ ÀÌ¿ëµÇ´Â,
Å͹̳ÎÀ» ±â¼úÇÑ µ¥ÀÌÅÍ º£À̽º"</em>ÀÌ´Ù.  terminfo´Â ÅØ½ºÆ®¸¦ Å͹̳ο¡ 
Ç¥½ÃÇϱâ À§ÇØ »ç¿ëµÇ´Â Á¦¾î ½ÃÄö½º (escape code)ÀÇ ÀϹÝÀûÀÎ ÁýÇÕÀ» Á¤ÀÇÇϸç, 
ƯÁ¤ÇÑ µå¶óÀ̹ö ÇÊ¿ä¾øÀÌ ¼­·Î ´Ù¸¥ Å͹̳ΠÇϵå¿þ¾î¸¦ Áö¿øÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.  
<em>terminfo</em> ¶óÀ̺귯¸®´Â ÇöÀçÀÇ ¸®´ª½º ¹èÆ÷º»¿¡¼­ 
<tt>/usr/share/terminfo</tt> ¿¡ À§Ä¡ÇÑ´Ù.

<em>terminfo</em> µ¥À̹ö º£À̽º´Â ÀÌÀüÀÇ <em>termcap</em>°ú ÀÌÁ¨ Æó¹°ÀÌ µÈ 
<em>termlib</em>À» °ÅÀÇ ¹Ð¾î³Â´Ù.  <em>termcap</em>À» ¿ä±¸ÇÏ´Â ÆÐŰÁö¸¦ ´Ù·ê 
¶§¸¦ Á¦¿ÜÇϰí´Â, ÇÁ·Î±×·¥À» ¼³Ä¡Çϴµ¥ ÀÌ ¹®Á¦±îÁö ½Å°æ¾µ Çʿ䰡 ¾ø´Ù.

ÀÌÁ¦ ´ëºÎºÐÀÇ ¸®´ª½º ¹èÆ÷º»ÀÌ <em>terminfo</em>¸¦ »ç¿ëÇϰí ÀÖÁö¸¸, ¿À·¡µÈ 
ÀÀ¿ë ÇÁ·Î±×·¥µé°úÀÇ È£È¯¼ºÀ» À§ÇØ ¿À·¡µÈ termcap ¶óÀ̺귯¸®¸¦ À¯ÁöÇϰí ÀÖ´Ù.
(<tt>/etc/termcapÀ» º¸¶ó.</tt>)  °¡²û termcap¿¡ ¸µÅ©µÈ ¹ÙÀ̳ʸ® ÆÄÀÏÀ» ½±°Ô 
»ç¿ëÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ ¼³Ä¡µÇ¾î¾ß Çϴ Ưº°ÇÑ È£È¯¼º ÆÐŰÁö°¡ ÀÖ´Ù.  
¸Å¿ì µå¹°°Ô´Â ¼Ò½º ÆÄÀÏ¿¡¼­ <em>#define termcap</em> À̶ó´Â ¹®ÀåÀ» ÁÖ¼®¹® 
ó¸®ÇÒ Çʿ䰡 ÀÖÀ» ¼öµµ ÀÖ´Ù.  ÀÌ¿¡ ´ëÇÑ ÃÖÁ¾ÀûÀÎ Á¤º¸´Â ´ç½ÅÀÌ »ç¿ëÇÏ´Â 
¹èÆ÷º»ÀÇ ÀûÀýÇÑ ¹®¼­ ÆÄÀÏ¿¡¼­ È®ÀÎÇϵµ·Ï Ç϶ó.



<sect>a.out ¹ÙÀ̳ʸ® ÆÄÀϰúÀÇ È£È¯¼º
<p>

¸Å¿ì µå¹® °æ¿ìÀÌÁö¸¸, a.out ¹ÙÀ̳ʸ® ÆÄÀÏÀ» »ç¿ëÇØ¾ß¸¸ ÇÒ ¼öµµ ÀÖ´Ù.  
¼Ò½º Äڵ带 ¾òÀ» ¼ö ¾ø´Ù°Å³ª, ¾î¶² ÀÌÀ¯¿¡¼­µç ¼Ò½º·ÎºÎÅÍ »õ·Î¿î ELF ¹ÙÀ̳ʸ® 
ÆÄÀÏÀ» ¸¸µé ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.

ÀÌ·² ¶§, ELF·Î ¼³Ä¡µÈ ¸®´ª½º ½Ã½ºÅÛÀº ´ë°³ <tt>/usr/i486-linuxaout/lib</tt>
µð·ºÅ͸®¿¡ ¿Ïº®ÇÑ a.out ¶óÀ̺귯¸®µéÀ» °¡Áö°í ÀÖ´Ù.  a.out ¶óÀ̺귯¸®´Â
ELF ¶óÀ̺귯¸®¿ÍÀÇ È¥¶õÀ» ÇÇÇϱâ À§ÇØ ELF¿Í ´Ù¸£°Ô ¹öÁ¯À» ºÙÀδÙ.
µû¶ó¼­ a.out ¹ÙÀ̳ʸ® ÆÄÀÏÀº ½ÇÇàµÉ ¶§ ¿Ã¹Ù¸¥ ¶óÀ̺귯¸®¸¦ ãÀ» ¼ö ÀÖ¾î¾ß 
ÇÏÁö¸¸, Ç×»ó ÀÌ·¸°Ô µÇÁö´Â ¾Ê´Â´Ù.

Ä¿³ÎÀÌ a.out Áö¿ø ±â´ÉÀ» ÀÚü ³»¿¡³ª ¸ðµâ·Î¼­ °®µµ·Ï ÄÄÆÄÀϵǾú¾î¾ß ÇÑ´Ù´Â
°Í¿¡ ÁÖÀÇÇ϶ó.  ÇÊ¿äÇϸé Ä¿³ÎÀ» ´Ù½Ã ÄÄÆÄÀÏÇÒ ¼öµµ ÀÖ´Ù.  ¾î¶² ¸®´ª½º ¹èÆ÷º»Àº
Ưº°ÇÑ È£È¯¿ë À¯Æ¿¸®Æ¼¸¦ ¼³Ä¡ÇØ¾ß Çϱ⵵ ÇÑ´Ù.  ¿¹¸¦ µé¾î a.outÀÇ X ÀÀ¿ë 
ÇÁ·Î±×·¥À» À§Çؼ­, µ¥ºñ¾È¿¡¼­´Â <tt>xcompat</tt>¸¦ ¼³Ä¡ÇØ¾ß ÇÑ´Ù.

<sect1>¿¹
<p>

Jerry Smith´Â ¸î ³â Àü¿¡ <em>rolodex</em>¶ó´Â ¸Å¿ì Æí¸®ÇÑ ÇÁ·Î±×·¥À» ®´Ù.  
ÀÌ ÇÁ·Î±×·¥Àº Motif ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏÁö¸¸, ´ÙÇàÈ÷µµ Á¤ÀûÀ¸·Î ¸µÅ©µÈ a.out 
Çü½ÄÀÇ ¹ÙÀ̳ʸ® ÆÄÀÏÀ» ±¸ÇÒ ¼ö ÀÖ´Ù.  ºÒÇàÇÑ °ÍÀº <em>lesstif</em> ¶óÀ̺귯¸®¸¦
½á¼­ ´Ù½Ã ÄÄÆÄÀÏ ÇÏ·Á¸é ¼Ò½º¸¦ ¼ö¾øÀÌ ¶â¾î°íÃÄ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.  
´õ Å« ºÒÇàÀº a.outÀÌ ¾î¶² ELF ½Ã½ºÅÛ¿¡¼­´Â ´ÙÀ½°ú °°Àº ¿¡·¯ ¸Þ½ÃÁö¸¦ 
ÅͶ߸°´Ù´Â °ÍÀÌ´Ù.
<tscreen><verb>
xrolodex: can't load library '//lib/libX11.so.3'
No such library
</verb></tscreen>

ÀÌ ¶§, <tt>/usr/i486-linuxaout/lib</tt>¿¡´Â ±×·± ¶óÀ̺귯¸®°¡ ÀÖÁö¸¸ xrolodex´Â
±× ¶óÀ̺귯¸®¸¦ ½ÇÇà Áß¿¡ ãÁö ¸øÇÑ °ÍÀÌ´Ù.  °£´ÜÇÑ ÇØ°áÃ¥Àº <tt>/lib</tt> 
¶óÀ̺귯¸®¿¡ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾îÁÖ´Â °ÍÀÌ´Ù.

<tt>ln -s /usr/i486-linuxaout/lib/X11.so.3.1.0 libX11.so.3</tt>

libXt.so.3°ú libc.so.4 ¶óÀ̺귯¸®µµ ºñ½ÁÇÑ ¸µÅ©¸¦ ¸¸µé¾îÁÖ¾î¾ß ÇÑ´Ù.  ¹°·Ð
ÀÌ·± ÀϵéÀº root·Î¼­ ÇØ¾ß ÇÑ´Ù.  À̶§ ÀÌ¹Ì ÀÖ´Â ¶óÀ̺귯¸®¸¦ µ¤¾î¾²°Å³ª 
¹öÁ¯ ¹øÈ£¿¡ Ãæµ¹À» ÀÏÀ¸Å°´Â °ÍÀÌ ¾Æ´ÑÁö ¾ÆÁÖ È®½ÇÈ÷ ÇØ¾ß ÇÑ´Ù´Â Á¡À» ¸í½ÉÇ϶ó.
´ÙÇàÈ÷µµ »õ·Î¿î ELF ¶óÀ̺귯¸®´Â ÀÌ·± ¹®Á¦¸¦ ¿¹»óÇÏ°í ¹Ì¸® a.out ¶óÀ̺귯¸® 
º¸´Ù ³ôÀº ¹öÁ¯ ¹øÈ£¸¦ °¡Áö°í ÀÖ´Ù.

À§ÀÇ ¼¼ ¸µÅ©¸¦ ¸¸µé¾îÁÖ°í ³ª¸é, <em>xrolodex</em>´Â Àß ½ÇÇàµÈ´Ù.

<em>xrolodex</em> ÆÐŰÁö´Â ¿ø·¡ <url url="http://www.spectro.com/" 
name="Spectro">¿¡ ¿Ã·ÁÁ³Áö¸¸, ±×°÷¿¡¼­´Â Áö¿öÁø °Í °°´Ù.
Áö±ÝÀº <url url="http://metalab.unc.edu/pub/Linux/apps/reminder/xrolodex.tar.z"
name="Sunsite">¿¡¼­ <em>tar.Z</em> Çü½ÄÀÇ ¼Ò½º ÆÄÀÏ[512k]·Î ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù.



<sect>¹®Á¦Çذá
<p>

¿¡·¯ ¾øÀÌ <em>xmkmf</em>¿Í <em>make</em>¿¡ ¼º°øÇß´Ù¸é, <ref id="finalsteps" 
name="´ÙÀ½ Àý">·Î ³Ñ¾î°¡µµ ÁÁ´Ù.  ÇÏÁö¸¸ "½ÇÁ¦ »ýȰ"¿¡¼­´Â ù¹ø¿¡ Á¦´ë·Î 
µÇ´Â ÀÏÀº °ÅÀÇ ¾ø´Ù.  À̶§°¡ ´ç½ÅÀÇ ÀçÄ¡¸¦ ½ÃÇèÇÒ ¶§´Ù.

<sect1>¸µÅ© ¿¡·¯
<p>
<itemize>
<item>xmkmf¸¦ ½ÇÇàÇßÀ½¿¡µµ <em>make</em>°¡ ´ÙÀ½°ú °°Àº ¸Þ½ÃÁö¸¦ ³»°í ½ÇÆÐÇß´Ù°í 
°¡Á¤ÇÏÀÚ.
<tt>Ling error: -lX11: No such file or directory</tt>
ÀÌ °æ¿ì <em>Imake</em> ÆÄÀÏÀÌ Á¦´ë·Î ¼³Á¤µÇÁö ¾Ê¾ÒÀ» °¡´É¼ºÀÌ Å©´Ù.  
<em>Makefile</em>ÀÇ Ã¹ºÎºÐ¿¡ ÀÖ´Â ´ÙÀ½°ú °°Àº ÁÙµéÀ» È®ÀÎÇØ º¸¶ó.

<tscreen><verb>
LIB=            -L/usr/X11/lib
INCLUDE=        -I/usr/X11/include/X11
LIBS=           -lX11 -lc -lm
</verb></tscreen>

<tt>-L</tt>°ú <tt>-I</tt> ½ºÀ§Ä¡´Â °¢°¢ ÄÄÆÄÀÏ·¯¿Í ¸µÄ¿¿¡°Ô 
<em>¶óÀ̺귯¸®</em>¿Í <em>include</em> ÆÄÀϵéÀ» ¾îµð¿¡¼­ ã¾Æ¾ß ÇÏ´ÂÁö 
¾Ë·ÁÁÖ´Â °ÍÀÌ´Ù.  
ÀÌ ¿¹¿¡¼­´Â <em>X11 ¶óÀ̺귯¸®</em>´Â <tt>/usr/X11/lib</tt> µð·ºÅ͸®¿¡, 
<em>X11ÀÇ include ÆÄÀÏ</em>µéÀº <tt>/usr/X11/include/X11</tt> µð·ºÅ͸®¿¡ 
ÀÖ¾î¾ß ÇÑ´Ù.  ´ç½ÅÀÇ ÄÄÇ»ÅÍ´Â ÀÌ¿Í ´Ù¸£´Ù¸é, <em>Makefile</em>¿¡ ÇÊ¿äÇÑ ¼öÁ¤À» 
°¡Çϰí, <em>make</em>¸¦ ´Ù½Ã ÇØ º¸µµ·Ï Ç϶ó.

</itemize>

<itemize>

<item>´ÙÀ½°ú °°ÀÌ ¼öÇÐ ¶óÀ̺귯¸® ÇÔ¼ö¿¡ ´ëÇÑ Á¤ÀǵÇÁö ¾ÊÀº ÂüÁ¶(undefined 
reference)°¡ ÀÖÀ» °æ¿ì:
<tscreen><verb>
         /tmp/cca011551.o(.text+0x11): undefined reference to `cos'
</verb></tscreen>
ÀÌ ¹®Á¦¿¡ ´ëÇÑ ÇØ¹ýÀº <tt>Makefile</tt> ³»ÀÇ <em>LIB</em>À̳ª <em>LIBS</em> 
ºÎºÐ(À§ÀÇ ¿¹¸¦ º¸¶ó)¿¡ <bf>-lm</bf> À» ´õÇÔÀ¸·Î½á <tt>¼öÇÐ ¶óÀ̺귯¸®</tt>¸¦ 
¸í½ÃÀûÀ¸·Î ¸µÅ©ÇÏ´Â °ÍÀÌ´Ù.

</itemize>



<itemize>

<item><em>xmkmf</em>°¡ ½ÇÆÐÇßÀ» ¶§ ÇØ º¼ ¼ö ÀÖ´Â ¶Ç´Ù¸¥ °ÍÀº ´ÙÀ½ÀÇ ½ºÅ©¸³Æ®´Ù.
<tscreen><verb>
         make -DUseInstalled -I/usr/X386/lib/X11/config
</verb></tscreen>
À̰ÍÀº <em>xmkmf</em>¿Í µ¿µîÇÑ Àú¼öÁØ ¸í·É(bare bone)ÀÇ ÀÏÁ¾ÀÌ´Ù.

</itemize>

<itemize>

<item>¸Å¿ì µå¹® °æ¿ìÁö¸¸, <em>root</em>·Î¼­ <em>ldconfig</em>¸¦ ½ÇÇà½ÃŰ´Â °ÍÀÌ
ÇØ¹ýÀÌ µÉ ¼öµµ ÀÖ´Ù.
<tscreen><verb>
</verb></tscreen>

<bf># ldconfig</bf> ´Â °øÀ¯ ¶óÀ̺귯¸®ÀÇ ½Éº¼¸¯ ¸µÅ©¸¦ °»½ÅÇÑ´Ù.  
<em>À̰ÍÀº ¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ¾Æ´Ò ¼öµµ ÀÖ´Ù.</em>

</itemize>

<itemize>

<item>¾î¶² <tt>Makefile</tt>Àº ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ÀÖ´Â ¶óÀ̺귯¸®¿¡ ´ëÇØ ÀνĵÇÁö 
¾ÊÀº(unrecognized) º°¸í(alias)¸¦ »ç¿ëÇϱ⵵ ÇÑ´Ù.  ¿¹¸¦ µé¾î, ÄÄÆÄÀÏÀº 
<tt>libX11.so.6</tt>À» ¿ä±¸ÇÏÁö¸¸ <tt>/usr/X11R6/lib</tt>¿¡´Â ±×·± ÆÄÀÏÀ̳ª 
¸µÅ©°¡ ¾øÀ» ¼ö ÀÖ´Ù.  ÇÏÁö¸¸ <tt>libX11.so.6.1</tt>Àº ÀÖ´Ù.  
ÇØ°áÃ¥Àº root·Î¼­ 
<bf>ln -s /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/lib/libX11.so.6</bf> 
À» ÇÏ´Â °ÍÀÌ´Ù.  ÀÌ ´ÙÀ½¿¡´Â <bf>ldconfig</bf>¸¦ ½ÇÇà½ÃÄÑ¾ß ÇÒ ¼öµµ ÀÖ´Ù.

</itemize>


<itemize>

<item>¶§·Î´Â ¼Ò½º¸¦ ÄÄÆÄÀÏÇϱâ À§ÇØ ¿À·¡µÈ X11R5ÀÇ ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÒ ¼öµµ 
ÀÖ´Ù.  /usr/X11R6/lib¿¡ R5ÀÇ ¶óÀ̺귯¸®°¡ ÀÖ´Ù¸é(óÀ½ ¸®´ª½º¸¦ ¼³Ä¡ÇÒ ¶§ À̰ÍÀ» 
¼³Ä¡Çϵµ·Ï ¿É¼ÇÀ» ÁÖ¾ú´Ù¸é), ¼ÒÇÁÆ®¿þ¾î¸¦ ÄÄÆÄÀÏÇϱâ À§ÇØ ÇÊ¿äÇÑ ¸µÅ©°¡
Á¦´ë·Î ÀÖ´ÂÁö¸¸ È®ÀÎÇÏ¸é µÈ´Ù.  <tt>R5 ¶óÀ̺귯¸®</tt>ÀÇ À̸§Àº 
<tt>libX11.so.3.1.0</tt>, <tt>libXaw.so.3.1.0</tt>, <tt>libXt.so.3.1.0</tt>
ÀÌ´Ù.  º¸Åë <em>libX11.so.3 -> libX11.so.3.1.0</em>°ú °°Àº ¸µÅ©°¡ ÇÊ¿äÇÏ´Ù.  
¼ÒÇÁÆ®¿þ¾î°¡ <em>libX11.so -> libX11.so.3.1.0</em> ÇüÅÂÀÇ ¸µÅ©¸¦ 
ÇÊ¿ä·Î ÇÒ ¼öµµ ÀÖ´Ù.  ¹°·Ð "ºüÁ®ÀÖ´ø" ¸µÅ©¸¦ ¸¸µé·Á¸é, <em>root</em>·Î¼­ 
<bf>ln -s libX11.so.3.1.0 libX11.so</bf> ¸í·ÉÀ» ¾´´Ù.

</itemize>




<itemize>

<item>¾î¶² ÆÐŰÁö´Â ¶óÀ̺귯¸®¸¦ ÃֽйöÁ¯À¸·Î ¼³Ä¡Çϵµ·Ï ¿ä±¸Çϱ⵵ ÇÑ´Ù.
¿¹¸¦ µé¾î, StarDivision GmbHÀÇ <em>StarOffice</em> ÆÐŰÁö 4.x ¹öÁ¯µéÀº 
5.4.4 ÀÌ»óÀÇ ¹öÁ¯À» °¡Áø <tt>libc</tt>¸¦ ¿ä±¸Çϱâ·Î ¾Ç¸íÀÌ ³ô¾Ò´Ù.  
±×º¸´Ù µÚ¿¡ ³ª¿Â <em>StarOffice</em> 5.0µµ »õ·Î¿î <tt>glibc 2.1</tt> 
¶óÀ̺귯¸®¸¦ ¼³Ä¡ÇÏ°í ³ª¸é ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù.  
´ÙÇàÈ÷µµ, ±× ´ÙÀ½¿¡ ³ª¿Â <em>StarOffice</em> 5.1Àº ÀÌ ¹®Á¦¸¦ ÇØ°áÇß´Ù.  
¿À·¡µÈ ¹öÁ¯ÀÇ <em>StarOffice</em>¸¦ ½ÇÇà½ÃŰ·Á¸é, <em>root</em>·Î¼­ 
¶óÀ̺귯¸®µéÀ» ÀûÀýÇÑ µð·ºÅ͸®¿¡ º¹»çÇϰí, ¿À·¡µÈ ¶óÀ̺귯¸®¸¦ »èÁ¦ÇÑ ´ÙÀ½ 
½Éº¼¸¯ ¸µÅ©¸¦ ´Ù½Ã ¼³Á¤ÇØ¾ß ÇÑ´Ù. (ÀÌ¿¡ ´ëÇÑ Á¤º¸°¡
´õ ÇÊ¿äÇϸé ÃֽйöÁ¯ÀÇ <tt>StarOffice miniHOWTO</tt>¸¦ º¸¶ó.)

<bf>ÁÖÀÇ: ½Ç¼öÇÏ¸é ´ç½ÅÀÇ ½Ã½ºÅÛÀÌ ÀÛµ¿ÇÏÁö ¾Êµµ·Ï ÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î, 
ÀÌ °úÁ¤¿¡¼­´Â ±Øµµ·Î ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù.  °»½ÅµÈ ÃֽжóÀ̺귯¸®´Â ´ë°³ Sunsite¿¡¼­
ãÀ» ¼ö ÀÖ´Ù.</bf>

ÃֽжóÀ̺귯¸®´Â ´ë°³ <htmlurl url="ftp://metalab.unc.edu/pub/Linux/libs" 
name="Sunsite">¿¡¼­ ãÀ» ¼ö ÀÖ´Ù.

</itemize>

<sect1>´Ù¸¥ ¹®Á¦µé
<p>

<itemize>

<item>¼³Ä¡µÇ¾î ÀÖ´Â <em>Perl</em> À̳ª ±×¹ÛÀÇ ½© ½ºÅ©¸³Æ®°¡ <tt>No such file or 
directory</tt>¶ó´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ ³¾ ¼ö ÀÖ´Ù.  ÀÌ °æ¿ì¿¡´Â ÆÄÀÏÀÌ ½ÇÇà °¡´ÉÇÏ°Ô 
µÇ¾î ÀÖ´ÂÁö Çã°¡±ÇÀ» È®ÀÎÇϰí, ½ºÅ©¸³Æ®°¡ È£ÃâÇÏ´Â ½©À̳ª ÇÁ·Î±×·¥ÀÌ ÁöÁ¤µÈ 
À§Ä¡¿¡ ÀÖ´ÂÁö ÆÄÀÏÀÇ Çì´õ ºÎºÐÀ» È®ÀÎÇϵµ·Ï ÇÑ´Ù.  
¿¹¸¦ µé¾î ½ºÅ©¸³Æ®°¡ ¾Æ·¡¿Í °°ÀÌ ½ÃÀÛÇÑ´Ù°í ÇÏÀÚ.
<tscreen><verb>
#!/usr/local/bin/perl
</verb></tscreen>
<em>Perl</em>ÀÌ »ç½ÇÀº <tt>/usr/local/bin</tt>ÀÌ ¾Æ´Ï¶ó <tt>/usr/bin</tt> 
µð·ºÅ͸®¿¡ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é, ÀÌ ½ºÅ©¸³Æ®´Â ½ÇÇàµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.  
ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ´Â µ¥¿¡´Â µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.  
½ºÅ©¸³Æ® ÆÄÀÏÀÇ Çì´õ¸¦ <tt>#!/usr/bin/perl</tt>·Î ¹Ù²Ù°Å³ª, 
<bf>ln -s /usr/bin/perl /usr/local/bin/perl</bf> 
·Î Á¤È®ÇÑ µð·ºÅ͸®·ÎÀÇ ½Éº¼¸¯ ¸µÅ©¸¦ Ãß°¡ÇØ ÁÖ¸é µÈ´Ù.

</itemize>

<itemize>

<item>¾î¶² X11 ¼ÒÇÁÆ®¿þ¾î¸¦ ÄÄÆÄÀÏÇÏ·Á¸é Motif ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÏ´Ù.  Ç¥ÁØÀûÀÎ
¸®´ª½º ¹èÆ÷º»¿¡´Â Motif ¶óÀ̺귯¸®°¡ ¾øÀ¸¸ç, ÇöÀç Motif´Â 100-200 ´Þ·¯´Ù.
(¸¹Àº °æ¿ì ÇÁ¸®¿þ¾îÀÎ <url url="http://www.lesstif.org/" name="Lesstif">
µµ ¾µ ¼ö ÀÖÁö¸¸.)  ¾î¶² ÆÐŰÁö¸¦ ÄÄÆÄÀÏÇϱâ À§ÇØ Motif°¡ ÇÊ¿äÇѵ¥, 
Motif ¶óÀ̺귯¸®¸¦ °¡Áö°í ÀÖÁö ¾Ê´Ù¸é <em>Á¤ÀûÀ¸·Î ¸µÅ©µÈ</em> 
¹ÙÀ̳ʸ®¸¦ ±¸ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.  Á¤Àû ¸µÅ©´Â ¶óÀ̺귯¸® ·çƾµéÀ» ¹ÙÀ̳ʸ® ÀÚü¿¡
³Ö´Â °ÍÀÌ´Ù.  ÀÌ·¸°Ô ÇÏ¸é ¹ÙÀ̳ʸ® ÆÄÀÏÀº ÈξÀ Ä¿ÁöÁö¸¸, ÇØ´ç ¶óÀ̺귯¸®°¡ ¾ø´Â
½Ã½ºÅÛ¿¡¼­µµ ¼öÇà½Ãų ¼ö ÀÖ´Ù.

<tscreen><verb>
</verb></tscreen>

ÄÄÆÄÀÏÀ» À§ÇØ ´ç½Å ½Ã½ºÅÛ¿¡ ¾ø´Â ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÏ´Ù¸é, ±× ÆÐŰÁö´Â ¸µÅ© 
¿¡·¯(<tt>undefined reference error</tt>)¸¦ ÀÏÀ¸Å³ °ÍÀÌ´Ù.  ±×·± ¶óÀ̺귯¸®´Â 
ºñ½Ñ °ÍÀ̰ųª, ´Ù¸¥ ¾î¶² ÀÌÀ¯·Î ã±â ¾î·Á¿î °ÍÀÏ ¼ö ÀÖ´Ù.  ±×·± °æ¿ì¿¡´Â 
<em>Á¤ÀûÀ¸·Î ¸µÅ©µÈ</em> ¹ÙÀ̳ʸ®¸¦ ÆÐŰÁö Á¦ÀÛÀÚ³ª ¸®´ª½º »ç¿ëÀÚ ±×·ì¿¡°Ô¼­ 
±¸ÇÏ´Â °ÍÀÌ °¡Àå ½¬¿î ÇØ°áÃ¥ÀÌ´Ù.

</itemize>


<itemize>
<em>configure</em> ½ºÅ©¸³Æ®¸¦ ¼öÇà½ÃÄ×´õ´Ï ´ç½ÅÀÌ ÄÄÆÄÀÏÇÏ·Á´Â ÆÐŰÁö¿Í´Â 
°ü°è¾ø¾î º¸ÀÌ´Â ÀÌ»óÇÑ MakefileÀ» ¸¸µå´Â °æ¿ì°¡ ÀÖ´Ù.  À̰ÍÀº ´ç½ÅÀÇ path ÁßÀÇ 
´Ù¸¥ ¾îµò°¡¿¡¼­ ¹ß°ßµÈ ¾û¶×ÇÑ <em>configure</em>¸¦ ¼öÇàÇß´Ù´Â ¶æÀÌ´Ù.  
ÀÌ·± ÀÏÀ» ÇÇÇÏ·Á¸é Ç×»ó <bf>./configure</bf>·Î ½ÇÇàÇϵµ·Ï ÇÏÀÚ.
</itemize>


<itemize>
´ëºÎºÐÀÇ ¸®´ª½º ¹èÆ÷º»Àº ¿¾³¯ÀÇ <tt>lib 5</tt>¿¡¼­ <tt>libc 6 /glibc 2</tt> 
¶óÀ̺귯¸®·Î ¹Ù²î¾ú´Ù.  ¿¾³¯ ¶óÀ̺귯¸®¿Í ÇÔ²² ÀÛµ¿Çϵµ·Ï ¹Ì¸® ÄÄÆÄÀÏµÈ 
¹ÙÀ̳ʸ®¶ó¸é ´ç½ÅÀÌ ¶óÀ̺귯¸®¸¦ ¾÷±×·¹À̵åÇÒ °æ¿ì ¹®Á¦¸¦ ÀÏÀ¸Å³ ¼ö ÀÖ´Ù.  
ÇØ¹ýÀº ÇÁ·Î±×·¥À» ¼Ò½º¿¡¼­ºÎÅÍ ´Ù½Ã ÄÄÆÄÀÏÇϵçÁö, ¹Ì¸® ÄÄÆÄÀÏµÈ »õ·Î¿î
¹ÙÀ̳ʸ®¸¦ ¾ò´Â °ÍÀÌ´Ù.  Ȥ½Ã ´ç½ÅÀÌ ½Ã½ºÅÛÀ» <tt>libc 6</tt>À¸·Î ¾÷±×·¹À̵åÇÏ´Â
ÁßÀ̰í ÀÌ·± ¹®Á¦¸¦ °æÇèÇß´Ù¸é Eric GreenÀÇ <em>Glibc 2 HOWTO</em>¸¦ Âü°íÇϵµ·Ï 
Ç϶ó.

<tscreen><verb>
</verb></tscreen>

<tt>glibc</tt> ¹öÁ¯µé »çÀÌ¿¡´Â ¾à°£ÀÇ È£È¯µÇÁö ¾Ê´Â Á¡ÀÌ ÀÖ´Ù´Â °Í¿¡ ÁÖÀÇÇ϶ó.
ÀÌ ¶§¹®¿¡ <tt>glibc 2.1</tt>¿¡¼­ ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ®´Â <tt>glibc 2.0</tt>°ú´Â 
ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù°Å³ª ±× ¹Ý´ëÀÇ °æ¿ì°¡ ÀÖÀ» ¼ö ÀÖ´Ù.


</itemize>

<itemize>
¶§·Î´Â <tt>Makefile</tt> ¾ÈÀÇ ÄÄÆÄÀÏ ¿É¼Ç¿¡¼­ <em>-ansi</em> ¿É¼ÇÀ» Á¦°ÅÇÒ 
Çʿ䰡 ÀÖÀ» ¼öµµ ÀÖ´Ù.  ÀÌ·¸°Ô Çϸé gcc°¡ °®°í ÀÖ´Â ANSI ÀÌ¿ÜÀÇ Æ¯Â¡µéÀ» 
Ȱ¼ºÈ­½Ã۸ç, ÀÌ·± Ư¡µéÀ» ¿ä±¸ÇÏ´Â ÆÐŰÁöµéÀ» ÄÄÆÄÀÏÇÒ ¼ö ÀÖ°Ô µÈ´Ù. 
(ÀÌ »ç½ÇÀ» ÁöÀûÇØ ÁØ Sebastien Blondeel¿¡°Ô °¨»çÇÑ´Ù.)
</itemize>

<itemize>

<item>¾î¶² ÇÁ·Î±×·¥µéÀº <em>root ±ÇÇÑ</em>À¸·Î ½ÇÇàµÇµµ·Ï Çϱâ À§ÇØ 
<em>setuid root</em>¸¦ ÇØÁÖ¾î¾ß ÇÑ´Ù.  ÀÌ·¸°Ô ÇÏ´Â ¸í·ÉÀº <em>root·Î¼­</em> 
<bf>chmod u+s ÆÄÀÏÀ̸§</bf> 
ÇÏ´Â °ÍÀÌ´Ù. (ÇÁ·Î±×·¥ÀÌ ±× ÀÌÀü¿¡ ¹Ì¸® root ¼ÒÀ¯·Î µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù´Â Á¡¿¡
ÁÖÀÇÇ϶ó.)  ÀÌ ¸í·ÉÀº ÆÄÀÏ Çã°¡±Ç ³»ÀÇ <em>setuid</em> ºñÆ®¸¦ ¼³Á¤ÇÏ´Â ±â´ÉÀ» 
ÇÑ´Ù.  ÀÌ ¹®Á¦´Â ÇÁ·Î±×·¥ÀÌ ¸ðµ©À̳ª cd-rom µå¶óÀÌºê °°Àº ½Ã½ºÅÛ Çϵå¿þ¾î¿¡ 
Á¢±ÙÇϰųª, ¾î´À ƯÈ÷ ¾Ç¸í³ôÀº ¿¡¹Ä·¹ÀÌ¼Ç ÆÐŰÁö ó·³ ÄÜ¼Ö ¸ðµå¿¡¼­ SVGA 
¶óÀ̺귯¸®¸¦ È£ÃâÇÒ °æ¿ì ÀϾ´Ù.  ÇÁ·Î±×·¥ÀÌ root·Î¼­´Â ½ÇÇàµÇÁö¸¸,
ÀÏ¹Ý »ç¿ëÀÚ¿¡°Ô´Â <em>access denied</em> ¿¡·¯ ¸Þ½ÃÁö¸¦ ³»º¸³½´Ù¸é 
ÀÌ Çã°¡±Ç ¹®Á¦¸¦ ÀǽÉÇØº¸±â ¹Ù¶õ´Ù.

<P>

<bf>ÁÖÀÇ:</bf>   
root·ÎÀÇ <em>setuid</em>¸¦ °¡Áø ÇÁ·Î±×·¥Àº ½Ã½ºÅÛ¿¡ º¸¾È »óÀÇ À§Çè ¿äÀÎÀÌ µÉ ¼ö 
ÀÖ´Ù.  ÀÌ·± ÇÁ·Î±×·¥Àº rootÀÇ ±ÇÇÑÀ» °®°í ½ÇÇàµÇ¸ç µû¶ó¼­ ½É°¢ÇÑ ¼Õ»óÀ» ³¢Ä¥
ÀáÀç·ÂÀ» °®°í ÀÖ´Ù.  µû¶ó¼­ <em>setuid</em> ºñÆ®¸¦ ÁÖ±â Àü¿¡ ÇÁ·Î±×·¥ÀÌ ¹«¾ùÀ»
ÇÏ´ÂÁö, °¡´ÉÇÏ´Ù¸é ¼Ò½º¸¦ »ìÆìº½À¸·Î½á, È®ÀÎÇϵµ·Ï Ç϶ó.

</itemize>


<sect1>º¯°æ(tweaking)°ú ¹Ì¼¼ÇÑ Á¶Á¤(fine tuning)
<p>

´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ °¡Àå ÁÁÀº ÄÄÆÄÀÏ ¿É¼ÇµéÀÌ ¼³Á¤µÇ¾î ÀÖ´ÂÁö È®ÀÎÇϱâ À§Çؼ­
<tt>Makefile</tt>À» µé¿©´Ùº¸°í ½ÍÀ» ¼öµµ ÀÖ´Ù.  
¿¹¸¦ µé¾î <em>-O2</em> ¿É¼ÇÀ» ÁÖ¸é ÃÖ°í ¼öÁØÀÇ ÃÖÀûÈ­¸¦ ¼±ÅÃÇÏ°Ô µÇ°í, 
<em>-fomit-frame-pointer</em> ¿É¼ÇÀº 
(µð¹ö±ëÀº ºÒ°¡´ÉÇÏ°Ô µÇÁö¸¸) ¹ÙÀ̳ʸ®¸¦ ´õ ÀÛ°Ô ¸¸µé¾î ÁØ´Ù.  
<bf>ÀÚ½ÅÀÌ ¹«¾ùÀ» Çϰí ÀÖ´ÂÁö ¸ð¸¥´Ù¸é ÀÌ·± °ÍµéÀ» °Çµå¸®Áö ¾Êµµ·Ï Ç϶ó.  
±×¸®°í ¾î¶² °æ¿ì¿¡µç ½ÃÇè»ï¾Æ ±×³É ÄÄÆÄÀÏÇØ¼­ Á¦´ë·Î µ¹¾Æ°¡´Â °ÍÀ» È®ÀÎÇÑ ´ÙÀ½¿¡
Çϵµ·Ï Ç϶ó.</bf> 



<sect1>´õ µµ¿òÀÌ ÇÊ¿äÇÒ ¶§ °¡ º¼ °÷
<p>

³» °æÇè¿¡ ÀÇÇϸé, ÀÀ¿ë ÇÁ·Î±×·¥ °¡¿îµ¥ ±×´ë·Î ¹®Á¦¾øÀÌ ÄÄÆÄÀϵǴ °ÍÀº ¾à
25% Á¤µµ¿´´Ù.  50% ³²ÁþÀº °£´ÜÇ졂 ²ûÂïÇÒ Á¤µµ°Ç ³ë·ÂÇϸé ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù.  
Áï »ó´ç¼öÀÇ ÆÐŰÁöµéÀº ¾Æ¹«¸® ÇØµµ ÄÄÆÄÀÏÇÒ ¼ö°¡ ¾ø´Ù´Â ¶æÀÌ´Ù.
±×·¸´Ù°í ÇØµµ, ÀÌ ÆÐŰÁöµéÀÇ ÀÎÅÚ <tt>ELF</tt> ¹× <tt>a.out</tt> ¹ÙÀ̳ʸ®¸¦ 
<htmlurl url="ftp://metalab.unc.edu" name="Sunsite">³ª <htmlurl 
url="ftp://tsx-11.mit.edu" name = "TSX-11 archive"> »çÀÌÆ®¿¡¼­ ãÀ» °¡´É¼ºµµ 
ÀÖ´Ù.  <url url="http://redhat.com" name="·¹µå ÇÞ">°ú <url 
url="http://www.debian.org" name="µ¥ºñ¾È">µµ ÈçÈ÷ ¾²ÀÌ´Â ¸®´ª½º 
¼ÒÇÁÆ®¿þ¾îÀÇ ´ëºÎºÐÀÌ ¹Ì¸® ÆÐŰÁöÈ­µÈ ¹ÙÀ̳ʸ®·Î ÀúÀåµÇ¾î ÀÖ´Ù.
ȤÀº ¼ÒÇÁÆ®¿þ¾îÀÇ Á¦ÀÛÀÚ°¡ ´ç½ÅÀÇ Æ¯º°ÇÑ ÃëÇâÀÇ ÄÄÇ»Å͸¦ À§ÇØ ÄÄÆÄÀÏµÈ 
¹ÙÀ̳ʸ®¸¦ Á¦°øÇØ ÁÙ ¼öµµ ÀÖ´Ù.


<tt>¹Ì¸® ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ®¸¦ ¾ò¾ú´Ù¸é, ´ç½ÅÀÇ ½Ã½ºÅÛ°úÀÇ È£È¯¼ºÀ» È®ÀÎÇϱâ À§ÇØ
´ÙÀ½ »çÇ×µéÀ» Á¡°ËÇØ¾ß ÇÑ´Ù.</tt>
<itemize>
<item><tt>¹ÙÀ̳ʸ®°¡ ´ç½ÅÀÇ Çϵå¿þ¾î(¿¹¸¦ µé¾î ÀÎÅÚ x86)¿¡¼­ ÀÛµ¿ÇØ¾ß ÇÑ´Ù.</tt>
<item><tt>¹ÙÀ̳ʸ®°¡ ´ç½ÅÀÇ Ä¿³Î°ú ȣȯµÇ´Â °ÍÀ̾î¾ß ÇÑ´Ù.(a.out À̳ª elf)</tt>
<item><tt>´ç½ÅÀÇ ¶óÀ̺귯¸®°¡ ÃÖ½ÅÀÇ °ÍÀ̾î¾ß ÇÑ´Ù.</tt>
<item><tt>´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ÀûÀýÇÑ ¼³Ä¡ À¯Æ¿¸®Æ¼(rpmÀ̳ª deb)°¡ ÀÖ¾î¾ß ÇÑ´Ù.</tt>
</itemize>

¸¸¾à ¸ðµç ½Ãµµ°¡ ½ÇÆÐÇÑ´Ù¸é, <htmlurl url="news://comp.os.linux.x"
name="comp.os.linux.x">³ª <htmlurl url="news://comp.os.linux.development"
name="comp.os.linux.development"> °°Àº ÀûÀýÇÑ ´º½º±×·ì¿¡¼­ µµ¿òÀ» ãÀ» ¼ö ÀÖ´Ù.

Ȥ½Ã ¸ðµç ³ë·ÂÀÌ ¼öÆ÷·Î µ¹¾Æ°¬´Ù°í ÇÏ´õ¶óµµ, ÃÖ¼ÒÇÑ ´ç½ÅÀº ÃÖ¼±À» ´ÙÇßÀ¸¸ç
±× °úÁ¤¿¡¼­ ¸¹Àº °ÍÀ» ¹è¿üÀ» Å×´Ï ³Ê¹« ³«½ÉÇÒ ÇÊ¿ä´Â ¾ø´Ù.






<sect>¸¶Áö¸· ´Ü°è<label id="finalsteps">
<p>
(<tt>.bashrc</tt>³ª <tt>.cshrc</tt> ¾È¿¡) ¾î¶² ȯ°æ º¯¼ö¸¦ ¼³Á¤ÇØ¾ß ÇÏ´ÂÁö, 
¶Ç <tt>.Xdefaults</tt>¿Í <tt>.Xresources</tt> ÆÄÀÏÀ» °íÃÄ¾ß ÇÏ´ÂÁö °áÁ¤Çϱâ À§ÇØ 
¼ÒÇÁÆ®¿þ¾î ÆÐŰÁöÀÇ ¹®¼­¸¦ ÀÐ¾î º¸¾Æ¶ó.

ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ±âº» ¼³Á¤ ÆÄÀÏÀÌ ÀÖÀ» ¼öµµ ÀÖ´Ù.  ¿ø·¡ÀÇ ¹èÆ÷º»ÀÌ Xfoo ¶ó¸é 
º¸Åë <tt>Xfoo.ad</tt>¶ó´Â À̸§ÀÌ´Ù.  ÀÌ·± ÆÄÀÏÀÌ ÀÖÀ¸¸é ´ç½ÅÀÇ ÄÄÇ»ÅÍ¿¡ ¸Âµµ·Ï
Xfoo.ad ÆÄÀÏÀ» ÆíÁýÇØ¼­, Xfoo ·Î ¹Ù²Û ´ÙÀ½(<bf>mv</bf>), <em>root·Î¼­</em>
<tt>/usr/lib/X11/app-defaults</tt> µð·ºÅ͸®¿¡ ¼³Ä¡Çϵµ·Ï ÇÑ´Ù.  ÀÌ·¸°Ô ÇÏÁö 
¾ÊÀ¸¸é ¼ÒÇÁÆ®¿þ¾î°¡ ÀÌ»óÇÏ°Ô ÀÛµ¿Çϰųª ¾Æ¿¹ ÀÛµ¿ÇÏÁö ¾Ê°Ô µÉ ¼ö ÀÖ´Ù.

´ëºÎºÐÀÇ ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁö¿¡´Â Çϳª ÀÌ»óÀÇ ¹Ì¸® Æ÷¸ËµÈ man ÆäÀÌÁö°¡ ÀÖ´Ù.
<em>root·Î¼­</em> Xfoo.man ÆÄÀÏÀ» <tt>/usr/man</tt>, <tt>/usr/local/man</tt>, 
<tt>/usr/X11R6/man</tt> ÀÇ Àû´çÇÑ µð·ºÅ͸®(<tt>man1</tt> - <tt>man9</tt>)¿¡ 
º¹»çÇϰí, ±×¿¡ ¸ÂÃç À̸§À» ¹Ù²Ù¾î ÁØ´Ù.  ¿¹¸¦ µé¾î Xfoo.man À» /usr/man/man4¿¡ 
µÎ¾ú´Ù¸é, Xfoo.4 ·Î À̸§À» °íÃÄ¾ß ÇÑ´Ù. (mv Xfoo.man Xfoo.4)  
°ü·Ê¿¡ µû¸£¸é, »ç¿ëÀÚ°¡ ¾²´Â ±âº» ¸í·ÉÀº <tt>man1</tt>, °ÔÀÓÀº <tt>man6</tt>,
°ü¸®¿ë ÆÐŰÁö´Â <tt>man8</tt>ÀÌ´Ù. (ÀÚ¼¼ÇÑ °ÍÀº <em>man docs</em>À» º¸¶ó.)
¹°·Ð ¿øÇÑ´Ù¸é ´ç½Å ½Ã½ºÅÛ¿¡¼­´Â ÀÌ¿Í ´Ù¸£°Ô ÇÒ ¼öµµ ÀÖ´Ù.

¾î¶² ÆÐŰÁö¿¡´Â <tt>Makefile</tt>¿¡ <em>install</em> ¿É¼ÇÀÌ ºüÁ® À־, 
¹ÙÀ̳ʸ® ÆÄÀÏÀ» ÀûÀýÇÑ ½Ã½ºÅÛ µð·ºÅ͸®¿¡ ¼³Ä¡ÇÏÁö ¾Ê´Â´Ù.  
ÀÌ·± °æ¿ì¿¡´Â ¼öµ¿À¸·Î <tt>/usr/bin</tt>, <tt>/usr/local/bin</tt>, 
<tt>/usr/X11R6/bin</tt> µîÀÇ ½Ã½ºÅÛ µð·ºÅ͸®¿¡ ¹ÙÀ̳ʸ®µéÀ» º¹»çÇØ¼­
¼³Ä¡ÇÒ ¼ö ÀÖ´Ù.  ¹°·Ð <em>root·Î¼­</em>.  ¸®´ª½º ¹èÆ÷º»ÀÌ ±âº»À¸·Î ¼³Ä¡ÇÏÁö ¾Ê´Â
¹ÙÀ̳ʸ®´Â <tt>/usr/local/bin</tt>ÀÌ ±ÇÀåµÈ´Ù´Â Á¡À» ¿°µÎ¿¡ µÎÀÚ.

´ëºÎºÐÀÇ °æ¿ì, À§ÀÇ ÀýÂ÷µéÀÇ ÀϺΠȤÀº ÀüºÎ°¡ <bf>make install</bf>·Î 
ÀÚµ¿ÀûÀ¸·Î 󸮵ȴÙ.  ÆÐŰÁö¿¡ µû¶ó <bf>make install.man</bf> À̳ª 
<bf>make install_man</bf> ÀÌ ÀÖÀ» ¼öµµ ÀÖ´Ù.  
ÀÌ·± °æ¿ì¿¡´Â <tt>README</tt>³ª <tt>INSTALL</tt> ÆÄÀÏ¿¡ ¸í½ÃµÇ¾î ÀÖÀ» °ÍÀÌ´Ù.


<sect>ù¹øÂ° ¿¹: Xscrabble
<p>
Matt ChapmanÀÇ <tt>Xscrabble</tt>À̶ó´Â ÇÁ·Î±×·¥ÀÌ ÀÖÀ¸¸é Àç¹ÌÀÖ°Ú´Ù°í 
»ý°¢Çß´Ù.  ³ª´Â ÀÚÁÖ Scrabble<tt>TM</tt>¸¦ µè±â ¶§¹®ÀÌ´Ù.  
³ª´Â ÀÌ ÇÁ·Î±×·¥À» ´Ù¿î¹Þ¾Æ¼­ ¾ÐÃàÀ» Ç®°í, README ÆÄÀÏ¿¡ ÀÖ´Â ¾Æ·¡ÀÇ 
¼ø¼­´ë·Î ÄÄÆÄÀÏÇß´Ù.
<tscreen><verb>
     xmkmf
     make Makefiles
     make includes
     make
</verb></tscreen>

<em>¹°·Ð ÀÌ·¸°Ô ÇØ¼­ Á¦´ë·Î µÈ °Ç ¾Æ´ÏÁö¸¸...</em>

<tscreen><verb>
gcc -o xscrab -O2 -O -L/usr/X11R6/lib 
init.o xinit.o misc.o moves.o cmove.o main.o xutils.o mess.o popup.o
widgets.o display.o user.o CircPerc.o
-lXaw -lXmu -lXExExt -lXext -lX11 -lXt -lSM -lICE -lXExExt -lXext -lX11
-lXpm -L../Xc -lXc

BarGraf.o(.text+0xe7): undefined reference to `XtAddConverter'
BarGraf.o(.text+0x29a): undefined reference to `XSetClipMask'
BarGraf.o(.text+0x2ff): undefined reference to `XSetClipRectangles'
BarGraf.o(.text+0x375): undefined reference to `XDrawString'
BarGraf.o(.text+0x3e7): undefined reference to `XDrawLine'
etc.
etc.
etc...
</verb></tscreen>

³ª´Â ÀÌ¿¡ ´ëÇØ <htmlurl url="news://comp.os.linux.x" name="comp.os.linux.x"> 
´º½º±×·ì¿¡ ¹°¾îº¸¾Ò°í, ¾î¶² »ç¶÷ÀÌ Xt, Xaw, Xmu, X11 ¶óÀ̺귯¸®°¡ ¸µÅ© ´Ü°è¿¡¼­
¹ß°ßµÇÁö ¾Ê¾ÒÀ½ÀÌ Æ²¸²¾ø´Ù°í Ä£ÀýÇÏ°Ô °¡¸£ÃÄ ÁÖ¾ú´Ù.  Èì...

ÆÐŰÁö¿¡´Â µÎ °³ÀÇ ÁÖµÈ MakefileÀÌ ÀÖ¾ú°í, ±× Áß <tt>src</tt> µð·ºÅ͸®¿¡ ÀÖ´Â 
°ÍÀÌ ³» ÁÖÀǸ¦ ²ø¾ú´Ù.  Makefile ³»ÀÇ ÇÑ ÁÙÀÌ LOCAL_LIBSÀ» ´ÙÀ½°ú °°ÀÌ 
Á¤ÀÇÇϰí ÀÖ¾ú´Ù.
LOCAL_LIBS = $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB)
¸µÅ©°¡ ãÁö ¸øÇÑ ¶óÀ̺귯¸®µé·ÎÀÇ ÂüÁ¶°¡ ¿©±â ÀÖ¾ú´Ù.

LOCAL_LIBS ·ÎÀÇ ´ÙÀ½¹ø ÂüÁ¶¸¦ ã´Ù°¡, ³ª´Â ±× MakefileÀÇ 495 Çà¿¡¼­ ´ÙÀ½À»
¹ß°ßÇß´Ù.
<tscreen><verb>
      $(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LOCAL_LIBS) $(LDLIBS)
$(EXTRA_LOAD_FLAGS)
</verb></tscreen>

ÀÌÁ¦ ÀÌ LDLIBS´Â ¹«¾ùÀ̾úÀ»±î?
<tscreen><verb>
      LDLIBS = $(LDPOSTLIB) $(THREADS_LIBS) $(SYS_LIBRARIES)
$(EXTRA_LIBRARIES)
</verb></tscreen>

SYS_LIBRARIES Àº ´ÙÀ½°ú °°¾Ò´Ù.
<tscreen><verb>
 SYS_LIBRARIES = -lXpm -L../Xc -lXc
</verb></tscreen>
±×·¸´Ù!  ¿©±â ãÀ» ¼ö ¾ø´ø ¶óÀ̺귯¸®µéÀÌ ÀÖ¾ú´Ù.

¸µÄ¿°¡ LOCAL_LIBS Àü¿¡ LDLIBS¸¦ º¸¾Æ¾ß ÇÏ´Â °ÍÀÏ °¡´É¼ºÀÌ ÀÖ¾ú´Ù.
µû¶ó¼­ óÀ½À¸·Î ½ÃµµÇØ º¼ ÀÏÀº 495 ÇàÀÇ $(LOCAL_LIBS)¿Í $(LDLIBS)¸¦ ¹Ù²ã¼­
¾Æ·¡¿Í °°ÀÌ ÇÏ´Â °ÍÀ̾ú´Ù.
<tscreen><verb>
        $(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LDLIBS) $(LOCAL_LIBS)
$(EXTRA_LOAD_FLAGS)                          ^^^^^^^^^^^^^^^^^^^^^^^
</verb></tscreen>

³ª´Â À§¿Í °°ÀÌ ¹Ù²ã¼­ ´Ù½Ã <em>make</em>¸¦ ½ÇÇàÇØº¸¾Ò°í, À̹ø¿¡´Â Á¦´ë·Î 
½ÇÇàµÇ¾ú´Ù.  ¹°·Ð XscrabbleÀº ¾ÆÁ÷ µð·ºÅ͸®ÀÇ À̸§À» ¹Ù²Û´Ù°Å³ª ¼Ò½º ÆÄÀÏ ÁßÀÇ 
Çϳª¿¡ ÀÖ´Â ¸î¸î ¼±¾ð¹®À» ÁÖ¼® ó¸®ÇÏ´Â µî, ¼¼ºÎÀûÀÎ Á¶Á¤°ú º¯°æÀÌ ÇÊ¿äÇßÁö¸¸, 
ÀÌ ÆÐŰÁö´Â ±× µÚ ¿À·§µ¿¾È ³ª¸¦ Áñ°Ì°Ô ÇØÁÖ¾ú´Ù.



[»õ ¹öÁ¯ÀÇ XscrabbleÀº ÀÌÁ¦ rpm Çü½ÄÀ¸·Î ±¸ÇÒ ¼ö ÀÖÀ¸¸ç, ¹®Á¦¾øÀÌ ¼³Ä¡µÈ´Ù.]



<em>Xscrabble</em>¸¦ ¾òÀ¸·Á¸é <url url="mailto:matt@belgarath.demon.co.uk" 
name="Matt Chapman">¿¡°Ô e-mailÀ» Çϰųª, ±×ÀÇ <url 
url="http://www.belgarath.demon.co.uk/programs/index.html" 
name="Ȩ ÆäÀÌÁö">¿¡¼­ ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù.




<tscreen><verb>
       ScrabbleÀº Milton Bradley Co., Inc.ÀÇ µî·ÏµÈ »óÇ¥ÀÌ´Ù.
</verb></tscreen>




<sect>µÎ¹øÂ° ¿¹: Xloadimage
<p>
ÀÌ ¿¹ÀÇ ¹®Á¦ ù¹øÂ°º¸´Ù ½±´Ù.  <em>xloadimage</em> ÇÁ·Î±×·¥À» ³» ±×·¡ÇÈ 
µµ±¸ ¸ðÀ½¿¡ Ãß°¡Çϸé ÁÁ°Ú´Ù°í »ý°¢Çß´Ù.  ³ª´Â <tt>xloadi41.gz</tt> ÆÄÀÏÀ» 
Mui¿Í Quercia°¡ ¾´ <ref id="refs" name="X User Tools">¶ó´Â ÈǸ¢ÇÑ Ã¥ÀÇ 
ºÎ·Ï CD¿¡ ÀÖ´Â ¼Ò½º µð·ºÅ͸®¿¡¼­ Á÷Á¢ º¹»çÇß´Ù.
±â´ëÇÑ ´ë·Î, <em>tar xzvf</em>·Î ÆÄÀÏÀ» Ç® ¼ö ÀÖ¾ú´Ù.  
ÇÏÁö¸¸ <em>make</em>´Â °í¾àÇØ º¸ÀÌ´Â ¿¡·¯¸¦ ³»°í´Â Áß´ÜµÇ¾î ¹ö·È´Ù.

<tscreen><verb>
gcc -c -O -fstrength-reduce -finline-functions -fforce-mem
-fforce-addr -DSYSV  -I/usr/X11R6/include
-DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\" mcidas.c

In file included from /usr/include/stdlib.h:32,
                 from image.h:23,
                 from xloadimage.h:15,
                 from mcidas.c:7:
/usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:
conflicting types for `wchar_t'
/usr/X11R6/include/X11/Xlib.h:74: previous declaration of
`wchar_t'
make[1]: *** [mcidas.o] Error 1
make[1]: Leaving directory
`/home/thegrendel/tst/xloadimage.4.1'
make: *** [default] Error 2
</verb></tscreen>

¿¡·¯ ¸Þ½ÃÁö¿¡ °áÁ¤ÀûÀÎ ´Ü¼­°¡ µé¾îÀÖ´Ù.

<tt>image.h</tt> ÆÄÀÏÀÇ 23° ÁÙÀ» º¸¸é...
<tscreen><verb>
       #include <stdlib.h>
</verb></tscreen>

Aha, <em>xloadimage</em>ÀÇ ¼Ò½º ¾îµò°¡¿¡¼­ <em>wchar_t</em>°¡ Ç¥ÁØ include 
ÆÄÀÏÀÎ <tt>stdlib.h</tt>¿¡¼­ Á¤ÀÇµÈ °ÍÀ¸·Î ´Ù½Ã Á¤ÀǵǾú´Ù.
¸ÕÀú <em>stdlib.h</em>´Â Æ÷ÇÔ½Ãų Çʿ䰡 ¾øÀ» µí ÇϹǷΠ<tt>image.h</tt>ÀÇ
23° ÁÙÀ» ÁÖ¼®¹®À¸·Î ¸¸µé¾î º¸ÀÚ.

ÀÌÁ¦ ¼³Ä¡ °úÁ¤Àº ¾Æ¹«·± Ä¡¸íÀûÀÎ ¿¡·¯ ¾øÀÌ ÁøÇàµÈ´Ù.  <em>xloadimage</em> 
ÆÐŰÁö´Â Áö±Ý Á¤È®È÷ ÀÛµ¿Çϰí ÀÖ´Ù.





<sect>¼¼¹øÂ° ¿¹: Fortune
<p>
ÀÌ ¿¹´Â C ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ Áö½ÄÀÌ Á¶±Ý ÇÊ¿äÇÏ´Ù.  À¯´Ð½º³ª ¸®´ª½º¿ë 
¼ÒÇÁÆ®¿þ¾îÀÇ ¸¹Àº ºÎºÐÀÌ C·Î ¾²¿©Á® ÀÖÀ¸¹Ç·Î, ¼ÒÇÁÆ®¿þ¾î ¼³Ä¡¿¡ ´ëÇØ¼­ ÁøÁöÇÑ 
»ç¶÷À̶ó¸é ÃÖ¼ÒÇÑ Á¶±ÝÀº C¸¦ ¹è¿öµÎ´Â °ÍÀÌ ÁÁ´Ù.

¾Ç¸í³ôÀº <em>fortune</em> ÇÁ·Î±×·¥Àº ¸®´ª½º°¡ ¶ã ¶§¸¶´Ù "fortune cookie"¶ó°í 
ºÒ¸®´Â Àç¹ÌÀÖ´Â °Ý¾ðÀ» º¸¿©ÁØ´Ù.  
ºÒÇàÇϰԵµ(unfortunately, ¹ßÀ½°®°í ³ó´ãÇÏ´Â °Å´Ù), 2.0.30 Ä¿³ÎÀ» »ç¿ëÇÏ´Â 
·¹µå ÇÞ ¹èÆ÷ÆÇ¿¡¼­ fortuneÀ» ÄÄÆÄÀÏÇÏ·Á°í ÇÏ¸é ½É°¢ÇÑ ¿¡·¯°¡ »ý±ä´Ù.

<tscreen><verb>
~/fortune# make all


gcc -O2 -Wall -fomit-frame-pointer -pipe   -c fortune.c -o
fortune.o
fortune.c: In function `add_dir':
fortune.c:551: structure has no member named `d_namlen'
fortune.c:553: structure has no member named `d_namlen'
make[1]: *** [fortune.o] Error 1
make[1]: Leaving directory `/home/thegrendel/for/fortune/fortune'
make: *** [fortune-bin] Error 2
</verb></tscreen>




<tt>fortune.c</tt>¸¦ »ìÆìº¸¸é, ÇØ´çµÇ´Â ÁÙÀº ´ÙÀ½°ú °°´Ù.

<tscreen><verb>
   if (dirent->d_namlen == 0)
            continue;
        name = copy(dirent->d_name, dirent->d_namlen);
</verb></tscreen>

¿ì¸®´Â <tt>dirent</tt>¶ó´Â ±¸Á¶Ã¼¸¦ ã¾Æ¾ß ÇÏÁö¸¸, ÀÌ ±¸Á¶Ã¼´Â 
<em>fortune.c</em> ¾È¿¡ ¼±¾ðµÇ¾î ÀÖÁö ¾ÊÀ¸¸ç, <bf>grep dirent</bf>¸¦ ÇØºÁµµ 
´Ù¸¥ ¼Ò½º ÆÄÀϵ鿡¼­µµ ãÀ» ¼ö ¾ø´Ù.
ÇÏÁö¸¸, <em>fortune.c</em>ÀÇ Á¦ÀÏ À§¿¡ ´ÙÀ½°ú °°Àº ÁÙÀÌ ÀÖ´Ù.

<tscreen><verb>
#include <dirent.h>
</verb></tscreen>

À̰ÍÀº ½Ã½ºÅÛ ¶óÀ̺귯¸®ÀÇ include ÆÄÀÏ·Î º¸À̹ǷÎ, <em>dirent.h</em>¸¦ ãÀ» 
³í¸®ÀûÀÎ À§Ä¡´Â <em>/usr/include</em> ´Ù.  ½ÇÁ¦·Î <em>/usr/include</em>¿¡´Â 
<em>dirent.h</em> ÆÄÀÏÀÌ ÀÖÁö¸¸, ±× ÆÄÀÏÀº <tt>dirent</tt> ±¸Á¶Ã¼ÀÇ Á¤ÀǸ¦ 
Æ÷ÇÔÇϰí ÀÖÁö ¾Ê´Ù.  ÀÌ ÆÄÀÏÀº ±× ´ë½Å ¶Ç´Ù¸¥ <em>dirent.h</em> ÆÄÀÏÀ» 
ÂüÁ¶Çϰí ÀÖ´Ù.

<tscreen><verb>
#include <linux/dirent.h>
</verb></tscreen>


¸¶Ä§³», <em>/usr/include/linux/dirent.h</em>¿¡¼­, ¹Ù¶ó´ø ±¸Á¶Ã¼ ¼±¾ðÀ» ã¾Ò´Ù.

<tscreen><verb>
struct dirent {
        long            d_ino;
        __kernel_off_t  d_off;
        unsigned short  d_reclen;
        char            d_name[256]; /* We must not include limits.h! */
};
</verb></tscreen>

¹°·Ð ÀÌ ±¸Á¶Ã¼ ¼±¾ðÀº <em>d_namelen</em> À» Æ÷ÇÔÇϰí ÀÖÁö ¾ÊÁö¸¸, 
±×¿¡ ÇØ´çµÉ ¸¸ÇÑ "Èĺ¸"´Â µÎ °³ ÀÖ´Ù.  °¡Àå ±×·² µí ÇÑ °ÍÀº 
<em>d_reclen</em>Àε¥, ÀÌ ±¸Á¶Ã¼ ¸â¹ö´Â ¹«¾ùÀΰ¡ÀÇ ±æÀ̸¦ ³ªÅ¸³»´Â °Í °°°í 
¶Ç short integer ÇüÀ̱⠶§¹®ÀÌ´Ù.
¶Ç ÇϳªÀÇ °¡´É¼ºÀº, <em>d_ino</em>Àε¥ ±× À̸§°ú ÀÚ·áÇüÀ¸·Î º¸¾Æ 
inodeÀÇ ¹øÈ£ÀÏ °Í °°´Ù.
¿ì¸®´Â ¾Æ¸¶µµ "directory entry" ±¸Á¶Ã¼¸¦ ´Ù·ç°í ÀÖ´Â µí ÇÏ´Ù.
±× ¿ø¼ÒµéÀº ÆÄÀÏÀÇ ¼Ó¼º, ±× À̸§, inode, ±æÀÌ(ºí·° ¼ö)¸¦ ³ªÅ¸³¾ °ÍÀÌ´Ù.  
À̰͵µ (d_reclen °ú d_ino ¿¡ ´ëÇÑ) ¿ì¸®ÀÇ ÃßÃøÀ» È®ÀÎÇØ ÁÖ´Â °ÍÀ¸·Î º¸ÀδÙ.

<tt>fortune.c</tt> ÆÄÀÏÀ» ÆíÁýÇØ¼­, 551°ÁÙ°ú 553°ÁÙÀÇ <em>d_namelen</em>¿¡ 
´ëÇÑ ÂüÁ¶¸¦ <em>d_reclen</em>¿¡ ´ëÇÑ ÂüÁ¶·Î °íÄ¡µµ·Ï ÇÏÀÚ.  
´Ù½Ã <em>make all</em> À» ÇØ º¸ÀÚ.  <bf>¼º°øÀÌ´Ù.</bf>
¿¡·¯ ¾øÀÌ ÄÄÆÄÀϵǾú´Ù.  ¿ì¸®´Â ÀÌÁ¦ fortuneÀ¸·ÎºÎÅÍ ½Ñ °ª¿¡ ½º¸±À» ´À³¥ ¼ö
ÀÖ´Ù.


<sect>³×¹øÂ° ¿¹: Hearts
<p>

À̹ø¿¡´Â 80³â´ë¿¡ Bob Ankeney°¡ À¯´Ð½º ½Ã½ºÅÛÀ» À§ÇØ ÀÛ¼ºÇß°í, 
1992³â¿¡ Mike YangÀÌ °íÃÆÀ¸¸ç, Áö±ÝÀº 
<url url="mailto:badger@phylo.life.uiuc.edu" name="Jonathan Badger">°¡ 
°ü¸®Çϰí ÀÖ´Â °í»ö⿬ÇÑ ¿¾ °ÔÀÓÀÎ Hearts´Ù.  
±× ¼±Á¶´Â Oregon ¼ÒÇÁÆ®¿þ¾îÀÇ Don Backus°¡ ¾´
ÈξÀ ´õ ¿À·¡µÈ ÆÄ½ºÄ® ÇÁ·Î±×·¥À¸·Î ³ªÁß¿¡  Jeff HemmerlingÀÌ °³Á¤Çß´Ù.
¿ø·¡´Â ´ÙÁß »ç¿ëÀÚ Å¬¶óÀÌ¾ðÆ®¸¦ ¿°µÎ¿¡ µÐ °ÍÀÌÁö¸¸, ÄÄÇ»Å͸¦ »ó´ë·Î ÇÑ
´ÜÀÏ »ç¿ëÀÚ ¸ðµåµµ °¡´ÉÇÏ´Ù.  ¼¼·ÃµÈ ¸éÀÌ ºÎÁ·Çϰí ÄÄÇ»ÅÍ »ó´ë°¡ º°·Î °­ÇÏÁö
¾ÊÁö¸¸, ±×·¡ÇÈÀº ÈǸ¢ÇÏ´Ù.  À¯´Ð½º¿Í ¸®´ª½º¿¡¼­ °¡´ÉÇÑ °ÍÀº Áö±ÝÀ¸·Î¼­µµ
Ä£ÀýÇÑ Hearts °ÔÀÓ ¹Û¿¡´Â ¾ø´Â µí ÇÏ´Ù.

±× ³ªÀÌ¿Í Ç÷Åë ¶§¹®¿¡, ÀÌ ÆÐŰÁö´Â ƯÈ÷ ¸®´ª½º ½Ã½ºÅÛ¿¡ ¼³Ä¡ÇÏ±â ¾î·Æ´Ù.
¼³Ä¡¸¦ À§Çؼ­´Â ±æ°í °ñÄ¡¾ÆÇ ÀÏ·ÃÀÇ ÆÛÁñÀ» Ç®¾î¾ß ÇÑ´Ù.  ÀÌ °úÁ¤Àº Àγ»¿Í
°áÀÇÀÇ ÈÆ·ÃÀ̶ó ÇÒ ¼ö ÀÖ´Ù.

<em>½ÃÀÛÇϱâ Àü¿¡, <tt>motif</tt> ³ª <tt>lesstif</tt> ¶óÀ̺귯¸®°¡ 
¼³Ä¡µÇ¾î ÀÖ´ÂÁö È®ÀÎÇϵµ·Ï Ç϶ó.</em>

<itemize>
<item><bf></bf>
</itemize>

<bf>xmkmf</bf>

<bf>make</bf>

<tscreen><verb>
client.c: In function `read_card':
client.c:430: `_tty' undeclared (first use in this function)
client.c:430: (Each undeclared identifier is reported only once
client.c:430: for each function it appears in.)
client.c: In function `scan':
client.c:685: `_tty' undeclared (first use in this function)
make: *** [client.o] Error 1
</verb></tscreen>


<tt>client.c</tt>¿¡ ¹üÀÎÀÌ ÀÖ´Ù.

<tscreen><verb>
#ifndef SYSV
        (buf[2] != _tty.sg_erase) && (buf[2] != _tty.sg_kill)) {
 #else
        (buf[2] != CERASE) && (buf[2] != CKILL)) {
#endif
</verb></tscreen>




<itemize>
<item><bf></bf>
</itemize>

<tt>client.c</tt>ÀÇ 39° ÁÙ¿¡
<tscreen><verb>
#define SYSV
</verb></tscreen>
¸¦ ´õÇÑ´Ù.  ÀÌ·¸°Ô Çϸé <em>_tty</em>·ÎÀÇ ÂüÁ¶¸¦ ¹«½ÃÇÑ´Ù.

<bf>make</bf>

<tscreen><verb>
client.c:41: sys/termio.h: No such file or directory
make: *** [client.o] Error 1
</verb></tscreen>


<itemize>
<item><bf></bf>
</itemize>

¸®´ª½º ½Ã½ºÅÛ¿¡¼­´Â <tt>termio.h</tt> ÆÄÀÏÀÌ <tt>/usr/include</tt> ¿¡ ÀÖ´Ù.
´õ ¿À·¡µÈ À¯´Ð½º¿¡¼­´Â <tt>/usr/include/sys</tt>¿¡ ÀÖ´Ù.
µû¶ó¼­, <tt>clinet.c</tt>ÀÇ 41° ÁÙÀ» 
<tscreen><verb>
#include <sys/termio.h>
</verb></tscreen>
¿¡¼­
<tscreen><verb>
#include <termio.h>
</verb></tscreen>
·Î ¹Ù²Û´Ù.

<bf>make</bf>

<tscreen><verb>
gcc -o hearts -g      -L/usr/X11R6/lib client.o hearts.o select.o connect.o
sockio.o start_dist.o  -lcurses -ltermlib       
/usr/bin/ld: cannot open -ltermlib: No such file or directory
collect2: ld returned 1 exit status
make: *** [hearts] Error 1
</verb></tscreen>



<itemize>
<item><bf></bf>
</itemize>

¿äÁòÀÇ ¸®´ª½º ¹èÆ÷º»Àº ±¸½ÄÀÇ <em>termlib</em> µ¥ÀÌÅͺ£À̽º º¸´Ù´Â
<em>terminfo</em>³ª <em>termcap</em>À» »ç¿ëÇÑ´Ù.

<tt>Makefile</tt>ÀÇ 655° ÁÙ,

<tscreen><verb>
CURSES_LIBRARIES = -lcurses -ltermlib
</verb></tscreen>
¸¦

<tscreen><verb>
CURSES_LIBRARIES = -lcurses -ltermcap
</verb></tscreen>
·Î ¹Ù²Û´Ù.


<bf>make</bf>

<tscreen><verb>
gcc -o xmhearts -g      -L/usr/X11R6/lib xmclient.o hearts.o select.o
connect.o sockio.o start_dist.o gfx.o  -lXm_s -lXt -lSM -lICE -lXext -lX11
-lPW       
/usr/bin/ld: cannot open -lXm_s: No such file or directory
collect2: ld returned 1 exit status
</verb></tscreen>



<itemize>
<item><bf></bf>
</itemize>

<em>lesstif</em>ÀÇ ÁÖ ¶óÀ̺귯¸®´Â <tt>libXm_s</tt>°¡ ¾Æ´Ï¶ó <tt>libXm</tt>ÀÌ´Ù.
µû¶ó¼­ <tt>Makefile</tt>¸¦ °íÄ£´Ù.

653° ÁÙ:
<tscreen><verb>
XMLIB = -lXm_s $(XTOOLLIB) $(XLIB) -lPW
</verb></tscreen>

´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
<tscreen><verb>
XMLIB = -lXm $(XTOOLLIB) $(XLIB) -lPW
</verb></tscreen>


<bf>make</bf>

<tscreen><verb>
gcc -o xmhearts -g      -L/usr/X11R6/lib xmclient.o hearts.o select.o
connect.o sockio.o start_dist.o gfx.o  -lXm -lXt -lSM -lICE -lXext -lX11 -lPW       
/usr/bin/ld: cannot open -lPW: No such file or directory
collect2: ld returned 1 exit status
make: *** [xmhearts] Error 1
</verb></tscreen>



<itemize>
<item><bf></bf>
</itemize>

´Ã ÇÏ´ø ÀǽÉÀ» ÇØº¸ÀÚ

<tt>PW</tt>¶óÀ̺귯¸®°¡ ¾ø´Ù.  <tt>Makefile</tt>¸¦ °íÄ£´Ù.

653° ÁÙ,
<tscreen><verb>
XMLIB = -lXm $(XTOOLLIB) $(XLIB) -lPW
</verb></tscreen>

¸¦ ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
<tscreen><verb>
XMLIB = -lXm $(XTOOLLIB) $(XLIB) -lPEX5
</verb></tscreen>
(The <tt>PEX5</tt> lib comes closest to <tt>PW</tt>.)


<bf>make</bf>


<tscreen><verb>
rm -f xmhearts
gcc -o xmhearts -g      -L/usr/X11R6/lib xmclient.o hearts.o select.o
connect.o sockio.o start_dist.o gfx.o  -lXm -lXt -lSM -lICE -lXext -lX11 -lPEX5       
</verb></tscreen>

µåµð¾î <tt>make</tt>¿¡ ¼º°øÇß´Ù. (¸¸¼¼!)



<itemize>
<item><bf></bf>
</itemize>

<em>¼³Ä¡:</em>

root·Î¼­ ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

<tscreen><verb>
[root@localhost hearts]# make install
install -c -s  hearts /usr/X11R6/bin/hearts
install -c -s  xmhearts /usr/X11R6/bin/xmhearts
install -c -s  xawhearts /usr/X11R6/bin/xawhearts
install in . done
</verb></tscreen>





<itemize>
<item><bf></bf>
</itemize>

<em>½ÃÇè»ï¾Æ µ¹·Áº¸ÀÚ.</em>

<bf>rehash</bf>

(¿ì¸®´Â <tt>tcsh</tt> ½©À» ¾²°í ÀÖ´Ù.)

<bf>xmhearts</bf>

<tscreen><verb>
localhost:~/% xmhearts
Can't invoke distributor!
</verb></tscreen>



<itemize>
<item><bf></bf>
</itemize>

<tt>heats</tt> ÆÐŰÁöÀÇ <tt>README</tt> ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ÀûÇô ÀÖ´Ù.

<tscreen><verb>
     heartsd, hearts_dist¿Í hearts.instr¸¦ local.h¿¡ Á¤ÀÇµÈ HEARTSLIB µð·ºÅ͸® 
     ¾È¿¡ µÎ°í, ÀÌ ÆÄÀϵ鿡 ´©±¸³ª Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï Ç϶ó.
</verb></tscreen>

    
<tt>local.h</tt> ÆÄÀÏ ³»¿ë:

<tscreen><verb>
/* where the distributor, dealer and instructions live */

#define HEARTSLIB "/usr/local/lib/hearts"
</verb></tscreen>

À̰ÍÀº RTFMÀÇ °íÀüÀûÀÎ °æ¿ì´Ù.


<em>root</em>·Î¼­ ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

<bf>cd /usr/local/lib</bf>

<bf>mkdir hearts</bf>

<bf>cd !$</bf>

<tt>¼³Ä¡µÉ</tt> ÆÄÀϵéÀ» ÀÌ µð·ºÅ͸®¿¡ º¹»çÇÑ´Ù.

<bf>cp /home/username/hearts/heartsd .</bf>

<bf>cp /home/username/hearts/hearts_dist .</bf>

<bf>cp /home/username/hearts/hearts.instr .</bf>



<itemize>
<item><bf></bf>
</itemize>

<em>´Ù½Ã ÇÑ ¹ø ½ÃÇè»ï¾Æ µ¹·Áº¸ÀÚ.</em>

<bf>xmhearts</bf>

Çѵ¿¾È µ¹¾Æ°¡´Ù°¡ <tt>dealer died!</tt> ¶ó´Â ¸Þ½ÃÁö¸¦ ³»¸ç Á״´Ù.



<itemize>
<item><bf></bf>
</itemize>

"distributor"¿Í "dealer"´Â Çϵå¿þ¾îÀÇ Æ÷Æ®µéÀ» Á¶»ç(scan)ÇÑ´Ù.  µû¶ó¼­ ¿ì¸®´Â
ÀÌ ÇÁ·Î±×·¥µéÀÌ rootÀÇ ±ÇÇÑÀ» ÇÊ¿ä·Î ÇÏ´ÂÁö ÀǽÉÇØ¾ß ÇÑ´Ù.

<em>root</em>·Î¼­ ´ÙÀ½°ú °°ÀÌ ÇØº¸ÀÚ,

<bf>chmod u+s /usr/local/lib/heartsd</bf>

<bf>chmod u+s /usr/local/lib/hearts_dist</bf>

(¾Õ¼­ À̾߱âÇßµíÀÌ, <em>suid</em>µÈ ¹ÙÀ̳ʸ®´Â º¸¾È »óÀÇ ÇãÁ¡À» ¸¸µé ¼öµµ
ÀÖ´Ù´Â °Í¿¡ ÁÖÀÇÇ϶ó.)

<bf>xmhearts</bf>


<em>µåµð¾î µ¹¾Æ°£´Ù!</em>


<tt><em>Hearts</em>´Â <htmlurl 
url="ftp://metalab.unc.edu/pub/Linux/games/multiplayer/hearts.tgz"
name="¼±»çÀÌÆ®">¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.</tt> 



<sect>´Ù¼¸¹øÂ° ¿¹: XmDipmon
<p>

<tscreen><verb>
Bullwinkle: Hey Rocky, watch me pull a rabbit out of my hat.
Rocky:      But that trick never works.
Bullwinkle: This time for sure.
            Presto!
	    Well, I'm gettin' close.
Rocky:      And now it's time for another special feature.
            --- "Rocky and His Friends"
</verb></tscreen>
	     

XmDipmon Àº ÀÎÅÍ³Ý ¿¬°á »óŸ¦ º¸¿©ÁÖ´Â ¹öưÀ» Ç¥½ÃÇÏ´Â ÀÛ°í Àç¹ÌÀÖ´Â ÀÀ¿ë
ÇÁ·Î±×·¥ÀÌ´Ù.  ³°Àº ÀüÈ­¼±¿¡¼­´Â ÈçÈ÷ ¿¬°áÀÌ ²÷¾îÁö°ï Çϴµ¥, ±×·± °æ¿ì¿¡´Â 
¹Ý¦°Å¸®¸é¼­ °æ°íÀ½À» ³½´Ù.  ºÒÇàÈ÷µµ, XmDipmonÀº <em>dip</em> °ú¸¸ ÀÛµ¿Çϴµ¥,
À̶§¹®¿¡ ÀÎÅÍ³Ý ¿¬°á¿¡ <em>chat</em>¸¦ ¾²´Â ´ëºÎºÐÀÇ »ç¶÷µé¿¡°Ô´Â ¾µ¸ð°¡ ¾ø´Ù.

XmDipmon À» ÄÄÆÄÀÏÇÏ´Â °ÍÀº ¹®Á¦°¡ ¾Æ´Ï´Ù.  XmDipmonÀº <em>Motif</em> 
¶óÀ̺귯¸®¿¡ ¸µÅ©µÇ¾î ÀÖÁö¸¸, <em>Lesstif</em>¿Íµµ Àß ÄÄÆÄÀϵǰí Àß ½ÇÇàµÈ´Ù.
À̹ø µµÀüÀº <em>chat</em>¸¦ ¾µ ¶§µµ ÀÛµ¿µÇµµ·Ï ÆÐŰÁö¸¦ °íÄ¡´Â °ÍÀÌ´Ù.  
ÀÌ ÀÛ¾÷Àº ½ÇÁ¦·Î ¼Ò½º Äڵ带 ¶«ÁúÇÏ´Â °Í±îÁö Æ÷ÇÔÇϰí ÀÖÀ¸¸ç, 
µû¶ó¼­ ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ Áö½ÄÀÌ ¾î´À Á¤µµ ÇÊ¿äÇÏ´Ù.



<tscreen><verb>
         "½ÇÇàµÇ¸é, xmdipmon Àº /etc/dip.pid ¶ó´Â ÆÄÀÏÀ» È®ÀÎÇÑ´Ù. (-pidfile ÀÇ 
         ¸í·ÉÇà ÀÎÀÚ¸¦ ½á¼­ ´Ù¸¥ ÆÄÀÏÀ» ãµµ·Ï ÇÒ ¼öµµ ÀÖ´Ù.)  ÀÌ ÆÄÀÏÀº dip 
         µ¥¸óÀÇ PID ¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù. (dip ´Â ÀÏ´Ü ¿¬°áÀÌ ÀÌ·ç¾îÁö¸é ÀÚ½ÅÀ» 
         µ¥¸ó ¸ðµå·Î ÀüȯÇÑ´Ù.)"
                       --- XmDipmon README ÆÄÀϷκÎÅÍ Àοë.
</verb></tscreen>	 


<em>-pidfile</em> ¿É¼ÇÀ» ÁÖ¾î ½ÇÇàÇϸé, XmDipmonÀÌ <em>chat</em> ·Î±×ÀÎÀÌ 
¼º°øÇßÀ» ¶§¿¡¸¸ Á¸ÀçÇÏ´Â ´Ù¸¥ ÆÄÀÏÀ» È®ÀÎÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù.  
¸í¹éÇÑ È帴 ¸ðµ©ÀÇ lock ÆÄÀÏÀÌ´Ù.  µû¶ó¼­ <bf>xmdipmon -pidfile 
/var/lock/LCK..ttyS3</bf> ·Î ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ º¸ÀÚ. 
(ÀÌ ¸í·ÉÀº ¸ðµ©ÀÌ 4¹ø com Æ÷Æ®, Áï ttyS3¿¡ ÀÖ´Ù°í °¡Á¤ÇÑ °ÍÀÌ´Ù.)
ÇÏÁö¸¸ À̰ÍÀº ¹®Á¦ÀÇ ÀϺθ¦ Ǭ °ÍÀÏ »ÓÀÌ´Ù.  ÇÁ·Î±×·¥Àº °è¼Ó 
<em>dip µ¥¸ó</em>À» °¨½ÃÇϸç, µû¶ó¼­ ¿ì¸®´Â <em>dip µ¥¸ó</em> ´ë½Å 
<em>chat</em>³ª <em>ppp</em>¿Í °ü·ÃµÈ ÇÁ·Î¼¼½º¸¦ °¨½ÃÇϵµ·Ï ¹Ù²ã¾ß ÇÑ´Ù.

¼Ò½º ÆÄÀÏÀº Çϳª ¹Û¿¡ ¾øÀ¸¸ç, ´ÙÇàÈ÷µµ ÁÖ¼®¹®ÀÌ Àß ´Þ·ÁÀÖ´Ù.  
<tt>xmdipmon.c</tt> ÆÄÀÏÀ» º¸¸é, Çì´õ°¡ ¾Æ·¡¿Í °°ÀÌ µÇ¾î ÀÖ´Â 
<em>getProcFile</em> ÇÔ¼ö¸¦ ãÀ» ¼ö ÀÖ´Ù.

<tscreen><verb>
/*****
* Name:                 getProcFile
* Return Type:  Boolean
* Description:  tries to open the /proc entry as read from the dip pid file.
<snip>
*****/
</verb></tscreen>

°áÁ¤ÀûÀÎ ´Ü¼­´Ù.  ÇÔ¼ö ³»ºÎ¸¦ ã¾Æº¸ÀÚ.

<tscreen><verb>
			/* we watch the status of the real dip deamon */
			sprintf(buf, "/proc/%i/status", pid);
			procfile = (String)XtMalloc(strlen(buf)*sizeof(char)+1);
			strcpy(procfile, buf);
			procfile[strlen(buf)] = '\0';
</verb></tscreen>

¹üÀÎÀº 2383° ÁÙÀÌ´Ù.
<tscreen><verb>
			sprintf(buf, "/proc/%i/status", pid);
			              ^^^^^^^^^^^^^^^^^^^^^
</verb></tscreen>

ÀÌ ÇÔ¼ö°¡ dip µ¥¸ó ÇÁ·Î¼¼½º°¡ ½ÇÇàµÇ°í ÀÖ´ÂÁö °Ë»çÇÏ´Â °ÍÀÌ´Ù.  ±×·¯¸é,
´ë½Å pppd µ¥¸óÀ» °¨½ÃÇϵµ·Ï ÇÏ·Á¸é ÀÌ ºÎºÐÀ» ¾î¶»°Ô °íÄ¡¸é µÉ±î?

<em>pppd</em> ÀÇ ¸ÇÆäÀÌÁö¸¦ º¸ÀÚ.
<tscreen><verb>
FILES
       /var/run/pppn.pid (BSD or Linux), /etc/ppp/pppn.pid (others)
                     Process-ID for pppd process on ppp interface unit n.
</verb></tscreen>


<tt>xmdipmon.c</tt>ÀÇ 2383° ÁÙÀ» ¾Æ·¡¿Í °°ÀÌ °íÄ¡ÀÚ.
<tscreen><verb>
			sprintf(buf, "/var/run/ppp0.pid" );
</verb></tscreen>

°íÄ£ ÆÐŰÁö¸¦ ´Ù½Ã ÄÄÆÄÀÏÇÏÀÚ.  ¹®Á¦¾øÀÌ ÄÄÆÄÀϵȴÙ.  
ÀÌÁ¦ »õ·Î¿î ¸í·ÉÇà ÀÎÀÚ¸¦ ½á¼­ ½ÃÇèÇØ º¸ÀÚ.  ¾Æ¸¶ ½ÅÅëÇÏ°Ô Àß ½ÇÇàµÉ °ÍÀÌ´Ù.  
ÀÎÅÍ³Ý ¼­ºñ½º Á¦°øÀÚ(ISP)·Î <tt>ppp</tt> ¿¬°áÀÌ ÀÌ·ç¾îÁ® ÀÖÀ» ¶§¿¡´Â 
ÀÛ°í ÆÄ¶õ ¹öưÀÌ Ç¥½ÃµÇ°í, ¿¬°áÀÌ ²÷¾îÁö¸é ¹Ý¦°Å¸®¸é¼­ °æ°íÀ½À» ³½´Ù.  
ÀÌÁ¦ ¿ì¸®´Â ¿Ïº®ÇÏ°Ô ÀÛµ¿ÇÏ´Â <em>chat</em> ¸ð´ÏÅ͸¦ °®°Ô µÇ¾ú´Ù.


XmDipmon´Â <htmlurl url="http://www.xs4all.nl/~ripley/RSD/linux.html" 
name="Ripley Linux Tools">¿¡¼­ ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù.



<sect>¼Ò½º ¸ðÀ½À» ãÀ» ¼ö ÀÖ´Â °÷
<p>
´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ À¯Æ¿¸®Æ¼³ª ´Ù¸¥ ÇÁ·Î±×·¥µéÀ» Ãß°¡Çϱâ À§ÇØ »õ·Î ¾òÀº Áö½ÄÀ» 
¾²°í ½Í´Ù¸é,  ¼Ò½º ¸ðÀ½À»
<url url="http://www.redhat.com/linux-info/linux-app-list/linapps.html"
name="Linux Applications and Utilities Page">À̳ª
<url url="http://www.redhat.com/" name="Red Hat">, 
<url url="http://www.infomagic.com" name="InfoMagic">,
<url url="http://www.lsl.com" name="Linux Systems Labs">, 
<url url="http://www.cheapbytes.com" name="Cheap Bytes"> µîÀÇ
¸Å¿ì Àú·ÅÇÑ °¡°ÝÀÇ ½Ãµð·ÒÀ» ÅëÇØ¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.

¼Ò½º Äڵ带 Àß Á¤¸®ÇØ µÐ °÷À¸·Î´Â
<htmlurl url="ftp://ftp.vix.com/pub/usenet/comp.sources.unix/" 
name="comp sources UNIX archive">°¡ ÀÖ´Ù.

¸¹Àº À¯´Ð½º ¼Ò½º ÄÚµåµéÀÌ
<htmlurl url="news://alt.sources" name="alt.sources"> ´º½º±×·ì¿¡ °ÔÀçµÇ¾î ÀÖ´Ù.
ƯÁ¤ÇÑ ÆÐŰÁöÀÇ ¼Ò½º Äڵ带 ã°í ÀÖ´Ù¸é, °ü·ÃµÈ
<htmlurl url="news://alt.sources.wanted" name="alt.sources.wanted">
´º½º±×·ì¿¡ °Ô½Ã¹°À» ¿Ã¸®¸é µÈ´Ù.
<htmlurl url="news://comp.os.linux.announce" name="comp.os.linux.announce"> 
´º½º±×·ìµµ È®ÀÎÇØ º¼ ¸¸ÇÑ °÷ÀÌ´Ù.
<htmlurl url="mailto:unix-sources@pa.dec.com" name="Unix sources">
¸ÞÀϸµ ¸®½ºÆ®¿¡ µî·ÏÇÏ·Á¸é, <em>subscribe</em> ¸Þ½ÃÁö¸¦ º¸³»µµ·Ï Ç϶ó.

<htmlurl url="news://alt.sources" name="alt.sources"> ´º½º±×·ìÀÇ °Ô½Ã¹° ¸ðÀ½Àº
´ÙÀ½ÀÇ ftp »çÀÌÆ®¿¡ ÀÖ´Ù.

<itemize>
<item><htmlurl url="ftp://ftp.sterling.com/usenet/alt.sources/"
name="ftp.sterling.com/usenet/alt.sources/">
<item><htmlurl
url="ftp://wuarchive.wustl.edu/usenet/alt.sources/articles"
name="wuarchive.wustl.edu/usenet/alt.sources/articles">
<item><htmlurl
url="ftp://src.doc.ic.ac.uk/usenet/alt.sources/articles"
name="src.doc.ic.ac.uk/usenet/alt.sources/articles">

</itemize>



<sect>¸¶Áö¸· À̾߱â
<p>
ÇÑ ¸¶µð·Î, °íÁýÀÌ ¸ðµç Â÷À̸¦ ¸¸µå´Â °ÍÀÌ´Ù. (±×¸®°í Æ÷±âÇÒ ¼±À» ³ôÀÌ µÎ´Â °ÍÀÌ
Ʋ¸²¾øÀÌ µµ¿òÀÌ µÈ´Ù.)  ¸ðµç µµÀüÀÌ ±×·¸µíÀÌ, ½Ç¼ö·ÎºÎÅÍ ¹è¿ì´Â °ÍÀÌ Áö±ØÈ÷
Áß¿äÇÏ´Ù.  °¢°¢ÀÇ ½Ç¼ö, ¸ðµç ½ÇÆÐ°¡ <bf>¼ÒÇÁÆ®¿þ¾î ¼³Ä¡ ±â¼ú</bf>ÀÇ ´ÞÀÎÀÌ 
µÇ±â À§ÇØ ÇÊ¿äÇÑ Áö½ÄÀ» ´õÇØ ÁÙ °ÍÀÌ´Ù.



<sect>Âü°í ¹®Çå°ú ´õ ÀÐÀ» ²¨¸®<label id="refs">
<p>

<tscreen><verb>

BORLAND C++ TOOLS AND UTILITIES GUIDE, Borland International, 1992, pp. 9-42.
[º¼·£µå C++ 3.1 ¹öÁ¯°ú ÇÔ²² ¹èÆ÷µÈ ¸Å´º¾ó ÁßÀÇ Çϳª.  µµ½º¸¦ À§ÇØ Àý¸§¹ßÀÌ·Î
±¸ÇöµÈ º¼·£µå C++À» ÀÌ¿ëÇÏ¿©, ±¸¹®(syntax)°ú °³³ä ÀÛ¼º¿¡ ´ëÇØ »ó´çÈ÷
ÁÁÀº ¼Ò°³¸¦ Á¦°øÇÑ´Ù.]

DuBois, Paul: SOFTWARE PORTABILITY WITH IMAKE, O'Reilly and Associates,
1996, ISBN 1-56592-226-3.
[³ª´Â ÀÌ ±ÛÀ» ¿Ï¼ºÇϵµ·Ï Àо ÀûÀÌ ¾ø¾úÁö¸¸, imake ·¹ÆÛ·±½ºÀÇ °áÁ¤ÆÇÀ̶ó´Â
ÆòÆÇÀÌ´Ù.]

Frisch, Aeleen: ESSENTIAL SYSTEM ADMINISTRATION (2nd ed.), O'Reilly and
Associates, 1995, ISBN 1-56592-127-5.
[°¢º°È÷ Ź¿ùÇÑ ½Ã½ºÅÛ °ü¸® ÇÚµåºÏÀÌÁö¸¸, ¼ÒÇÁÆ®¿þ¾î ¼³Ä¡¿¡ ´ëÇØ¼­´Â °£´ÜÇÑ
½ºÄÉÄ¡ Á¤µµ ¸¸À¸·Î ´Ù·ç°í ÀÖ´Ù.]

Hekman, Jessica: LINUX IN A NUTSHELL, O'Reilly and Associates, 1997, ISBN
1-56592-167-4.
[¸®´ª½º ¸í·É¾î Àü¹Ý¿¡ ´ëÇÑ ÈǸ¢ÇÑ ·¹ÆÛ·±½º.]

Lehey, Greg: PORTING UNIX SOFTWARE, O'Reilly and Associates, 1995, ISBN
1-56592-126-7.

Mayer, Herbert G.: ADVANCED C PROGRAMMING ON THE IBM PC, Windcrest Books,
1989, ISBN 0-8306-9363-7.
[°í±Þ C ÇÁ·Î±×·¡¸Ó¶ó¸é Áï°¢ ÀÀ¿ëÇÒ ¼ö ÀÖ´Â ¾ÆÀ̵ð¾î·Î °¡µæÇÑ Ã¥.  ¾Ë°í¸®Áò¿¡
´ëÇÑ Å¹¿ùÇÑ ÇØ¼³, ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ´ëÇÑ Ç³ÀÚ, Àç¹Ì.  ¾ÈŸ±õ¸¸ ÀýÆÇÀÌ´Ù.]

Mui, Linda and Valerie Quercia: X USER TOOLS, O'Reilly and Associates,
1994, ISBN 1-56592-019-8, pp. 734-760.

Oram, Andrew and Steve Talbott: MANAGING PROJECTS WITH MAKE, O'Reilly
and Associates, 1991, ISBN 0-937175-90-0.

Peek, Jerry and Tim O'Reilly and Mike Loukides: UNIX POWER TOOLS,
O'Reilly and Associates / Random House, 1997, ISBN 1-56592-260-3.
[ȯ»óÀûÀÎ ¾ÆÀ̵ð¾îÀÇ ¿øÃµ.  ±×¸®°í ÀÌ ±Û¿¡¼­ ¼³¸íµÈ ¹æ¹ýÀ» ½á¼­ ¼Ò½º ÄÚµå·ÎºÎÅÍ
¼³Ä¡ÇÒ ¼ö ÀÖ´Â À¯Æ¿¸®Æ¼°¡ Àܶà ÀÖ´Ù.]

Stallman, Richard M. and Roland McGrath: GNU MAKE, Free Software
Foundation, 1995, ISBN 1-882114-78-7.
[Àеµ·Ï ¿ä±¸µÇ´Â ±Û.]

Waite, Mitchell, Stephen Prata, and Donald Martin: C PRIMER PLUS, Waite Group
Press, ISBN 0-672-22090-3,.
[¾Æ¸¶µµ C ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ÃÖ°íÀÇ ÀÔ¹®¼­.  Ãʺ¸ÀÚ¸¦ À§ÇÑ ÀÚ¼¼ÇÑ ÇØ¼³.  »õ·Î¿î
ÆÇµµ Áö±Ý ±¸ÇÒ ¼ö ÀÖ´Ù.]

Welsh, Matt and Lar Kaufman: RUNNING LINUX, O'Reilly and Associates,
1996, ISBN 1-56592-151-8.
[¸î¸î ºÐ¾ß¿¡¼­´Â ±íÀ̰¡ ºÎÁ·ÇÏÁö¸¸, ¿©ÀüÈ÷ ¸®´ª½º Àü¹Ý¿¡ ´ëÇÑ ÃÖ°íÀÇ ·¹ÆÛ·±½º.] 


dpkg, gcc, gzip, imake, ldconfig, ldd, make, nm, patch,
rpm, shar, strip, tar, termcap, terminfo, xmkmfÀÇ ¸Ç ÆäÀÌÁö.

David FetterÀÇ BZIP2 HOWTO.

Eric GreenÀÇ Glibc2 HOWTO.

Daniel BarlowÀÇ LINUX ELF HOWTO.

Donnie BarnesÀÇ RPM HOWTO.

Matthew BorowskiÀÇ StarOffice miniHOWTO.


</verb></tscreen>

[ÀÌ HOWTOµéÀº ´ç½Å ½Ã½ºÅÛÀÇ <tt>/usr/doc/HOWTO</tt>³ª 
<tt>/usr/doc/HOWTO/mini</tt> µð·ºÅ͸®¿¡ ÀÖÀ» °ÍÀÌ´Ù.  ÅØ½ºÆ®, HTML, SGML Æ÷¸ËÀÇ
°³Á¤ ¹öÁ¯µéÀº <url url="http://metalab.unc.edu/LDP/HOWTO" name="LDP »çÀÌÆ®">
¹× ÇØ´ç ÀúÀÚÀÇ È¨ ÆäÀÌÁö¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.]


<sect>°¨»çÀÇ ±Û
<p>

ÀÌ HOWTO ÀÇ ÀúÀÚ´Â ¾Æ·¡ÀÇ »ç¶÷µéÀÌ º¸³»ÁØ Á¦¾È°ú ¼öÁ¤, °Ý·Á¿¡ ´ëÇØ °¨»çÇÑ´Ù.

<itemize>
<item>R. Brock Lynn
<item>Michael Jenner
<item>Fabrizio Stefani
</itemize>

ÀÌ HOWTO ¸¦ ÀÌÅ»¸®¾Æ¾î¿Í ÀϺ»¾î·Î ¹ø¿ªÇÑ ÁÁÀº Ä£±¸µé¿¡°Ôµµ ¿ª½Ã ¿µ¿¹¸¦ µ¹¸°´Ù.

±×¸®°í ¹°·Ð <url url="http://metalab.unc.edu/LDP/" 
name="Linux Documentation Project">ÀÇ Greg Hankins ¿Í Tim Bynum ¿¡°Ôµµ 
°¨»ç¿Í Âù¾ç°ú ÃູÀ» º¸³½´Ù.  LDP°¡ ÀÌ ¸ðµç °ÍÀ» °¡´ÉÇÏ°Ô Ç߱⠶§¹®ÀÌ´Ù.

</article>


ID
Password
Join
He who invents adages for others to peruse takes along rowboat when going on cruise.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0076 sec