<!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>
