LFS/Preparation
|
ÀÌ ¹®¼´Â ¾È¾ç´ëÇб³ ÄÄÇ»ÅÍ °øÇаú SI ¿¬±¸½ÇÀÇ ¹®¼ ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ »ý¼ºÇÑ ÆäÀÌÁö¸¦ ¿Å°Ü¿Â °ÍÀÔ´Ï´Ù. ¹ø¿ªÀ» ÇØÁֽбèÀ¯¼®, ±è°üºó, Àü½Å¿ø, ¹Î°æ´ë, ±è±âÈÆ, ÀÓÁ¤È£, ¹é¼®°ï, ÀÌÈ£ÁÖ, ¾ÈÇý¸² ´Ô²² °¨»çÀÇ ¸»¾¸À» ÀüÇÕ´Ï´Ù. ÀÌ ¹®¼´Â LFS 5.1-Pre 1 À» ±âÁØÀ¸·Î Á¦ÀÛµÈ ¹®¼ÀÔ´Ï´Ù. (2004³â12¿ù29ÀÏ ±âÁØ) ÃÖ½ÅÀÇ Á¤º¸¿¡ ¸Â°Ô Á¶±Ý¾¿ ¾÷µ¥ÀÌÆ® ÇÒ ¿¹Á¤À̸ç, LFS¿¡ ´ëÇÑ Àüü ³»¿ëÀº
http://wiki.kldp.org/wiki.php/LFS/¸¦ ÅëÇØ ¿¬°áµË´Ï´Ù. º» ¹®¼´Â LFS ½Ã½ºÅÛÀÇ Áغñ´Ü°è¿¡ ÇØ´çÇÏ´Â ÆÐŰÁö¿Í ÆÐÄ¡¸¦ ±¸ÇÏ´Â ºÎºÐÀ» ¼³¸íÇÕ´Ï´Ù.
¸ñÂ÷
[edit]
1.1 ¼Ò °³ ¶À̹ø Àå¿¡¼´Â LFS½Ã½ºÅÛÀ» ¼³Ä¡Çϱâ À§ÇÑ ÆÄƼ¼Ç ÀÛ¾÷¿¡ ´ëÇØ ´Ù·ê °ÍÀÔ´Ï´Ù. ¿ì¸®´Â ÀÌÁ¦ »õ·Î¿î ÆÄƼ¼ÇÀ» ¸¸µé°í ±× ÆÄƼ¼Ç¿¡ ÆÄÀÏ ½Ã½ºÅÛÀ» ±¸ÃàÇÏ°í ¸¶¿îÆ®¸¦ ÇÒ °ÍÀÔ´Ï´Ù.
[edit]
1.2 »õ ÆÄƼ¼Ç ¸¸µé±â ¶»õ·Î¿î Linux ½Ã½ºÅÛÀ» ±¸ÃàÇϱâ À§Çؼ´Â ¾î´À Á¤µµ ºó °ø°£ÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù.(µð½ºÅ©ÀÇ ºó ÆÄƼ¼Ç). ¸¸¾à LFS¸¦ ¸¸µé±â À§ÇÑ HDDÀÇ ¿©À¯°ø°£ÀÌ ¾ø°í, ³²´Â ÆÄƼ¼Çµµ ¾ø´Ù¸é, ±âÁ¸ ¹èÆ÷ÆÇÀÌ ¼³Ä¡µÈ °÷¿¡ ¼³Ä¡ÇØ¾ß ÇÕ´Ï´Ù. óÀ½ºÎÅÍ LFS¸¦ ¼³Ä¡Çϴ°ÍÀº ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, HDD°ø°£ÀÌ Á¤¸» ¾ø°í, ´ç½ÅÀÌ ¿ë°¨ÇÏ´Ù¸é ´ÙÀ½ÀÇ ¹®¼¸¦ Âü°íÇϱ⠹ٶø´Ï´Ù. http://www.linuxfromscratch.org/hints/downloads/files/lfs_next_to_existing_systems.txt
ÃÖ¼Ò ¼³Ä¡ »ç¾çÀ» À§Çؼ´Â 1.2GBÁ¤µµÀÇ ÆÄƼ¼ÇÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¸ðµç ¼Ò½º Ÿ¸£º¼À» ÀúÀåÇÏ°í ¸ðµç ÆÐŰÁö¸¦ ÄÄÆÄÀÏ Çϴµ¥ ÀÌ Á¤µµÀÇ °ø°£À̸é ÃæºÐÇÕ´Ï´Ù.ÇÏÁö¸¸, LFS½Ã½ºÅÛÀ» ù¹øÂ° ¸®´ª½º ½Ã½ºÅÛÀ¸·Î »ç¿ë ÇÒ °ÍÀ̶ó¸é,´ç½ÅÀº ¾Æ¸¶µµ ÀÀ¿ë¼ÒÇÁÆ®¿þ¾î¸¦ ´õ ¼³Ä¡ÇØ¾ß ÇÒ °ÍÀ̰í, ±×·¯±â À§Çؼ´Â ¾à 2~3GBÁ¤µµ°¡ ´õ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù.
½Ã½ºÅÛ¿¡ ·¥ÀÌ ÃæºÐÇÏÁö ¾ÊÀ» °æ¿ì, °¡»ó ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â °ÍÀº ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù. -- °¡»ó ¸Þ¸ð¸®´Â ·¥ÀÌ ºÎÁ·ÇÒ¶§¸¸ °¡²û¾¿ »ç¿ëµË´Ï´Ù .LFS½Ã½ºÅÛÀº ±âÁ¸ ¸®´ª½º ½Ã½ºÅÛ°ú °¡»ó°ø°£À» °øÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à, ±âÁ¸ÀÇ ¸®´ª½º ½Ã½ºÅÛÀÌ °¡»ó¸Þ¸ð¸®¸¦ »ç¿ëÇϰí ÀÖ´Ù¸é »õ·Ó°Ô ¸¸µé Çʿ䰡 ¾ø½À´Ï´Ù.
cfdisk2³ª fdisk¸¦ ½ÇÇàÇÒ¶§ arguement·Î HDDÀ̸§À» ³Ö¾îÁÖ¸é »õ·Î¿î ÆÄƼ¼ÇÀ» ¸¸µé¼ö ÀÖ½À´Ï´Ù. -- ¿¹¸¦ µé¾î /dev/hda´Â ù¹øÂ° IDE µð½ºÅ©ÀÔ´Ï´Ù. ÇÊ¿äÇÏ´Ù¸é ¸®´ª½º nativeÆÄƼ¼Ç°ú swapÆÄƼ¼ÇÀ» ¸¸µå¼¼¿ä. ¸¸¾à ÇÁ·Î±×·¥ÀÇ »ç¿ë¹ýÀ» ¸ð¸¥´Ù¸é cfdisk³ª fdiskÀÇ manÆäÀÌÁö¸¦ ÂüÁ¶Çϱ⠹ٶø´Ï´Ù.
»õ·Î¿î ÆÄƼ¼ÇÀ» ¾î¶»°Ô ³ª´³´ÂÁö ±â¾ïÇϼ¼¿ä. -- hda5°°Àº. (À̸§) ¸¸¾à ½º¿Ò°ø°£À» ¸¸µé¾ú´Ù¸é ±× À̸§ ¿ª½Ã ±â¾ïÇϼ¼¿ä. ÀÌ·± À̸§µéÀº ³ªÁß¿¡ /etc/fstabÆÄ ÀÏ¿¡¼ »ç¿ëµÉ °Ì´Ï´Ù
[edit]
1.3 »õ ÆÄƼ¼Ç¿¡ ÆÄÀÏ ½Ã½ºÅÛ ¸¸µé±â ¶ºó ÆÄƼ¼ÇÀÌ ÀÖ´Ù¸é, ±× À§¿¡ ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ¸®´ª½º»ó¿¡¼´Â ext2°¡ ÁÖ·Î »ç¿ëµÇÁö¸¸, ¿äÁòÀÇ ´ë¿ë·® HDD¿¡¼´Â journaling file system (ext3)°¡ Á¡Á¡ º¸ÆíÈ µÇ´Â Ãß¼¼ÀÔ´Ï´Ù.¿ì¸®´Â ext2¸¦ ¸¸µé°ÍÀÔ´Ï´Ù, ÇÏÁö¸¸ ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛÀ» »ç¿ëÇÏ°í ½Í´Ù¸é http://www.linuxfromscratch.org/blfs/view/stable/postlfs/filesystems.html <--¿¡¼ ã¾Æ º¸¼¼¿ä.
LFS ÆÄƼ¼Ç¿¡ ext2 ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¸µé·Á¸é ¾Æ·¡Ã³·³ Çϼ¼¿ä.
mke2fs /dev/xxx xxx¸¦ LFS ÆÄƼ¼Ç À̸§À¸·Î ¹Ù²Ù¼¼¿ä.(¿¹¸¦µé¸é hda5)
»õ·Î¿î ½º¿Ò ÆÄƼ¼ÇÀ» ¸¸µé¾ú´Ù¸é ÃʱâÈÇØ¾ß ÇÕ´Ï´Ù. (»ç¿ë¹ýÀº mke2fs¸¦ ÂüÁ¶..)
mkswap /dev/yyy yyy¸¦ swap ÆÄƼ¼Ç À̸§À¸·Î ¹Ù²Ù¼¼¿ä.
[edit]
1.4 »õ ÆÄƼ¼ÇÀ» ¸¶¿îÆ®Çϱ⠶ÀÌÁ¦ ¿ì¸° ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¸µé¾ú°í, ±× ÆÄƼ¼ÇÀ» »ç¿ëÇϱâ À§Çؼ ¸¶¿îÇÒ Àå¼Ò¸¦ °í¸£°í, ¸¶¿îÆ®¸¦ ÇØ¾ßÇÕ´Ï´Ù.ÀÌ ¹®¼¿¡¼´Â ÆÄÀÏ ½Ã½ºÅÛÀÌ /mnt/lfs ¿¡ ¸¶¿îÆ® µÇ¾î ÀÖ´Ù°í °¡Á¤ÇÒ °ÍÀÌÁö¸¸, ¾î¶² µð·ºÅ丮¸¦ ¼±ÅÃÇÏ´õ¶óµµ »ó°ü ¾ø½À´Ï´Ù.
¸¶¿îÆ® ÇÒ °÷À» ¼±ÅÃÇÏ°í ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇÏ¿© ȯ°æº¯¼ö¿¡ Àû¿ë½ÃŰ¼¼¿ä.
export LFS=/mnt/lfs ¸¶¿îÆ® ÇÒ µð·ºÅ丮¸¦ ¸¸µé°í ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇÏ¿© LFS ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¶¿îÆ® Çϼ¼¿ä:
mkdir -p $LFS mount /dev/xxx $LFS xxx¸¦ lfsÆÄƼ¼ÇÀ̸§À¸·Î ¹Ù²Ù¼¼¿ä.
lfs ½Ã½ºÅÛÀ» ¸ÖƼ ÆÄƼ¼ÇÀ¸·Î ±¸¼ºÇÒ »ý°¢À̶ó¸é(¿¹¸¦ µé¾î "/" ¿Í "/usr)"¸¦ °¢±â ´Ù¸¥ ÆÄƼ¼ÇÀ¸·Î ¹èÁ¤ÇÒ °æ¿ì) ¸¶¿îÆ®´Â ´ÙÀ½°ú °°ÀÌ Çϼ¼¿ä.
mkdir -p $LFS mount /dev/xxx $LFS mkdir $LFS/usr mount /dev/yyy $LFS/usr ¹°·Ð, xxx¿Í yyy´Â ÀûÀýÇÑ À̸§À¸·Î ¹Ù²ãÁÝ´Ï´Ù.
»õ·Î¿î ÆÄƼ¼ÇÀ» ¸¶¿îÆ® ÇÒ ¶§´Â suid,dev,atime °°Àº ¿É¼ÇÀ» »ç¿ëÇÏÁö ¾Ê°í ¸¶¿îÆ® ÇսôÙ. LFS ÆÄƼ¼ÇÀÌ ¾î¶² ¿É¼ÇÀ» °¡Áö°í ¸¶¿îÆ® µÇ¾ú´ÂÁö º¸±â À§Çؼ ÆÄ¶ó¹ÌÅ;øÀÌ ¸¶¿îÆ® ¸í·ÉÀ» ½ÇÇà ½Ãų¼ö ÀÖ½À´Ï´Ù. ¸¸¾à suid, dev, atime ÀÌ À߸øµÇ¾ú´Ù¸é ´Ù½Ã ¸¶¿îÆ® ÇØ¾ßÇÕ´Ï´Ù.
ÀÌÁ¦ ¿ì¸®´Â ÀÛ¾÷ÇÒ °ø°£À» ¸¸µé¾ú°í, ÆÐŰÁö¸¦ ´Ù¿î·Îµå ¹ÞÀ» Áغñ°¡ µÇ¾ú½À´Ï´Ù.
[edit]
2.1 ¼Ò °³ ¶´ÙÀ½Àº ±âº» ¸®´ª½º ½Ã½ºÅÛÀ» ¼³Ä¡Çϱâ À§ÇØ ´Ù¿î·Îµå¸¦ ¹Þ¾Æ¾ßÇÏ´Â ÆÐŰÁöÀÇ ¸ñ·ÏÀÔ´Ï´Ù.¸ñÂ÷ÀÇ ¹öÀü ¹øÈ£´Â ÀÌ¹Ì ¹ßÇ¥µÈ ¼ÒÇÁÆ®¿þ¾îÀÇ ¹öÀü°ú »óÀÀÇϰí, ÀÌ Ã¥Àº ±×°Íµé¿¡ ¹ÙÅÁÀ» µÎ°í ÀÖ½À´Ï´Ù. LFS ¼³Ä¡¸¦ ¸¹ÀÌ ÇØ º» »ç¶÷ÀÌ ¾Æ´Ï¶ó¸é, »õ·Î¿î ¹öÀüÀ¸·Î ½ÃµµÇÏÁö ¾Ê±â¸¦ °·ÂÈ÷ Ãæ°íÇÕ´Ï´Ù. ¶ÇÇÑ ½Å¹öÀüÀº ¾ÆÁ÷ ¾Ë·ÁÁöÁö ¾ÊÀº ¹ö±×µéÀÌ ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
¸ðµç URLµéÀÌ »ç¿ë °¡´ÉÇϸé, ´ÙÀ½ÀÇ ÇÁ·ÎÁ§Æ® ÆäÀÌÁö¸¦ ÃßõÇÕ´Ï´Ù.http://www.freshmeat.net/. Freshment page´Â ÇÁ·ÎÁ§Æ® À¥ »çÀÌÆ®, ¸ÞÀϸµ ¸®½ºÆ® , FAQ , changelogs µî »Ó¸¸¾Æ´Ï¶ó °ø½Ä´Ù¿î·Îµå »çÀÌÆ®¿¡ ã¾Æ°¡±â ½±µµ·Ï µµ¿ÍÁÝ´Ï´Ù.
ÀÌ·± ´Ù¿î·Îµå »çÀÌÆ®µéÀÌ Ç×»ó À̿밡´ÉÇÏ´Ù°í º¸ÀåÇÒ ¼ö´Â ¾ø½À´Ï´Ù. ÀÌ Ã¥ÀÌ ¹ß°£µÈ ÈÄ¿¡ ´Ù¿î·Îµå »çÀÌÆ®°¡ º¯°æµÈ °æ¿ì google À» ÀÌ¿ëÇØ ã¾Æº¸±â ¹Ù¶ø´Ï´Ù. ãÁö ¸øÇÑ°Ô ÀÖÀ» °æ¿ì, errata page(http://www.linuxfromscratch.org//lfs/print/) ¿¡¼ µµ¿òÀ» ¹Þ°Å³ª ±×·¡µµ ÇØ°áÀÌ ¾ÈµÇ¸é ´ÙÀ½ À¥»ç]ÀÌÆ®ÀÇ ´Ù¿î·Îµå ¸®½ºÆ®µé Áß¿¡¼ Çϳª¸¦ Âü°íÇϼ¼¿ä.http://www.linuxfromscratch.org//lfs/packages.html
´ç½ÅÀº ÆÐŰÁö¿Í ÆÐÄ¡µéÀº ¼³Ä¡ °úÁ¤¿¡¼ ÆíÇÏ°Ô ÀÌ¿ëÇÒ ¼ö ÀÖ´Â Àå¼Ò¿¡ ÀúÀåÇÏ´Â °É ¿øÇÒ °ÍÀÔ´Ï´Ù. ¶ÇÇÑ ¼Ò½ºÀÇ ¾ÐÃàÀ» Ç®°í ±×°ÍµéÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â ÀÛ¾÷µð·ºÅ丮°¡ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù.$LFS/sources´Â Ÿ¸£º¼µé°ú ÆÐÄ¡µéÀ» ÀúÀåÇϰí ÀÛ¾÷ÇÒ Àå¼Ò·Î ½á »ç¿ëµÉ°ÍÀÔ´Ï´Ù. ÀÌ·±½ÄÀ¸·Î ÇÊ¿äÇÑ ¸ðµç°ÍµéÀº LFSÆÄƼ¼Ç¿¡ À§Ä¡ÇÒ °ÍÀ̰í, ¸ðµç ¼³Ä¡°úÁ¤ µ¿¾È »ç¿ëÇÒ °ÍÀÔ´Ï´Ù.
ÆÐŰÁö¿Í ÆÐÄ¡µéÀ» ´Ù¿î·Îµå Çϱâ Àü¿¡ root±ÇÇÑÀ¸·Î ´ÙÀ½ ¸í·ÉµéÀ» ½ÇÇàÇϱ⠹ٶø´Ï´Ù.
mkdir $LFS/sources ÀϹݻç¿ëÀÚ °èÁ¤À¸·Î ´Ù¿î·Îµå ¹ÞÀ¸·Á¸é ÀϹݻç¿ëÀÚµµ ¾²±â °¡´ÉÇϵµ·Ï ±ÇÇÑÀ» ÁÖ¾î¾ß ÇÕ´Ï´Ù:
chmod a+wt $LFS/sources [edit]
2.2 ¸ðµç ÆÐŰÁöµé ¶´ÙÀ½ »çÀÌÆ®µéÀ» ÂüÁ¶ÇÏ¿© ´Ù¿î·Îµå ¹ÞÀ¸¼¼¿ä:
(¸µÅ©°¡ ±úÁø »çÀÌÆ®µµ ÀÖ½À´Ï´Ù)
Autoconf (2.59) - 903 KB:
http://freshmeat.net/projects/autoconf/
Automake (1.8.2) - 623 KB:
http://freshmeat.net/projects/automake/
Bash (2.05b) - 1,910 KB:
http://freshmeat.net/projects/gnubash/
Binutils (2.14) - 10,666 KB:
http://freshmeat.net/projects/binutils/
Bison (1.875) - 796 KB:
http://freshmeat.net/projects/bison/
Bzip2 (1.0.2) - 650 KB:
http://freshmeat.net/projects/bzip2/
Coreutils (5.0) - 3,860 KB:
http://freshmeat.net/projects/coreutils/
Diffutils (2.8.1) - 762 KB:
http://freshmeat.net/projects/diffutils/
E2fsprogs (1.34) - 3,003 KB:
http://freshmeat.net/projects/e2fsprogs/
Ed (0.2) - 182 KB:
http://freshmeat.net/projects/ed/
Expect (5.40.0) - 509 KB:
http://freshmeat.net/projects/expect/
File (4.07) - 347 KB: -- (see Note 1 below)
http://freshmeat.net/projects/file/
Findutils (4.1.20) - 760 KB:
http://freshmeat.net/projects/findutils/
Flex (2.5.4a) - 372 KB:
ftp://ftp.gnu.org/gnu/non-gnu/flex/
Gawk (3.1.3) - 1,596 KB:
http://freshmeat.net/projects/gnuawk/
GCC (2.95.3) - 9,618 KB:
http://freshmeat.net/projects/gcc/
GCC-core (3.3.2) - 10,994 KB:
http://freshmeat.net/projects/gcc/
GCC-g++ (3.3.2) - 2,019 KB:
http://freshmeat.net/projects/gcc/
GCC-testsuite (3.3.2) - 1,042 KB:
http://freshmeat.net/projects/gcc/
Gettext (0.14.1) - 6,397 KB:
http://freshmeat.net/projects/gettext/
Glibc (2.3.3) - 13,101 KB: -- (see Note 2 below)
http://freshmeat.net/projects/glibc/
Grep (2.5.1) - 545 KB:
http://freshmeat.net/projects/grep/
Groff (1.19) - 2,360 KB:
http://freshmeat.net/projects/groff/
Grub (0.94) - 902 KB:
ftp://alpha.gnu.org/pub/gnu/grub/
Gzip (1.3.5) - 324 KB:
ftp://alpha.gnu.org/gnu/gzip/
Inetutils (1.4.2) - 1,019 KB:
http://freshmeat.net/projects/inetutils/
Kbd (1.12) - 617 KB:
http://freshmeat.net/projects/kbd/
Less (381) - 259 KB:
http://freshmeat.net/projects/less/
LFS-Bootscripts (1.12) - 25 KB:
http://downloads.linuxfromscratch.org/lfs-bootscripts-1.12.tar.bz2
Lfs-Utils (0.4.2) - 221 KB:
http://www.linuxfromscratch.org/~winkie/downloads/lfs-utils/
Libtool (1.5.2) - 2,591 KB:
http://freshmeat.net/projects/libtool/
Linux (2.4.24) - 29,138 KB:
http://freshmeat.net/projects/linux/
M4 (1.4) - 310 KB:
http://freshmeat.net/projects/gnum4/
Make (3.80) - 899 KB:
http://freshmeat.net/projects/gnumake
MAKEDEV (1.7) - 8 KB:
http://downloads.linuxfromscratch.org/MAKEDEV-1.7.bz2
Man (1.5m2) - 196 KB:
http://freshmeat.net/projects/man/
Man-pages (1.65) - 1,752 KB:
http://freshmeat.net/projects/man-pages/
Modutils (2.4.26) - 229 KB:
http://freshmeat.net/projects/modutils/
Ncurses (5.4) - 2,019 KB:
http://freshmeat.net/projects/ncurses/
Net-tools (1.60) - 194 KB:
http://freshmeat.net/projects/net-tools/
Patch (2.5.4) - 182 KB:
http://freshmeat.net/projects/patch/
Perl (5.8.3) - 11,721 KB:
http://freshmeat.net/projects/perl/
Procinfo (18) - 24 KB:
http://freshmeat.net/projects/procinfo/
Procps (3.1.15) - 260 KB:
http://freshmeat.net/projects/procps/
Psmisc (21.4) - 375 KB:
http://freshmeat.net/projects/psmisc/
Sed (4.0.9) - 751 KB:
http://freshmeat.net/projects/sed/
Shadow (4.0.4.1) - 795 KB:
http://freshmeat.net/projects/shadow/
Sysklogd (1.4.1) - 80 KB:
http://freshmeat.net/projects/sysklogd/
Sysvinit (2.85) - 91 KB:
http://freshmeat.net/projects/sysvinit/
Tar (1.13.25) - 1,281 KB:
ftp://alpha.gnu.org/gnu/tar/
Tcl (8.4.5) - 3,363 KB:
http://freshmeat.net/projects/tcltk/
Texinfo (4.6) - 1,317 KB:
http://freshmeat.net/projects/texinfo/
Util-linux (2.12) - 1,814 KB:
http://freshmeat.net/projects/util-linux/
Vim (6.2) - 3,193 KB:
http://freshmeat.net/projects/vim/
Zlib (1.2.1) - 277 KB:
http://freshmeat.net/projects/zlib/
Total size of these packages: 134 MB
ÁÖ¼®:1) ÇöÀç File(4.07)ÆÑŰÁö´Â »ç¿ëÇÒ ¼ö ¾ø´Â »óÅÂÀÔ´Ï´Ù. ÀÌ ´Ù¿î·Îµå »çÀÌÆ®ÀÇ ÁÖ°ü¸®ÀÚ´Â »õ ¹öÀüÀÌ ³ª¿À¸é ±¸ ¹öÀüÀº »èÁ¦ÇÏ´Â °ÍÀ¸·Î ¾Ë·ÁÁ® ÀÖ½À´Ï´Ù. File¼½¼ÇÀ» Âü°íÇÏ¿© ´Ù¸¥ ´Ù¿î·Îµå »çÀÌÆ®¸¦ ÀÌ¿ëÇϼ¼¿ä.
ÁÖ¼®:2) ÇöÀç, Glibc ¸ÞÀÎÅ×À̳ʵéÀº »õ·Î¿î ¸±¸®Áî Ÿ¸£º¼À» ´Ù¿î·Îµå ¿ëÀ¸·Î ¸¸µéÁö ¾Ê±â·Î °áÁ¤Çß½À´Ï´Ù. µû¶ó¼, ¸ÇóÀ½ÀÇ ¿ø½Ã ¼Ò½º(¿ªÀÚÁÖ:ù¹öÀü)ºÎÅÍ ÇöÀç glibc ¸±¸®Á ¾òÀ» ¼ö ÀÖ´Â À¯ÀÏÇÑ ¹æ¹ýÀº Glibc CVS ÀúÀå¼Ò·ÎºÎÅÍ °¡Á®¿À´Â °Í »ÓÀÔ´Ï´Ù. ¾Æ·¡ÀÇ ¸í·É¾îµéÀ» ½ÇÇàÇÏ¸é »õ ¹öÀüÀ» ´Ù¿î·ÎµåÇϰí Ÿ¸£º¼À» ¸¸µé°ÍÀÔ´Ï´Ù. ( - sunyzero ¹ø¿ª)
cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc \
export -d glibc-2.3.3-20031202 -D "2003-12-02 UTC" libc
tar jcvf glibc-2.3.3-20031202.tar.bz2 glibc-2.3.3-20031202
Ÿ¸£º¼Àº LFS mirror »çÀÌÆ®¿¡¼ ´Ù¿î·Îµå ¹Þ¾Æ¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Glibc ¼½¼Ç¿¡¼ ´Ù¿î·Îµå ¸µÅ©¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
2.3 ÇÊ¿äÇÑ ÆÐÄ¡µé ¶ÆÑŰÁöµé »Ó¸¸ ¾Æ´Ï¶ó °¢Á¾ ÆÐÄ¡µéµµ ÇÊ¿äÇÕ´Ï´Ù. ÆÑŰÁö¸¦ ¿ì¸®°¡ ¿øÇÏ´Â ´ë·Î ¼öÁ¤Çϰųª ¸ÞÀÎÅ×À̳ʰ¡ ¹ö±×¸¦ ÇØ°áÇϱâ À§ÇØ ¸¸µç ÆÐÄ¡°¡ ÇÊ¿äÇÕ´Ï´Ù. ´ÙÀ½ ÆÐÄ¡µéÀ» ´Ù¿î·Îµå ¹ÞÀ¸¼¼¿ä.
Bash Patch - 7 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/bash-2.05b-2.patch
Bison Attribute Patch - 2 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/bison-1.875-attribute.patch
Coreutils Hostname Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/coreutils-5.0-hostname-2.patch
Coreutils Posixver Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/coreutils-5.0-posixver-2.patch
Coreutils Uname Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/coreutils-5.0-uname.patch
Ed Mkstemp Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/ed-0.2-mkstemp.patch
Expect Spawn Patch - 6 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/expect-5.40.0-spawn.patch
GCC No-Fixincludes Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/gcc-3.3.2-no_fixincludes-1.patch
GCC Specs Patch - 11 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/gcc-3.3.2-specs-1.patch
GCC-2 Patch - 16 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/gcc-2.95.3-2.patch
GCC-2 No-Fixincludes Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/gcc-2.95.3-no-fixinc.patch
GCC-2 Return-Type Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/gcc-2.95.3-returntype-fix.patch
Inetutils No-Server-Man-Pages Patch - 4 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/inetutils-1.4.2-no_server_man_pages-1.patch
Kbd More-Programs Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/kbd-1.12-more-programs-1.patch
Man 80-Columns Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/man-1.5m2-80cols.patch
Ncurses Etip Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/ncurses-5.3-etip-2.patch
Net-tools Mii-Tool-Gcc33 Patch - 2 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/net-tools-1.60-miitool-gcc33-1.patch
Perl Libc Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/cvs/perl-5.8.3-libc-1.patch
ÇöÀç À§ ÆÐÄ¡ ¸®½ºÆ®ÀÇ ¸µÅ©´Â ¸ðµÎ ±úÁø »óÅÂÀÔ´Ï´Ù. http://www.linuxfromscratch.org/patches/lfs/5.1 À» ÀÌ¿ëÇØ ÁÖ¼¼¿ä.
LFS µ¿È£È¸¿¡ °¡ º¸¸é À§¿¡ ³ª¿µÈ ÆÐÄ¡¿Ü¿¡ ´Ù¸¥ ¸¹Àº ÆÐÄ¡µéÀÌ Á¸ÀçÇÕ´Ï´Ù. ÀÌ·± ÆÐÄ¡µéÀº »ç¼ÒÇÑ ¹ö±×µéÀ» ÇØ°áÇØÁְųª, ºÎ°¡ÀûÀÎ ±â´ÉµéÀ» Ãß°¡ÇØÁÝ´Ï´Ù. http://www.linuxfromscratch.org/patches/ ¿¡ À§Ä¡ÇÑ ÆÐÄ¡ µ¥ÀÌÅͺ£À̽º¸¦ ÀÚÀ¯·Ó°Ô ½ÃÇèÇØº¸°í, »ç¿ëÇϱ⸦ ¿øÇÏ´Â ÆÐÄ¡µéÀ» ¼±ÅÃÇϼ¼¿ä.
[edit]
3.1 ¼Ò °³ ¶ÀÌ Àå¿¡¼ ¿ì¸®´Â ¸®´ª½º ½Ã½ºÅÛ ÃÖ¼Ò»ç¾çÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ ÇÒ °ÍÀÔ´Ï´Ù. ÀÌ ½Ã½ºÅÛÀº ´ÙÀ½ Àå¿¡¼ ÃÖÁ¾ LFS ½Ã½ºÅÛ ¼³Ä¡¸¦ ½ÃÀÛÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇÑ ÃæºÐÇÑ µµ±¸µéÀ» Æ÷ÇÔ ÇÒ °ÍÀÔ´Ï´Ù
ÀÌ·± ÃÖ¼Ò»ç¾çÀÇ ¼³Ä¡´Â µÎ ´Ü°è¸¦ °ÉĨ´Ï´Ù. ÃֽŠÆÑŰÁöµé°ú µ¶¸³ÀûÀ¸·Î ÀÛµ¿µÇ´Â Toolchain(compiler,assembler, linker and libraries)À» ¼³Ä¡Çϰí, ±× ´ÙÀ½ ´Ù¸¥ ÇʼöÀûÀÎ ¸ðµç µµ±¸µéÀ» ¼³Ä¡Çϱâ À§ÇØ À̰͵éÀ» »ç¿ëÇÕ´Ï´Ù.
ÀÌ Àå¿¡¼ ÄÄÆÄÀÏµÈ ÆÄÀϵéÀº $LFS/tools µð·ºÅ丮 ¹Ø¿¡ ¼³Ä¡ µÉ °ÍÀÔ´Ï´Ù. ¿©±â¿¡¼ ÄÄÆÄÀÏµÈ ÆÐŰÁöµéÀº À̹ø Àå¿¡¼¸¸ ¾²À̱⠶§¹®¿¡, ¿ì¸®´Â ±×°ÍµéÀÌ ÃÖÁ¾ LFS½Ã½ºÅÛ°ú ¼¯ÀÌ´Â °ÍÀ» ¿øÇÏÁö ¾Ê½À´Ï´Ù.
¼³Ä¡¸í·ÉµéÀº bash shellÀ» »ç¿ëÇÑ´Ù°í °¡Á¤ÇÕ´Ï´Ù ¶ÇÇÑ ÀÌ¹Ì ¼Ò½ºÆÑŰÁöÀÇ ¾ÐÃàÀ» Ç®¾ú´Ù°í °¡Á¤Çϰí,(lfs»ç¿ëÀڷμ ·Î±×ÀÎµÈ µ¿¾È - ¾Õ¿¡¼ °£´ÜÈ÷ ¼³¸íÇßÀ½ .) ¼³Ä¡¸í·ÉÀ» »ç¿ëÇϱâ Àü¿¡ ÆÑŰÁöÀÇ ¼Ò½º µð·ºÅ丮·Î µé¾î°¡±âÀ§ÇØ cd ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù.
±× ÆÑŰÁöµéÀÇ ÀϺδ ÄÄÆÄÀÏÀü¿¡ ÆÐÄ¡µË´Ï´Ù. ±× ÆÐÄ¡´Â ¹ö±×¸¦ ÇÇÇϱâ À§ÇØ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ÆÐÄ¡´Â Á¾Á¾ ÀÌ Àå°ú ´ÙÀ½ Àå µÑ´Ù¿¡¼ ÇÊ¿äÇÏÁö¸¸ ±×¸® Å« ¹®Á¦´Â ¾Æ´Õ´Ï´Ù.±×·¯¹Ç·Î ÆÐÄ¡¸¦ ´Ù¿î·Îµå Çϱâ À§ÇÑ ¼³¸íÀ» º¼ ¶§ Çò°¥¸®´õ¶óµµ ³Ê¹« °ÆÁ¤ÇÏÁö ¸¶¼¼¿ä. ÆÐÄ¡¸¦ Àû¿ëÇÒ ¶§ °æ¿ì¿¡ µû¶ó offset À̳ª fuzz.¿¡ °üÇÑ °æ°í ¸Þ¼¼Áö¸¦ º¸°Ô µÉ°ÍÀÔ´Ï´Ù. ÀÌ·± °æ°íµéÀº ÆÐÄ¡¸¦ ¼º°øÀûÀ¸·Î Àû¿ë Çϴµ¥ ÀÖ¾î¼ ÀüÇô °ÆÁ¤ÇÒ °ÍÀÌ ¾ø½À´Ï´Ù.
´ëºÎºÐÀÇ ÆÑŰÁö ¼³Ä¡°úÁ¤µ¿¾È ȸ鿡¼ ¸ðµç Á¾·ùÀÇ ÄÄÆÄÀÏ °æ°í¸¦ º¼ °ÍÀÔ´Ï´Ù. ÀÌ °æ°íµéÀº Á¤»óÀûÀ̹ǷΠ½Å°æ¾²Áö ¾Ê¾Æµµ ÁÁ½À´Ï´Ù. C ¾ð¾îÀÇ Ç¥ÁØÀº ¸¹ÀÌ ¹Ù²î¾ú´Âµ¥, ÀϺΠÆÑŰÁöµéÀº ¿¾ ¹öÀüÀÇ C¿¡ ¸ÂÃß¾îÁ® Àֱ⠶§¹®¿¡ ³ª¿À´Â ¸Þ¼¼ÁöÀÔ´Ï´Ù. ½Å°æ¾µ ºÎºÐÀº ¾Æ´Õ´Ï´Ù.
ÀØÁö ¸»¾Æ ÁÖ¼¼¿ä. ºÒÇÊ¿äÇÑ °Í ¾øÀÌ °ø°£À» Àý¾àÇϱâ À§ÇØ, °¢ ÆÑŰÁö¸¦ ¼³Ä¡ÇÑ ÈÄ¿¡ ¼Ò½º¿Í ¼³Ä¡ µð·º¼Ò¸®¸¦ »èÁ¦ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
ÀÛ¾÷À» ÁøÇàÇϱâÀü¿¡ ¾Æ·¡Ã³·³ ½ÇÇàÇÔÀ¸·Î½á LFS ȯ°æº¯¼ö¸¦ Àû¿ë µÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
echo $LFS LFS ÆÄƼ¼ÇÀÇ ¸¶¿îÆ®µÈ °÷ÀÇ °æ·Î¸¦ Ãâ·Â°á°ú·Î È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ã¥ÀÇ ³»¿ëÀ» µû¶ú´Ù¸é "/mnt/lfs"À» º¼ ¼ö ÀÖÀ» °Ì´Ï´Ù.
[edit]
3.2 Toolchain technical notes ¶ÀÌ Àå¿¡¼´Â ¼¼ºÎÀûÀÎ ±â¼ú°ú ¿ø¸®ÀÇ ÀϺθ¦, µÚ¿¡¼´Â ÀüüÀûÀÎ ¼³Ä¡¹æ¹ýÀ» ¼³¸í ÇÒ °ÍÀÔ´Ï´Ù. ¿©±âÀÇ ³»¿ëÀ» ¹Ù·Î ÀÌÇØÇÏÁö ¸øÇصµ »ó°ü¾ø½À´Ï´Ù. ÀÏ´Ü Çѹø ½ÇÁ¦·Î ¼³Ä¡Çغ¸¸é ´ëºÎºÐ °¨ÀÌ ¿Ã °ÍÀÔ´Ï´Ù. ³ªÁß¿¡¶óµµ ¾ðÁ¦µçÁö À̰÷À» ÂüÁ¶Çϼ¼¿ä.
5ÀåÀº '/'¸¦ Àӽ÷Π¹Ù²ÞÀ¸·Î½á 6Àå¿¡ ¼ LSF ½Ã½ºÅÛÀ» ±ò²ûÇÏ°í ¹®Á¦¾øÀÌ ¼³Ä¡ÇÒ ¼ö Àִ ȯ°æÀ» Á¦°øÇÏ´Â °ÍÀ» ¸ñÇ¥·Î ÇÕ´Ï´Ù. ÀÌ·±½ÄÀ¸·Î µÇµµ·Ï È£½ºÆ® ½Ã½ºÅÛÀ¸·Î ºÎÅÍ ¿ì¸®ÀÇ ½Ã½ºÅÛÀ» ºÐ¸®Çϱ⸦ ½ÃµµÇϰí, µ¶¸³ÀûÀ¸·Î ÀÛµ¿ ÇÒ ¼ö ÀÖ´Â ToolchainÀ» ¼³Ä¡ÇÕ´Ï´Ù. óÀ½ Á¢ÇÏ´Â »ç¶÷µé¿¡°Ô À§ÇèºÎ´ãÀ» ÃÖ¼ÒÈÇÏ°í ±³À°È¿°ú´Â ÃÖ´ëÈ µÇµµ·Ï ¼³Ä¡°úÁ¤ÀÌ °í¾ÈµÇ¾ú½À´Ï´Ù. ´Ù½Ã¸»ÇØ, ÀÌ ½Ã½ºÅÛÀ» ¼³Ä¡Çغ½À¸·Î½á ´õ ³ªÀº ±â¼úÀ» ¾òÀ» ¼ö ÀÖ´Ù´Â ¸»ÀÔ´Ï´Ù.
ÁÖÀÇ»çÇ× : ÀÛ¾÷À» °è¼ÓÇϱ⿡ ¾Õ¼, ÀÚ½ÅÀÇ Ç÷§Æû예를들면 i386ÀÌ ¹«¾ùÀÎÁö ¾Ë¾ÆµÎ¾î¾ß ÇÕ´Ï´Ù.´ëºÎºÐÀÇ °æ¿ì´Â i686±â¹Ý ¸®´ª½º¿¡ ÀûÀýÇÒ °ÍÀÔ´Ï´Ù. °£´ÜÇÑ ¹æ¹ýÀ¸·Î ¼Ò½ºÆÑŰÁö ¼Ó¿¡ ÀÖ´Â config.guess ¸¦ ½ÇÇàÇÔÀ¸·Î½á ÀÚ½ÅÀÇ Ç÷§Æû¿¡ ¸Â´Â °ÍÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. Binutils ¼Ò½ºÀÇ ¾ÐÃàÀ» Ç®°í ./config.guess¸¦ ½ÇÇàÇØ¼ ±× Ãâ·Â¹®À» ¸Þ¸ðÇϼ¼¿ä.
¼³Ä¡¸¦ ÇÒ ¶§ ÀÚ½ÅÀÇ Ç÷§Æû¿¡ ¸Â´Â dynamic linker ÀÇ À̸§À» ¾Ë¾ÆµÎ¾î¾ß Çϰí, Á¾Á¾ dynamic loader ¸¦ ÂüÁ¶ ÇÒ ¶§ Binutils ¾È¿¡ µé¾îÀִ ǥÁظµÄ¿ÀÎ ld ¿Í È¥µ¿ÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù. The dynamic linker is provided by Glibc and has the job of finding and loading the shared libraries needed by a program, preparing the program to run and then running it. ÀüÅëÀûÀ¸·Î dynamic linker ÀÇ À̸§Àº ld-linux.so.2¸¦ »ç¿ëÇÕ´Ï´Ù. ld.so.1À̶ó´Â À̸§Àº Àß »ç¿ëÇÏÁö ¾Ê¾Ò°í, »õ·Î¿î 64ºñÆ® ±â¹Ý Ç÷§Æû¿¡¼´Â ÀüÇô ´Ù¸¥ À̸§À» »ç¿ëÇÕ´Ï´Ù. ´ç½Å ½Ã½ºÅÛÀÇ /lib µð·ºÅ丮¿¡¼ dynamic linkerÀÇ À̸§À» È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù. °¡Àå È®½ÇÇÑ ¹æ¹ýÀº È£½ºÆ®ÀÇ ºÒƯÁ¤ÇÑ ÇÁ·Î±×·¥À» ´ë»óÀ¸·Î readelf -l <name of binary> | grep interpreter À» ½ÇÇàÇÔÀ¸·Î½á È®ÀÎÀ» ÇØº¸´Â °ÍÀÔ´Ï´Ù. Glibc ¼Ò½º Æ®¸®ÀÇ root¿¡ ÀÖ´Â shlib-versionsÀÇ ÆÄÀÏ¿¡ ¸ðµç Ç÷§Æû¿¡ ´ëÇÑ Á¤º¸°¡ µé¾îÀÖ½À´Ï´Ù.
5 Àå¿¡¼ ¼³Ä¡ÀÛ¾÷À» ÇÒ ¶§ ¾Æ·¡ ³»¿ëµµ ÂüÁ¶Çϼ¼¿ä.
Binutils´Â /tools/bin ¿Í /tools/$TARGET_TRIPLET/binÀÇ ¾È¿¡ ±×°ÍÀÇ ¾î¼Àºí·¯¿Í ¸µÄ¿¸¦ ÀνºÅçÇÕ´Ï´Ù. Çö½Ç¿¡¼ ÇÑ À§Ã¼¿¡ ÀÖ´Â µµ±¸´Â ´Ù¸¥ ¸î¸î¿¡°Ô ¿¬°áµË´Ï´Ù. ¸µÄ¿ÀÇ Áß¿äÇÑ ¸éÀº ±×°ÍÀÇ ¶óÀ̺귯¸® Ž»ö ¼ø¼ÀÔ´Ï´Ù. »ó¼¼ÇÑ Á¤º¸´Â verbose flag¸¦ Áö³ª°¡´Â °Í¿¡ ÀÇÇØ ld ·ÎºÎÅÍ ¾ò¾î Áú ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, ld
¼³Ä¡µÈ ´ÙÀ½ÀÇ ÆÐŰÁö´Â GCCÀÔ´Ï´Ù. GCCÀÇ ./configure¼öÇൿ¾È¿¡ ´ç½ÅÀº ¾Æ·¡ ¿¹¸¦ º¼ °ÍÀÔ´Ï´Ù.
checking what assembler to use... /tools/i686-pc-linux-gnu/bin/as checking what linker to use... /tools/i686-pc-linux-gnu/bin/ld À̰ÍÀº À§¿¡ ¾ð±ÞµÈ ÀÌÀ¯¶§¹®¿¡ Áß¿äÇÕ´Ï´Ù. ±×°ÍÀº GCCÀÇ ¼³Á¤ ½ºÅ©¸³Æ®´Â »ç¿ëÇÏ´Â toolÀ» ¹ß°ßÇϱâ À§ÇØ $PATH µð·ºÅ丮¸¦ ¸¦ Ž»öÇÏÁö ¾Ê´Â°ÍÀ» º¸¿©ÁÝ´Ï´Ù. ±×·¯³ª gccÀÇ ½ÇÁ¦ ÀÛµ¿¾È °°Àº Ž»ö ÆÐ½º´Â ÇÊ¿¬ÀûÀ¸·Î »ç¿ëµÇÁö ¾Ê½À´Ï´Ù. ´ç½ÅÀº gcc -print-prog-name=ldÀÇ ±¸µ¿¿¡ ÀÇÇØ Ç¥ÁØ ¸µÄ¿ gcc¸¦ ã¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù. »ó¼¼ÇÑ Á¤º¸´Â ÄÄÆÄÀÏÇÏ´Â ´õ¹Ì ÇÁ·Î±×·¥µ¿¾ÈÀÇ -v flag¸¦ ÆÐ½ÌÇÏ´Â °Í¿¡ ÀÇÇØ gcc·ÎºÎÅÍ ¾ò¾îÁú ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, gcc -v dummy.cÀÇ Å½»ö ÆÐ½º¿Í ±×µéÀÇ ¼ø¼¸¦ Æ÷ÇÔÇÔÀ¸·Î½á ÇÁ¸®ÇÁ·Î¼¼¼, ÄÄÆÄÀÏ, ¾î¼Àºê¸®ÇÑ ½ºÅ×ÀÌÁö¿¡ ´ëÇÑ »ó¼¼ÇÑ Á¤º¸¸¦ º¸¿©ÁÙ °ÍÀÔ´Ï´Ù.
¼³Ä¡µÈ ´ÙÀ½ÀÇ ÆÐŰÁö´Â GlibcÀÔ´Ï´Ù.
GlibcÀ» ºôµåÇÏ´Â °Í¿¡ ´ëÇÑ °¡Àå Áß¿äÇÑ °í·Á»çÇ×Àº ±× ÄÄÆÄÀÏ·¯, ¹ÙÀ̳ʸ® Åø°ú Ä¿³Î Çì´õÀÔ´Ï´Ù. ÄÄÆÄÀÏ·¯´Â GlibcÀÌ Ç×»ó $PATH µð·ºÅ丮¿¡¼ gcc¸¦ ¹ß°ßÇϴµ¥ Ç×»ó »ç¿ë°ÍÀ̹ǷΠÀϹÝÀûÀ¸·Î ¾Æ¹«·± ¹®Á¦°¡ ¾ø½À´Ï´Ù. ¹ÙÀÌ·¯¸® Åø°ú Ä¿³Î Çì´õ´Â ÀÛ°í ´õ ±î´Ù·Î¿ï ¼ö ÀÖ½À´Ï´Ù.±×·¯¹Ç·Î ¿ì¸®´Â À§ÇèÀÌ ¾ø°í ¿Ã¹Ù¸¥ ¼±ÅÃÀ» °ÈÇϱâÀ§ÇØ ½ºÀ§Ä¡ ¼³Á¤À» »ç¿ëÇÕ´Ï´Ù. ./configure ÈÄ¿¡ ´ç½ÅÀº ¸ðµç Áß¿äÇÑ ¼¼ºÎ»çÇ×À» À§ÇØ glibc-build µð·ºÅ丮¿¡¼ config.make ÆÄÀÏÀÇ ³»¿äÀ» °Ë»ç ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ç½ÅÀº ¹ÙÀ̳ʸ® ÅøÀÌ »ç¿ëµÇ´Â Á¦¾î¿¡ CC="gcc -B/tools/bin/"ÀÇ »ç¿ë°ú °°Àº Àç¹ÌÀÖ´Â ¾ÆÀÌÅÛÀ» ÁÖ¸ñÇÒ °ÍÀ̰í, ¶ÇÇÑ Å½»ö ÆÐ½ºÀ» Æ÷ÇÔÇÑ ÄÄÆÄÀÏ·¯ÀÇ Á¦¾î¿¡ -nostdinc and -isystem flagsÀÇ »ç¿ë°ú °°Àº Àç¹ÌÀÖ´Â ¾ÆÀÌÅÛÀ» ÁÖ¸ñÇÒ °ÍÀÔ´Ï´Ù. ÀÌ ¾ÆÀÌÅÛÀº Glibc ÆÐŰÁöÀÇ Áß¿äÇÑ °üÁ¡¿¡ °Á¶ÇÏ´Â °ÍÀ» µ½½À´Ï´Ù. À̰ÍÀº ±×°ÍÀÇ ºôµå ÀåÄ¡¿¡¼ ¸Å¿ì µ¶¸³ÀûÀ̰í ÀϹÝÀûÀ¸·Î toolcahin default¸¦ ¹ÏÁö ¾Ê½À´Ï´Ù.
Glibc ÀνºÅçÈÄ ¿ì¸®´Â ¿ì¸®ÀÇ /tools frefix¿¡¼ Ž»öÇÏ´Â °Í°ú ¿¬°ÍÇÏ´Â °ÍÀÌ ¹ß»ýÇÏ´Â °ÍÀ» º¸ÁõÇÏ´Â Á¶Á¤À» ¸¸µì´Ï´Ù. ¿ì¸®´Â Á¶Á¤µÈ ld¸¦ ¼³Ä¡Çϴµ¥ ±×°ÍÀº ÄÄÇ»Å;ÈÀÇ Å½»ö±æÀº /tools/lib±îÁö ÇÑÁ¤µÇ°Ô ÇÕ´Ï´Ù. ±×¸®°í ¿ì¸®´Â /tools/lib¿¡ ¿ì¸®ÀÇ »õ·Î¿î µ¿ÀûÀÎ ¸µÄ¿¸¦ °¡¸®Å°±â À§ÇØ gccÀÇ ½ºÆåÆÄÀÏÀ» °íĨ´Ï´Ù. ÀÌ ¸¶Áö¸· ´Ü°è´Â ¸ðµç °úÁ¤¿¡ Áß¿äÇÕ´Ï´Ù. À§¿¡ ¸»ÇÑ´ë·Î, µ¿ÀûÀÎ ¸µÄ¿·ÎÀÇ ÄÄÇ»Åͳ»ÀÇ ÆÐ½º´Â ¸ðµç °øÀ¯µÈ ½ÇÇà°¡´ÉÇÑ ELF·Î ³»ÀåµË´Ï´Ù. ´ç½ÅÀº readelf -l <name of binary> | grep interpreterÀ» ¼öÇàÇÔÀ¸·Î½á À̰ÍÀ» Á¡°ËÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼öÁ¤µÈ gccÀÇ ½ºÆå ÆÄÀÏ¿¡ ÀÇÇØ ¿ì¸®´Â ÀÌ ÀåÀÇ ³¡À» ÅëÇØ ¿©±â·ÎºÎÅÍ ÄÄÆÄµÈ ¸ðµç ÇÁ·Î±×·¥ÀÌ /tools/lib¿¡ ¿ì¸®µéÀÇ »õ·Î¿î µ¿ÀûÀÎ ¸µÄ¿¸¦ »ç¿ëÇÒ °ÍÀ» º¸ÁõÇϰí ÀÖ½À´Ï´Ù.
»õ·Î¿î µ¿ÀûÀÎ ¸µÄ¿¸¦ »ç¿ëÇÒ Çʿ伺Àº GCCÀÇ µÎ¹øÂ° ÆÐ½º¸¦ À§ÇØ ½ºÆå ÆÐÄ¡¸¦ Àû¿ëÇÏ´Â °ÍÀÌ ÀÌÀ¯ÀÔ´Ï´Ù. ±×·¸°Ô ÇÏ´Â µ¥ ÀÖ¾î¼ÀÇ ½ÇÆÐ´Â °á°úÀûÀ¸·Î ±×µé¾ÈÀ¸·Î ³»ÀåµÈ È£½ºÆ® ½Ã½ºÅÛ /lib µð·ºÅ丮·ÎºÎÅÍ ±×µé ½º½º·Î µ¿ÀûÀÎ ¸µÄ¿ÀÇ À̸§À» °¡Áö°í ÀÖ´Â GCC ÇÁ·Î±×·¥ÀÌ µÉ °ÍÀÔ´Ï´Ù. ±×·±µ¥ ±×°ÍÀº È£½ºÆ®·ÎºÎÅÍ ¹°·¯°¡´Â ¿ì¸®µéÀÇ ¸ñÀûÀ» ÁÂÀý ½Ãų °ÍÀÔ´Ï´Ù.
BinutilÀÇ µÎ¹øÂ° ÆÐ½ºµ¿¾È¿¡ ¿ì¸®´Â --with-lib-path ÆÐ½º¸¦ ÀÌ¿ëÇÒ ¼öÀÖ½À´Ï´Ù. ldÀÇ ¶óÀ̺귯¸® Ž»ö ÆÐ½º¸¦ °ü¸®Çϱâ À§ÇØ ½ºÀ§Ä¡¸¦ ±¸¼ºÇÕ´Ï´Ù. Àü¹æÀ¸·Î ÀÌ Æ÷ÀÎÆ®·ÎºÎÅÍ ÄÚ¾î toolchainÀº µ¶¸³½ÄÀ̰í È£½ºÆ®ÀÔ´Ï´Ù. 5ÀåÀÇ ³ª¸ÓÁö´Â /toos¿¡ »õ·Î¿î Glibc¿¡ ¹Ý´ëÇÏ´Â ¸ðµç ºôµð¸¦ ÆÐŰÁöÇÕ´Ï´Ù. ¸ðµÎ Àß ÀÖ½À´Ï´Ù. 6Àå¿¡¼ chrootȯ°æ¿¡ µé¾î°¡ÀÚ¸¶ÀÚ, ¿ì¸®°¡ ¾ð±ÞÇÑ ±×°ÍÀÇ µ¶¸³½Ä ¶§¹®¿¡ ¿ì¸®°¡ ù¹øÂ° Áß¿äÇÑ ÆÑŰÁö¿¡¼ ÀνºÅçÇѰÍÀº GlibcÀÌ´Ù.
[edit]
3.3 Á¤Àû¿¬°á¿¡ ´ëÇÑ ÁÖÀÇ ¶¸ðµç ÇÁ·Î±×·¥Àº ±×µéÀÇ Æ¯Á¤ÇÑ Å×½ºÅ©¿·¿¡¼, ¿ÀÈ÷·Á º¸ÅëÀûÀÌ°í ¶§¶§·Î ÇÏÂúÀº ¸¹Àº µ¿ÀÛÀ» ¼öÇàÇÕ´Ï´Ù. ÇÒ´çÇÏ´Â ¸Þ¸ð¸®, µð·ºÅ丮¿Í ÆÄÀÏ ¾²±â, ÆÄÀÏ Àбâ string Á¶ÀÛ, ÆÐÅÍ ¸ÅĪ, ¼öÇаú ´Ù¸¥ ¸¹Àº Á÷¹«¸¦ Æ÷ÇÕ´Ï´Ù. WheelÀ» Àç¹ß¸íÇϱâ À§ÇØ °¢°¢ÀÇ ÇÁ·Î±×·¥À» ¾î¿¼ö ¾øÀÌ ÇÏ°Ô ÇÏ´Â ´ë½Å¿¡, GNU ½Ã½ºÅÛÀº ÀÌ¹Ì ¸¸µé¾îÁø ¶óÀ̺귯¸®¿¡ ÀÖ´Â ±âº»ÀûÀÎ ÀÌ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù.
±× µéÀ» »ç¿ëÇÏ´Â ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¶óÀ̺귯¸®·ÎºÎÅÍÀÇ ±â´ÉÀ» ¿¬°áÇÏ´Â µÎ ÁÖ¿äÇÑ ¹æ¹ý(Á¤Àû, µ¿Àû :statically ¶Ç´Â dynamically)ÀÌ ÀÖ½À´Ï´Ù. ÇÁ·Î±×·¥ÀÌ Á¤ÀûÀ¸·Î ¸µÅ©µÇ¾úÀ»¶§, °á°úÀûÀ¸·Î ´õ ºÎÇǰ¡ Å« ÇÁ·Î±×·¥ÀÌ µÇ¸é¼ ½ÇÇà°¡´ÉÇÑ ±× »ç¿ëµÈ functionÀÇ ÄÚµå´Â Æ÷ÇԵ˴ϴÙ. ÇÁ·Î±×·¥ÀÌ µ¿ÀûÀ¸·Î ¸µÅ©µÇ¾úÀ»¶§, Æ÷ÇԵǴ °ÍÀº µ¿ÀûÀÎ ¸µÄ¿, ¶óÀ̺귯¸®ÀÇ À̸§, ±×¸®°í ±× functionÀÇ À̸§¿¡ ´ëÇÑ ÂüÁ¶ÀÔ´Ï´Ù. ±×·±µ¥ ±×°ÍÀº ´õ ÀÛÀº ¸¹Àº°Í¿¡¼ÀÇ ½ÇÇà°¡´ÉÇÑ °á°úÀÔ´Ï´Ù. ¼¼¹øÂ° ¹æ¹ýÀº µ¿ÀûÀÎ ¸µÄ¿ÀÇ ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ´õ ¸¹Àº Á¤º¸´Â dlopen manpage¸¦ º¸¼¼¿ä.
Dµ¿ÀûÀÎ ¿¬°áÀº Linux¿¡ defaultÇϰí Á¤ÀûÀÎ ¿¬°á¿¡ ´ëÇÑ Áß¿äÇÑ ¼¼°¡Áö Áß¿äÇÑ ÀåÁ¡À» °¡Áö°í ÀÖ½À´Ï´Ù.
ù ¹øÂ°, ±× °°Àº ÄÚµåÀÇ ¸¹Àº º¹»ç¸¦ ÇÁ·Î±×·¥ÀÇ ¸ðµç °¡Áö(bunch)¾ÈÀ¸·Î Æ÷ÇÔµÇ°Ô ÇÏ´Â ´ë½Å¿¡ Çϵåµð½ºÅ©¿¡¼ ½ÇÇà°¡´ÉÇÑ ¶óÀ̺귯¸® ÄÚµåÀÇ ´ÜÁö ÇϳªÀÇ º¹»ç¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ±×·¡¼ µð½ºÅ©°ø°£ Àý¾àµË´Ï´Ù.µÎ¹øÂ°, ¿©·¯°³ÀÇ ÇÁ·Î±×·¥ÀÌ °°Àº ¶óÀ̺귯½º Æã¼ÇÀ» µ¿½Ã¿¡ »ç¿ëÇÒ ¶§, Æã¼Ç ÄÚµåÀÇ ´ÜÁö ÇÑ º¹»ç´Â core¿¡ ¿ä±¸µË´Ï´Ù. ±×·¡¼ ¸Þ¸ð¸®°ø°£ÀÌ Àý¾àµË´Ï´Ù.¼¼¹øÂ°, ¶óÀ̺귯¸® Æã¼ÇÀÌ ¹ö±×¸¦ °íÁ¤µÇ°Ô Çϰųª ±×·¸Áö ¾ÊÀ¸¸é °³¼±µÉ ¶§, ±× °³¼±µÈ Æã¼ÇÀ» ÀÌ¿ëÇÏ´Â ¸ðµç ÇÁ·Î±×·¥À» ´Ù½Ã ÄÄÆÄÀÏÇØ¾ß ÇÏ´Â ´ë½Å¿¡ ´ÜÁö ÀÌ ÇÑ ¶óÀ̺귯¸®¸¦ ´Ù½Ã ÄÄÆÄÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù.
µ¿ÀûÀÎ ¿¬°áÀÌ ¿©·¯ ÀåÁ¡À» °¡Áö°í ÀÖ´Ù¸é ¿Ö? ¿ì¸®´Â ÀÌ Àå¿¡¼ ù¹øÂ° µÎ ÆÑŰÁö¸¦ Á¤ÀûÀ¸·Î ¿¬°áÇÒ±î¿ä? ±× ÀÌÀ¯´Â 3ºÎºÐÀÔ´Ï´Ù.- ¿ª»çÀûÀ̰í, ±³À°ÀûÀ̰í, ±â¼úÀûÀÔ´Ï´Ù(historical, educational, and technical). ¿ª»çÀûÀ¸·Î´Â, ´õ ÀÏÂïÀÌ LFSÀÇ ¹öÁ¯ ÀÌ ÀåÀÇ ¸ðµç ÇÁ·Î±×·¥¿¡¼ Á¤ÀûÀ¸·Î ¿¬°áµÇ¾ú±â ¶§¹®ÀÔ´Ï´Ù. ±³À°ÀûÀ¸·Î´Â, Â÷ÀÌÁ¡À» ¾Æ´Â°ÍÀÌ À¯¿ëÇϱ⠶§¹®ÀÔ´Ù. ±â¼úÀûÀ¸·Î´Â, ¿ì¸®°¡ ±×·¸°Ô Çϴµ¥ ÀÖ¾î¼ È£½ºÆ®·ÎºÎÅÍ µ¶¸³ÀûÀÎ ºÎºÐÀ» ¾ò±â ¶§¹®ÀÔ´Ï´Ù. Àǹ̴ ÇÁ·Î±×·¥ÀÌ È£½ºÆ® ½Ã½ºÅÛÀ¸·ÎºÎÅÍ µ¶¸³ÀûÀ¸·Î »ç¿ëµÇ´Â °ÍÀÔ´Ï´Ù. ±×·¯³ª óÀ½ µÎ ÆÐŰÁö°¡ µ¿ÀûÀ¸·Î ºôµåµÉ ¶§, ÀüüÀÇ ¼º°øÀûÀÎ LFS ºôµå´Â ¿©ÀüÈ÷ ¼ºÃëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» À¯ÀÇÇÒ °¡Ä¡°¡ ÀÖ½À´Ï´Ù.
[edit]
3.4 $LFS/tools µð·ºÅ丮 ¸¸µé±â ¶ÀÌ Àå¿¡¼ ÄÄÆÄÀÏµÈ ¸ðµç ÇÁ·Î±×·¥µéÀº ´ÙÀ½ Àå¿¡¼ ÄÄÆÄÀ쵃 ÇÁ·Î±×·¥µé°ú ºÐ¸®Çϱâ À§ÇØ $LFS/tools ¾Æ·¡ ¼³Ä¡µÉ °ÍÀÔ´Ï´Ù. $LFS/Tools ¿¡¼ ÄÄÆÄÀÏµÈ ÇÁ·Î±×·¥µéÀº Àӽ÷Π»ç¿ëµÉ µµ±¸µéÀ̰í, ÃÖÁ¾ LFS½Ã½ºÅÛ¿¡¼´Â Áö¿ï °ÍÀÔ´Ï´Ù.
Àӽõµ±¸µéÀÌ ÀúÀåµÈ µð·ºÅ丮¸¦ ½±°Ô ã±âÀ§ÇØ °íÀ¯ÇÑ À̸§À» »ç¿ëÇϱ⸦ ¿øÇÒ °ÍÀÔ´Ï´Ù. "Tools"À̶ó´Â À̸§ ´ë½Å¿¡ "tools-for-lfs"¶ó´Â À̸§À» »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌÃ¥À» º¸´Âµ¿¾È "tools"¶ó´Â À̸§À» ´ë½Å ´Ù¸¥ À̸§À» »ç¿ëÇÏ´Â °ÍÀº Á¶½ÉÇϱ⠹ٶø´Ï´Ù.
´ÙÀ½°ú °°Àº µð·ºÅ丮¸¦ ¸¸µå¼¼¿ä.
mkdir $LFS/tools´ÙÀ½ ´Ü°è´Â ´ç½Å ½Ã½ºÅÛ¿¡ /tools¶õ ½Éº¼¸¯¸µÅ©¸¦ ¸¸µå´Â °ÍÀÔ´Ï´Ù. À̰ÍÀº LFSÆÄƼ¼Ç¿¡¼ ¸¸µé¾îÁø µð·ºÅ丮¸¦ °¡¸®Åµ´Ï´Ù. ln -s $LFS/tools / ÂüÁ¶: À§ÀÇ ¸í·ÉÀº Á¤È®ÇÑ ¿¹ÀÔ´Ï´Ù. ÇÏÁö¸¸, ln¸í·ÉÀº ¾à°£ÀÇ ¹®¹ýÀû º¯È¸¦ °¡Áú¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î ¿¡·¯°¡ ¹ß»ýÇϸé Áú¹®ÇϱâÀü¿¡ info ÆäÀÌÁö¸¦ Âü°íÇϱ⠹ٶø´Ï´Ù.
¸¸µé¾îÁø ½Éº¼¸¯¸µÅ©´Â ¿ì¸®°¡ ÄÄÆÄÀÏÇÒ ¶§ Ç×»ó /tools¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ°Ô ÇØÁÖ°í, compiler, assembler, linker ¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÝ´Ï´Ù. ´ÙÀ½Àå¿¡¼µµ »ç¿ëÇÏ°Ô µË´Ï´Ù.
[edit]
3.5 "LFS" °èÁ¤ ¸¸µé±â ¶"ROOT"·Î ·Î±×ÀÎÇÑ »óÅ¿¡¼´Â ÀÛÀº ½Ç¼ö·Îµµ µ¥¹ÌÁö¸¦ À԰ųª ½Ã½ºÅÛÀÌ ¸Á°¡Áú ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î ÀÌ Àå¿¡¼ ÆÑŰÁö ¼³Ä¡ ÀÛ¾÷À» ÇÒ ¶§¿¡´Â ÀÏ¹Ý °èÁ¤À¸·Î ÇÒ °ÍÀ» ±ÇÇÕ´Ï´Ù. ¹°·Ð ÀڽŸ¸ÀÇ »ç¿ëÀÚ À̸§À» ¾µ¼öµµ ÀÖÁö¸¸ ½±°í ±ò²ûÇÑ ÀÛ¾÷ ȯ°æÀ» À§ÇØ "LFS" ¶ó´Â »õ·Î¿î »ç¿ëÀÚ¸¦ ¸¸µé°í ¼³Ä¡ °úÁ¤µ¿¾È »ç¿ëÇÒ °Ì´Ï´Ù.ROOT »óÅ¿¡¼ ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ½ÇÇàÇÏ¿© »õ·Î¿î »ç¿ëÀÚ¸¦ Ãß°¡ÇսôÙ.
useradd -s /bin/bash -m -k /dev/null lfs¿É¼Ç ¼³¸í:
passwd lfs$LFS/tools µð·ºÅ丮ÀÇ ¼ÒÀ¯±ÇÀ» lfs »ç¿ëÀÚ¿¡°Ô ÁÜÀ¸·Î½á $LFS/tools¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù. chown lfs $LFS/tools¸¸¾à ÀÛ¾÷ µð·ºÅ丮¸¦ µû·Î ¸¸µé¾î ÁÖ¾ú´Ù¸é ±× µð·ºÅ丮ÀÇ ¼ÒÀ¯±Çµµ lfsÀ¯Àú·Î ¹Ù²Ù¾î ÁÖ¼¼¿ä. chown lfs $LFS/sourceslfs °èÁ¤À¸·Î ·Î±×ÀÎ Çϼ¼¿ä. ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇϼ¼¿ä: su - lfs"-" ¿É¼ÇÀº ·Î±×ÀÎ ½©·Î ½ÃÀÛÇ϶ó´Â ¶æÀÔ´Ï´Ù. [edit]
3.6 ±âº» ȯ°æ º¯¼ö ¼³Á¤Çϱ⠶¿ì¸®´Â Á» ´õ ÆíÇÑ ÀÛ¾÷ ȯ°æÀ» À§ÇØ bash shell¿¡¼ »ç¿ëÇÏ´Â 2°³ÀÇ È¯°æ ¼³Á¤ ÈÀÏÀ» ¸¸µé °Ì´Ï´Ù.lfs °èÁ¤À¸·Î ·Î±×ÀÎ ÇÑ ÈÄ, ´ÙÀ½ ¸í·ÉÀ» ¼öÇàÇÏ¿© .bash_profile ÈÀÏÀ» ¸¸µå¼¼¿ä.
cat > ~/.bash_profile << "EOF" exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash EOF ÁÖÀÇ : adduser ¸í·ÉÀ¸·Î lfs°èÁ¤À» »ý¼ºÇϸé .bash_profile ÈÀÏÀÌ ÀÚµ¿À¸·Î »ý¼ºµÉ °Ì´Ï´Ù. À§¿Í °°ÀÌ ÇØµµ º° ¹«¸®´Â ¾øÁö¸¸ ¸¸¾àÀ» À§Çؼ vi·Î ÆíÁýÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.
ÀϹÝÀûÀ¸·Î, lfs °èÁ¤À¸·Î ·Î±×ÀÎÇϸé, /etc/profile ÈÀÏÀ» Àоî shellÀ» ÃʱâÈÇÕ´Ï´Ù.( °¢Á¾ ¼ÂÆÃ ³»¿ë°ú ȯ°æ º¯¼öµéÀÌ µé¾î ÀÖ´Â) "exec env -i ... /bin/bash" ¸í·ÉÀ» ÀÌ¿ëÇϸé "HOME,TERM,PS1" ȯ°æ º¯¼ö¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö º¯¼öµéÀº ¸ðµÎ ±ú²ýÈ÷ ºñ¿î »óÅ·Π·Î±×ÀÎ ÇÏ°Ô µË´Ï´Ù. À̰ÍÀº LFS ½Ã½ºÅÛÀ» ¼³Ä¡ÇÏ´Â µ¿¾È ¸¸µé¾îÁø °¢Á¾ ȯ°æ º¯¼öµéÀÌ ÇöÀç ȯ°æ¿¡ ¸¶À½´ë·Î ¿µÇâÀ» ³¢Ä¡°Å³ª ³ªÁß¿¡¶óµµ ¾î¶² ¿µÇâÀ» ³¢Ä¡Áö ¾Ê°Ô ÇØ ÁÝ´Ï´Ù.
non-login shellÀº /etc/profile À̳ª .bash_profile ÆÄÀÏ ´ë½Å .bashrc ÆÄÀÏÀ» ÀнÀ´Ï´Ù. ÀÚ ±×·³. class="filename">.bashrcÆÄÀÏÀ» ¸¸µé¾î º¾½Ã´Ù.
cat > ~/.bashrc << "EOF" set +h umask 022 LFS=/mnt/lfs LC_ALL=POSIX PATH=/tools/bin:/bin:/usr/bin export LFS LC_ALL PATH EOF ÁÖÀÇ : adduser ¸í·ÉÀ¸·Î lfs°èÁ¤À» »ý¼ºÇϸé .bashrc ÈÀÏÀÌ ÀÚµ¿À¸·Î »ý¼ºµÉ °Ì´Ï´Ù. À§¿Í °°ÀÌ ÇØµµ º° ¹«¸®´Â ¾øÁö¸¸ ¸¸¾àÀ» À§Çؼ vi·Î ÆíÁýÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.
set +h ¸í·ÉÀº bashÀÇ hash function ±â´ÉÀ» ²¨ ÁÝ´Ï´Ù.ÀϹÝÀûÀ¸·Î hashing ±â´ÉÀº ¾ÆÁÖ À¯¿ëÇÕ´Ï´Ù. bash´Â ½ÇÇàÈÀÏÀ» ã°í ½ÇÇàÇÏ´Â ½Ã°£À» ÁÙÀ̱â À§ÇØ ½ÇÇàÈÀÏÀÇ full pathnameÀÌ ÀúÀåµÈ hash table ¸¦ »ç¿ëÇÕ´Ï´Ù. ±×·¯³ª ¿ì¸° LFS ½Ã½ºÅÛ ¼³Ä¡¸¦ ÇÒ ¶§, ±âÁ¸ÀÇ toolÀ» »ç¿ëÇÏ´Â ¾Æ´Ï¶ó, »õ·Î ¼³Ä¡ÇÑ(Àӽà toolµé)À» »ç¿ëÇϱ⠶§¹®¿¡ ÀÌ ±â´ÉÀº ÇÊ¿ä ¾ø½À´Ï´Ù. hashing ±â´ÉÀ» ²ô¸é, LFS ½Ã½ºÅÛÀ» ¼³Ä¡ÇÏ´Â µ¿¾È ¿ì¸®°¡ »õ·Î ¼³Ä¡ÇÑ µµ±¸µéÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Umask¸¦ 022·Î ¼³Á¤ÇØ ³õÀ¸¸é »õ·Î ¸¸µé¾î Áö´Â ÆÄÀÏÀ̳ª µð·ºÅ丮´Â ±×°ÍµéÀÇ ¼ÒÀ¯ÀÚ¸¸ ¾µ ¼ö ÀÖ°í, ´Ù¸¥ »ç¿ëÀÚµéÀº Àаųª ½ÇÇุ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
LFS º¯¼ö´Â ¼±ÅÃÇÑ ¸¶¿îÆ® Æ÷ÀÎÆ®·Î ÇÏ¸é µË´Ï´Ù.
LC_ALL ȯ°æ º¯¼ö´Â Áö¿ªÈ¸¦ ¼³Á¤ÇØ ÁÖ´Â ¿ªÈ°À» ÇÕ´Ï´Ù. ÀÌ º¯¼ö¸¦ ÁöÁ¤ÇØ ÁÖ¸é, °¢Á¾ ´ÜÀ§µîÀÌ °¢ ±¹°¡¿¡ ¸Â°Ô Á¶ÀýµË´Ï´Ù. ¸¸¾à ÇöÀç »ç¿ëÇϰí ÀÖ´Â Glibc°¡ 2.2.4 ¹öÀüº¸´Ù ³·°í LC_ALL ȯ°æ º¯¼ö°¡ "POSIX"³ª "C"°¡ ¾Æ´Ï¶ó¸é ¹®Á¦°¡ »ý±æ °¡´É¼ºÀÌ Å®´Ï´Ù.(¾Æ¸¶ ±×·²ÀÏÀº ¾øÀ» °Ì´Ï´Ù. ¿äÁòÀº Glibc ¹öÀüÀÌ 2.2.4º¸´Ù ³ô½À´Ï´Ù.) LC_ALL ȯ°æ º¯¼ö¸¦ "POSIX"·Î ¼³Á¤ÇսôÙ.
/tools/binÀ» PATH¿¡ Ãß°¡ÇսôÙ.
¸¶Áö¸·À¸·Î, ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇϸé Àӽà µµ±¸µéÀ» ¸¸µé±â À§ÇÑ È¯°æÀÌ ¿Ïº®ÇÏ°Ô ÁغñµË´Ï´Ù.
source ~/.bash_profile [edit]
3.7 Binutils-2.14 - Pass 1 ¼³Ä¡ ¶Approximate build time: 1.0 SBU
Required disk space: 194 MB
Bintutils(2.14) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/binutils/
Binutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
[edit]
3.7.1 BinutilsÀÇ ÀνºÅç ¶binutils´Â °¡Àå ¸ÕÀú ÄÄÆÄÀÏ ÇØ¾ß ÇÕ´Ï´Ù.
±âº» ÃÖÀûÈ Ç÷¡±×(including the -march and -mcpu options)µéÀ» º¯°æÇϴ°ÍÀº ±×¸® ÁÁÁö ½À°üÀÌ ¾Æ´Õ´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à¿¡ ´ç½ÅÀÌ CFLAGS³ª CXXFLAG °°Àº ÀÌ¹Ì ÃÖÀûÈ µÇ¾îÀִ ȯ°æº¯¼öµéÀ» º¯°æÇßÀ» °æ¿ì¿¡´Â Glibc¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä.
binutils ¹®¼¿¡¼´Â binutils¸¦ ¼³Ä¡ÇÒ¶§ /tools ¹Û¿¡¼ ¼³Ä¡Çϴ°ÍÀ» ±ÇÀåÇÕ´Ï´Ù:
mkdir -p $LFS/build/binutils-build cd $LFS/build/binutils-build tar zxvf /mnt/source/binutils-2.14.tar.gz -C ./ Note: SBU¸¦ Á¦´ë·Î ÃøÁ¤Çϱâ À§Çؼ´Â ÇÑ ÆÑŰÁö¸¦ ¼³Ä¡ÇÒ ¶§ ÇÊ¿äÇÑ ÃÑ ½Ã°£À» °è»êÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ Çϸé SBU¸¦ Á¦´ë·Î ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. time { ./configure ... && ... && ... && make install; }.
Binutils ÄÄÆÄÀÏ ÁغñÇϱâ:
cd $LFS/build/binutils-build/binutils-2.14 ./configure --prefix=/tools --disable-nls The meaning of the configure options:
make configure-host make LDFLAGS="-all-static" Make ÆÄ¶ó¸ÞÅÍÀÇ ÀǹÌ:
ÆÐŰÁö ÀνºÅçÇϱâ:
make install Glibc¸¦ ¼³Ä¡ÇÑ ÈÄ¿¡ º¸°Ô µÉ "locking in"ºÎºÐÀ» À§ÇÑ ¼±ÇàÀÛ¾÷:
make -C ld clean make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib make ÆÄ¶ó¹ÌÅÍÀÇ ÀǹÌ:
ÁÖÀÇ Binutils ¿Í ¼Ò½º µð·ºÅ丮¸¦ Áö¿ìÁö ¸¶¼¼¿ä. ÀÌ ÀåÀÇ µÞÂÊ¿¡¼ ´Ù½Ã »ç¿ëÇÏ°Ô µË´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº the Section called Contents of Binutils in Chapter 6À» ÂüÁ¶Çϼ¼¿ä. [edit]
3.8 GCC-3.3.2 - Pass 1 ¼³Ä¡ ¶Approximate build time: 4.4 SBU
Required disk space: 300 MB
GCC (3.3.2) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/pub/gnu/gcc/
GCC¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
[edit]
3.8.1 GCC ¼³Ä¡ ¶C++ Àº ÇÊ¿äÇÏÁö ¾ÊÀ¸¹Ç·Î GCC-core tarballÀÇ ¾ÐÃàÀ» Ç®¾î ÁÖ¼¼¿ä.
±âº» ÃÖÀûÈ Ç÷¡±×(including the -march and -mcpu options)µéÀ» º¯°æÇϴ°ÍÀº ±×¸® ÁÁÁö ½À°üÀÌ ¾Æ´Õ´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à¿¡ ´ç½ÅÀÌ CFLAGS³ª CXXFLAG °°Àº ÀÌ¹Ì ÃÖÀûÈ µÇ¾îÀִ ȯ°æº¯¼öµéÀ» º¯°æÇßÀ» °æ¿ì¿¡´Â Glibc¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä.
GCC ¹®¼¿¡¼´Â GCC¸¦ ¼³Ä¡ÇÒ¶§ /tools ¹Û¿¡¼ ¼³Ä¡Çϴ°ÍÀ» ±ÇÀåÇϰí ÀÖ½À´Ï´Ù.
mkdir -p $LFS/build/gcc-build cd $LFS/build/gcc-build tar xvf /mnt/source/gcc-3.3.2.tar.gz -C ./GCC¸¦ ÄÄÆÄÀÏ Çϱâ À§ÇØ ¸ÕÀú ÇØ¾ß ÇÏ´Â ÀÛ¾÷
cd $LFS/build/gcc-build/gcc-3.3.2
./configure --prefix=/tools \
--with-local-prefix=/tools \
--disable-nls --enable-shared \
--enable-languages=c
configure ¿É¼ÇÀÇ ÀǹÌ
make BOOT_LDFLAGS="-static" bootstrap makeÆÄ¶ó¹ÌÅÍÀÇ ÀǹÌ
ÆÐŰÁö ¼³Ä¡Çϱâ:
make installÁö±Ý±îÁöÀÇ °úÁ¤ÀÌ ³¡³ª¸é /tools/bin/ccÀÇ symlink¸¦ ¸¸µé°ÍÀÔ´Ï´Ù. ¸¹Àº ÇÁ·Î±×·¥µé°ú ½ºÅ©¸³Æ®µéÀº gcc ´ë½Å¿¡ cc¸¦ ÀÌ¿ëÇÕ´Ï´Ù. À̰ÍÀº ÇÁ·Î±×·¥ÀÇ ¼Ó¼ºÀ» À¯ÁöÇÏ°Ô Çϰí, ¸ðµç Á¾·ùÀÇ À¯´Ð½º ½Ã½ºÅÛ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁÝ´Ï´Ù. ¸ðµç Á¾·ùÀÇ À¯´Ð½º ½Ã½ºÅÛ¿¡ GNU C ÄÄÆÄÀÏ·¯°¡ ¼³Ä¡µÇ¾î ÀÖ´Â°Ç ¾Æ´Õ´Ï´Ù. ÀÌ·¸°Ô Çϸé, ½Ã½ºÅÛ¿¡ ¾î¶² Á¾·ùÀÇ C ÄÄÆÄÀÏ·¯°¡ ¼³Ä¡µÇ¾î ÀÖ´ø°£¿¡ ÀÏÀÏÈ÷ °ü¸®ÀÚ ½Å°æ½áÁÙ Çʿ䰡 ¾ø±â ¶§¹®¿¡ ÆíÇÕ´Ï´Ù. ½Éº¼¸¯ ¸µÅ©ÀÇ ÀåÁ¡ÀÌ ¹Ù·Î ÀÌ·± °ÍÀÔ´Ï´Ù. cd /tools/bin ln -s gcc /tools/bin/ccÀÌ ÆÐŰÁö¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëµéÀº the Section called Contents of GCC in Chapter 6¿¡¼ ãÀ»¼ö ÀÖ½À´Ï´Ù. [edit]
3.10 kernel Çì´õ ¼³Ä¡ ¶ÀϺΠÆÑŰÁö´Â Ä¿³Î Çì´õ ÆÄÀÏÀ» ÂüÁ¶ÇÕ´Ï´Ù. ÀÚ, ÀÌÁ¦ ¿ì¸° Ä¿³ÎÀÇ ¾ÐÃàÀ» Ç®°í, ¼³Ä¡Çϰí, ÇÊ¿äÇÑ ÆÄÀϵéÀ» gcc°¡ ÂüÁ¶ÇÒ À§Ä¡¿¡ º¹»çÇÒ°Ì´Ï´Ù.
Çì´õÆÄÀÏ ¼³Ä¡ ÁغñÇϱâ
make mrpropermake mrproper¸¦ ½ÇÇàÇÔÀ¸·Î½á Ä¿³ÎÆ®¸®¿¡ ÀÖ´Â ºÒÇÊ¿äÇÑ °ÍµéÀÌ Á¦°ÅµÇ¾ú½À´Ï´Ù. ¸®´ª½º Ä¿³ÎÆÀ¿¡¼´Â ´Ù¸¥ ¿©·¯ Á¾·ùÀÇ Ä¿³Î ÄÄÆÄÀÏÀü¿¡ make mrproperÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù. version.h ÆÄÀÏ »ý¼ºÇϱâ
make include/linux/version.h include/asmÀÇ ½Éº¼¸¯¸µÅ© ¸¸µé±â(LFS¸¦ ¼³Ä¡ÇÒ pcÀÇ Á¾·ù¿¡ ¸Â´Â - ¿¹¸¦ µé¾î intelÀº i386, power pc´Â power pc·Î..)
make symlinks ½Ã½ºÅÛ Á¾·ù¿¡ ¸Â´Â Çì´õÆÄÀÏ ¼³Ä¡Çϱâ.
mkdir /tools/include/asm cp include/asm/* /tools/include/asm cp -R include/asm-generic /tools/include cross-platform Çì´õÆÄÀÏ ¼³Ä¡Çϱâ.
cp -R include/linux /tools/includeÀϺΠĿ³Î Çì´õÆÄÀÏÀº autoconf.h Çì´õÆÄÀÏÀ» »ç¿ëÇÕ´Ï´Ù. ¾ÆÁ÷ Ä¿³ÎÀ» ±¸¼ºÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡, ÄÄÆÄÀÏÀÇ ½ÇÆÐ¸¦ ÇÇÇϱâ À§ÇÑ ÆÄÀÏÀ» ¸¸µé Çʿ䰡 ÀÖ½À´Ï´Ù. ºñ¾îÀÖ´Â autoconf.h ÆÄÀÏÀ» ¸¸µé¾î ÁÖ¼¼¿ä. touch /tools/include/linux/autoconf.h [edit]
3.11 Glibc-2.3.3 ¼³Ä¡ ¶Approximate build time: 11.8 SBU
Required disk space: 800 MB
Glibc (2.3.3)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ® :
ftp://ftp.gnu.org/gnu/glibc/
¹Ì·¯ »çÀÌÆ®µé :
ftp://gaosu.rave.org/pub/linux/lfs/packages/conglomeration/glibc-2.3.3-20031202.tar.bz2
http://lfs.mirror.intermedia.com.sg/packages/glibc/glibc-2.3.3-20031202.tar.bz2
ftp://lfs.mirror.intermedia.com.sg/pub/lfs/glibc/glibc-2.3.3-20031202.tar.bz2
http://dl.lfs.fredan.org/glibc-2.3.3-20031202.tar.bz2
http://packages.lfs-es.org/glibc-2.3.3-20031202.tar.bz2
http://mirror.averse.net/lfs-packages/glibc-2.3.3-20031202.tar.bz2
ftp://mirror.averse.net/pub/lfs-packages/glibc-2.3.3-20031202.tar.bz2
ftp://ftp.lfs-matrix.de/lfs/packages/conglomeration/glibc-2.3.3-20031202.tar.bz2
Glibc¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo.
[edit]
3.11.1 Glibc ¼³Ä¡ ¶±âº» ÃÖÀûÈ Ç÷¡±×(including the -march and -mcpu options)µéÀ» º¯°æÇϴ°ÍÀº ±×¸® ÁÁÁö ½À°üÀÌ ¾Æ´Õ´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à¿¡ CFLAGS³ª CXXFLAG °°Àº ÀÌ¹Ì ÃÖÀûÈ µÇ¾îÀִ ȯ°æº¯¼öµéÀ» º¯°æÇßÀ» °æ¿ì¿¡´Â Glibc¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä.
±âº»ÀûÀ¸·Î, Glibc¸¦ Ã¥¿¡¼ Á¦½ÃÇϴ°ÍÀÌ ¾Æ´Ñ ´Ù¸¥ ¹æ¹ýÀ¸·Î ÄÄÆÄÀÏÇϴ°ÍÀº »ç¿ëÀÚÀÇ ½Ã½ºÅÛÀÇ ¾ÈÁ¤¼ºÀ» ÇØÄ¥ ¼ö ÀÖ½À´Ï´Ù.
Glibc¹®¼´Â Àü¿ëµð·ºÅ丮¾È¿¡ ¼Ò½ºµð·ºÅ丮 ¹Û¿¡¼ Glibc¸¦ ºôµåÇϴ°ÍÀ» ÃßõÇÕ´Ï´Ù:
mkdir -p $LFS/build/glibc_build cd $LFS/build/glibc_build tar jxvf /mnt/source/glibc-2.3.3-20031202.tar.bz2 -C ./Glibc ÄÄÆÄÀÏ Áغñ:
cd $LFS/build/glibc_build
./glibc-2.3.3-20031202/configure --prefix=/tools \
--disable-profile --enable-add-ons=linuxthreads \
--with-binutils=/tools/bin --with-headers=/tools/include \
--without-gd --without-cvs
¿©±â¼ Àá±ñ.
Glibc¸¦ ÄÄÆÄÀÏ ÇÒ ¶§´Â Àý´ë! GlibcÀÇ ¾ÐÃàÀ» Ç®¾î ³õÀº µð·ºÅ丮¿¡¼ ÇÏ¸é ¾È µË´Ï´Ù. À§¿¡¼µµ º¸¸é ¾Ë°ÚÁö¸¸, ¾ÐÃàÀ» Ç®¾î ³õÀº µð·ºÅ丮°¡ ¾Æ´Ï¶ó »óÀ§ µð·ºÅ丮¿¡¼ ÀÛ¾÷À» Çϰí ÀÖÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¾ÐÃàÀ» Ç®¾î ³õÀº µð·ºÅ丮¿¡¼ ÀÛ¾÷À» ÇÏ°Ô µÇ¸é ÀÏ´Ü, Configure¿¡¼ ¿¡·¯°¡ ¹ß»ýÇÏ°í ¾ïÁö·Î ÄÄÆÄÀÏÀ» ÇÑ´Ù°í ÇØµµ ÄÄÆÄÀÏ µµÁß ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.
¼³Á¤ ¿É¼ÇÀÇ ÀǹÌ:
configure: WARNING: *** These auxiliary programs are missing or incompatible versions: msgfmt *** some features will be disabled. *** Check the INSTALL file for required versions.ÀÒ¾î¹ö¸®°Å³ª ȣȯ¼ºÀÌ ¾ø´Â msgfmtÇÁ·Î±×·¥Àº ÀϹÝÀûÀ¸·Î ÇÊ¿ä ¾ø½À´Ï´Ù, ÇÏÁö¸¸ °¡²û test suite¸¦ ½ÇÇàÇÒ¶§ ¹®Á¦¸¦ ÀÏÀ¸Åµ´Ï´Ù. ÆÐŰÁö ÄÄÆÄÀÏ:
make ÄÄÆÄÀÏÀº ÀÌÁ¦ ³¡³µ½À´Ï´Ù. ÀÏÂî±â ¸»Çß´ø °Íó·³, ¿ì¸®´Â ÀÌ Àå¿¡¼ Àӽà ½Ã½ºÅÛÀ» À§ÇØ test suiteµéÀ» ½ÇÇàÇÒ°ÍÀ» ±ÇÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à ´ç½ÅÀÌ Glibc test suite¸¦ ¾î¶² ´Ù¸¥ ¹æ¹ýÀ¸·Î ¾ÆÁ÷±îÁö ½ÇÇàÇÏ°í ½Í´Ù¸é, ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇϼ¼¿ä.
make check Glibc test suite´Â ƯÀ¯ÇÑ Ä¿³ÎÀΠȣ½ºÆ® ½Ã½ºÅÛÀÇ ¾î¶² ÇÔ¼öµé°ú ³ôÀº ÀÇÁ¸¼ºÀ» °¡Áý´Ï´Ù. ºÎ°¡ÀûÀ¸·Î, ÀÌ ÀåÀÇ ¾î¶² Å×½ºÆ®µéÀº È£½ºÆ® ½Ã½ºÅÛ¿¡ ÀϾ´Â ȯ°æµé ¶Ç´Â ÇöÁ¸ÇÏ´Â Åøµé¿¡ ¾Ç¿µÇâÀ» ¹ÌÄ¥ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð, 6ÀåÀÇ chrootȯ°æ¾È¿¡¼ Glibc test suite¸¦ ½ÇÇàÇÒ¶§´Â ¹®Á¦°¡ µÇÁö ¾Ê½À´Ï´Ù. º¸Åë, Glibc test suite´Â Ç×»ó ¹®Á¦¾øÀÌ ³Ñ¾î°©´Ï´Ù. ÇÏÁö¸¸, À§¿¡ ¾ð±ÞÇÑ´ë·Î ¾î¶² ¹®Á¦µéÀº ¾î¶² »óȲ¿¡¼ ¹®Á¦¸¦ ÀÏÀ¸Å°´Â °ÍÀ» ÇÇÇÒ¼ö ¾ø½À´Ï´Ù. ´ÙÀ½Àº ÀÌ¹Ì ¾Ë·ÁÁ® ÀÖ´Â ´ëÇ¥ÀûÀÎ ¹®Á¦Á¡µéÀÔ´Ï´Ù.:
Glibc¸¦ ¼³Ä¡ÇÒ ¶§, /tools/etc/ld.so.confÀÌ ¾ø´Ù°í Çϼҿ¬ ÇÒ°ÍÀÔ´Ï´Ù. À̰ÍÀº ¾µµ¥¾ø´Â ¸Þ¼¼ÁöÀÔ´Ï´Ù. ¼º°¡½Å ÀÛÀº warningÀÌ ¹ß»ýÇÏÁö ¾Êµµ·Ï ¾Æ·¡¿Í °°ÀÌ ÇսôÙ:
mkdir /tools/etc touch /tools/etc/ld.so.conf ÀÌÁ¦ ÆÐŰÁö ¼³Ä¡:
make install ´Ù¸¥ ³ª¶óµé°ú ¹®ÈµéÀº ±×µéÀÌ ´ëÈÇϱâÀ§ÇÑ ¿©·¯°¡Áö dz½ÀÀ» °¡Áý´Ï´Ù. ³¯Â¥¿Í ½Ã°£ÀÇ Ç¥Çö Çü½Ä ó·³, ¸Å¿ì °£´ÜÇÑ °Íµé·ÎºÎÅÍ ÀÌ Ç³½ÀµéÀÇ ¹üÀ§´Â ¸»ÇÏ´Â ¾ð¾îó·³ ¸Å¿ì º¹ÀâÇÑ °Íµé±îÁö ÀÖ½À´Ï´Ù. GNUÇÁ·Î±×·¥ÀÇ "internationalization"´Â localesÀÇ Àǹ̷μ ÀÛ¾÷ÇÕ´Ï´Ù.
¾Æ·¡¿Í °°ÀÌ ÇÏ¸é ¸ðµç ·ÎÄÉÀϵéÀÌ ¼³Ä¡°¡ µË´Ï´Ù.(´ë½Å ½Ã°£ÀÌ ¿À·¡ °É¸³´Ï´Ù.)
make localedata/install-locales ´ç½ÅÀÌ ÇÊ¿ä·Î ÇÏ´Â ·ÎÄÉÀϵ鸸À» ¼³Ä¡ÇÏ·Á¸é ¾Æ·¡¿Í °°ÀÌ Çϼ¼¿ä. À̰ÍÀº localedef¸í ·ÉÀ» »ç¿ëÇÏ¸é µË´Ï´Ù. À̰Ϳ¡ ´ëÇÑ Á¤º¸´Â Glibc¼Ò½º¿¡ INSTALLÆÄ ÀÏ¿¡¼ ãÀ»¼ö ÀÖ´Ù. ÇÏÁö¸¸, GCC·ÎºÎÅÍ ±×³É Áö³ªÄ¡´Â libstdc++Å×½ºÆ®µéÀº ¹Ì·¡ ÆÐŰÁöµéÀÇ Å×½ºÆ®µéÀ» À§ÇÑ Æ¯º°ÇÑ ¸¹Àº localeµéÀÌ ÀÖ´Ù. À§¿¡ install-locales¸¦ Á¦¿ÜÇϰí, ¼º°øÇϱâÀ§ÇÑ ÃÖ¼ÒÇÑÀÇ ÇÊ¿äÇÑ localeµéÀ» ¼³Ä¡ÇÒ°ÍÀÌ´Ù, ¾Æ·¡ ³»¿ëÀ» µû¶óÇ϶ó:
mkdir -p /tools/lib/locale localedef -i de_DE -f ISO-8859-1 de_DE localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro localedef -i en_HK -f ISO-8859-1 en_HK localedef -i en_PH -f ISO-8859-1 en_PH localedef -i en_US -f ISO-8859-1 en_US localedef -i es_MX -f ISO-8859-1 es_MX localedef -i fr_FR -f ISO-8859-1 fr_FR localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro localedef -i it_IT -f ISO-8859-1 it_IT localedef -i ja_JP -f EUC-JP ja_JP ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº the Section called Contents of Glibc in Chapter 6¿¡¼ ãÀ» ¼ö ÀÖ½À´Ï´Ù.
[edit]
3.12 "Locking in" Glibc ¶Áö±Ý±îÁö Àӽà C ¶óÀ̺귯¸®µéÀ» ¼³Ä¡Çß°í, ÀÌ ÀåÀÇ ³ª¸ÓÁö ºÎºÐ¿¡¼ ¼³Ä¡ÇÒ ¸ðµç µµ±¸µéÀº ÀÌ C ¶óÀ̺귯¸®¿Í »ó°ü¾øÀÌ ÄÄÆÄÀÏÇÒ °ÍÀÔ´Ï´Ù. ±×·¯±âÀ§Çؼ, ¿ì¸®´Â ¸µÄ¿¿Í ÄÄÆÄÀÏ·¯ ¼³Á¤ÆÄÀÏÀ» º¯°æ½ÃÄÑ¾ß ÇÕ´Ï´Ù.
¿ì¼± binutils-build µð·ºÅ丮 ¾È¿¡¼ ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ¼öÇàÇØ¼ ¶óÀ̺귯¸® µ¶¸³ÀûÀÎ ¸µÄ¿¸¦ ¼³Ä¡Çϼ¼¿ä.
make -C ld install ¸µÄ¿´Â binutils ¼³Ä¡ÀÇ first pass°¡ ³¡³¯¶§ ¿ø»óº¹±Í µË´Ï´Ù. ¿©±â¼ ¿äÁ¡Àº ¾ÕÀ¸·Î ¾î¶²°Íµµ /tools/lib¿¡ ÀÖ´Â ¶óÀ̺귯¸®¿Í ¸µÅ©°¡ µÇÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù
¾Ë¸²: ù ´Ü°è(first pass)¿¡¼ Binutils ¼Ò½º¿Í build µð·ºÅ丮¸¦ À¯ÁöÇϱâÀ§ÇÑ »ç¼ÒÇÑ °æ°íµéÀ» ³õÃÆ°Å³ª ¶Ç´Â ¿ì¿¬È÷ ±×°ÍµéÀÌ »èÁ¦µÇ¾ú´Ù°Å³ª ÀÐÀ» ¼ö ¾ø´Ù°í ÇØµµ °áÄÚ °ÆÁ¤ÇÏÁö ¸¶¼¼¿ä ±×°ÍÀº »ç¶óÁø °ÍÀÌ ¾Æ´Õ´Ï´Ù. À̰ÍÀº ÀÌ»óÀûÀÎ(ÁÁÀº Çö»ó) °ÍÀº ¾Æ´ÏÁö¸¸, ±×·¸´Ù°í Áß¿äÇÑ ¹®Á¦µµ ¾Æ´Õ´Ï´Ù. Binutils ¼³Ä¡ÀÇ ´ÙÀ½ ´Ü°è(second pass)¿¡¼ ¶È°°Àº Çö»óÀÌ ÀϾ ¼ö ÀÖ½À´Ï´Ù.
ÀÚ, ÀÌÁ¦ ¸µÄ¿(adjusted linker)°¡ ¼³Ä¡µÇ¾úÀ¸´Ï±î, buildµÈ binutils°ú ¼Ò½º µð·ºÅ丮¸¦ Áö¿ì¼¼¿ä.
´ÙÀ½´Ü°è´Â GCC°¡ ´ÙÀ̳ª¹Í ¸µÄ¿¸¦ °¡¸®Å°°Ô Çϱâ À§ÇØ GCC ¼³Á¤ÆÄÀÏÀ» °íÄ¡´Â °ÍÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ °£´ÜÇÑ sed ¸í·ÉÀ» ½ÇÇàÇϸé GCC ¼³Á¤ÆÄÀÏÀÌ °íÃÄÁú °ÍÀÔ´Ï´Ù.
SPECFILE=/tools/lib/gcc-lib/*/*/specs &
sed -e 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \
$SPECFILE > tempspecfile &
mv -f tempspecfile $SPECFILE &
unset SPECFILE
¿ì¸®´Â ¸ðµç°ÍÀ» ÀÏÀÏÀÌ ¼ÕÀ¸·Î ÀÔ·ÂÇÏ´Â °Í(try-and-type) º¸´Ù´Â ºÙ¿© ³Ö±â(cut-and-paste) ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.
Important: ´ÙÀ̳ª¹Í ¸µÄ¿ÀÇ À̸§ÀÌ ld-linux.so.2¿Í´Â ´Ù¸¥ Ç÷§Æû¿¡¼ ÀÛ¾÷¾÷ÁßÀ̶ó¸é, ld-linux.so.2¶ó´Â À̸§ ´ë½Å¿¡ Ç÷§ÆûÀÇ ´ÙÀ̳ª¹Í ¸µÄ¿ À̸§À¸·Î ¹Ù²Ù¾î Áà¾ß ÇÑ´Ù.´õ ¸¹Àº Á¤º¸°¡ ÇÊ¿äÇÏ´Ù¸é Toolchain technical notes¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.
¸¶Áö¸·À¸·Î, È£½ºÆ® ½Ã½ºÅÛÀÇ GCC's private include dir¿¡ °¢Á¾ include file µéÀÌ µé¾î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. GCC build °úÁ¤ Áß¿¡ GCC "fixinclude" process ºÎºÐÀÌ Àִµ¥, ±× ºÎºÐÀÌ ½ÇÇàµÉ¶§ À§¿Í °°Àº ÀÏÀÌ ÀϾ ¼ö ÀÖ½À´Ï´Ù. ¾ÕÀ¸·Î ¿ì¸®´Â ÀÌ Àå¿¡¼ ´õ ÀÚ¼¼È÷ ¼³¸íÇÒ °ÍÀÔ´Ï´Ù. ÀÌÁ¦, ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇÔÀ¸·Î½á GCC's private include dir¿¡ include file µéÀÌ µé¾î°¡´Â °æ¿ì¸¦ ¹æÁöÇÒ ¼ö ÀÖ½À´Ï´Ù.
rm -f /tools/lib/gcc-lib/*/*/include/{pthread.h,bits/sigthread.h}
°æ°í
»õ·Î¿î toolchainÀÇ ±âº»±â´É(compiling and linking)À» ¼³Ä¡Çϰí Áö¿ì´Â °ÍÀÌ Áß¿äÇÑ ÀÏÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ °£´ÜÇÑ ÇÁ·Î±×·¥À» Â¥¼ Á¦´ë·Î ¼³Ä¡µÇ¾ú´ÂÁö¸¦ È®ÀÎÇØ º¾½Ã´Ù.
echo 'main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep ': /tools'
Áö±Ý±îÁö ¸ðµç ÀÛ¾÷À» Àß µû¶ó Çß´Ù¸é ¿¡·¯´Â ¾øÀ» °ÍÀ̰í, ´ÙÀ½°ú ¸Þ¼¼Áö¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
[ Requesting program interpreter: /tools/lib/ld-linux.so.2 ]
(´ÙÀ̳ª¹Í ¸µÄ¿ À̸§¿¡ Ç÷§ÆûÀÇ Æ¯Â¡ÀÌ ³ªÅ¸³ª ÀÖ½À´Ï´Ù.) ´ÙÀ̳ª¹Í ¸µÄ¿¸¦ ¼³Ä¡ÇÒ ¶§ ¼³Ä¡°æ·Î·Î½á /tools/lib ¸¦ ¼³Á¤ÇØ Áà¾ß ÇÕ´Ï´Ù.(prefix = /tools/lib) À§¿Í °°Àº ¸Þ¼¼Áö°¡ Ãâ·ÂµÇÁö ¾Ê°Å³ª, ¾Æ¹«·± ¸Þ¼¼Áö°¡ ¾ø´Ù¸é ¾î¶² °ÍÀÌ ½É°¢ÇÏ°Ô À߸øµÈ °ÍÀÔ´Ï´Ù. ¼³Ä¡°úÁ¤Áß¿¡ ¾îµð¿¡¼ ¹®Á¦°¡ ¹ß»ýÇß´ÂÁö ¾Ë¾Æº¸°í Á¶»çÇϴ°ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¼³Ä¡°úÁ¤ÀÌ ¿ÏÀüÈ÷ Á¾·áµÇ±â Àü±îÁö´Â À§¿Í °°Àº »óȲÀÌ ¹ß»ýÇØµµ ÀÏÀÏÀÌ ¹ÝÀÀÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ù°, cc ´ë½Å¿¡ gcc¸¦ »ç¿ëÇØ¼ sanity check¸¦ ¹Ýº¹Çؼ ÇÑ´Ù. À§¿Í °°Àº ÀÛ¾÷Àº /tools/bin/ccÀÇ symlink°¡ À߸ø µÇ¾îÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. GCC-3.3.2 - Pass 1 ÀνºÅç ¿¡ ´Ù½Ã °¡¼(ÂüÁ¶Çؼ) symlink¸¦ ¼öÁ¤ÇØ ÁÖ¼¼¿ä. µÎ¹øÂ°, $PATH ȯ°æº¯¼ö°¡ Á¦´ë·Î ÁöÁ¤µÇ¾ú´ÂÁö È®ÀÎÇÏÀÚ. $PATH ȯ°æº¯¼ö°¡ Á¦´ë·Î ÁöÁ¤µÇ¾ú´ÂÁö È®ÀÎÇϱâ À§Çؼ echo $PATH ¸¦ ÀÔ·ÂÇØº¸ÀÚ. echo $PATH¸¦ ÀÔ·ÂÇßÀ»¶§ ³ª¿À´Â ¸®½ºÆ®¿¡ /tools/bin°¡ ÀÖÀ¸¸é Á¦´ë·Î ÁöÁ¤µÇ¾ú´Ù°í º¼ ¼ö ÀÖ´Ù. ¸¸¾à $PATHȯ°æº¯¼ö°¡ À߸øµÇ¾ú´Ù¸é lfs»ç¿ëÀÚ·Î ·Î±×ÀÎÀ» ÇÏÁö ¾Ê¾Ò°Å³ª ȯ°æ¼³Á¤Çϱâ Àå¿¡¼ ¹«¾ð°¡ ½Ç¼ö¸¦ Çß´Ù´Â ÀǹÌÀÌ´Ù. ¼¼¹øÂ°, ¼³Á¤ÆÄÀÏÀ» º¯°æÇÏ°í ³ª¼ ¹«¾ù°¡ ¹®Á¦°¡ »ý±æ ¶§µµ ÀÖ´Ù. ±×·±°æ¿ì¿¡´Â Áö³¹ø¿¡ ÃßõÇѰÍó·³ cut-and-paste(¿øº»¿¡¼ °®´ÙºÙÀ̱â)¸¦ ÀÌ¿ëÇØ¼ ¼³Á¤ÆÄÀÏÀ» ´Ù½Ã ¸¸µé¾î¶ó.
¸ðµç ÀÛ¾÷ÀÌ ¸¸Á·½º·´°Ô ³¡³µ´Ù¸é, test filesÀ» Áö¿ì¼¼¿ä.
rm dummy.c a.out ÀÚ, self-contained toolchainÀÇ ¼³Ä¡°¡ ¿Ïº®ÇÏ°Ô ³¡³µ°í, À̰͵éÀº ³ª¸ÓÁö Àӽõµ±¸µéÀ» build Çϴµ¥ »ç¿ëµÉ °ÍÀÌ´Ù.
[edit]
3.13 Expect-5.40.0 ¼³Ä¡ ¶ExpectÆÐŰÁö´Â ´Ù¸¥ ´ëÈ½Ä ÇÁ·Î±×·¥¿¡¼ ´ëȸ¦ ½ºÅ©¸³Æ®ÇϱâÀ§ÇÑ ÇÁ·Î±×·¥µéÀ» Æ÷ÇÔÇÕ´Ï´Ù.
Approximate build time: 0.1 SBU
Required disk space: 3.9 MB
Expect (5.40.0) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
http://expect.nist.gov/src/
the Expect Spawn Patch¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®:
http://www.linuxfromscratch.org/patches/lfs/cvs/expect-5.40.0-spawn.patch
Expect¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed, Tcl.
[edit]
3.13.1 Expect ¼³Ä¡ ¶patch Àû¿ëÇϱâ:
patch -Np1 -i ../expect-5.40.0-spawn.patch
Expect ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools --with-tcl=/tools/lib --with-x=no configure optionsÀÇ ÀǹÌ:
package ÄÄÆÄÀÏÇϱâ:
make ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, Tcl test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä. ±×·¯³ª È£½ºÆ®ÀÇ »óÅÂ(¼³Á¤)¿¡ µû¶ó¼(that are not fully understood)Tcl test suits°¡ ½ÇÆÐÇÏ´Â °æ¿ìµµ ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ¿©±â¼ test suits½ÇÆÐÇØµµ ³î¶óÁø ¸¶¼¼¿ä( ½ÅÁßÇÏ°Ô °í·ÁÇÒ ÇÊ¿ä´Â ¾ø´Ù.)
make test ¼³Ä¡Çϱâ:
make SCRIPTS="" installmake parameterÀÇ ÀǹÌ:
[edit]
3.14 DejaGnu-1.4.4 ¼³Ä¡ ¶DejaGnuÆÐŰÁö´Â ´Ù¸¥ ÇÁ·Î±×·¥µéÀ» °ËÁõÇϱâÀ§ÇÑ framework¸¦ Æ÷ÇÔÇÕ´Ï´Ù.
Approximate build time: 0.1 SBU
Required disk space: 8.6 MB
DejaGnu (1.4.4) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/dejagnu/
DejaGnu(1.4.4)¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed.
[edit]
3.15 GCC-3.3.2 - Pass 2 ¼³Ä¡ ¶Approximate build time: 11.0 SBU
Required disk space: 274 MB
GCC (3.3.2) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/gcc/
GCC No-Fixincludes ÆÐÄ¡ »çÀÌÆ®:
http://www.linuxfromscratch.org/patches/lfs/cvs/gcc-3.3.2-no_fixincludes-1.patch
GCC Specs ÆÐÄ¡ »çÀÌÆ®:
http://www.linuxfromscratch.org/patches/lfs/cvs/gcc-3.3.2-specs-1.patch
GCC¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
[edit]
3.15.1 GCCÀÇ Àç ÀνºÅç ¶GCC ¿Í Binutils À» Å×½ºÆ® Çϱâ À§ÇÑ tool Àº ÀÌ¹Ì ÀνºÅç µÇ¾î ÀÖ½À´Ï´Ù. (Tcl, Expect ±×¸®°í DejaGnu). ¿ì¸®´Â °è¼ÓÇØ¼ GCC ¿Í Binutils ¸¦ rebuild ÇÒ ¼ö ÀÖ°í, »õ·Î¿î Glibc ¿¡ ´ëºñÇÏ¿© ±×µéÀ» ¸µÅ©ÇÒ ¼ö ÀÖ°í, ±×µéÀ» ÀûÀýÈ÷ Å×½ºÆ® ÇÒ ¼ö ÀÖ½À´Ï´Ù (¸¸¾à ÀÌ Àå¿¡¼ À̵éÀÇ Å×½ºÆ®¸¦ ½ÇÇàÇÑ´Ù¸é). ±×·¯³ª ÇѰ¡Áö ÁÖÀÇÇØ¾ß ÇÒ Á¡Àº À̵éÀÇ Å×½ºÆ®´Â ¾Æ¸¶µµ ´ç½ÅÀÇ È£½ºÆ®ÀÇ ¹èÆ÷ÆÇÀÌ Á¦°øÇÏ´Â °¡»ó Å͹̳Î(PTYs)ÀÇ ½ÇÇà¿¡ ÀÇÁ¸ÀûÀÏ °ÍÀ̶ó´Â Á¡ÀÌ´Ù. ¿äÁòÀº, PTYs ´Âdevpts ÆÄÀÏ ½Ã½ºÅÛÀ» »ç¿ëÇÏ´Â °ÍÀÌ °¡Àå ÀϹÝÀûÀÎ °æ¿ìÀÔ´Ï´Ù. ¸¸¾à ´ç½ÅÀÇ È£½ºÆ® ½Ã½ºÅÛÀÌ °£´ÜÇÑ Å×½ºÆ®¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â »óÅ·Π¼Â¾÷µÇ¾î ÀÖ´Ù¸é ´ç½ÅÀº ½Å¼ÓÈ÷ È®ÀÎÇÒ¼ö ÀÖÀ» °ÍÀÌ´Ù:
expect -c "spawn ls" ¸¸¾à ´ç½ÅÀÌ ¾Æ·¡ ¸Þ¼¼Áö¸¦ ¹Þ¾Ò´Ù¸é:
The system has no more ptys. Ask your system administrator to create more.´ç½ÅÀÇ host distribution Àº ÀûÀýÇÑ PTY ÀÇ µ¿ÀÛÀ» À§ÇÑ ¼Â¾÷ÀÌ µÇ¾î ÀÖÁö ¾Ê´Ù´Â ¶æÀÔ´Ï´Ù. ÀÌ °æ¿ì¿¡ ´ç½ÅÀÌ ÇØ°áÃ¥À» ãÀ» ¶§ ±îÁö GCC ¿Í Binutils ¸¦ Å×½ºÆ® Çϱâ À§ÇØ ÇÒ ¼ö ÀÖ´Â °ÍÀº ¾ø½À´Ï´Ù. ´ç½ÅÀº PTYs µ¿ÀÛ¿¡ °üÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Â LFS Wiki »çÀÌÆ® http://wiki.linuxfromscratch.org/¿¡ ¼ Âü°íÇÒ ¼ö ÀÖ´Ù. À̹ø¿¡ ¿ì¸®´Â C ¿Í C++ ÄÄÆÄÀÏ·¯µéÀ» build ÇÒ °ÍÀ̸ç, µû¶ó¼ ´ç½ÅÀº ¼¼°¡Áö(-core, -g++, °ú -testsuite)°¡ Æ÷ÇÔµÈ GCC tarball À» °°Àº ÀÛ¾÷ µð·ºÅ丮¿¡ unpack ÇØ¾ß ÇÒ °ÍÀÌ´Ù. ±×µéÀº gcc-3.3.2/ ÀÇ subdirectory ¾È¿¡ µé¾î°¡ ÀÖÀ» °ÍÀÌ´Ù.(gcc-3.3.2.tar.gz¸¦ Ç® °æ¿ì ±× ¾È¿¡ ÇÊ¿äÇÑ ¸ðµç ³»¿ëÀÌ ´Ù µé¾î ÀÖ½À´Ï´Ù.)
ÆÐÄ¡ Çϱâ:
patch -Np1 -i ../gcc-3.3.3-no_fixincludes-1.patch patch -Np1 -i ../gcc-3.3.3-specs-1.patch ù¹øÂ° ÆÐÄ¡´Â GCC "fixincludes" ½ºÅ©¸³Æ®¸¦ ¹«·ÂÇÏ°Ô ÇÕ´Ï´Ù. ¿ì¸®´Â À̰ÍÀ» Àü¿¡ °£´ÜÈ÷ ¾ð±Þ Çß½À´Ï´Ù, ±×·¯³ª fixinclude process ÀÇ ´õ »ó¼¼ÇÑ ¼³¸íÀº ¿©±â¿¡ Àß ³ª¿Í ÀÖ½À´Ï´Ù. ¾Æ·¡ÀÇ ÀϹÝÀûÀÎ »óȲ¿¡¼, GCC fixincludes ½ºÅ©¸³Æ®´Â °íÁ¤µÉ Çʿ䰡 ÀÖ´Â Çì´õ ÆÄÀϵéÀ» ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡¼ °Ë»çÇÑ´Ù. ±×°ÍÀº ´ç½ÅÀÇ host ½Ã½ºÅÛ¿¡¼ °íÁ¤µÈ Çʿ䰡 ÀÖ´Â ¾à°£ÀÇ Glibc Çì´õ ÆÄÀÏÀ» ãÀ» °ÍÀ̰í, ±×µéÀ» °íÁ¤½Ã۰í, private ¸¦ Æ÷ÇÔÇÑ GCC µð·ºÅ丮 ¾È¿¡ ±×µéÀ» µÑ °ÍÀÌ´Ù. ±×¸®°í, 6Àå ÈĹݺο¡¼, ¿ì¸®°¡ »õ·Î¿î Glibc ¸¦ ÀνºÅçÇÑ ÈÄ¿¡, ÀÌ private include directory ´Â system include directory Àü¿¡ ã¾ÆÁú °ÍÀ̸ç, host ½Ã½ºÅÛÀ¸·ÎºÎÅÍ °íÁ¤µÈ Çì´õµéÀ» ã¾Æ GCC¿¡¼ °áresulting in GCC finding the fixed headers from the host system, which would most likely not match the Glibc version actually used for the LFS system.
¸¶Áö¸· ÆÐÄ¡´Â µ¿Àû ¸µÄ¿ÀÇ GCC ÀÇ ±âº» À§Ä¡¸¦ ¹Ù²Û´Ù (ÀϹÝÀûÀ¸·Î ld-linux.so.2). ±×°ÍÀº ¶ÇÇÑ GCC ÀÇ include search path ·ÎºÎÅÍ /usr/include ¸¦ Á¦°ÅÇÑ´Ù. Patching now rather than adjusting the specs file after installation ensures that our new dynamic linker gets used during the actual build of GCC. That is, all the final (and temporary) binaries created during the build will link against the new Glibc.
Áß¿äÁ¡: The above patches are critical in ensuring a successful overall build. ±×µéÀ» Àû¿ë½ÃŰ´Â °ÍÀ» ÀØÁö¸¶¶ó.
¼Ò½º¸¦ Ç® µð·ºÅ丮¸¦ ¸¸µå¼¼¿ä.
mkdir -p $LFS/build/gcc-build cd $LFS/build/gcc-build tar zxvf /mnt/source/gcc-3.3.2.tar.gz -C ./GCC ¸¦ build ÇϱâÀü¿¡, ±âº»ÀûÀÎ optimization flag ¸¦ override ÇÏ´Â ¾î¶°ÇÑ È¯°æº¯¼öµµ unset ÇÏ´Â °ÍÀ» ±â¾ïÇ϶ó. ÄÄÆÄÀÏ ÁغñÇϱâ :
../gcc-3.3.2/configure --prefix=/tools \
--with-local-prefix=/tools \
--enable-clocale=gnu --enable-shared \
--enable-threads=posix --enable-__cxa_atexit \
--enable-languages=c,c++
»õ·Î¿î ¼³Á¤ ¿É¼ÇÀÇ ÀǹÌ:
make ÀÌÁ¦ bootstrap targetÀ» »ç¿ëÇÒ Çʿ䰡 ¾ø´Ù , as the compiler we're using to compile this GCC was built from the exact same version of the GCC sources we used earlier.
ÀÌÁ¦ ÆíÁýÀÌ ¿ÏÀüÈ÷ ³¡³µ½À´Ï´Ù´Ù. Àü¿¡ ¸»Çß´ø °Í ó·³, ¿ì¸®´Â ÀÌ Àå¿¡¼ Àӽà toolÀ» ÀÌ¿ëÇÏ¿© Å×½ºÆ®ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ¸¸¾à ´ç½ÅÀÌ ¿©ÀüÈ÷ GCC Å×½ºÆ® Çϱ⸦ ¿øÇÑ´Ù¸é, ´ÙÀ½ ¸í·É°ú °°ÀÌ Ç϶ó. (°ÅÀÇ ÇÑ ½Ã°£ °¡±îÀÌ ¼Òºñ µÇ¹Ç·Î ¾È ÇÏ´Â°Ô ³ªÀ» µí ÇÕ´Ï´Ù.)
make -k check -k Ç÷¡±×´Â ù¹øÂ° ½ÇÆÐ¿¡¼ ¿Ï·áµÇ°Å³ª ¸ØÃßÁö ¾Ê´õ¶óµµ Å×½ºÆ®µÇµµ·Ï ÇÑ´Ù. GCC ŽºÆ® suite´Â ¸Å¿ì Æ÷°ýÀûÀ̰í ÀϹÝÀûÀ¸·Î ½Ç¼ö°¡ °ÅÀÇ ¾øµµ·Ï ÇÑ´Ù. ŽºÆ® suite °á°ú¿¡ ´ëÇÑ ¿ä¾àÀ» ¾ò±âÀ§ÇØ, ´ÙÀ½°ú °°ÀÌ ÇÏ¿©¶ó:
../gcc-3.3.2/contrib/test_summary | more ´ç½ÅÀº gcc-testresults mailing list¿¡¼ À¯»çÇÑ ¼³Á¤À» ´ç½ÅÀÇ °á°ú¿Í ºñ±³ÇÒ ¼ö ÀÖ´Ù. For an example of howGCC-3.3.2°¡ ¾î¶»°Ô µÇ¾î ÀÖ´ÂÁöÀÇ ¿¹¸¦ i686-pc-linux-gnu¿¡¼ º¼ ¼ö ÀÖ´Ù, http://gcc.gnu.org/ml/gcc-testresults/2004-01/msg00826.html.
°á°ú¿¡ ÁÖÀǸ¦ ±â¿ï¿©¶ó:
The 24 unexpected passes for libstdc++ are due to the use of --enable-clocale=gnu, which is the correct choice on Glibc-based systems of versions 2.2.5 and above. The underlying locale support in the GNU C library is superior to that of the otherwise selected "generic" model (which may be applicable if for instance you were using Newlibc, Sun-libc or whatever libc). The libstdc++ test suite is apparently expecting the "generic" model, hence those tests are not always expected to pass.
Á¾Á¾ ¿¹»óµÇÁö ¾ÊÀº failure¸¦ ÇÇÇÒ ¼ö ¾ø´Ù. GCC °³¹ßÀÚµéÀº º¸Åë ±×°ÍÀ» ¾Ë°í ÀÖÁö¸¸, ¾ÆÁ÷ ±×µéÀ» °íÄ¥ ¹æµµ¸¦ ãÁö´Â ¸øÇß´Ù. ÇѸ¶µð·Î ¸»ÇØ, unless your results are vastly different from those at the above URL, ±×°ÍÀº °è¼ÓÇØ¼ ¾ÈÀüÇÒ °Í ÀÌ´Ù..
±×¸®°í ¸¶Áö¸·À¸·Î ÆÐŰÁö¸¦ ÀνºÅç ÇÑ´Ù:
make install Note: À̶§ ÀÌ Àå Àü¿¡ ¿ì¸®°¡ ½ÇÇàÇß´ø sanity check¸¦ ¹Ýº¹ÇÏ´Â °ÍÀÌ ÁÁ´Ù. Refer back to "Locking in" Glibc and repeat the check. ¸¸¾à °á°ú°¡ À߸øµÈ °ÍÀ̶ó¸é, then most likely you forgot to apply the above mentioned GCC Specs patch.
The details on this package are found in the Section called Contents of GCC in Chapter 6.
[edit]
3.16 Binutils-2.14 - Pass 2 ¼³Ä¡ ¶Approximate build time: 1.5 SBU
Required disk space: 108 MB
Binutils (2.14) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/binutils/
Binutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
[edit]
3.16.1 Binutils À缳ġÇϱ⠶build µð·ºÅ丮 ¸¸µé±â:
mkdir -p $LFS/build/binutils-build cd $LFS/build/binutils-build tar zxvf /mnt/source/binutils-2.14.tar.gz -C ./Binutils ÄÄÆÄÀÏ ÁغñÇϱâ:
../binutils-2.14/configure --prefix=/tools \
--enable-shared --with-lib-path=/tools/lib
configure optionÀÇ ÀǹÌ:
ÆÑŰÁö ÄÄÆÄÀÏ Çϱâ:
make Âü°í·Î ¸»ÇÏÀÚ¸é, configure¸¦ ½ÇÇàÇϰųª ÄÄÆÄÀÏÀ» ÇÒ ¶§¿¡´Â ¼Ò½º¸¦ Ç®¾î ³õÀº µð·ºÅ丮¿¡¼ ÇÏ´Â °Íº¸´Ù ¼Ò½º¸¦ Ç®¾î ³õÀº µð·ºÅ丮º¸´Ù ÇÑ ´Ü°è »óÀ§ µð·ºÅ丮¿¡¼ ÇÏ´Â °ÍÀÌ ¿À·ù¸¦ ÁÙÀϼö ÀÖ´Â ÇÑ ¹æ¹ýÀÔ´Ï´Ù. Àú °°Àº °æ¿ì¿£ binutils¸¦ /mnt/lfs/build/binutils-2.14/¿¡ Ç®¾ú°í ±× µð·ºÅ丮¿¡¼ ÄÄÆÄÀÏÀ» ½ÇÇàÇßÀ» ¶§´Â ¿¡·¯°¡ ¹ß»ýÇßÁö¸¸, »óÀ§ µð·ºÅ丮ÀÎ /mnt/lfs/build¿¡¼ binutils-2.14/configure ÀÌ·±½ÄÀ¸·Î ÇßÀ» °æ¿ì¿¡´Â º° ¹«¸® ¾øÀÌ ¼º°øÇß½À´Ï´Ù.(Glibc¶§µµ ±×·¨½À´Ï´Ù.)
ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, Binutils test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä.
make check ¿¹»óÄ¡ ¸øÇÑ ¿À·ù°¡ ¾ø¾ú´Ù¸é, ÀßµÈ °ÍÀÔ´Ï´Ù. ºÒÇàÇϰԵµ, BinutilsÀÇ °æ¿ì´Â GCCÆÑŰÁö¸¦ ¼³Ä¡ÇÒ ¶§Ã³·³ °á°ú¸¦ Çѹø¿¡ º¸¿©ÁÖ´Â ½¬¿î ¹æ¹ýÀÌ ¾ø½À´Ï´Ù. ±×·¯³ª, ¿©±â¼ ¿À·ù°¡ ¹ß»ýÇØµµ ¿À·ù´Â ½±°Ô ã¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù. ¿À·ù¸Þ½ÃÁö´Â ¾Æ·¡Ã³·³ ¿¡·¯³»¿ëÀ» Æ÷ÇÔÇØ¼ º¸¿©ÁÝ´Ï´Ù.:
make[1]: *** [check-binutils] Error 2ÀÚ, ±×¸®°í ÆÑŰÁö¸¦ ¼³Ä¡ÇսôÙ: make install ´ÙÀ½Àå¿¡¼ ToolchainÀÇ ÀçÀû¿ëÀ» À§ÇØ Binutils¸¦ ÁغñÇÕ´Ï´Ù.
make -C ld clean make -C ld LIB_PATH=/usr/lib:/lib ´ÙÀ½ ÆÑŰÁö¿¡¼ Binutils source¸¦ »ç¿ëÇϹǷΠBinutilsÀÇ ¼Ò½ºµð·ºÅ丮¸¦ ¾ÆÁ÷ Áö¿ìÁö ¸¶¼¼¿ä.
ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Binutils in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.17 Gawk-3.1.3 ¼³Ä¡ ¶Approximate build time: 0.2 SBU
Required disk space: 17 MB
Gawk-3.1.3 °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/pub/gnu/gawk/
Gawk-3.1.3°ú ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.
[edit]
3.17.1 Gawk ¼³Ä¡ ¶Gawk ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools package ÄÄÆÄÀÏÇϱâ:
make ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, Gawk test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± 6Àå GawkÀÇ ³»¿ë ¸¦ ÂüÁ¶Çϼ¼¿ä. .
[edit]
3.18 Coreutils-5.0 ¼³Ä¡ ¶Approximate build time: 0.9 SBU
Required disk space: 69 MB
Coreutils-5.0 °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/coreutils/
Coreutils ÆÐÄ¡¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®:
http://lfs.osuosl.org/patches/lfs/5.0/
Âü°í. Coreutils-5.0 ÆÑŰÁö¿¡ °üÇÑ ¸¹Àº ¸µÅ©°¡ ²÷±ä »óÅÂÀÔ´Ï´Ù. 5.2¸¦ ¹Þ¾Æ¼ ÇÏ´Â °Íµµ ÁÁÀº ¹æ¹ýÀÌ µÉ °ÍÀÔ´Ï´Ù.
Coreutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.
[edit]
3.18.1 Coreutils ¼³Ä¡ ¶Coreutils has an issue when compiled against Glibc-2.3.3. ÆÐÄ¡¸¦ ¾ÈÇßÀ»¶§, Coreutils utilities(head, tail, sort etc)Áß ÀϺΠÇÁ·Î±×·¥Àº Áö³ 30³âµ¿¾È »ç¿ëµÇ¾î¿Ô´ø ÀüÅëÀûÀÎ ¹®¹ý°ú Ãæµ¹ÀÌ »ý±æ°ÍÀÔ´Ï´Ù. ¿À·¡µÈ syntaxµéÀº Coreutils°¡ ¿©·¯Àå¼Ò¿¡¼ updateµÉ¶§ ¾ø¾îÁöÁö ¾Ê°í, »õ·Î¿î ¹öÀü¿¡¼µµ Áö¿øÀÌ µÇ¾î¿Ô½À´Ï´Ù. ¼¼ºÎ»çÇ×µéÀº ÆÐÄ¡¸í·ÉÀ» º¸¸é ¾Ë ¼ö ÀÖ½À´Ï´Ù. Use of this patch is by no means compulsory but opting not to use it means you'll have deal with the consequences yourself, i.e. patch the many software packages that use the old syntax.
ÆÐÄ¡ Àû¿ëÇϱâ:
mkdir -p $LFS/build/coreutils_build cd $LFS/build/coreutils_build tar zxvf /mnt/source/coreutils-5.2.1.tar.gz -C ./ cd coreutils-5.2.1 patch -Np1 -i /mnt/source/coreutils-5.2.1-hostname-1.patch patch -Np2 -i /mnt/source/coreutils-5.2.1-uname-1.patch (Àü 5.2.1¹öÀüÀ» ±âÁØÀ¸·Î ÁغñÇß½À´Ï´Ù.) Coreutils ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools package ÄÄÆÄÀÏÇϱâ:
make ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤ Coreutils test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make RUN_EXPENSIVE_TESTS=yes check make parameterÀÇ ÀǹÌ:
make installÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Coreutils in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä. [edit]
3.19 Bzip2-1.0.2 ¼³Ä¡ ¶Approximate build time: 0.1 SBU
Required disk space: 2.5 MB
Bzip2 (1.0.2) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://sources.redhat.com/pub/bzip2/
GCC¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé : Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Make.
[edit]
3.19.1 Bzip2 ¼³Ä¡ ¶Bzip2ÆÑŰÁö´Â configure script°¡ ¾ø½À´Ï´Ù. optionÀ» ÇÑÁÙ·Î ½á¼ ÄÄÆÄÀÏ ÇÏ°í ¼³Ä¡ÇÕ´Ï´Ù.
mkdir -p $LFS/build/bzip_build cd $LFS/build/bzip_build tar zxvf /mnt/source/bzip2-1.0.2.tar.gz -C ./ cd bzip2-1.0.2 make PREFIX=/tools installÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Bzip2 in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä. [edit]
3.20 Gzip-1.3.5 ¼³Ä¡ ¶Approximate build time: 0.1 SBU
Required disk space: 2.6 MB
Gzip (1.3.5)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://alpha.gnu.org/gnu/gzip/
Gzip°ú ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed.
[edit]
3.20.1 Gzip ¼³Ä¡ ¶Gzip ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/gzip_build cd $LFS/build/gzip_build tar zxvf /mnt/source/gzip-1.3.5.tar.gz -C ./ cd gzip-1.3.5 ./configure --prefix=/toolspackage ÄÄÆÄÀÏÇϱâ: make ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Gzip in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.21 Diffutils-2.8.1 ¼³Ä¡ ¶Approximate build time: 0.1 SBU
Required disk space: 7.5 MB
Diffutils (2.8.1)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/diffutils/
Diffutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.
[edit]
3.21.1 Diffutils ¼³Ä¡ ¶Diffutils ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/diffutils_build cd $LFS/build/diffutils_build tar zxvf /mnt/source/diffutils-2.8.1.tar.gz -C ./ cd diffutils-2.8.1 ./configure --prefix=/toolspackage ÄÄÆÄÀÏÇϱâ: make ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Diffutils in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.22 Findutils-4.1.20 ¼³Ä¡ ¶Approximate build time: 0.2 SBU
Required disk space: 7.6 MB
Findutils (4.1.20) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://alpha.gnu.org/gnu/findutils/
Findutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.
[edit]
3.22.1 Findutils ¼³Ä¡ ¶Findutils ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/findutils_build cd $LFS/build/findutils_build tar zxvf /mnt/source/findutils-4.1.20.tar.gz -C ./ cd findutils-4.1.20 ./configure --prefix=/tools package ÄÄÆÄÀÏÇϱâ:
make ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ Á¤¸» Findutils test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Findutils in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.23 Make-3.80 ¼³Ä¡ ¶Approximate build time: 0.2 SBU
Required disk space: 8.8 MB
Make (3.80) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/make/
Make¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Sed.
[edit]
3.23.1 Make ¼³Ä¡ ¶Make ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/make_build cd $LFS/build/make_build tar zxvf /mnt/source/make-3.80.tar.gz -C ./ cd make-3.80 ./configure --prefix=/toolsÄÄÆÄÀÏ Çϱâ: make ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» make test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check ÀÌ ÆÑŰÁöÀÇ ¹®¼µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Make in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.24 Grep-2.5.1 ¼³Ä¡ ¶Approximate build time: 0.1 SBU
Required disk space: 5.8 MB
Grep (2.5.1) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/grep/
Grep¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Make, Sed, Texinfo.
[edit]
3.24.1 Grep ¼³Ä¡ ¶Grep ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/grep_build
cd $LFS/build/grep_build
tar zxvf /mnt/source/grep-2.5.tar.gz -C ./
cd grep-2.5
./configure --prefix=/tools \
--disable-perl-regexp --with-included-regex
configure optionÀÇ ÀǹÌ:
make ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» grep test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check ÀÌ ÆÑŰÁöÀÇ ¹®¼µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Grep in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.25 Sed-4.0.9 ¼³Ä¡ ¶Approximate build time: 0.2 SBU
Required disk space: 5.2 MB
Sed (4.0.9) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/sed/
Sed¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Texinfo.
[edit]
3.25.1 Sed ¼³Ä¡ ¶Sed ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/sed_build cd $LFS/build/sed_build tar zxvf /mnt/source/sed-4.0.9.tar.gz -C ./ cd sed-4.0.9 ./configure --prefix=/tools ÆÐŰÁö ÄÄÆÄÀÏÇϱâ:
make ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Sed test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check ÀÌ ÆÑŰÁöÀÇ ¹®¼µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Sed in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.26 Gettext-0.14.1 ¼³Ä¡ ¶Approximate build time: 7.2 SBU
Required disk space: 55 MB
Gettext (0.14.1) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/gettext/
Gettext¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Bison, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.
[edit]
3.26.1 Gettext ¼³Ä¡ ¶Gettext ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/gettext_build cd $LFS/build/gettext_build tar zxvf /mnt/source/gettext-0.14.1.tar.gz -C ./ cd gettext-0.14.1 ./configure --prefix=/toolsÄÄÆÄÀÏ Çϱâ: make ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Gettext test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä. ±×·¯³ª, HOST ½Ã½ºÅÛÀÇ »óÅ¿¡ µû¶ó Gettext test suite°¡ ½ÇÆÐÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Gettext °¡ HOST ½Ã½ºÅÛ¿¡¼ JAVA ÄÄÆÄÀÏ·¯¸¦ ãÀ» °æ¿ì°¡ ÇØ´çµË´Ï´Ù.(Note : an experimental patch to disable Jave is avillable from the patches project). Test¸¦ ÇÒ ¶§ ½Ã°£ÀÌ ¿À·¡ °É¸®´õ¶óµµ ³Ê¹« ³ª»Ú°Ô »ý°¢ÇÏÁö ¸»°í ÇÏ±æ ¹Ù¶ø´Ï´Ù:
make check ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Gettext in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.27 Ncurses-5.4 ¼³Ä¡ ¶Approximate build time: 0.7 SBU
Required disk space: 26 MB
Ncurses (5.4) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/ncurses/
Ncurses¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.
[edit]
3.27.1 Ncurses-5.4 ¼³Ä¡ ¶¾ÐÃà Ç®±â:
mkdir -p $LFS/build/ncurses_build cd $LFS/build/ncurses_build tar zxvf /mnt/source/ncurses-5.4.tar.gz -C ./Ncurses ÄÄÆÄÀÏ ÁغñÇϱâ
cd $LFS/build/ncurses_build/ncurses-5.4
./configure --prefix=/tools --with-shared \
--without-debug --without-ada --enable-overwrite
Configure optionÀÇ ÀǹÌ:
make Ncurses¹®¼µé°ú ÇÁ·Î±×·¥µéÀ» ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼±the Section called Contents of Ncurses in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.28 Patch-2.5.4 ¼³Ä¡ ¶Approximate build time: 0.1 SBU
Required disk space: 1.9 MB
Patch (2.5.4) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/patch/
Patch¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed.
[edit]
3.28.1 Patch ¼³Ä¡ ¶Patch ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/patch_build cd $LFS/build/patch_build tar zxvf /mnt/source/patch-2.5.4.tar.gz -C ./ cd patch-2.5.4 CPPFLAGS=-D_GNU_SOURCE ./configure --prefix=/tools Àü󸮱â flag -D_GNU_SOURCE ´Â Power PC ¿¡¼¸¸ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ´Ù¸¥ ½Ã½ºÅÛ¿¡¼´Â ÇÊ¿ä¾ø½À´Ï´Ù.
ÄÄÆÄÀÏÇϱâ:
make Patch ¹®¼µé°ú ÇÁ·Î±×·¥µéÀ» ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Patch in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.29 Tar-1.13.25 ¼³Ä¡ ¶Approximate build time: 0.2 SBU
Required disk space: 10 MB
Tar (1.13.25) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://alpha.gnu.org/gnu/tar/
Tar¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.
[edit]
3.29.1 Tar ¼³Ä¡ ¶Tar ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/tar_build cd $LFS/build/tar_build tar zxvf /mnt/source/tar-1.13.25.tar.gz -C ./ cd tar-1.13.25 ./configure --prefix=/toolsÄÄÆÄÀÏÇϱâ: make ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Texinfo test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check Tar ¹®¼µé°ú ÇÁ·Î±×·¥µéÀ» ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Tar in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä
[edit]
3.30 Texinfo-4.6 ¼³Ä¡ ¶Approximate build time: 0.2 SBU
Required disk space: 16 MB
Texinfo (4.6) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/texinfo/
Texinfo¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed.
[edit]
3.30.1 Texinfo ¼³Ä¡ ¶Texinfo ÄÄÆÄÀÏ ÁغñÇϱâ :
mkdir -p $LFS/build/texinfo_build cd $LFS/build/texinfo_build tar zxvf /mnt/soruce/texinfo-4.6.tar.gz -C ./ cd texinfo-4.6 ./configure --prefix=/toolsÄÄÆÄÀÏ Çϱâ: make ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Texinfo test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check Texinfo ¹®¼µé°ú ÇÁ·Î±×·¥µéÀ» ¼³Ä¡Çϱâ:
make install ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Texinfo in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä
[edit]
3.31 Bash-2.05b ¼³Ä¡ ¶Approximate build time: 1.2 SBU
Required disk space: 27 MB
Bash (2.05b)) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/bash/
Bash ÆÐÄ¡ »çÀÌÆ®:
http://www.linuxfromscratch.org/patches/lfs/cvs/bash-2.05b-2.patch
Bash¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses, Sed.
[edit]
3.31.1 Bash ¼³Ä¡ ¶¾ÐÃàÇ®±â
mkdir -p $LFS/build/bash_build cd $LFS/build/bash_build tar zxvf /mnt/source/bash-2.05b.tar.gz -C ./ Bash ´Â ¸î°¡Áö ¹ö±×µéÀÌ Á¸ÀçÇÕ´Ï´Ù. ÀÌ ¹ö±×µéÀ» °íÄ¡±â À§Çؼ ´ÙÀ½°ú °°Àº ÆÐÄ¡¸¦ Çϼ¼¿ä:
cd bash-2.05b patch -Np1 -i ../bash-2.05b-2.patchBash ÄÄÆÄÀÏ ÁغñÇϱâ: cd $LFS/build/bash_build/bash-2.05b ./configure --prefix=/toolsÄÄÆÄÀÏ Çϱâ: make ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Bash test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make tests BashÀÇ ¹®¼µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ:
make install ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾î ÁØ´Ù:
ln -s bash /tools/bin/sh ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Bash in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.
[edit]
3.32 Util-linux-2.12 ¼³Ä¡ ¶Approximate build time: 0.1 SBU
Required disk space: 8 MB
Util-linux (2.12) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
http://ftp.cwi.nl/aeb/util-linux/
Util-linux¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Zlib.
|










![[http]](/imgs/http.png)