LFS/Building
|
ÇöÀç Çѱ۳»¿ëÀº 5.1.pre1 ¹öÀü ³»¿ëÀÔ´Ï´Ù. 5.1.1 ´Â ¾ÆÁÖ ¾à°£ Â÷À̰¡ ÀÖ½À´Ï´Ù. ¿ì¼± ¿Â°Ü³õ°í, ¼öÁ¤À» Çϵµ·Ï ÇϰڽÀ´Ï´Ù.
¸ñÂ÷
[edit]
1.1 ±âº» ¼ÒÇÁÆ®¿þ¾î ¼³Ä¡ ¶¼Ò°³
the proc °ú devpts ÆÄÀϽýºÅÛ ¸¶¿îÆ®Çϱâ
chrootȯ°æ¿¡ µé¾î°¡±â
±ÇÇÑ ¹Ù²Ù±â
µð·ºÅ丮 ¸¸µé±â
ÇʼöÀûÀÎ symlinks ¸¸µé±â
ÆÐ½º¿öµå, ±×·ì, ·Î±×ÆÄÀÏ ¸¸µé±â
Makedev-1.7·Î µð¹ÙÀ̽º ¸¸µé±â
Linux-2.4.24 Çì´õ ¼³Ä¡
Man-pages-1.65 ¼³Ä¡
Glibc-2.3.3 ¼³Ä¡
the toolchain Àç Á¶Á¤
Binutils-2.14 ¼³Ä¡
GCC-3.3.2 ¼³Ä¡
Coreutils-5.2.1 ¼³Ä¡
Zlib-1.2.1 ¼³Ä¡
Lfs-Utils-0.4.2 ¼³Ä¡
Findutils-4.1.20 ¼³Ä¡
Gawk-3.1.3 ¼³Ä¡
Ncurses-5.3 ¼³Ä¡
Vim-6.2 ¼³Ä¡
M4-1.4 ¼³Ä¡
Bison-1.875 ¼³Ä¡
Less-381 ¼³Ä¡
Groff-1.19 ¼³Ä¡
Sed-4.0.9 ¼³Ä¡
Flex-2.5.4a ¼³Ä¡
Gettext-0.14.1 ¼³Ä¡
Net-tools-1.60 ¼³Ä¡
Inetutils-1.4.2 ¼³Ä¡
Perl-5.8.3 ¼³Ä¡
Texinfo-4.6 ¼³Ä¡
Autoconf-2.59 ¼³Ä¡
Automake-1.8.2 ¼³Ä¡
Bash-2.05b ¼³Ä¡
File-4.07 ¼³Ä¡
Libtool-1.5.2 ¼³Ä¡
Bzip2-1.0.2 ¼³Ä¡
Diffutils-2.8.1 ¼³Ä¡
Ed-0.2 ¼³Ä¡
Kbd-1.12 ¼³Ä¡
E2fsprogs-1.34 ¼³Ä¡
Grep-2.5.1 ¼³Ä¡
Grub-0.94 ¼³Ä¡
Gzip-1.3.5 ¼³Ä¡
Man-1.5m2 ¼³Ä¡
Make-3.80 ¼³Ä¡
Modutils-2.4.26 ¼³Ä¡
Patch-2.5.4 ¼³Ä¡
Procinfo-18 ¼³Ä¡
Procps-3.1.15 ¼³Ä¡
Psmisc-21.4 ¼³Ä¡
Shadow-4.0.4.1 ¼³Ä¡
Sysklogd-1.4.1 ¼³Ä¡
Sysvinit-2.85 ¼³Ä¡
Tar-1.13.25 ¼³Ä¡
Util-linux-2.12 ¼³Ä¡
GCC-2.95.3 ¼³Ä¡
¼öÁ¤µÈ chroot¸í·É
LFS-Bootscripts-1.12 ¼³Ä¡
µð¹ö±ë ±âÈ£¿¡ °üÇØ
[edit]
1.1.1 ¼Ò°³ ¶ÀÌ Àå¿¡¼ ¿ì¸®´Â LFS½Ã½ºÅÛÀ» ±¸ÃàÇÒ °ÍÀÔ´Ï´Ù. À̰ÍÀº ÀÓ½ÃÀÇ ÀÛÀº ¸®´ª½º ½Ã½ºÅÛÀ» ¸¸µé°í, ¾à°£ÀÇ º¸Á¶Çϴ°ÍÀ» »ý¼ºÇÑÈÄ, ¸ðµç ÆÐŰÁö¸¦ Çϳª¾¿ ¼³Ä¡¸¦ ½ÃÀÛÇÏ´Â ÀÏÀ» ¸»ÇÕ´Ï´Ù.
ÀÌ ¸ðµç ¼ÒÇÁÆ®¿þ¾î ¼³Ä¡´Â »ó´çÈ÷ Á¤È®È÷ ÇØ¾ß ÇÕ´Ï´Ù. ±×¸®°í ´ç½ÅÀº ½ÇÁ¦ÀûÀ¸·Î »ç¿ëÇÏ´Â ¼³Ä¡ ¸í·É¾îµéÀº ªÀºµ¥ ºñÇØ¼ ÆÑŰÁö¸¦ ¼³Ä¡ÇÒ ¶§ ¿ä±¸µÇ´Â °Íµé¿¡ ´ëÇÑ ¼³¸íÀº ¸¹´Ù°í »ý°¢ÇÒ °ÍÀÔ´Ï´Ù. ¿ì¸®´Â ½Ç¼ö¸¦ ÃÖ¼ÒÈ Çϱâ À§ÇØ °¢ °¢ ¶Ç´Â ¸ðµç ÆÑŰÁöÀÇ Full¸í·É¾î¸¦ »ç¿ëÇÏÁö ¾Ê°í °¡´ÉÇÑÇÑ °£´ÜÇϰí ª°Ô »ç¿ëÇÒ °ÍÀÔ´Ï´Ù.
¾î¶² ÀÛ¾÷À» ÇÏ´Â ¸®´ª½º ½Ã½ºÅÛÀ» ¸¸µå´Â°ÍÀº °¢°¢ÀÇ ÆÐŰÁö°¡ ¹«¾ùÀ» À§ÇØ »ç¿ëµÇ°í »ç¿ëÀÚ³ª ½Ã½ºÅÛÀÌ ¿Ö ÇÊ¿ä·Î ÇÏ´ÂÁö¸¦ ¹è¿ì´Â°Ô Áß¿äÇÏ´Ù. ÀÌ ¸ñÀûÀ» À§Çؼ ¼³Ä¡µÈ °¢°¢ÀÇ ÇÁ·Î±×·¥°ú ¶óÀ̺귯¸®ÀÇ °£´ÜÇÑ ¼³¸í¿¡ ÀÇÇØ ¼³Ä¡µÈ ¸ðµç ÆÐŰÁöÀÇ ³»¿ë¿¡ ´ëÇÑ¿ä¾àÀÌ ÁÖ¾îÁ®ÀÖ´Ù.
¸¸¾à ÀÌ Àå¿¡¼ ÃÖÀûÈµÈ ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÏ±æ ¿øÇÑ´Ù¸é http://www.linuxfromscratch.org/hints/downloads/files/optimization.txtÀÌ »çÀÌÆ®¸¦ Âü°íÇϼ¼¿ä. ÃÖÀûÈµÈ ÄÄÆÄÀÏ·¯´Â ÇÁ·Î±×·¥À» ´«¿¡ ¶ç°Ô ºü¸£°Ô ½ÇÇà½ÃÄÑÁÖÁö¸¸ ÆíÁýÀÇ ¾î·Á¿òÀÇ ¿øÀÎÀÌ µÉ»Ó¾Æ´Ï¶ó ÇÁ·Î±×·¥ ½ÇÇà½Ã ¹®Á¦¸¦ ÀÏÀ¸Å°±âµµ ÇÕ´Ï´Ù. ÆÐŰÁö°¡ ÃÖÀûȸ¦ »ç¿ëÇÒ¶§ ÄÄÆÄÀÏÀÌ °ÅºÎµÇ¸é ÃÖÀûȾøÀÌ ÄÄÆÄÀÏÀ» ½Ãµµ ÇÏ°í ¹®Á¦°¡ ÇØ°áµÇ¾ú´ÂÁö È®ÀÎ Çϼ¼¿ä.
ÀÌ Àå¿¡¼ ÀνºÅçµÇÀÖ´Â ÆÐŰÁöµéÀÇ ¸í·ÉÀº º¸ÀåÇØ¾ß ÇÕ´Ï´Ù. ¾î¶² ÇÁ·Î±×·¥µµ ÄÄÇ»Åͳ»¿¡ÀÖ´Â /tools ÂüÁ¶ °æ·Î¸¦ »ç¿ëÇÏÁö ¾Ê°Ô ÇØ¾ßÇÕ´Ï´Ù. ÀÌ °°Àº ÀÌÀ¯·Î parallel ³»¿¡ À̾´ ÆÐŰÁöµéÀ» ÄÄÆÄÀÏ ÇÏÁö ¾Ê¾Æ¾ßÇÑ´Ù. ÄÄÆÄÀÏ in parallel ³Ê¸¦ °¡²û ³Ê¸¦ ¾ÈÀüÇÏ°Ô ÇØÁÙ°ÍÀÌ´Ù(ƯÈ÷ dual_CPU ±â°è¿¡¼), ±×·¯³ª À̰ÍÀº ÇÁ·Î±×·¥ÀÌ /tools°æ ·Î¿¡ Á¢¼ÓÇßÀ»¶§ µð·ºÅ丮 »èÁ¦½Ã ÇÁ·Î±×·¥ÀÌ ¸ØÃß´Â ÀÌÀ¯°¡ µÉ°ÍÀÌ´Ù.
ÆÐŰÁö¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇÏ´Â °¢°¢ÀÇ ÀνºÅç ¸í·É¾îµé ÆÐÀÌÁö°¡ ³»¿ëÀ» º¸¿©ÁÖ±âÀü¿¡ : ¹«¾ùÀ» Æ÷ÇÔÇÏ´À³Ä¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸í, ±×°ÍÀ» build Çϴµ¥ ´ë·«¾ó¸¶³ª °É¸®´ÂÁö, building process Çϴµ¿¾È ¾ó¸¶¸¸ÅÀÇ µð½ºÅ© ¿ë·®À» Â÷ÁöÇÏ´ÂÁö,??´Ù¿î·ÎµåÇÏ´Â ÆÐŰÁöÀÇ À§Ä¡(ÀÌ °æ¿ì¿¡ ³Ê´Â ´ÜÁö ÆÐŰÁöÁßÀÇ ÀϺθ¸ ¾÷µ¥ÀÌÆ®Çϱ⸦ ¿øÇÑ´Ù.), ±×¸®°í ¼º°øÀûÀ¸·Î built¸¦ Çϱâ À§ÇØ ¾î¶² ´Ù¸¥ ÆÐŰÁöµéÀÌ ÇÊ¿äÇÑÁö. ÀνºÅç ¸í·É¾îµéÀÌ ÇÁ·Î±×·¥°ú ¶óÀ̺귯¸® ¸®½ºÆ®¸¦ µû¸¥ÈÄ ÆÐŰÁö´Â ÀÌ ÂªÀº ¼³¸íµéµµ ÇÔ²² ÂüÁ¶ÇÏ¿© ÀνºÅçÇÑ´Ù.
[edit]
1.1.2 the proc °ú devpts ÆÄÀϽýºÅÛ ¸¶¿îÆ®Çϱ⠶¾î¶² ÇÁ·Î±×·¥ÀÇ ¾Ë¸Â´Â ±â´ÉÀ» À§ÇØ the proc ¿Í devpts ÆÄÀÏÀº ¹Ýµå½Ã chrootȯ°æ¿¡¼ »ç¿ë°¡´ÉÇÏ°Ô µÇ¾î¾ßÇÕ´Ï´Ù. Ä¿³Î ¹öÁ¯ 2.4ºÎÅÍ ÆÄÀÏ ½Ã½ºÅÛÀ» ´ç½ÅÀÌ »ý°¢ÇÏ´Â ¸¸ÅÀÇ È½¼ö³ª Àå¼Ò¿¡ ¸¶¿îÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î ÀÌ¹Ì ´ç½ÅÀÇ È£½ºÆ® ½Ã½ºÅÛ¿¡ ¸¶¿îÆ® µÇ¾îÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛµéÀº(ƯÈ÷ °¡»ó ÆÄÀÏ ½Ã½ºÅÛµé) ´Ù¸¥ °÷¿¡ »õ·Î ¸¶¿îÆ® Çϰųª ¿©·¯¹ø ¸¶¿îÆ® ÇØµµ ¹®Á¦°¡ ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù.
The proc ÆÄÀÏ ½Ã½ºÅÛÀº Ä¿³ÎÀÌ Á¦°øÇÏ´Â ½Ã½ºÅÛ »óÅ¿¡ °üÇÑ Á¤º¸¸¦ °¡»ó ÆÄÀÏ ½Ã½ºÅÛÀ» ÅëÇØ Á¦°øÇØ ÁÝ´Ï´Ù.
´ÙÀ½ ¸í·ÉÀº the proc ÆÄÀÏ ½Ã½ºÅÛÀ» /proc ¿¡ ¸¶¿îÆ® ÇÕ´Ï´Ù:
mount proc /proc -t proc Warning: can't open /etc/fstab: No such file or directorynot enough memory ÀÌ ¸Þ¼¼Áö´Â ¹«½ÃÇϼ¼¿ä. ÀÌ ¸Þ¼¼Áö´Â ¾ÆÁ÷ ½Ã½ºÅÛ¿¡ fstabÀ̶ó´Â ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê±â ¶§¹®¿¡ ³ª¿À´Â ¸Þ¼¼ÁöÀÔ´Ï´Ù. ÀÏ´Ü, ¸¶¿îÆ®´Â ¼º°øÇÒ °ÍÀÔ´Ï´Ù.
The devpts ½Ã½ºÅÛÀº ÀÌÀü¿¡ ÇÑ ¹ø À̾߱â ÇÑ ÀûÀÌ ÀÖ½À´Ï´Ù.
´ÙÀ½ ¸í·ÉÀº devpts ÆÄÀÏ ½Ã½ºÅÛÀ» /dev/pts¿¡ ¸¶¿îÆ® ÇÕ´Ï´Ù.
mount devpts /dev/pts -t devpts filesystem devpts not supported by kernel ´ç½ÅÀÇ È£½ºÆ® ½Ã½ºÅÛÀÇ Ä¿³ÎÀº devpts ÆÄÀÏ ½Ã½ºÅÛÀÇ Áö¿ø¾øÀÌ ÄÄÆÄÀÏ µÇ¾îÁú °ÍÀÔ´Ï´Ù. ´ç½ÅÀÇ Ä¿³Î Áö¿øÇÏ´Â ÆÄÀÏ ½Ã½ºÅÛµéÀº cat /proc/filesystems¿Í °°Àº ¸í·É¾î¸¦ »ç¿ëÇØ¼ °Ë»çÇÒ ¼ö ÀÖ½À´Ï´Ù. devfs·Î µÇ¾îÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛÀº ³ªÁß¿¡ MakedevºÎºÐ¿¡¼ »ý¼ºÇÒ /dev ±¸Á¶Ã¼ÀÇ ¸ÇÀ§ºÎºÐ¿¡ È£½ºÆ®ÀÇ devfs ÆÄÀÏ ½Ã½ºÅÛÀÌ ¸¶¿îÆ®µÇ¾î ±â·ÏµÇ°í ±× ȯ°æ¿¡¼ ÀÛ¾÷ÇÒ¼ö ÀÖ´Ù. ¸¸¾à devfs°¡ ±â·ÏµÇ¾î ÀÖÁö ¾Ê´õ¶óµµ ¾ÆÁ÷ chroot ȯ°æ¾È¿¡¼ PTY¸¦ ¾òÀ»¼ö ÀÖ´Â ¹æ¹ýÀÌ ¼¼¹øÂ° ¹æ¹ýÀÌ Àֱ⠶§¹®¿¡ °ÆÁ¤ÇÏÁö ¸»¾Æ¶ó. ¾Õ¼ ¾ð±ÞÇÑ Makedev ºÎºÐ¿¡¼ °£´ÜÈ÷ ÇØ°áÇÒ¼ö ÀÖ´Ù.
ÇѰ¡Áö Áß¿äÇÑ Á¡Àº, ´ç½ÅÀÌ ¾î¶² ÀÌÀ¯¿¡¼µç LFS¿¡¼ ÀÛ¾÷À» ¸ØÃß¾ú´Ù¸é ³ªÁß¿¡ ´Ù½Ã ½ÃÀÛÇÒ ¶§´Â 6ÀåÀÇ Ã³À½ºÎÅÍ ´Ù½Ã ½ÃÀÛÇϼ¼¿ä. chroot ȯ°æ¿¡¼ ÀÌ ÆÄÀÏ ½Ã½ºÅÛÀÌ ¸¶¿îÆ® µÇ¾ú´ÂÁö üũ ÇÏ´Â °ÍÀº ¾ÆÁÖ Áß¿äÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¹®Á¦°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ´Ù. [edit]
1.1.3 chrootȯ°æ¿¡ µé¾î°¡±â ¶ÀÌÁ¦ ¿ì¸®°¡ ÇÊ¿äÇÑ ÆÐŰÁöµéÀ» ¼³Ä¡Çϱâ À§Çؼ± chroot ȯ°æÀ¸·Î µé¾î °¡¾ß ÇÕ´Ï´Ù. root°è Á¤¸¸ÀÌ chroot¸¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. root·Î ·Î±×ÀÎ ÇսôÙ.
Áö±Ý±îÁö ÀÌ Ã¥¿¡¼ Áö½ÃÇѵ¥·Î Àß µû¶ó Çß´Ù¸é /mnt/lfs¶õ µð·ºÅ丮°¡ Á¦´ë·Î ¸¸µé¾îÁ® ÀÖÀ» °ÍÀÔ´Ï´Ù.
root ¿¡¼ chrootȯ°æº¯¼ö·Î µé¾î°¡´Â ¸í·É¾î¸¦ ½ÇÇàÇϼ¼¿ä. (Âü°í·Î ¾Æ·¡ ¸í·É¾îµéÀº ½ºÅ©¸³Æ®·Î ¸¸µé¾î µÎ´Â °ÍÀÌ ÆíÇÕ´Ï´Ù.)
LFS=/mnt/lfschroot $LFS /tools/bin/env -i \ HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ /tools/bin/bash --login +h -i ¿É¼ÇÀ» ÁÖ¸é env ¸í·É¾î´Â chrootÀÇ ¸ðµç º¯¼öµéÀ» ÃʱâÈ ÇÒ °ÍÀÔ´Ï´Ù. ±× ÈÄ¿¡ HOME, TERM, PS1 ±×¸®°í PATH º¯¼ö¸¸ÀÌ ´Ù½Ã ¼ÂÆÃµË´Ï´Ù. TERM=$TERM ¸í·É¾î´Â TERM º¯¼öÀÇ chroot ³»ºÎÀÇ °ªÀ» ¿ÜºÎ chroot¿Í °°Àº °ªÀ¸·Î ¼ÂÆÃÇÒ °ÍÀÔ´Ï´Ù, ÀÌ º¯¼ö´Â vim °ú less ÇÁ·Î±×·¥ÀÌ Á¤È®ÇÏ°Ô µ¿ÀÛÇϴµ¥ ÇÊ¿äÇÕ´Ï´Ù´Ù. ¸¸¾à ´ç½Å¿¡°Ô CFLAGS, CXXFLAGS ¿Í °°Àº º¯¼öµéÀÌ ÇÊ¿äÇÏ´Ù¸é ±×°ÍµéÀ» ´Ù½Ã ¼ÂÆÃÇϱ⿡ ÁÁÀº Àå¼ÒÀÔ´Ï´Ù.
Áö±Ý À̽ÃÁ¡À¸·Î ºÎÅÍ LFS º¯¼ö´Â ´õÀÌ»ó »ç¿ëµÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ¿Ö³ÄÇϸé shellÀÌ LFS º¯¼ö°¡ chroot¸í·ÉÀ¸·Î Àü´ÞµÇ¾ú´Ù°í »ý°¢ÇÑ ÈÄ ´ç½ÅÀÌ ÇÏ´Â ¸ðµç °ÍµéÀÌ LFS½Ã½ºÅÛ(chroot ¸í·É¿¡ ÀÇÇØ º¸³»Áø value of $LFS)À¸·Î ºÎÅÍ Á¦ÇѹÞÀ» °ÍÀ̱⠶§¹®ÀÔ´Ï´Ù. since what the shell thinks is / is actually the value of $LFS, which was passed to the chroot command. PATH¿¡ /tools/bin ÀÌ ¸¶Áö¸· °æ·Î·Î ÁöÁ¤Çß½À´Ï´Ù. ÀÌ ¶æÀº ¸¶Áö¸· ¹öÁ¯ÀÌ ÀνºÅçµÈÈÄ ÀÓ½ÃÅøÀº ´õÀÌ»ó »ç¿ëµÇÁö ¾Ê´Â´Ù´Â ¶æÀÔ´Ï´Ù. ½©ÀÌ ½ÇÇàµÈ ¹ÙÀ̳ʸ®ÀÇ À§Ä¡¸¦ ±â¾ïÇÏÁö ¸øÇÒ¶§ bash¿¡+h À» ÁÜÀ¸·Î½á ¾²·¹±â°ªÀÌ Ã³¸®µË´Ï´Ù. ´ç½ÅÀº ÀÌ Àå¿¡¼ ³ª¿À´Â ³ª¸ÓÁö ¸í·É¾îµéÀ» È®½ÇÈ÷ ¾Ë¾Æ¾ß Çϰí chroot ȯ°æ³»¿¡¼ À̹ø ÀåÀÇ ³»¿ëÀ» µû¶ó ½ÇÇà½ÃÄÑ¾ß ÇÕ´Ï´Ù. ¸¸¾à ¾î¶² ÀÌÀ¯¿¡¼µç ÀÌ È¯°æÀ» ¶°³µ´Ù¸é ´ç½ÅÀº ¹Ýµå½Ã ´Ù½Ã chroot·Î µé¾î¿Í¾ß ÇÑ´Ù´Â °ÍÀ» ±â¾ïÇØ¾ßÇϰí proc ¿Í devpts ÆÄÀÏ ½Ã½ºÅÛ(³ªÁß¿¡ ¼³¸í)À» ÀνºÅçÀ» °è¼Ó ÁøÇàÇϱâ Àü¿¡ ¼³Ä¡Çϴ°ÍÀ» ±â¾ïÇØ¾ßÇÕ´Ï´Ù. À§¿Í °°ÀÌ chroot ¸í·ÉÀ» ½ÇÇàÇϸç "I have no name!:/# "¶õ ¸Þ¼¼Áö°¡ ÇÁ·ÒÇÁÆ® Á¦ÀÏ ¾Õ¿¡ ³ª¿À°Ô µÇ´Â°Ô /etc/passwd ÆÄÀÏÀ» ¸¸µéÁö ¾Ê¾Ò±â ¶§¹®¿¡ »ý±â´Â ¸Þ¼¼Áö´Ï±î ½Å°æ ¾È ¾²¼Åµµ µË´Ï´Ù. [edit]
1.1.4 ±ÇÇÑ ¹Ù²Ù±â ¶ÀÚ, Áö±Ý±îÁö /tools µð·ºÅ丮´Â lfs °èÁ¤ÀÇ ¼ÒÀ¯¿´½À´Ï´Ù. ¾ÕÀ¸·Î °è¼Ó lfs½Ã½ºÅÛÀ» ±¸ÃàÇϱâ À§Çؼ´Â /tools ȯ°æÀ» °è¼Ó À¯ÁöÇØ¾ß ÇÕ´Ï´Ù.
ÇÏÁö¸¸ /toolsÀÇ ¼ÒÀ¯ÀÚ°¡ lfs »ç¿ëÀÚÀ̱⠶§¹®¿¡ Á¦´ë·Î »ç¿ëÇÒ ¼ö ¾øÀ» °ÍÀÔ´Ï´Ù. ±×·¸´Ù°í ÇØ¼ »õ·Î lfs»ç¿ëÀÚ¸¦ Ãß°¡Çؼ Çϱ⿡´Â À§Çè ºÎ´ãÀÌ ¸¹½À´Ï´Ù. ±×·¡¼ ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇØ¼ Áö±ÝºÎÅÍ /tools µð·ºÅ丮¸¦ ÀÚÀ¯·Ó°Ô »ç¿ë ÇÒ ¼ö ÀÖµµ·Ï ¸¸µé °ÍÀÔ´Ï´Ù.
chown -R 0:0 /tools ¿É¼ÇÀ» »ìÆìº¸¸é "0:0" Àº "root:root"¿Í µ¿ÀÏÇÕ´Ï´Ù. ¿Ö ÀÌ·¸°Ô Çϳĸé chown ÇÁ·Î±×·¥Àº ÀÌ·¸°Ô ÇÒ °æ¿ì /etc/passwd ÆÄÀÏÀÌ »ý¼ºµÇ¾î ÀÖÁö ¾Ê´õ¶óµµ ¿¡·¯¸¦ ¹ß»ý½ÃŰÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.
[edit]
1.1.5 µð·ºÅ丮 ¸¸µé±â ¶ÀÌÁ¦ LFS ÆÄÀÏ ½Ã½ºÅÛ ³»¿¡¼ »õ·Î¿î µð·ºÅ丮¸¦ ¸¸µé¾î º¾½Ã´Ù. ¸í·É¾î °á°ú¿¡ µû¶ó ´õ ¸¹°Å³ª ÀûÀº ±âº» Æ®¸®°¡ ¸¸µé¾î Áú °ÍÀÔ´Ï´Ù:
{
mkdir -p /{bin,boot,dev/{pts,shm},etc/opt,home,lib,mnt,proc}mkdir -p /{root,sbin,tmp,usr/local,var,opt}for dirname in /usr /usr/local do mkdir $dirname/{bin,etc,include,lib,sbin,share,src} ln -s share/{man,doc,info} $dirname mkdir $dirname/share/{doc,info,locale,man} mkdir $dirname/share/{misc,terminfo,zoneinfo} mkdir $dirname/share/man/man{1,2,3,4,5,6,7,8}donemkdir /var/{lock,log,mail,run,spool}mkdir -p /var/{tmp,opt,cache,lib/misc,local}mkdir /opt/{bin,doc,include,info}mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}}
¸¸µé¾îÁø µð·ºÅ丮µéÀº ÆÛ¹Ì¼ÇÀÌ 755·Î µÇ¾î ÀÖÀ» °Ì´Ï´Ù. ´ÙÀ½°ú °°ÀÌ rootÀÇ È¨ µð·ºÅ丮¿Í /tmpÀÇ ÆÛ¹Ì¼ÇÀ» ¹Ù²Ù¾î ÁÖ¼¼¿ä.
chmod 0750 /rootchmod 1777 /tmp /var/tmp /rootÀÇ ÆÛ¹Ì¼ÇÀ» 0750À¸·Î ¹Ù²Ù¾î ÁÖ¸é ¾Æ¹«³ª /root¿¡ µé¾î °¡Áö ¸øÇÏ°Ô ÇØ ÁÝ´Ï´Ù. µÎ ¹øÂ° chmod¸í·ÉÀº ¾Æ¹«³ª /tmp ³ª /var/tmp µð·ºÅ丮¿¡ writeÇÒ ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù. ±×·¯³ª ´Ù¸¥ »ç¿ëÀÚµéÀÌ »ý¼ºÇÑ ÆÄÀÏÀ» Áö¿ï¼ö´Â ¾ø½À´Ï´Ù. ÆÛ¹Ì¼ÇÀÌ 777Àε¥ ´Ù¸¥ »ç¿ëÀÚÀÇ ÆÄÀÏÀ» Áö¿ï ¼ö ¾ø°Ô ÇÏ´Â °ÍÀº "sticky bit"(±î´Ù·Î¿î ºñÆ®)¶ó°í ºÒ¸®´Â °Í¿¡ ÀÇÇØ ¼³Á¤µË´Ï´Ù. --(1777 bit mask¿¡¼ °¡Àå³ôÀº ºñÆ®)
[edit]
1.1.5.1 FHS compliance Note ¶FHSÇ¥ÁØ¿¡ µû¶ó µð·ºÅ丮¸¦ »ý¼º Çß½À´Ï´Ù. ( http://www.pathname.com/fhs/¿¡¼ ÂüÁ¶ °¡´ÉÇÕ´Ï´Ù). ÀÌ Ç¥ÁØ¿¡¼´Â /usr/local/games ¿Í /usr/share/games¸¦ ¸¸µé°ÍÀ» ¿ä±¸ÇÕ´Ï´Ù. ÇÏÁö¸¸, À̰͵éÀº ±âº» ½Ã½ºÅÛÀ» À§Çؼ´Â ÁÁÁö ¾Ê½À´Ï´Ù. ¾î·µç. ´ç½ÅÀÇ FHS ½Ã½ºÅÛÀº ´ç½ÅÀÌ ¿øÇÏ´Â ´ë·Î ÀÚÀ¯·Ó°Ô ¸¸µå¼¼¿ä. FHS ¿¡¼´Â /usr/local/share µð·ºÅ丮 ±¸Á¶¿¡ ´ëÇØ¼ ¸íÈ®ÇÏ°Ô Á¤ÀÇÇϰí ÀÖÁö ¾Ê½À´Ï´Ù. ±×·¯´Ï±î ¿ì¸®°¡ ¿øÇÏ´Â ´ë·Î ÀÚÀ¯·Ó°Ô ¸¸µì½Ã´Ù.
[edit]
1.1.6 ÇʼöÀûÀÎ symlinks ¸¸µé±â ¶ÀϺΠÇÁ·Î±×·¥µéÀº ½ÇÁ¦·Ð Á¸ÀçÇÏÁö ¾Ê´Â ÇÁ·Î±×·¥µé°ú ÇÏµå ¸µÅ© µÇ¾î ÀÖ½À´Ï´Ù. ¿ì¸®´Â ¾ÈÁ¤¼ºÀ» º¸ÀåÇϱâ À§ÇØ ½ÇÁ¦ ÆÄÀϵéÀ» ´ë½ÅÇÒ ½Éº¼¸¯ ¸µÅ©¸¦ »ý¼ºÇÏ¿© ÀνºÅç ÇÏ´Â µ¿¾È »ç¿ëÇÏ°Ô µË´Ï´Ù.
ln -s /tools/bin/{bash,cat,pwd,stty} /bin
ln -s /tools/bin/perl /usr/bin
ln -s /tools/lib/libgcc_s.so.1 /usr/lib
ln -s bash /bin/sh
[edit]
1.1.7 ÆÐ½º¿öµå, ±×·ì, ·Î±×ÆÄÀÏ ¸¸µé±â ¶root·Î ·Î±×ÀÎ Çϱâ À§ÇØ /etc/passwd¿Í /etc/group ÆÄÀÏÀÌ ÇÊ¿äÇÕ´Ï´Ù.
¾Æ·¡ ¸í·ÉÀ» ½ÇÇàÇØ¼ /etc/passwd ¸¦ ¸¸µå¼¼¿ä:
cat > /etc/passwd << "EOF" root:x:0:0:root:/root:/bin/bash EOF ¾Æ·¡ ¸í·É¾î¸¦ ½ÇÇàÇØ¼ /etc/group ¸¦ »ý¼ºÇϼ¼¿ä:
cat > /etc/group << "EOF" root:x:0: bin:x:1: sys:x:2: kmem:x:3: tty:x:4: tape:x:5: daemon:x:6: floppy:x:7: disk:x:8: lp:x:9: dialout:x:10: audio:x:11: EOF »ý¼ºµÈ ±×·ìµéÀº Ç¥ÁØÀÌ ¾Æ´Õ´Ï´Ù. ÀÌ ±×·ìµéÀº ´ÙÀ½ ÆäÀÌÁöÀÇ MAKEDEV Script°¡ ÀÌ¿ëÇÏ°Ô µË´Ï´Ù. LSB(http://www.linuxbase.org)¿¡ ¼´Â root ±×·ìÀ» À» Á¦¿ÜÇÑ ³ª¸ÓÁö ±×·ìµéÀÇ À̸§°ú GID¿¡ ´ëÇØ¼ Á¤ÇØ ³õÁö ¾Ê¾Ò½À´Ï´Ù. ´Ù¸¸, binÀ̶ó´Â ±×·ì¸í°ú binÀÇ GID´Â 1·Î ÇÒ °ÍÀ» ÃßõÇϰí ÀÖ½À´Ï´Ù. ¸ðµç ´Ù¸¥ ±×·ìÀÇ À̸§À̳ª ±×·ì¾ÆÀ̵ð´Â À¯Àú¿¡ ÀÇÇØ¼ ÀÚÀ¯·Ó°Ô ¼±ÅÃµÉ ¼ö ÀÖ½À´Ï´Ù. Àß ¾²¿©Áø ÆÐŰÁöµéÀº GID¼ýÀڵ鿡 ÀÇÇØ ¿µÇâ¹ÞÁö ¾Ê½À´Ï´Ù.
exec /tools/bin/bash --login +h The login, agetty ±×¸®°í init ÇÁ·Î±×·¥(±×¸®°í ¾î¶² ´Ù¸¥ÇÁ·Î±×·¥µé)Àº ´©°¡ ¾ðÁ¦ ½Ã½ºÅÛ¿¡ ·Î±×ÀÎ Çß´ÂÁö ±â·ÏÇÒ ¸î°³ÀÇ ·Î±×ÆÄÀϵéÀ» »ç¿ëÇÕ´Ï´Ù. ±×·¯³ª ÀÌ ÇÁ·Î±×·¥µéÀº Á¢¼ÓÀÚ°¡ ÀÌ¹Ì Á¸ÀçÇÏÁö ¾Ê´Ù¸é ±â·ÏÇÏÁö ¾Ê½À´Ï´Ù. ·Î±×ÆÄÀϵéÀ» ÃʱâÈÇÏ°í ±×°Íµé¿¡ Àû´çÇÑ Çã°¡±ÇÀ» ºÎ¿©ÇÕ´Ï´Ù:
touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}
/var/log/wtmp ÆÄÀÏÀº ¸ðµç ·Î±×Àΰú ·Î±×¾Æ¿ôÀ» ±â·ÏÇÕ´Ï´Ù.
/var/log/lastlog ÆÄÀÏÀº »ç¿ëÀÚ°¡ ¾ðÁ¦ ¸¶Áö¸·À¸·Î ·Î±×ÀÎÇß´ÂÁö ±â·ÏÇÕ´Ï´Ù.
/var/log/btmp À߸ø ½ÃµµµÈ ·Î±×ÀÎÀ» ±â·ÏÇÕ´Ï´Ù.
[edit]
1.1.8 Makedev-1.7·Î µð¹ÙÀ̽º ¸¸µé±â ¶ÁÖ)5.1.1 ¹öÀü¿¡´Â 1.2 ¸¦ ¾¹´Ï´Ù. È®ÀÎÈÄ ¼öÁ¤Çϵµ·Ï ÇϰڽÀ´Ï´Ù.
The MAKEDEV package contains a script for making device nodes.
Approximate build time: 0.1 SBURequired disk space: 50 KB
MAKEDEV¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé:Bash,Coreutils
µð¹ÙÀ̽ºµé ¸¸µé±â
Note : MAKEDEV-1.7.bz2 ÀÇ ¾ÐÃàÀ» Ç®¸é µð·ºÅ丮´Â »ý¼ºµÇÁö ¾Ê°í, MAKEDEVÆÄÀϸ¸ ¸¸µé¾î Áý´Ï´Ù.
MAKEDEV ½ºÅ©¸³Æ® ÀνºÅç:
bzcat /source/MAKEDEV-1.7.bz2 > /dev/MAKEDEVchmod 754 /dev/MAKEDEV µð¹ÙÀ̽º ÆÄÀϵéÀ» »ý¼ºÇÏ´Â ½ºÅ©¸³Æ®:
cd /dev./MAKEDEV -v generic-nopty -v: ½ºÅ©¸³Æ®¸¦ Verbose mode¿¡¼ ½ÇÇàÇ϶ó´Â ¿É¼Ç.
generic-nopty: ÀÌ·¸°Ô Çϸé ptyXX¿Í ttyXX ÆÄÀϵéÀ» Á¦¿ÜÇϰí ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â µð¹ÙÀ̽ºµé¸¸ ¸¸µé¾î Áý´Ï´Ù. ÀÌ ½Ã½ºÅÛ¿¡¼´Â devptsÆÄÀÏ ½Ã½ºÅÛÀ» ÅëÇØ¼ Unix98 PTYs¸¦ »ç¿ëÇϱ⠶§¹®¿¡ ptyXX¿Í ttyXX ÆÄÀϵéÀº ÇÊ¿ä ¾ø½À´Ï´Ù.
If it turns out that some special device zzz that you need is missing, try running ./MAKEDEV -v zzz. Alternatively, you may create devices via the mknod program. Please refer to its man and info pages if you need more information.
´ç½ÅÀÇ ½Ã½ºÅÛÀÌ FHS¿Í ȣȯµÇ±æ ¿øÇÑ´Ù¸é MAKEDEV ½ºÅ©¸³Æ®°¡ ÇöÀç /dev °¡ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ¹æ¹ýÀº ÀÓ½Ã(extra)ÀåÄ¡ ¹æ½ÄÀ» ¸¸µå´Âµ¥ À¯¿ëÇÕ´Ï´Ù.
Ãß°¡ÀûÀ¸·Î ¸¸¾à Àü¿¡Çß´ø proc°ú devpts ÆÄÀϽýºÅÛÀÇ ¸¶¿îÆÃºÎºÐ¿¡¼ devpts ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¶¿îÆ® ÇÒ ¼ö ¾ø¾ú´Ù¸é ÀÌÁ¦ ´Ù¸¥ ´ë¾ÈÀ» ½ÃµµÇØ º¾½Ã´Ù. ¸¸¾à ´ç½ÅÀÇ Ä¿³ÎÀÌ devfs ½Ã½ºÅÛÀ» Áö¿øÇÑ´Ù¸é devfs¸¦ ¸¶¿îÆ®ÇÏ´Â ¾Æ·¡ ¸í·É¾î¸¦ ½ÇÇàÇϼ¼¿ä: mount -t devfs devfs /dev ÀÌ ¸í·É¾î´Â devfs ÆÄÀÏÀ» »õ·Î¿î Á¤Àû /dev ±¸Á¶Ã¼ÀÇ ¸ÇÀ§¿¡ ¸¶¿îÆ® ÇÒ°ÍÀÔ´Ï´Ù. ÀÌ·± ¹æ½ÄÀº ¹®Á¦°¡ ¾ø½À´Ï´Ù. ´ÜÁö »õ·Î¿î devfs ÆÄÀϽýºÅÛ¿¡ ÀÇÇØ ¼û°ÜÁö´Â°Í »ÓÀÔ´Ï´Ù..(´ëºÎºÐÀÇ »ç¿ëÀÚ°¡ ±×·¸°ÚÁö¸¸ Áö³¹ø¿¡ devpts¸¦ ¸¶¿îÆ®ÇÏ´Â ÀÛ¾÷Àº ´Ù Àß µÇ¾úÀ» °ÍÀÔ´Ï´Ù. ±×·² °æ¿ì¿¡´Â À§¿Í °°Àº ÀÛ¾÷À» ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù.)
MAKEDEV ³»¿ë
¼³Ä¡µÈ ½ºÅ©¸³Æ®: MAKEDEV
¿ä¾à
MAKEDEV is a script for creating the necessary static device nodes, usually residing in the /dev directory.
[edit]
1.1.9 Linux-2.4.24 Çì´õ ¼³Ä¡ ¶¿ªÁÖ)5.1.1 ¹öÀü¿¡´Â 2.4.26 À» »ç¿ëÇÕ´Ï´Ù. Â÷ÈÄ¿¡ º¯°æÇϵµ·Ï ÇϰڽÀ´Ï´Ù.
Approximate build time: 0.1 SBU Required disk space: 186 MB [edit]
1.1.9.1 kernel Çì´õ ¼³Ä¡ ¶¿ì¸®´Â ¾ÆÁ÷ »õ Ä¿³Î ÄÄÆÄÀÏÀ» ¿øÇÏÁö ¾Ê½À´Ï´Ù. -- Ä¿³Î ÄÄÆÄÀÏÀº ¸ðµç ÆÐŰÁö ¼³Ä¡¸¦ ³¡³½ ÈÄ¿¡ ÇÒ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ¾î¶² ÆÐŰÁöµéÀº Ä¿³Î Çì´õ ÆÄÀϵéÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ±×·¡¼ Ä¿³Î¼Ò½ºÀÇ ¾ÐÃàÀ» Ç®°í, °£´ÜÇÑ ¼³Á¤À» Çϰí, Çì´õ ÆÄÀϵéÀ» Àû´çÇÑ À§Ä¡·Î º¹»çÇÒ °ÍÀÔ´Ï´Ù.
[edit]
1.1.9.1.1 header¼³Ä¡¸¦ À§ÇÑ Áغñ: ¶mkdir -p /build/linux_build cd /build/linux_build tar zxvf /source/linux-2.4.24.tar.gz -C ./ cd /build/linux_build/linux-2.4.24 make mrproper make mrproper¸¦ ½ÇÇàÇÔÀ¸·Î½á Ä¿³ÎÆ®¸®¿¡ ÀÖ´Â ºÒÇÊ¿äÇÑ °ÍµéÀÌ Á¦°ÅµÇ¾ú½À´Ï´Ù. ¸®´ª½º Ä¿³ÎÆÀ¿¡¼´Â ´Ù¸¥ ¿©·¯Á¾·ùÀÇ Ä¿³Î ÄÄÆÄÀÏÀü¿¡ make mrproperÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇϰí ÀÖ½À´Ï´Ù.
[edit]
1.1.9.1.4 platform specific-headerÆÄÀÏµé ¼³Ä¡: ¶cp -HR include/asm /usr/include cp -R include/asm-generic /usr/include cp -R include/linux /usr/include ÀϺΠĿ³Î Çì´õÆÄÀÏÀº autoconf.h Çì´õÆÄÀÏÀ» »ç¿ëÇÕ´Ï´Ù. ¾ÆÁ÷ Ä¿³ÎÀ» ±¸¼ºÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡, ÄÄÆÄÀÏÀÇ ½ÇÆÐ¸¦ ÇÇÇϱâ À§ÇÑ ÆÄÀÏÀ» ¸¸µé Çʿ䰡 ÀÖ½À´Ï´Ù. ºñ¾îÀÖ´Â autoconf.h ÆÄÀÏÀ» ¸¸µé¾î ÁÖ¼¼¿ä.
touch /usr/include/linux/autoconf.h [edit]
1.1.9.2 ¿ì¸®°¡ Ä¿³Î Çì´õµéÀ» º¹»çÇϰí symlink¸¦ °ÉÁö¾Ê´Â ÀÌÀ¯ ¶¿¹Àü¿¡´Â /usr/include/{linux,asm}°ú /usr/src/linux/include/{linux,asm}À» ½Éº¼¸¯ ¸µÅ©·Î ¿¬°áÇØ ÁÖ¾ú¾ú½À´Ï´Ù.
ÇÏÁö¸¸ ¿äÁòÀº ÀÌ·± ¹æ½ÄÀ» »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. (¾È ÁÁÀº ¹æ¹ýÀ̶ó°í ÇÏ´õ±º¿ä)
´ÙÀ½Àº Linus Torvalds ÀÇ the Linux Kernel Mailing List¿¡¼ ¹ßÃéÇÑ ³»¿ëÀÔ´Ï´Ù.
I would suggest that people who compile new kernels should: - not have a single symbolic link in sight (except the one that the kernel build itself sets up, namely the "linux/include/asm" symlink that is only used for the internal kernel compile itself) And yes, this is what I do. My /usr/src/linux still has the old 2.2.13 header files, even though I haven't run a 2.2.13 kernel in a _loong_ time. But those headers were what Glibc was compiled against, so those headers are what matches the library object files. And this is actually what has been the suggested environment for at least the last five years. I don't know why the symlink business keeps on living on, like a bad zombie. Pretty much every distribution still has that broken symlink, and people still remember that the linux sources should go into "/usr/src/linux" even though that hasn't been true in a _loong_ time.
±×·±µ¥, /usr/include/{linux,asm}symlinkµéÀÌ ÇÊ¿ä ¾øÀ» ¸¸Å /usr/src/linux°¡ ¿Ïº®ÇØ Á³½À´Ï´Ù.
The essential part is where Linus states that the header files should be the ones which Glibc was compiled against. These are the headers that should be used when you later compile other packages, as they are the ones that match the object-code library files. By copying the headers, we ensure that they remain available if later you upgrade your kernel. [edit]
1.1.10 Man-pages-1.65 ¼³Ä¡ ¶¿ªÁÖ)ÃÖ½ÅÀº 1.66¹öÀüÀ» ¼³Ä¡ÇÕ´Ï´Ù. Â÷ÈÄ¿¡ ¼öÁ¤À»... -0-;;
he Man-pages package contains over 1200 manual pages
Approximate build time: 0.1 SBU Required disk space: 15 MBMan-pages (1.65) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.win.tue.nl/pub/linux-local/manpages/ Man-pages¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Coreutils, Make.
[edit]
1.1.10.1 Man-pages ¼³Ä¡ ¶´ÙÀ½°ú °°ÀÌ ½ÇÇàÇØ¼ Man-pages¸¦ ¼³Ä¡Ç϶ó:
mkdir -p /build/man_build cd /build/man_build tar zxvf /source/man-pages-1.65.tar.gz -C ./ cd man-pages-1.65 make install [edit]
1.1.10.3 ¿ä¾à ¶manual pages´Â C¿Í C++ÇÔ¼ö, Áß¿äÇÑ µð¹ÙÀ̽º ÆÄÀϵé, Áß¿äÇÑ ±¸¼º ÆÄÀϵéÀ» ¼¼úÇÑ ÆäÀÌÁöÀÔ´Ï´Ù.
[edit]
1.1.11 Glibc-2.3.3 ¼³Ä¡ ¶GlibcÆÐŰÁö´Â ÁÖ¿äÇÑ C ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. ÀÌ ¶óÀ̺귯¸®´Â ¸ðµç ¸Þ¸ð¸®ÇÒ´ç, µð·ºÅ丮 °Ë»ö, ÆÄÀÏ ÀÔÃâ·Â, ±×°Íµé¿¡ ´ëÇÑ ÀÐ°í ¾²±â, ÆÐÅÏÀÏÄ¡, °è»ê, ±×¸®°í ¿©·¯°¡Áö ÀϵéÀÇ ±âÃÊÀûÀÎ ±ÔÄ¢À» Á¦°øÇÕ´Ï´Ù.
Approximate build time: 12.3 SBU Required disk space: 784 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]
1.1.11.1 GlibcÀÇ ÀνºÅç ¶Glibc ¼³Ä¡ ½Ã½ºÅÛÀº ÄÄÆÄÀÏ·¯ ½ºÆå ÆÄÀϰú ¸µÄ¿°¡ ¾ÆÁ÷ /tools¿¡ ¿¬°áµÇ¾î À־ ¿Ïº®ÇÏ°Ô ¼³Ä¡µÉ °ÍÀÔ´Ï´Ù. Glibc¸¦ ¼³Ä¡Çϱâ Àü¿¡´Â ½ºÆå°ú ¸µÄ¿¸¦ Àû¿ëÇÒ¼ö ¾øÀ¸¹Ç·Î GlibcÀÇ ÀÚµ¿ ¼³Á¤Å×½ºÆ®´Â ¿À·ùÀÇ °á°ú¸¦ ÁÙ°ÍÀÌ¸ç ¿Ïº®ÇÑ ½Ã½ºÅÛÀ» ¼ºÃëÇÏ´Â ¸ñÇ¥¸¦ ½ÇÆÐÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù.
Glibc¸¦ ±¸ÃàÇϱâÀü¿¡ ¾î¶² ȯ°æº¯¼ö¸¦ ÃÖÀûÈµÈ ±âº» Ç÷¡±×·Î ÀçÁ¤ÀÇ Çϴ°ÍÀ» ±â¾ïÇϼ¼¿ä.
Glibc ¼³¸í¼´Â Glibc¸¦ ±¸ÃàÇÒ¶§ ±¸Ãà´ë»óÀ̵Ǵ µð·ºÅ丮¿¡¼ ¼Ò½º µð·ºÅ丮¸¦ ¹ÛÀ¸·Î »©³»µµ·Ï ±Ç°íÇϰí ÀÖ½À´Ï´Ù:
mkdir -p /build/glibc_build cd /build/glibc_build tar jxvf /source/glibce-2.3.3-20031202.tar.bz2 -C ./ (ȤÀº tar jxvf /source/glibce-2.3.3-ÀÜ-5.1.tar.bz2 -C ./) Áö±Ý Glibc¸¦ ÄÄÆÄÀÏÇϱâÀ§ÇÑ Áغñ¸¦ ÇØ¶ó:(5Àå¿¡¼µµ ¼³¸íÇßÁö¸¸, Glibc¸¦ ±¸ÃàÇÒ ¶§´Â, GlibcÀÇ ¾ÐÃàÀ» Ǭ ´ÙÀ½ ±× µð·ºÅ丮 ¹Û¿¡¼ configure¸¦ ½ÇÇàÇØ¾ß ÇÑ´Ù.)
cd /build/glibc_build
./glibc-2.3.3-20031201/configure --prefix=/usr \
--disable-profile --enable-add-ons=linuxthreads \
--libexecdir=/usr/lib --with-headers=/usr/include \
--without-cvs
Configure ¿É¼ÇÀÇ ÀǹÌ:
make ÁÖÀÇ: Glibc¸¦ ÄÄÆÄÀÏ ÇÒ ¶§, ³ª¿À´Â ¿¡·¯ ¸Þ¼¼ÁöµéÀº ¹«½ÃÇÏ¸é ¾È µË´Ï´Ù. ¾î¶² ¿¡·¯ ¸Þ¼¼Áö°¡ ³ª¿ÃÁö´Â Àå´ã ¸øÇÏÁö¸¸, Ç×»ó ½Å°æÀ» ±â¿ï¿©¾ß ÇÕ´Ï´Ù.
Å×½ºÆ® Çϱâ :
make check 5ÀåGlibc-2.3.3ÀνºÅç¿¡¼ ÀÚ¼¼È÷ ¼³¸íÇß½À´Ï´Ù.
½Å°æ¾µ ÇÊ¿ä´Â ¾øÁö¸¸, GlibcÀνºÅç ´Ü°è¿¡¼ /etc/ld.so.conf °¡ ¾ø´Ù°í °æ°íÇÒ °ÍÀÔ´Ï´Ù. ¾Æ·¡ÀÇ ¸í·ÉÀ¸·Î ¾à°£ÀÇ ¼º°¡½Å °æ°í¸¦ ÇØ°áÇϼ¼¿ä.
touch /etc/ld.so.conf ÆÑŰÁö¸¦ ÀνºÅçÇϼ¼¿ä.
make install ¾Æ·¡ ¸í·ÉÀ» ÀÔ·ÂÇÏ¸é ¸ðµç ·ÎÄÉÀÏÀÌ ¼³Ä¡µÈ´Ù.
make localedata/install-locales ÀÌÀüÀÇ ¸í·ÉÀ» ½ÇÇàÇÔÀ¸·Î½á ¸ðµç ·ÎÄÉÀÏÀ» ¼³Ä¡ÇÒ ¼ö ÀÖ¾ú´Ù. ÇÏÁö¸¸ ¿øÇÏ´Â localses¸¸À» ¼³Ä¡ ÇÒ¼öµµ ÀÖ´Ù. localedef ¸í·ÉÀ» »ç¿ëÇÔÀ¸·Î¼ ÇÊ¿äÇÑ ·ÎÄÉÀϸ¸À» ¼³Ä¡ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. Glibc ¼Ò½ºÀÇ INSTALL ÆÄÀÏ¿¡¼ ÀÌ Á¤º¸¸¦ ãÀ» ¼ö ÀÖ´Ù. ¾ÕÀ¸·ÎÀÇ ÆÐŰÁö¸¦ ¼³Ä¡ÇϱâÀ§ÇÑ Å×½ºÆ®µé Áß¿äÇÑ ´Ù¼öÀÇ locales°¡ ÀÖ´Ù. ƯÈ÷ GCCÀÇ libstdc++ Å×½ºÅ͵éÀÌ ±×·¯ÇÏ´Ù. ¼³Ä¡¸¦ ÇÏ´Ùº¸¸é install-locales ¸ñÇ¥¸¦ ³Ñ¾î Å×½ºÆ®¸¦ ¼º°øÀûÀ¸·Î ½ÇÇàÇϱâÀ§ÇØ ÃÖ¼ÒÇÑÀ¸·Î locales¿¡ ¼³Ä¡µÉ°ÍÀÌ´Ù.
mkdir -p /usr/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 ¸¶Áö¸·À¸·Î linuxthreads ¸Þ´º¾ó ÆäÀÌÁö¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
make -C ../glibc-2.3.3-20031202/linuxthreads/man ±×¸®°í ¸¸µé¾îÁø ÆäÀÌÁö¸¦ ¼³Ä¡ÇÕ´Ï´Ù.
make -C ../glibc-2.3.3-20031202/linuxthreads/man install [edit]
1.1.11.2 Glibc ¼³Á¤ ¶¿ì¸®´Â /etc/nsswitch.conf ÆÄÀÏÀ» ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ¿Ö³ÄÇϸé, Glibc´Â ±âº»ÀûÀ¸·Î ÀÌ ÆÄÀÏÀÌ ¾ø°Å³ª ¼Õ»óµÇ¾úÀ»¶§ Glibc´Â ³×Æ®¿öÅ©¿Í °ü·ÃµÈ ÀÛ¾÷À» ÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. ¶ÇÇÑ ½Ã°£´ë¸¦ ¼³Á¤Çϱâ À§Çؼµµ ÇÊ¿äÇÕ´Ï´Ù.
¾Æ·¡ÀÇ ³»¿ëÀ» ÂüÁ¶ÇÏ¿©(½ÇÇàÇÏ¿©) /etc/nsswitch.conf ÆÄÀÏÀ» »ý¼ºÇÕ´Ï´Ù.
cat > /etc/nsswitch.conf << "EOF" # Begin /etc/nsswitch.conf passwd: files group: files shadow: files publickey: files hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: db files # End /etc/nsswitch.conf EOF ´ç½ÅÀÌ ÀÖ´Â ½Ã°£´ë¸¦ ã±âÀ§ÇØ ¾Æ·¡ÀÇ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϼ¼¿ä.
tzselect ´ç½ÅÀÇ À§Ä¡¿¡ °üÇÑ ¾à°£ÀÇ Áú¹®ÀÇ ´äº¯À» ÇÏ¸é ±× ½ºÅ©¸³Æ®´Â EST5EDT or Canada/Eastern ¿Í °°Àº ´ç½ÅÀÇ ½Ã°£´ëÀÇ À̸§À» Ãâ·ÂÇØ ÁÙ°ÍÀÔ´Ï´Ù. ±×¸®°í ³ª¼ ¾Æ·¡¿Í °°ÀÌ ÇÔÀ¸·Î½á /etc/localtime À» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
cp --remove-destination /usr/share/zoneinfo/Canada/Eastern /etc/localtime (Çѱ¹ÀÏ °æ¿ì¿¡´Â) cp --remove-destination /usr/share/zoneinfo/Asia/Seoul /etc/localtime ¿É¼ÇÀÌ ÀǹÌÇÏ´Â °Í:
[edit]
1.1.11.3 ´ÙÀ̳ª¹Í ·Î´õ ¼³Á¤ ¶±âº»ÀûÀ¸·Î µ¿Àû ·Î´õ(/lib/ld-linux.so.2)´Â /lib ¿Í /usr/lib¿¡¼ ãÀ¸¸ç ´ç½ÅÀÌ ÇÁ·Î±×·¥¿¡¼ µ¿Àû ¶óÀ̺귯¸®¸¦ ½ÇÇà½Ãų¶§ ÇÊ¿äÇÕ´Ï´Ù. ±×·¯³ª, ¸¸¾à ¶óÀ̺귯¸®°¡ /lib and /usr/lib¿ÜÀÇ ´Ù¸¥°÷¿¡ ÀÖ´Ù¸é, ´ç½ÅÀº /etc/ld.so.conf ÆÄÀÏ¿¡ µ¿Àû·Î´õ°¡ ¹ß°ßÇÒ ¼ö ÀÖµµ·Ï Ãß°¡ÇØ ÁÙ Çʿ䰡 ÀÖ½À´Ï´Ù. /usr/local/lib ¿Í /opt/lib µð·ºÅ丮´Â ÀϹÝÀûÀ¸·Î Ãß°¡ÀûÀ¸·Î Æ÷ÇÔ µË´Ï´Ù. ±×·¡¼ ¿ì¸®´Â ÀÌ µð·ºÅ丮µéÀ» µ¿Àû·Î´õÀÇ Å½»ö °æ·Î¿¡ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù.
¾Æ·¡ÀÇ ³»¿ëÀ¸·Î½á /etc/ld.so.conf ÆÄÀÏÀ» »õ·Î »ý¼ºÇÑ´Ù.
cat > /etc/ld.so.conf << "EOF" # Begin /etc/ld.so.conf /usr/local/lib /opt/lib # End /etc/ld.so.conf EOF [edit]
1.1.11.4 GlibcÀÇ ³»¿ë ¶Installed programs: catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump and zic
Installed libraries: ld.so, libBrokenLocale.[a,so], libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so and libutil.[a,so]
[edit]
1.1.11.5 ¿ä ¾à ¶catchsegv ÇÁ·Î±×·¥ÀÌ ¼¼±×¸ÕÆ® ºÎÀç·Î Á¾·áµÇ¾úÀ»¶§ ½ºÅà Ʈ·¹À̽º¸¦ »ý¼ºÇϴµ¥ »ç¿ëµÇ°ï ÇÑ´Ù.
gencat ¸Þ¼¼Áö ¸ñ·Ï »ý¼º.
getconf ½Ã½ºÅÛÀÇ ÀϹÝÀûÀÎ °¡º¯ÀÇ ÆÄÀÏÀÇ ¼³Á¤°ªÀ» º¸¿©ÁØ´Ù.
getent °ü¸®ÀÚ µ¥ÀÌÅÍ º£À̽º·ÎºÎÅÍ ¸ñ·ÏÀ» ¾ò´Â´Ù.
glibcbug ¹ö±× ¸®Æ÷Æ®¸¦ »ý¼ºÇÏ°í ±×°ÍÀ» À̸ÞÀÏÀ» º¸³½´Ù.
iconv ¹®ÀÚÀÇ º¯È¯À» ¼öÇàÇÑ´Ù.
iconvconfig iconv ¸ðµâÀÇ ºü¸¥ ½ÇÇàÀ»À§ÇØ ¼³Á¤ ÆÄÀÏÀ» »ý¼ºÇÑ´Ù.
ldconfig ·±Å¸ÀÓ ¹ÙÀεù½Ã µ¿Àû ¸µÄ¿¸¦ ¼³Á¤ÇÑ´Ù.
ldd °¢ ÇÁ·Î±×·¥À̳ª °øÀ¯¶óÀ̺귯¸®¿¡ ÇÊ¿äÇÑ °øÀ¯¶óÀ̺귯¸®¸¦ º¸°íÇÑ´Ù.
lddlibc4 objectÆÄÀϰú ÇÔ²² ldd¸í·ÉÀ» º¸Á¶ÇÑ´Ù.
locale is a Perl program that tells the compiler to enable or disable the use of POSIX locales for built-in operations. built-in ¼öÇàÀ» À§ÇØ POSIX locales¸¦ °¡´ÉÇϰÔÇϰųª ȤÀº ºÒ°¡´ÉÇÏ°Ô ÇÏ´Â ÄÄÆÄÀÏ·¯¶ó ºÒ¸®¿ì´Â PerlÇÁ·Î±×·¥ÀÌ´Ù.
localedef locale ÄÄÆÄÀÏ ¼³¸í¼.
mtrace...
nscd is a name service cache daemon providing a cache for the most common name service requests.
nscd_nischeck º¸È£ ¸ðµâÀÌ NIS+ ã´Âµ¥ ÇÊ¿äÇÑÁö ¾ÈÇÑÁö üũÇÑ´Ù.
pcprofiledump dumps information generated by PC profiling.
pt_chown is a helper program for grantpt to set the owner, group and access permissions of a slave pseudo terminal.
rpcgen generates C code to implement the RPC protocol.
rpcinfo makes an RPC call to an RPC server.
sln is used to make symbolic links. The program is statically linked, so it is useful for making symbolic links to dynamic libraries if the dynamic linking system for some reason is nonfunctional.
sprof reads and displays shared object profiling data.
tzselect asks the user about the location of the system and reports the corresponding time zone description.
xtrace traces the execution of a program by printing the currently executed function.
zdump is the time zone dumper.
zic is the time zone compiler.
ld.so is the helper program for shared library executables.
libBrokenLocale is used by programs, such as Mozilla, to solve broken locales.
libSegFault is a segmentation fault signal handler. It tries to catch segfaults.
libanl is an asynchronous name lookup library.
libbsd-compat provides the portability needed in order to run certain BSD programs under Linux.
libc is the main C library -- a collection of commonly used functions.
libcrypt is the cryptography library.
libdl is the dynamic linking interface library.
libg is a runtime library for g++.
libieee is the IEEE floating point library.
libm is the mathematical library.
libmcheck contains code run at boot.
libmemusage is used by memusage to help collect information about the memory usage of a program.
libnsl is the network services library.
libnss* are the Name Service Switch libraries, containing functions for resolving host names, user names, group names, aliases, services, protocols,and the like.
libpcprofile contains profiling functions used to track the amount of CPU time spent in which source code lines.
libpthread is the POSIX threads library.
libresolv contains functions for creating, sending, and interpreting packets to the Internet domain name servers.
librpcsvccontains functions providing miscellaneous RPC services.
librt contains functions providing most of the interfaces specified by the POSIX.1b Realtime Extension.
libthread_db contains functions useful for building debuggers for multi-threaded programs.
libutil contains code for "standard" functions used in many different Unix utilities.
[edit]
1.1.12 toolchain Àç Á¶Á¤ ¶ÀÌÁ¦ »õ C¶óÀ̺귯¸®µéÀº ¼³Ä¡°¡ ¿Ï·á µÇ¾ú°í, toolchainÀ» ´Ù½Ã Á¶ÀýÇÒ ¶§ÀÔ´Ï´Ù. ¿Ö³ÄÇϸé ÄÄÆÄÀÏµÈ ¿©·¯ ÇÁ·Î±×·¥ÀÌ »õ C¶óÀ̺귯¸®·Î ¸µÅ©µÉ °ÍÀ̱⠶§¹®ÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î, Àü Àå¿¡¼ ½ÃÀÛÇÑ "locking in"ºÎºÐ¿¡¼ ÇѰÍÀ» °Å²Ù·Î ÇѰÍÀÔ´Ï´Ù.
ù ¹øÂ°·Î ÇÒ°ÍÀº linker¸¦ Á¶ÀýÇÏ´Â °ÍÀÔ´Ï´Ù. À̰ÍÀ» À§ÇØ, ¿ì¸®´Â binutils¸¦ Áö¿ìÁö ¾Ê¾Ò½À´Ï´Ù Binutil¿¡ pass-2¿¡¼ º¸¿©ÁØ ¹æÄ§ÀÇ ½ÇÇà¿¡ ÀÇÇØ Á¶ÀýÇÑ linker¸¦ binutils-build µð·ºÅ丮¿¡ ¼³Ä¡ Çϼ¼¿ä.
root:/# cd /build/binutils-build/binutils-2.14(5Àå¿¡¼ ¼Ò½ºÀÇ ¾ÐÃàÀ» Ç®¾î ³õÀº µð·ºÅ丮) root:/build/binutils-build# make -C ld INSTALL=/tools/bin/install install Note: If you somehow missed the earlier warning to retain the Binutils source and build directories from the second pass in Chapter 5, or
¸ðµç ÄÄÆÄÀÏµÈ ÇÁ·Î±×·¥µéÀº ÀÌÁ¦ ºÎÅÍ /usr/lib ¿Í /libÀÇ ±× ¶óÀ̺귯¸®µé¿¡°Ô¸¸ ¸µÅ©µÉ °ÍÀÔ´Ï´Ù. The extra INSTALL=/tools/bin/install is needed because the Makefile created during the second pass still contains the reference to /usr/bin/install, which we obviously haven't installed yet. Some host distributions contain a ginstall symbolic link which takes precedence in the Makefile and thus can cause a problem here. The above command takes care of this also.
otherwise accidentally deleted them or just don't have access to them, don't worry, all is not lost. Just ignore the above command. The
result will be that the next package, Binutils, will link against the Glibc libraries in /tools rather than /usr. This is not ideal,
however, our testing has shown that the resulting Binutils program binaries should be identical.
ÀÌÁ¦ ´ç½ÅÀº BinutilÀÇ ¼Ò½º µð·ºÅ丮¸¦ Áö¿öµµ µË´Ï´Ù.
´ÙÀ½À¸·Î ÇÒ°ÍÀº »õ ´ÙÀ̳ª¹Í ¸µÄ¿¸¦ Æ÷ÀÎÆ®Çϱâ À§ÇØ GCC ½ºÆåÀ» ¼öÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù. Áö³¹ø¿¡ ÇÑ °Íó·³, ¿ì¸®´Â ÀÌ ÀÛ¾÷À» Çϱâ À§ÇØ sed¸¦ »ç¿ëÇÒ °ÍÀÔ´Ï´Ù.
SPECFILE=/tools/lib/gcc-lib/*/*/specs &
sed -e 's@ /tools/lib/ld-linux.so.2@ /lib/ld-linux.so.2@g' \
$SPECFILE > newspecfile &
mv -f newspecfile $SPECFILE &
unset SPECFILE
Áß¿ä: ¸¸¾à ´ç½ÅÀÌ ld-linux.so.2ÀÌ ¾Æ´Ñ ´ÙÀ̳ª¹Í ¸µÄ¿·Î À̸§µÈ °÷ÀÇ Ç÷§Æû¿¡¼ ÀÛ¾÷À» ÇÑ´Ù¸é , ´ç½ÅÀº ld-linux.so.2¸¦ ´ç½ÅÀÇ Ç÷§ÆûÀÇ ´ÙÀ̳ª¹Í ¸µÄ¿À̸§À¸·Î ¸í·ÉÇÏ¿© ´ë½ÅÇØ¾ß¸¸ ÇÕ´Ï´Ù.ÇÊ¿äÇÏ´Ù¸é the Section called Toolchain technical notes in Chapter 5À» ´Ù½Ã ÂüÁ¶Çϼ¼¿ä.
[edit]
1.1.12.1 ÁÖÀÇ ¶»õ·Ó°Ô ¼ÂÆÃÇÑ toolchainÀÌ Á¦´ë·Î µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇϱâ À§ÇØ ¾Æ·¡¿Í °°ÀÌ °£´ÜÇÑ Å×½ºÆ®¸¦ ÇսôÙ.
echo 'main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep ': /lib'
¸¸¾à ¸ðµç°ÍÀÌ ¿Ã¹Ù¸£°Ô ÀÛµ¿ÇÑ´Ù¸é, ¿¡·¯°¡ ¾øÀ»°ÍÀÌ´Ù. ±×¸®°í ¸¶Áö¸· ¸í·É Ãâ·ÂÀº:
[Requesting program interpreter: /lib/ld-linux.so.2] ¸¸¾à ´ç½ÅÀÌ À§¿Í °°Àº °á°ú¸¦ ¾òÁö ¸øÇ߰ųª, ¾Æ¹«·± Ãâ·Â °á°ú°¡ ¾ø¾ú´Ù¸é Å« ¹®Á¦°¡ ¹ß»ýÇÑ °ÍÀÔ´Ï´Ù. ±× ¿øÀÎÀº µüÈ÷ ¹¹¶ó Áý¾î³»¾î ¸»Çϱ⠾î·Á¿î ±×·± ¹®Á¦ÀÌÁö¸¸, ÇÑ °¡Áö È®½ÇÇÑ °ÍÀº Áö±Ý±îÁö ÇØ ¿Â °úÁ¤Áß¿¡ ¹®Á¦°¡ ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. ±× ¹®Á¦¸¦ ÇØ°áÇÏÁö ¸øÇÏ¸é ´õ ÀÌ»ó ¾Æ¹«°Íµµ ÇÒ ¼ö °¡ ¾ø½À´Ï´Ù. óÀ½ºÎÅÍ ´Ù½Ã ÇÑ ¹ø ÇØ º¸¼¼¿ä.
Çѹø¿¡ ¸ðµç°ÍÀÌ Àß µÇ¾ú´Ù¸é ½ÃÇè ÆÄÀÏÀ» ±ú²ýÀÌ Áö¿î´Ù:
rm dummy.c a.out [edit]
1.1.13 Binutils-2.14 ¼³Ä¡ ¶The Binutils package contains a linker, an assembler, and other tools for handling object files.
Approximate build time: 1.4 SBU Required disk space: 167 MBBinutils (2.14)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/binutils/ Bunutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
[edit]
1.1.13.1 Binutils ¼³Ä¡ ¶ÀÌÁ¦ pseudoÅ͹̳ÎÀÌ ch-root(su)ȯ°æ¿¡¼ Á¤È®ÇÏ°Ô µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇØ¾ß ÇÒ ½Ã°£ÀÔ´Ï´Ù:
expect -c "spawn ls" ¸¸¾à ´ç½ÅÀÌ ÀÔ·ÂÇÑ ³»¿ë°ú °°Àº ÀÀ´äÀ» ¹Þ¾Ò´Ù¸é Á¤»óÀÔ´Ï´Ù. ÇÏÁö¸¸ ±×·¸Áö ¾Ê°í ´Ù¸¥ ¸Þ¼¼Áö¸¦ ¹Þ¾Ò´Ù¸é:
The system has no more ptys. Ask your system administrator to create more.
´ç½ÅÀÇ ch-rootȯ°æÀº ÀûÀýÇÑ PTY¿¬»êÀ» ¼³Á¤ÇÏÁö ¸øÇÑ °ÍÀÔ´Ï´Ù. ÀÌ·±°æ¿ì, ±× ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ±â Àü±îÁö °è¼Ó ÁøÇàÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø´Ù.¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ proc°ú devpts ÆÄÀÏ ½Ã½ºÅÛ ¸¶¿îÆ® ¿Í MakedevºÎºÐÀ» ´Ù½Ã ÂüÁ¶ÇÏ±æ ¹Ù¶ø´Ï´Ù. .
binutils ¹®¼¿¡¼´Â binutils¸¦ ¼³Ä¡ÇÒ¶§ »õ·Î¿î µð·ºÅ丮¸¦ ¸¸µé¾î¼ ¼³Ä¡Çϴ°ÍÀ» ±ÇÀåÇÕ´Ï´Ù:
ÃÖÀûÈ µÇ¾îÀÖ´Â Ç÷¡±×(including the -march and -mcpu options)µéÀ» º¯°æÇϴ°ÍÀº ±×¸® ÁÁÁö ½À°üÀÌ ¾Æ´Õ´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à¿¡ ´ç½ÅÀÌ CFLAGS³ª CXXFLAG °°Àº ÀÌ¹Ì ÃÖÀûÈ µÇ¾îÀִ ȯ°æº¯¼öµéÀ» º¯°æÇßÀ» °æ¿ì¿¡´Â binutils¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä. mkdir -p /build/binutils_build cd /build/binutils_build tar zxvf /source/binutils-2.14.tar.gz -C ./ Binutils ÄÄÆÄÀÏ ÁغñÇϱâ:
cd /build/binutils_build/binutils-2.14 ./configure --prefix=/usr --enable-shared package ÄÄÆÄÀÏÇϱâ:
make tooldir=/usr Normally, the tooldir (the directory where the executables end up) is set to $(exec_prefix)/$(target_alias), which expands into, for example, /usr/i686-pc-linux-gnu. ÀÌÁ¦ºÎÅÍ´Â /usr ¾È¿¡ ±×·± µð·ºÅ丮°¡ ÀÖÀ» Çʿ䰡 ¾ø½À´Ï´Ù. ±×·± µð·ºÅ丮µéÀº Cross-compile (ÀÎÅÚ °è¿ PC¿¡¼ PowerPC °è¿¿¡¼ µ¹¾Æ°¡´Â ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ÇÏ´Â)À» ÇßÀ» °æ¿ì¿¡¸¸ »ç¿ëµË´Ï´Ù.
Áß¿ä: ÀÌ Àå¿¡¼´Â Test suite°¡ »ó´çÈ÷ Áß¿äÇÕ´Ï´Ù. ÁÖÀÇÇØ ÁÖ¼¼¿ä.
Test Çϱâ:
make check test suite¿¡ ´ëÇØ¼± the Section called Installing Binutils-2.14 - Pass 2 in Chapter 5 ¿¡ Àß ³ª¿Í ÀÖÀ¸¹Ç·Î ¹®Á¦°¡ »ý±â¸é ²À Âü°íÇÏ±æ ¹Ù¶ø´Ï´Ù.
Package ÀνºÅçÇϱâ:
make tooldir=/usr install libiberty Çì´õ ÆÄÀÏÀ» »ç¿ëÇÏ´Â ÆÑŰÁöµéÀ» À§ÇØ libibertyÇì´õµéÀ» ¼³Ä¡ÇսôÙ:
cp ./include/libiberty.h /usr/include [edit]
1.1.13.2 BinutilsÀÇ ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥: addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and strip
¼³Ä¡µÈ ¶óÀ̺귯¸®: libiberty.a, libbfd.[a,so] and libopcodes.[a,so]
[edit]
1.1.13.3 ¿ä¾à ¶addr2line translates program addresses to file names and line numbers. Given an address and the name of an executable, it uses the debugging information in the executable to figure out which source file and line number are associated with the address.
ar creates, modifies, and extracts from archives. An archive is a single file holding a collection of other files in a structure that makes it possible to retrieve the original individual files (called members of the archive).
as is an assembler. It assembles the output of gcc into object files.
c++filt is used by the linker to demangle C++ and Java symbols, to keep overloaded functions from clashing.
gprof displays call graph profile data.
ld is a linker. It combines a number of object and archive files into a single file, relocating their data and tying up symbol references.
nm lists the symbols occurring in a given object file.
objcopy is used to translate one type of object file into another.
objdump displays information about the given object file, with options controlling what particular information to display. The information shown is mostly only useful to programmers who are working on the compilation tools.
ranlib generates an index of the contents of an archive, and stores it in the archive. The index lists all the symbols defined by archive members that are relocatable object files.
readelf displays information about elf type binaries.
size lists the section sizes -- and the grand total -- for the given object files.
strings outputs for each file given the sequences of printable characters that are of at least the specified length (defaulting to 4) For object files it prints by default only the strings from the initializing and loading sections. For other types of files it scans the whole file.
strip discards symbols from object files.
libiberty contains routines used by various GNU programs, including getopt, obstack, strerror, strtol and strtoul.
libbfd is the Binary File Descriptor library.
libopcodes is a library for dealing with opcodes. It is used for building utilities like objdump. Opcodes are the "readable text" versions of instructions for the processor.
[edit]
1.1.14 GCC-3.3.2 ¼³Ä¡ ¶GCC ÆÑŰÁö¿¡´Â C³ª C++°ú °°Àº GNU compilerµéÀÌ ÀÖ½À´Ï´Ù.
Approximate build time: 11.7 SBU Required disk space: 294 MBGCC(3.3.2) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/pub/gnu/gcc/ Gcc No-FixincludesPatch¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®:
http://www.linuxfromscratch.org/patches/lfs/cvs/gcc-3.3.2-no_fixincludes-1.patch
GCC ¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
[edit]
1.1.14.1 GCC ¼³Ä¡ ¶±âº» ÃÖÀûÈ Ç÷¡±×(including the -march and -mcpu options)µéÀ» º¯°æÇϴ°ÍÀº ±×¸® ÁÁÁö ½À°üÀÌ ¾Æ´Õ´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à¿¡ ´ç½ÅÀÌ CFLAGS³ª CXXFLAG °°Àº ÀÌ¹Ì ÃÖÀûÈ µÇ¾îÀִ ȯ°æº¯¼öµéÀ» º¯°æÇßÀ» °æ¿ì¿¡´Â Glibc¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä.
¾ÐÃà Ç®±â:
mkdir -p /build/gcc_build cd /build/gcc_build tar zxvf /source/gcc-3.3.2.tar.gz -C ./ ÆÐÄ¡ Àû¿ëÇϱâ:
patch -Np1 -i ../gcc-3.3.2-no_fixincludes-1.patchNow apply a sed substitution that will suppress the installation of libiberty.a. We want to use the version of libiberty.a provided by Binutils: sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in GCC ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/usr \
--enable-shared --enable-threads=posix \
--enable-__cxa_atexit --enable-clocale=gnu \
--enable-languages=c,c++
ÆÑŰÁö ÄÄÆÄÀÏ:
make Áß¿ä: ÀÌ Àå¿¡¼´Â Test suite°¡ »ó´çÈ÷ Áß¿äÇÕ´Ï´Ù. ÁÖÀÇÇØ ÁÖ¼¼¿ä.
Å×½ºÆ®¸¦ ÇØ º¾½Ã´Ù. Å×½ºÆ® °á°ú¿¡¼ ¿¡·¯°¡ ¹ß»ýÇÏ´õ¶óµµ ¼³Ä¡¸¦ Æ÷±â ÇÏÁö ¸»°í °è¼Ó ³ë·ÂÇØ º¾½Ã´Ù.
make -k check test suite¿¡ ´ëÇØ¼± 5Àå GCC-3.3.2 - Pass 2 ÀνºÅç ¿¡ Àß ³ª¿Í ÀÖÀ¸¹Ç·Î ¹®Á¦°¡ »ý±â¸é ²À Âü°íÇÏ±æ ¹Ù¶ø´Ï´Ù
Package ¼³Ä¡Çϱâ:
make install ÀϺΠÆÑŰÁöµéÀº C PreProcess°¡ /lib ¾È¿¡ ¼³Ä¡µÈ °É·Î ¾Ë°í ÀÖ½À´Ï´Ù. ¿¡·¯¸¦ ¾ø¾Ö±â À§Çؼ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾î ÁݽôÙ.
ln -s /usr/bin/cpp /lib ¸¹Àº ÆÑŰÁöµéÀÌ Gcc´ë½Å cc¸¦ »ç¿ëÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ½Éº¼¸¯ ¸µÅ©¸¦ °É¾î ÁÖ¸é ¿¡·¯¸¦ ¹æÁö ÇÒ ¼ö ÀÖ½À´Ï´Ù.:
ln -s gcc /usr/bin/cc ÁÖÀÇ: Àü Àå¿¡¼ ÇÑ °Í°ú °°Àº sanity check¸¦ ÇØ º¸´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. toolchain ÀçÀû¿ëÀ» ÂüÁ¶Çؼ sanity check(dummy.c¸¦ ÄÄÆÄÀÏ ÇÏ´Â)¸¦ ÇØ º¾½Ã´Ù. ¹®Á¦°¡ »ý±ä´Ù¸é, 5Àå ¿¡¼ ÇÑ "GCC specs Patch" ºÎºÐºÎÅÍ À߸øµÇ¾úÀ» °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.
[edit]
1.1.14.2 GCC ³»¿ëµé ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: c++, cc (link to gcc), cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, and gcov
¼³Ä¡µÈ ¶óÀ̺귯¸®µé: libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] and libsupc++.a
[edit]
1.1.14.3 ¿ä¾à ¶cpp ´Â CÀü󸮱âÀÌ´Ù. À̰ÍÀº ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ #include¿Í #define¿Í ±×·± »óŵéÀ» ¼Ò½ºÆÄÀϾȿ¡¼ È®ÀåµÇ¾î °¡Áö´Â°ÍÀ» »ç¿ëÇÑ´Ù.
g++ ´Â C++ ÄÄÆÄÀÏ·¯ÀÌ´Ù.
gcc ´Â C ÄÄÆÄÀÏ·¯ÀÌ´Ù. ±×°ÍÀº ÇÁ·Î±×·¥ÀÇ ¼Ò½ºÄڵ带 ¾î¼ÀÄÚµå·Î º¯È¯Çϴµ¥ »ç¿ëµÈ´Ù.
gccbug ´Â ÁÁÀº bugº¸°í¼¸¦ ¸¸µå´Â µµ¿ò¸»ÀÌ »ç¿ëµÈ shell scriptÀÌ´Ù.
gcov ´Â ½ÃÇèÇÑ toolÀÇ Àû¿ë¹üÀ§ÀÌ´Ù. À̰ÍÀº °¡¹æ È¿°úÀûÀÎ ÃÖÀûÈµÈ ¹æ¹ýÀ» ã±âÀ§ÇØ ÇÁ·Î±×·¥À» ºÐ¼®Çϴµ¥ »ç¿ëµÈ´Ù.
libgcc* ´Â gcc¸¦ À§ÇÑ run-timeÁ¦°øÀ» Æ÷ÇÔÇÑ´Ù.
libstdc++ ´Â standard C++¶óÀ̺귯¸®ÀÌ´Ù. À̰ÍÀº ¸¹Àº ÀÚÁÖ »ç¿ëµÇ´Â ÇÔ¼öµéÀ» Æ÷ÇÔÇÑ´Ù.
libsupc++ Àº C++ÇÁ·Î±×·¥¾ð¾î¸¦ À§ÇÑ Á¦°øµÈ Àϰý󸮰úÁ¤À» Á¦°øÇÑ´Ù.
[edit]
1.1.15 Coreutils-5.2.1 ¼³Ä¡ ¶The Coreutils package contains utilities for showing and setting the basic system characteristics.
Approximate build time: 0.9 SBU Required disk space: 69 MBCoreutils (5.0)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/coreutils/ CoreutilsÀÇ ÆÐÄ¡¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®: http://lfs.osuosl.org/patches/lfs/5.1.1/ Coreutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.
Coreutils ¼³Ä¡
¾ÐÃàÇ®±â:
mkdir -p /build/coreutils_build cd /build/coreutils_build tar zxvf /source/coutils cd /build/coreutils_build/coreutils-5.2.1(Àü 5.2.1¹öÀüÀ¸·Î ¼³Ä¡Çß½À´Ï´Ù.) Net-tools¿¡ µé¾î ÀÖ´Â hostname ÇÁ·Î±×·¥ÀÇ ¹öÀüÀÌ ´õ ³ô±â ¶§¹®¿¡ Coreutils ¹öÀü¿¡ µé¾î ÀÖ´Â hostnameÀº ¼³Ä¡ÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ±×·¸°Ô Çϱâ À§Çؼ ÆÐÄ¡¸¦ Çսô٠:
patch -Np1 -i /source/coreutils-5.0-hostname-2.patchumame¿¡ -p ¿É¼ÇÀ» »ç¿ëÇϸé Ç×»ó "unknown" ¸Þ¼¼Áö°¡ ³ª¿À´Â ¿¡·¯°¡ ÀÖ½À´Ï´Ù. ÀÎÅÚ ±â¹Ý PC¿¡ ÇØ´çµË´Ï´Ù. patch -Np1 -i ../coreutils-5.0-uname.patch (¾Æ½±°Ôµµ ÀÌ ÆÐÄ¡¸¦ Àû¿ë½Ã۸é ÄÄÆÄÀÏÀ» ½ÇÆÐÇÕ´Ï´Ù. ÀÏ´Ü ÀÌ ÆÐÄ¡¸¦ Çϰí ÄÄÆÄÀÏÀ» ÇØ º¸°í ½ÇÆÐÇϸé ÀÌ ÆÐÄ¡¸¦ ÇÏÁö ¸¶¼¼¿ä.)Coreutils ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usrÆÑŰÁö ÄÄÆÄÀÏ: make5Àå¿¡¼ Coretuils¸¦ ¼³Ä¡ÇßÀ» ¶§´Â suÇÁ·Î±×·¥Àº ¼³Ä¡°¡ µÇÁú ¾Ê¾Ò½À´Ï´Ù. ¿Ö³ÄÇϸé suo¸¦ ¼³Ä¡Çϱâ À§Çؼ´Â root±ÇÇÑÀÌ ÀÖ¾î¾ß Ç߱⠶§¹®ÀÔ´Ï´Ù. ¾Æ·¡¿Í °°ÀÌ ÇÏ¸é ¼³Ä¡µË´Ï´Ù. make install-rootÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. Test suite¸¦ ¼öÇàÇϱâ À§Çؼ´Â dummy»ç¿ëÀÚ¿Í dummy ±×·ìÀ» Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. (°Ë»ç¸¦ ÇÏÁö ¾Ê°í ³Ñ¾î°¡µµ µË´Ï´Ù.) ¾Æ·¡¿Í °°ÀÌ echo ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© »ç¿ëÀÚ¿Í ±×·ìÀ» Ãß°¡ÇսôÙ:
echo "dummy1:x:1000" >> /etc/group echo "dummy2:x:1001:dummy" >> /etc/group echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd¾Æ·¡¿Í °°ÀÌ Çϸé Å×½ºÆ®ÀÇ ÀϺδ root·Î¼ ½ÇÇàÇÏ°Ô µË´Ï´Ù: make check-root³ª¸ÓÁö °Ë»çµéÀº dummy »ç¿ëÀÚ·Î ÇÕ´Ï´Ù: su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"dummy ±×·ì°ú »ç¿ëÀÚ¸¦ Áö¿ó½Ã´Ù: sed -i.bak '/dummy/d' /etc/passwd /etc/groupÆÑŰÁö ¼³Ä¡: make installÀϺΠÇÁ·Î±×·¥µéÀº Àû´çÇÑ À§Ä¡·Î ¿Å°Ü ÁݽôÙ:
mv /usr/bin/{basename,cat,chgrp,chmod,chown,cp,dd,df} /bin
mv /usr/bin/{date,echo,false,head,install,ln,ls} /bin
mv /usr/bin/{mkdir,mknod,mv,pwd,rm,rmdir,sync} /bin
mv /usr/bin/{sleep,stty,su,test,touch,true,uname} /bin
mv /usr/bin/chroot /usr/sbin
³ªÁß¿¡ ¼³Ä¡ÇÒ ProcpsÆÑŰÁöÀÇ kill ÇÁ·Î±×·¥À» »ç¿ëÇÒ °ÍÀ̹ǷΠcoreutilsÆÑŰÁöÀÇ killÇÁ·Î±×·¥Àº Áö¿ó½Ã´Ù:
rm /usr/bin/kill¸¶Áö¸·À¸·Î, symlinks¸¦ ¸¸µì½Ã´Ù: ln -s test /bin/[ ln -s ../../bin/install /usr/bin [edit]
1.1.15.1 CoreutilsÀÇ ¸ñ·Ï ¶ÀνºÅçµÈ ÇÁ·Î±×·¥µé: basename, cat, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, hostid, hostname, id, install, join, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, sort, split, stat, stty, su, sum, sync, tac, tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq, unlink, uptime, users, vdir, wc, who, whoami and yes
[edit]
1.1.15.2 ¿ä¾à ¶basename strips any path and a given suffix from the given file name.
cat concatenates files to standard output.
chgrp changes the group ownership of each given file to the given group. The group can be either given a a name or a numeric ID.
chmod changes the permissions of each given file to the given mode. The mode can be either a symbolic representation of the changes to make, or an octal number representing the new permissions.
chown changes the user and/or group ownership of each given file to the given user:group pair.
chroot runs a given command with the specified directory as the / directory. The given command can be an interactive shell. On most systems only root can do this.
cksum prints the CRC checksum and the byte counts of each specified file.
comm compares two sorted files, outputting in three columns the lines that are unique, and the lines that are common.
cp copies files.
csplit splits a given file into several new files, separating them according to given patterns or line numbers, and outputting the byte count of each new file.
cut prints parts of lines, selecting the parts according to given fields or positions.
date displays the current time in the given format, or sets the system date.
dd copies a file using the given blocksize and count, while optionally performing conversions on it.
df reports the amount of disk space available (and used) on all mounted file systems, or only on the file systems holding the given files.
dir is the same as ls.
dircolors outputs commands to set the LS_COLOR environment variable, to change the color scheme used by ls.
dirname strips the non-directory suffix from a given file name.
du reports the amount of disk space used by the current directory, or by each of the given directories including all their subdirectories, or by each of the given files.
echo displays the given strings.
env runs a command in a modified environment.
expand converts tabs to spaces.
expr evaluates expressions.
factor prints the prime factors of all specified integer numbers.
false does nothing, unsuccessfully. It always exits with a status code indicating failure.
fmt reformats the paragraphs in the given files.
fold wraps the lines in the given files.
groups reports a user's group memberships.
head prints the first ten lines (or the given number of lines) of each given file.
hostid reports the numeric identifier (in hexadecimal) of the host.
hostname reports or sets the name of the host.
id reports the effective user ID, group ID, and group memberships of the current user, or of a given user.
install copies files while setting their permission modes and, if possible, their owner and group.
join joins from two files the lines that have identical join fields.
link creates a hard link with the given name to the given file.
ln makes hard links or soft links between files.
logname reports the current user's login name.
ls lists the contents of each given directory. By default it orders the files and subdirectories alphabetically.
md5sum reports or checks MD5 checksums.
mkdir creates directories with the given names.
mkfifo creates FIFOs with the given names.
mknod creates device nodes with the given names. A device node is a character special file, or a block special file, or a FIFO.
mv moves or renames files or directories.
nice runs a program with modified scheduling priority.
nl numbers the lines from the given files.
nohup runs a command immune to hangups, with output redirected to a log file.
od dumps files in octal and other formats.
paste merges the given files, joining sequentially corresponding lines side by side, separated by TABs.
pathchk checks whether file names are valid or portable.
pinky is a lightweight finger. It reports some information about the given users.
pr paginates and columnates files for printing.
printenv prints the environment.
printf prints the given arguments according to the given format -- much like the C printf function.
ptx produces from the contents of the given files a permuted index, with each keyword in its context.
pwd reports the name of the current directory.
readlink reports the value of the given symbolic link.
rm removes files or directories.
rmdir removes directories, if they are empty.
seq prints a sequence of numbers, within a given range and with a given increment.
sha1sum prints or checks 160-bit SHA1 checksums.
shred overwrites the given files repeatedly with strange patterns, to make it real hard to recover the data.
sleep pauses for the given amount of time.
sort sorts the lines from the given files.
split splits the given file into pieces, by size or by number of lines.
stty sets or reports terminal line settings.
su runs a shell with substitute user and group IDs.
sum prints checksum and block counts for each given file.
sync flushes file system buffers. It forces changed blocks to disk and updates the super block.
tac concatenates the given files in reverse.
tail prints the last ten lines (or the given number of lines) of each given file.
tee reads from standard input while writing both to standard output and to the given files.
test compares values and checks file types.
touch changes file timestamps, setting the access and modification times of the given files to the current time. Files that do not exist are created with zero length.
tr translates, squeezes, and deletes the given characters from standard input.
true does nothing, successfully. It always exits with a status code indicating success.
tsort performs a topological sort. It writes a totally ordered list according to the partial ordering in a given file.
tty reports the file name of the terminal connected to standard input.
uname reports system information.
unexpand converts spaces to tabs.
uniq discards all but one of successive identical lines.
unlink removes the given file.
uptime reports how long the system has been running, how many users are logged on, and the system load averages.
users reports the names of the users currently logged on.
vdir is the same as ls -l.
wc reports the number of lines, words, and bytes for each given file, and a total line when more than one file is given.
who reports who is logged on.
whoami reports the user name associated with the current effective user ID.
yes outputs 'y' or a given string repeatedly, until killed.
[edit]
1.1.16 Zlib-1.2.1 ¼³Ä¡ ¶The Zlib package contains compression and uncompression routines used by some programs.
Approximate build time: 0.1 SBU Required disk space: 1.5 MBZib(1.2.1)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ® : http://www.gzip.org/zlib/ Zib¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Binutils, Coreutils, GCC, Glibc, Make, Sed.
Zib ¼³Ä¡
Zlib ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/usr --shared Note: Zlib is known to build its shared library incorrectly if CFLAGS is specified in the environment. If you are using your own CFLAGS variable, be sure to add the -fPIC directive to your CFLAGS for the duration of the above command, then remove it afterwards.
ÆÑŰÁö ÄÄÆÄÀÏ:
makeZlib ÆÑŰÁö´Â ÄÄÆÄÀÏÀÌ Á¦´ë·Î µÇ¾ú´ÂÁö¸¦ °Ë»çÇϱâ À§ÇÑ Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ZlibÀÇ Test suiteÀº ¼Óµµ°¡ ºü¸£°í ±²ÀåÈ÷ ½±½À´Ï´Ù. ±×·¯¹Ç·Î Çѹø ÇØ º¸±æ ¹Ù¶ø´Ï´Ù. ¾Æ·¡ ¸í·É¾î¸¦ ½ÇÇàÇÏ¸é °øÀ¯ ¶óÀ̺귯¸®¸¦ Å×½ºÆ® ÇÏ°Ô µË´Ï´Ù. make check°øÀ¯ ¶óÀ̺귯¸® ¼³Ä¡Çϱâ: make installÁ¤Àû ¶óÀ̺귯¸® ÄÄÆÄÀÏÇϱâ: make clean ./configure --prefix=/usr make¾Æ·¡Ã³·³ ½ÇÇàÇϸé Á¤Àû ¶óÀ̺귯¸®¸¦ °Ë»çÇÏ°Ô µË´Ï´Ù: make checkÁ¤Àû ¶óÀ̺귯¸® ¼³Ä¡: make installÁ¤Àû ¶óÀ̺귯¸®ÀÇ ½ÇÇà±ÇÇÑÀ» º¯°æÇսôÙ. chmod 644 /usr/lib/libz.a Áß¿ä ¶óÀ̺귯¸®µéÀ» /lib¿¡ À§Ä¡½ÃŰ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. /usr µð·ºÅ丮ÀÇ °æ¿ì´Â µ¶¸³µÈ ÆÄƼ¼Ç¿¡ ±¸¼ºÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. /binÀ̳ª /sbin¿¡ ÀÖ´Â Áß¿äÇÑ ÇÁ·Î±×·¥µéÀº /lib ÀÇ °¢Á¾ ¶óÀ̺귯¸®µéÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ±×·¯¹Ç·Î °¢Á¾ ¶óÀ̺귯¸®µéÀº °°Àº ÆÄƼ¼Ç¿¡ µÎ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. (/usr ´Â ´Ù¸¥ ÆÄƼ¼Ç¿¡ ±¸¼ºÇÏ´Â ÀÏÀÌ ¸¹À¸¹Ç·Î)
¾Æ·¡ ¸í·ÉÀ» ½ÇÇàÇØ¼ ¶óÀ̺귯¸®µéÀ» /lib·Î ¿Å±é½Ã´Ù.
mv /usr/lib/libz.so.* /lib/usr/lib/libz.soÀÇ ½Éº¼¸¯ ¸µÅ©¸¦ °íÃÄ ÁݽôÙ. ln -sf ../../lib/libz.so.1 /usr/lib/libz.so [edit]
1.1.16.2 ¿ä¾à ¶libz* contains compression and uncompression functions used by some programs.
[edit]
1.1.17 Mktemp-1.5 ¶The Mktemp package contains programs used to create secure temporary files in shell scripts.
Approximate build time: 0.1 SBU Required disk space: 317 KBThe installation dependencies for Mktemp haven't been checked yet. Installation of Mktemp Many scripts still use the deprecated tempfile program, which has functionality much the same as mktemp. Patch mktemp to include a tempfile wrapper:
patch -Np1 -i ../mktemp-1.5-add-tempfile.patchNow prepare Mktemp for compilation: ./configure --prefix=/usr --with-libcThe meaning of the configure option:
makeNow install it: make install make install-tempfile [edit]
1.1.17.2 Short descriptions ¶mktemp creates temporary files in a secure manner. It is used in scripts.
tempfile creates temporary files in a less secure manner than mktemp. It is installed for backwards-compatibility.
[edit]
1.1.18 Iana-Etc-1.00 ¶The Iana-Etc package provides data for network services and protocols.
Approximate build time: 0.1 SBU Required disk space: 641 KBThe installation dependencies for Iana-Etc haven't been checked yet. I [edit]
1.1.19 Findutils-4.1.20 ¼³Ä¡ ¶The Findutils package contains programs to find files. The finding is done either by doing a live recursive search through a directory tree, or by consulting a previously set up database.
Approximate build time: 0.2 SBU Required disk space: 7.5 MBFindutils (4.1.20)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://alpha.gnu.org/gnu/findutils/ FindutilsCoreutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.
[edit]
1.1.19.1 Findutils ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/findutils_build cd /build/findutils_build tar zxvf /source/findutils-4.1.20.tar.gz -c ./ cd /build/findutils_build/findutils-4.1.20 Findutils ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/usr --libexecdir=/usr/lib/locateµ¥ÀÌŸº£À̽ºÀÇ ±âº» À§Ä¡´Â /usr/varÀÔ´Ï´Ù. FHS À» ±âÁØÀ¸·Î µ¥ÀÌÅÍ º£À̽º ÀÇ À§Ä¡¸¦ ÁöÁ¤ÇϰíÀÚ Çϸé configure¸¦ ÇÒ ¶§, ½Ã۴´ë·Î ÀÌ --localstatedir=/var/lib/misc ¸¦ Ãß°¡Çϼ¼¿ä. ÆÑŰÁö ÄÄÆÄÀÏ:
makeÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ÇÏ°í ½ÍÀ¸¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä. make checkÆÑŰÁö ¼³Ä¡: make install [edit]
1.1.19.2 Findutils ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: bigram, code, find, frcode, locate, updatedb and xargs
[edit]
1.1.19.3 ¿ä¾à ¶bigram Àº µ¥ÀÌŸº£À̽ºÀÇ À§Ä¡¸¦ »êÃâÇØ³»±â À§ÇØ Àü¿¡ »ç¿ëµÇ¾ú´Ù.
code ´Â µ¥ÀÌŸº£À̽ºÀÇ À§Ä¡¸¦ »êÃâÇØ³»±â À§ÇØ Àü¿¡ »ç¿ëµÇ¾ú´Ù. ±×°ÍÀº frcodeÀÇ Á¶»óÀÌ´Ù.
find ´Â ¿°ÅµÈ criteria¸¦ °°Àº ÆÄÀÏÀ» À§ÇÑ ÀÔ·ÂÇÑ µð·ºÅ丮À» ã´Â´Ù.
frcode ´Â ÆÄÀÏÀ̸§ÀÇ ¸ñ·ÏÀ» ¾ÐÃàÇϱâÀ§ÇØ updatedb¿¡ ÀÇÇØ ºÒ·ÁÁø´Ù. ±×°ÍÀº ¾Õ-¾ÐÃàÀ» »ç¿ëÇÑ´Ù, 4¿¡¼ 5±îÁöÀÇ ¿ø¼Ò¿¡ ÀÇÇÑ µ¥ÀÌŸº£À̽º»çÀÌÁ ÁÙÀδÙ.
locate ´Â ÆÄÀÏÀ̸§µéÀÇ µ¥ÀÌŸº£À̽º¸¦ ÅëÇØ ã´Â´Ù. ±×¸®°í ±× À̸§µéÀ» º¸°íÇÑ´Ù.
updatedb ´Â µ¥ÀÌŸ¹èÀ̽º À§Ä¡¸¦ ¾÷µ¥ÀÌÆ®ÇÑ´Ù. ±×°ÍÀº Àüü ÆÄÀϽýºÅÛÀ» Á¶»çÇÑ´Ù.(´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛÀ» Æ÷ÇÔ. ÇöÁ¦ ¸¶¿îÆ®µÈ, ¸¸¾à ¾ê±â ÇÏÁö ¾Ê¾Ò´Ù¸é) ±×¸®°í µ¥ÀÌŸº£À̽º¾È¿¡ ãÀº ¸ðµç ÆÄÀÏÀ̸§À» ¿Ã¸°´Ù.
xargs ´Â ÀÔ·ÂµÈ ÆÄÀÏÀÇ ¸ñ·Ï¿¡¼ ¸í·ÉÀ» °ø±ÞÇϴµ¥ »ç¿ëÇÒ¼öÀÖ´Ù.
[edit]
1.1.20 Gawk-3.1.3 ¼³Ä¡ ¶The Gawk package contains programs for manipulating text files.
Approximate build time: 0.2 SBU Required disk space: 17 MBGawk (3.1.3)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/gawk/ Gawk¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.
[edit]
1.1.20.1 Gawk ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/gawk_build cd /build/gawk_build tar zxvf /source/gawk-3.1.3.tar.gz -C ./ cd /build/gawk_build/gawk-3.1.3GawkÀ» ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usr --libexecdir=/usr/lib ÆÑŰÁö ÄÄÆÄÀÏ:
makeÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ¿øÇÑ´Ù¸é ´ÙÀ½ ¸í·ÉÀ» ÀÔ·ÂÇϼ¼¿ä. make check±×¸®°í ÆÐŰÁö ¼³Ä¡: make install [edit]
1.1.20.2 Gawk ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥: awk (link to gawk), gawk, gawk-3.1.3, grcat, igawk, pgawk, pgawk-3.1.3 and pwcat
[edit]
1.1.20.3 ¿ä¾à ¶gawk is a program for manipulating text files. It is the GNU implementation of awk.
grcat dumps the group database /etc/group.
igawk gives gawk the ability to include files.
pgawk is the profiling version of gawk.
pwcat dumps the password database /etc/passwd.
[edit]
1.1.21 Ncurses-5.4 ¼³Ä¡ ¶The Ncurses package contains libraries for the terminal-independent handling of character screens.
Approximate build time: 0.6 SBU Required disk space: 27 MB Ncurses (5.4)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://ftp.gnu.org/gnu/ncurses/
Ncurses¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.
[edit]
1.1.21.1 Ncurses ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/ncurses_build cd /build/ncurses_build tar zxvf /source/ncurses-5.4.tar.gz -C./ cd /build/ncurses_build/ncurses-5.4 NcursesÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/usr --with-shared --without-debugÆÑŰÁö ÄÄÆÄÀÏ: makeÆÑŰÁö ¼³Ä¡: make installNcurses ¶óÀ̺귯¸®µéÀÇ ÆÛ¹Ì¼Ç º¯°æÇϱâ: chmod 755 /usr/lib/*.5.4 ±×¿Ü ¶óÀ̺귯¸®µéÀÇ ÆÛ¹Ì¼Ç º¯°æÇϱâ:
chmod 644 /usr/lib/libncurses++.a¶óÀ̺귯¸®µéÀ» /lib·Î ¿Å±â¼¼¿ä: mv /usr/lib/libncurses.so.5* /lib/lib·Î ¶óÀ̺귯¸®µéÀ» ¿Å±â°Ô µÇ¸é, ÀϺΠ½Éº¼¸¯ ¸µÅ©µéÀº Á¸ÀçÇÏÁöµµ ¾Ê´Â ÆÄÀϵéÀ» °¡¸£Å°´Â »óŰ¡ µË´Ï´Ù. ¾Æ·¡ ¸í·ÉÀ» ½ÇÇàÇØ¼ ½Éº¼¸¯¸µÅ©¸¦ ´Ù½Ã ¸¸µé¾î ÁݽôÙ: ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so ln -sf libncurses.so /usr/lib/libcurses.so [edit]
1.1.21.2 Ncurses ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: captoinfo (link to tic), clear, infocmp, infotocap (link to tic), reset (link to tset), tack, tic, toe, tput and tset
¼³Ä¡µÈ ¶óÀ̺귯¸®µé: libcurses.[a,so] (link to libncurses.[a,so]), libform.[a,so], libmenu.[a,so], libncurses++.a, libncurses.[a,so], libpanel.[a,so]
[edit]
1.1.21.3 ¿ä¾à ¶captoinfo converts a termcap description into a terminfo description.
clear clears the screen, if this is possible.
infocmp compares or prints out terminfo descriptions.
infotocap converts a terminfo description into a termcap description.
reset reinitializes a terminal to its default values.
tack is the terminfo action checker. It is mainly used to test the correctness of an entry in the terminfo database.
tic is the terminfo entry-description compiler. It translates a terminfo file from source format into the binary format needed for the ncurses library routines. A terminfo file contains information on the capabilities of a certain terminal.
toe lists all available terminal types, for each giving its primary name and its description.
tput makes the values of terminal-dependent capabilities available to the shell. It can also be used to reset or initialize a terminal, or report its long name.
tset can be used to initialize terminals.
libncurses* contain functions to display text in many complicated ways on a terminal screen. A good example of the use of these functions is the menu displayed during the kernel's make menuconfig.
libform* contain functions to implement forms.
libmenu* contain functions to implement menus.
libpanel* contain functions to implement panels.
[edit]
1.1.22 Vim-6.2 ¼³Ä¡ ¶The Vim package contains a powerful text editor.
Approximate build time: 0.4 SBU Required disk space: 34 MBVim (6.2) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.vim.org/pub/editors/vim/unix/ Vim¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.
Vim ´ë¾È
Emacs, Joe, ¶Ç´Â Nano °°Àº ´Ù¸¥ ¿¡µðÅ͵éÀ» »ç¿ëÇÏ°í ½ÍÀ» °æ¿ì¿¡´Â-- http://www.linuxfromscratch.org/blfs/view/stable/postlfs/editors.html ¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
[edit]
1.1.22.1 Vim ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/vim_build cd /build/vim_build tar jxvf /source/vim-6.3.tar.bz2 -C ./ cd /build/vim_build/vim-6.3 vimrc ¿Í gvimrc ÆÄÀÏÀÇ ±âº»À§Ä¡¸¦ /etc·Î ¹Ù²ã ÁÖ¼¼¿ä.
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.hVimÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usrÆÑŰÁö ÄÄÆÄÀÏ: makeÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, Vim test suite´Â ¸¹Àº ¾²·¹±â Ãâ·Â°ªµéÀ» º¸¿© ÁÙ °ÍÀ̰í, °¡²û¾¿Àº Å͹̳ÎÀ» ¸ØÃß°Ô Çϱ⵵ ÇÕ´Ï´Ù. ±×·¯¹Ç·Î ²À ÇÏ½Ç ÇÊ¿ä´Â ¾ø½À´Ï´Ù. Vim test suite¸¦ ½ÇÇàÇϽ÷Á¸é, ´ÙÀ½ ¸í·ÉÀ» ÀÔ·ÂÇϼ¼¿ä: make testÆÑŰÁö ¼³Ä¡: make install´ÙÀ½°ú °°ÀÌ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾î ÁÖ¼¼¿ä. (vi¿¡ Àͼ÷ÇÑ »ç¿ëÀÚµéÀ» À§Çؼ..) ln -s vim /usr/bin/vi´ç½ÅÀÇ LFS ½Ã½ºÅÛ¿¡ XÀ©µµ¿ì¸¦ ¼³Ä¡ÇÒ ¿¹Á¤À̶ó¸é, VimÀ» Àç ÄÄÆÄÀÏ ÇØ¼ X¿¡ ¼³Ä¡ÇÏ°í ½Í¾îÁú °ÍÀÔ´Ï´Ù. VimÀÇ GUI¹öÀüÀ» »ç¿ëÇÏ·Á¸é X À©µµ¿ì¿Í ±× ¹Û¿¡ ´Ù¸¥ ¶óÀ̺귯¸®µéÀ» ¸ÕÀú ¼³Ä¡ÇØ¾ß ÇÕ´Ï´Ù. ´õ ¸¹Àº Á¤º¸´Â Vim¹®¼¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. [edit]
1.1.22.2 Vim ¼³Á¤ ¶±âº»ÀûÀ¸·Î, vimÀº vi-compatible¸ðµå·Î ½ÇÇàµË´Ï´Ù. ÇÏÁö¸¸, ¸î¸î »ç¶÷µéÀº ÀÚ½ÅÀÇ ¹æ¹ý(ÀÌ Ã¥¿¡¼± ´Ù·çÁö ¾Ê½À´Ï´Ù. )À¸·Î vimÀ» ½ÇÇàÇϱ⸦ ¿øÇÕ´Ï´Ù. ¾Æ·¡¿Í °°ÀÌ ±âº»ÀûÀÎ vim±¸¼º ÆÄÀÏÀ» ¸¸µå¼¼¿ä.
cat > /etc/vimrc << "EOF"
" Begin /etc/vimrc
set nocompatible
set backspace=2
syntax on
" End /etc/vimrc
EOF
The set nocompatible will make vim behave in a more useful way than the default vi-compatible manner. The set backspace=2 allows backspacing over line breaks, autoindent and the start of insert. And the syntax on switches on vim's semantic colouring.
[edit]
1.1.22.3 Vim ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥: efm_filter.pl, efm_perl.pl, ex (link to vim), less.sh, mve.awk, pltags.pl, ref, rview (link to vim), rvim (link to vim), shtags.pl, tcltags, vi (link to vim), view (link to vim), vim, vim132, vim2html.pl, vimdiff (link to vim), vimm, vimspell.sh, vimtutor and xxd
[edit]
1.1.22.4 ¿ä¾à ¶efm_filter.pl is a filter for creating an error file that can be read by vim.
efm_perl.pl reformats the error messages of the Perl interpreter for use with the quickfix mode of vim.
ex starts vim in ex mode.
less.sh is a script that starts vim with less.vim.
mve.awk processes vim errors.
pltags.pl creates a tags file for perl code, for use by vim.
ref checks the spelling of arguments.
rview is a restricted version of view: no shell commands can be started and view can't be suspended.
rvim is a restricted version of vim: no shell commands can be started and vim can't be suspended.
shtags.pl generates a tag file for perl scripts.
tcltags generates a tag file for TCL code.
vi starts vim in vi-compatible mode.
view starts vim in read-only mode.
vim is the editor.
vim132 starts vim with the terminal in 132-column mode.
vim2html.pl converts vim documentation to HTML.
vimdiff edits two or three versions of a file with vim and show differences.
vimm enables the DEC locator input model on a remote terminal.
vimspell.sh is a script which spells a file and generates the syntax statements necessary to highlight in vim.
vimtutor teaches you the basic keys and commands of vim.
xxd makes a hexdump of the given file. It can also do the reverse, so it can be used for binary patching.
[edit]
1.1.23 M4-1.4 ¼³Ä¡ ¶The M4 package contains a macro processor.
Approximate build time: 0.1 SBU Required disk space: 3.0 MBM4 (1.4)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/m4/ M4¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.
[edit]
1.1.23.1 M4 ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/m4_build cd /build/m4_build tar zxvf /source/m4-1.4.tar.gz -C ./ cd /build/m4_build/m4-1.4M4ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usrÆÑŰÁö ÄÄÆÄÀÏ: makeÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ¿øÇÑ´Ù¸é ´ÙÀ½ ¸í·É¾î¸¦ ½ÇÇàÇϼ¼¿ä. make checkÆÑŰÁö ¼³Ä¡: make install [edit]
1.1.23.3 ¿ä¾à ¶m4 copies the given files while expanding the macros that they contain. These macros are either built-in or user-defined and can take any number of arguments. Besides just doing macro expansion, m4 has built-in functions for including named files, running Unix commands, doing integer arithmetic, manipulating text in various ways, recursion, and so on. The m4 program can be used either as a front-end to a compiler or as a macro processor in its own right.
[edit]
1.1.24 Bison-1.875 ¼³Ä¡ ¶The Bison package contains a parser generator.
Approximate build time: 0.6 SBU Required disk space: 10.6 MBBison (1.875) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/bison/ Bison ÀÇ ÆÐÄ¡¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®:
http://lfs.osuosl.org/patches/lfs/5.1.1/
Bison¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, M4, Make, Sed.
[edit]
1.1.24.1 Bison ¼³Ä¡ ¶¾ÐÃà Ç®±â:
mkdir -p /build/bison_build cd /build/bison_build tar zxvf /source/bison-1.875.tar.gz -C ./ cd /build/bison_build/bison-1.875ÆÐÄ¡Çϱâ: patch -Np1 -i /source/bison-1.875-attribute.patchBison ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usrÆÑŰÁö ÄÄÆÄÀÏ: makeÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ÇÏ°í ½Í´Ù¸é ´ÙÀ½ ¹®ÀåÀ» ½ÇÇàÇϼ¼¿ä.(´ë½Å ½Ã°£Àº Á» ¿À·¡ °É¸³´Ï´Ù.) make check ±×¸®°í ÆÐŰÁö¸¦ ¼³Ä¡:
make install [edit]
1.1.24.3 ¿ä¾à ¶bison generates, from a series of rules, a program for analyzing the structure of text files. Bison is a replacement for yacc (Yet Another Compiler Compiler).
yacc is a wrapper for bison, meant for programs that still call yacc instead of bison. It calls bison with the -y option.
liby.a is the Yacc library containing implementations of Yacc-compatible yyerror and main functions. This library is normally not very useful, but POSIX requires it.
[edit]
1.1.25 Less-381 ¼³Ä¡ ¶The Less package contains a text file viewer.
Approximate build time: 0.1 SBU Required disk space: 3.4 MBLess (381) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/less/ Less¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.
[edit]
1.1.25.1 Less ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/less_build cd /build/less_build tar zxvf /source/less-381.tar.gz -C ./ cd /build/less_build/less-381 Less ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/usr --bindir=/bin --sysconfdir=/etcConfigure ¿É¼ÇÀÇ ÀǹÌ:
makeÆÑŰÁö ¼³Ä¡Çϱâ: make install [edit]
1.1.25.3 ¿ä¾à ¶less is a file viewer or pager. It displays the contents of the given file, letting you scroll around, find strings, and jump to marks.
lessecho is needed to expand metacharacters, such as * and ?, in filenames on Unix systems.
lesskey is used to specify the key bindings for less.
[edit]
1.1.26 Groff-1.19 ¼³Ä¡ ¶The Groff package contains programs for processing and formatting text.
Approximate build time: 0.5 SBU Required disk space: 43 MBGroff (1.19) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ® : ftp://ftp.gnu.org/gnu/groff/ Groff¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.
[edit]
1.1.26.1 Groff ¼³Ä¡ ¶¾ÐÃà Ç®±â:
mkdir -p /build/groff_build cd /build/groff_build tar zxvf /source/groff-1.19.tar.gz -C ./ cd /groff-1.19 Groff´Â ±âº» ¹®¼ »çÀÌÁ Æ÷ÇÔÇϴ ȯ°æº¯¼ö PAGE¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ¹Ì±¹¿¡¼´Â PAGE=letter·Î ÁöÁ¤ÇÏÁö¸¸, ¸¸¾à ´ç½ÅÀÌ ¹Ì±¹ÀÌ ¾Æ´Ñ ´Ù¸¥ °÷¿¡¼ »ì°í ÀÖ´Ù¸é PAGE=letter¸¦ PAGE=A4·Î ¹Ù²ã ÁÖ¾î¾ß ÇÕ´Ï´Ù.
GroffÄÄÆÄÀÏ ÁغñÇϱâ:
PAGE=A4 ./configure --prefix=/usr (PAGE¸¦ Çѱ¹ ½ÇÁ¤¿¡ ¸Â°Ô A4·Î)ÆÑŰÁö ÄÄÆÄÀÏ: makeÆÑŰÁö ¼³Ä¡: make install xman°°Àº ÀϺΠdocumentation programµéÀº ´ÙÀ½°ú °°ÀÌ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾î ÁÖÁö ¾ÊÀ¸¸é ½ÇÇàµÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù:
ln -s soelim /usr/bin/zsoelim ln -s eqn /usr/bin/geqn ln -s tbl /usr/bin/gtbl [edit]
1.1.26.2 Groff ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥: addftinfo, afmtodit, eqn, eqn2graph, geqn (link to eqn), grn, grodvi, groff, groffer, grog, grolbp, grolj4, grops, grotty, gtbl (link to tbl), hpftodit, indxbib, lkbib, lookbib, mmroff, neqn, nroff, pfbtops, pic, pic2graph, post-grohtml, pre-grohtml, refer, soelim, tbl, tfmtodit, troff and zsoelim (link to soelim)
[edit]
1.1.26.3 ¿ä¾à ¶addftinfo reads a troff font file and adds some additional font-metric information that is used by the groff system.
afmtodit creates a font file for use with groff and grops.
eqn compiles descriptions of equations embedded within troff input files into commands that are understood by troff.
eqn2graph converts an EQN equation into a cropped image.
grn is a groff preprocessor for gremlin files.
grodvi is a driver for groff that produces TeX dvi format.
groff is a front-end to the groff document formatting system. Normally it runs the troff program and a post-processor appropriate for the selected device.
groffer displays groff files and man pages on X and tty.
grog reads files and guesses which of the groff options -e, -man, -me, -mm, -ms, -p, -s, and -t are required for printing files, and reports the groff command including those options.
grolbp is a groff driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser printers).
grolj4 is a driver for groff that produces output in PCL5 format suitable for an HP Laserjet 4 printer.
grops translates the output of GNU troff to Postscript.
grotty translates the output of GNU troff into a form suitable for typewr |









