LFS/Building
|
LDAP › LDAP-Tips › LE16 › LFS › LFS/ÀÛ¾÷Åä·Ð › LFS/Building ÇöÀç Çѱ۳»¿ëÀº 5.1.pre1 ¹öÀü ³»¿ëÀÔ´Ï´Ù. 5.1.1 ´Â ¾ÆÁÖ ¾à°£ Â÷À̰¡ ÀÖ½À´Ï´Ù. ¿ì¼± ¿Â°Ü³õ°í, ¼öÁ¤À» Çϵµ·Ï ÇϰڽÀ´Ï´Ù.
Contents
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 ¼³Ä¡
µð¹ö±ë ±âÈ£¿¡ °üÇØ
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¸¦ Çϱâ À§ÇØ ¾î¶² ´Ù¸¥ ÆÐŰÁöµéÀÌ ÇÊ¿äÇÑÁö. ÀνºÅç ¸í·É¾îµéÀÌ ÇÁ·Î±×·¥°ú ¶óÀ̺귯¸® ¸®½ºÆ®¸¦ µû¸¥ÈÄ ÆÐŰÁö´Â ÀÌ ÂªÀº ¼³¸íµéµµ ÇÔ²² ÂüÁ¶ÇÏ¿© ÀνºÅçÇÑ´Ù.
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 ȯ°æ¿¡¼ ÀÌ ÆÄÀÏ ½Ã½ºÅÛÀÌ ¸¶¿îÆ® µÇ¾ú´ÂÁö üũ ÇÏ´Â °ÍÀº ¾ÆÁÖ Áß¿äÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¹®Á¦°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ´Ù. 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 ÆÄÀÏÀ» ¸¸µéÁö ¾Ê¾Ò±â ¶§¹®¿¡ »ý±â´Â ¸Þ¼¼Áö´Ï±î ½Å°æ ¾È ¾²¼Åµµ µË´Ï´Ù. 1.1.4 ±ÇÇÑ ¹Ù²Ù±â ¶ÀÚ, Áö±Ý±îÁö /tools µð·ºÅ丮´Â lfs °èÁ¤ÀÇ ¼ÒÀ¯¿´½À´Ï´Ù. ¾ÕÀ¸·Î °è¼Ó lfs½Ã½ºÅÛÀ» ±¸ÃàÇϱâ À§Çؼ´Â /tools ȯ°æÀ» °è¼Ó À¯ÁöÇØ¾ß ÇÕ´Ï´Ù.
ÇÏÁö¸¸ /toolsÀÇ ¼ÒÀ¯ÀÚ°¡ lfs »ç¿ëÀÚÀ̱⠶§¹®¿¡ Á¦´ë·Î »ç¿ëÇÒ ¼ö ¾øÀ» °ÍÀÔ´Ï´Ù. ±×·¸´Ù°í ÇØ¼ »õ·Î lfs»ç¿ëÀÚ¸¦ Ãß°¡Çؼ Çϱ⿡´Â À§Çè ºÎ´ãÀÌ ¸¹½À´Ï´Ù. ±×·¡¼ ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇØ¼ Áö±ÝºÎÅÍ /tools µð·ºÅ丮¸¦ ÀÚÀ¯·Ó°Ô »ç¿ë ÇÒ ¼ö ÀÖµµ·Ï ¸¸µé °ÍÀÔ´Ï´Ù.
chown -R 0:0 /tools ¿É¼ÇÀ» »ìÆìº¸¸é "0:0" Àº "root:root"¿Í µ¿ÀÏÇÕ´Ï´Ù. ¿Ö ÀÌ·¸°Ô Çϳĸé chown ÇÁ·Î±×·¥Àº ÀÌ·¸°Ô ÇÒ °æ¿ì /etc/passwd ÆÄÀÏÀÌ »ý¼ºµÇ¾î ÀÖÁö ¾Ê´õ¶óµµ ¿¡·¯¸¦ ¹ß»ý½ÃŰÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.
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¿¡¼ °¡Àå³ôÀº ºñÆ®)
1.1.5.1 FHS compliance Note ¶FHSÇ¥ÁØ¿¡ µû¶ó µð·ºÅ丮¸¦ »ý¼º Çß½À´Ï´Ù. ( http://www.pathname.com/fhs/¿¡¼ ÂüÁ¶ °¡´ÉÇÕ´Ï´Ù). ÀÌ Ç¥ÁØ¿¡¼´Â /usr/local/games ¿Í /usr/share/games¸¦ ¸¸µé°ÍÀ» ¿ä±¸ÇÕ´Ï´Ù. ÇÏÁö¸¸, À̰͵éÀº ±âº» ½Ã½ºÅÛÀ» À§Çؼ´Â ÁÁÁö ¾Ê½À´Ï´Ù. ¾î·µç. ´ç½ÅÀÇ FHS ½Ã½ºÅÛÀº ´ç½ÅÀÌ ¿øÇÏ´Â ´ë·Î ÀÚÀ¯·Ó°Ô ¸¸µå¼¼¿ä. FHS ¿¡¼´Â /usr/local/share µð·ºÅ丮 ±¸Á¶¿¡ ´ëÇØ¼ ¸íÈ®ÇÏ°Ô Á¤ÀÇÇϰí ÀÖÁö ¾Ê½À´Ï´Ù. ±×·¯´Ï±î ¿ì¸®°¡ ¿øÇÏ´Â ´ë·Î ÀÚÀ¯·Ó°Ô ¸¸µì½Ã´Ù.
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
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 À߸ø ½ÃµµµÈ ·Î±×ÀÎÀ» ±â·ÏÇÕ´Ï´Ù.
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.
1.1.9 Linux-2.4.24 Çì´õ ¼³Ä¡ ¶¿ªÁÖ)5.1.1 ¹öÀü¿¡´Â 2.4.26 À» »ç¿ëÇÕ´Ï´Ù. Â÷ÈÄ¿¡ º¯°æÇϵµ·Ï ÇϰڽÀ´Ï´Ù.
Approximate build time: 0.1 SBU Required disk space: 186 MB 1.1.9.1 kernel Çì´õ ¼³Ä¡ ¶¿ì¸®´Â ¾ÆÁ÷ »õ Ä¿³Î ÄÄÆÄÀÏÀ» ¿øÇÏÁö ¾Ê½À´Ï´Ù. -- Ä¿³Î ÄÄÆÄÀÏÀº ¸ðµç ÆÐŰÁö ¼³Ä¡¸¦ ³¡³½ ÈÄ¿¡ ÇÒ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ¾î¶² ÆÐŰÁöµéÀº Ä¿³Î Çì´õ ÆÄÀϵéÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ±×·¡¼ Ä¿³Î¼Ò½ºÀÇ ¾ÐÃàÀ» Ç®°í, °£´ÜÇÑ ¼³Á¤À» Çϰí, Çì´õ ÆÄÀϵéÀ» Àû´çÇÑ À§Ä¡·Î º¹»çÇÒ °ÍÀÔ´Ï´Ù.
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À» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇϰí ÀÖ½À´Ï´Ù.
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 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. 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.
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 1.1.10.3 ¿ä¾à ¶manual pages´Â C¿Í C++ÇÔ¼ö, Áß¿äÇÑ µð¹ÙÀ̽º ÆÄÀϵé, Áß¿äÇÑ ±¸¼º ÆÄÀϵéÀ» ¼¼úÇÑ ÆäÀÌÁöÀÔ´Ï´Ù.
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.
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 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 ¿É¼ÇÀÌ ÀǹÌÇÏ´Â °Í:
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 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
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.
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À» ´Ù½Ã ÂüÁ¶Çϼ¼¿ä.
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 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.
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 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.
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.
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" ºÎºÐºÎÅÍ À߸øµÇ¾úÀ» °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.
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
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++ÇÁ·Î±×·¥¾ð¾î¸¦ À§ÇÑ Á¦°øµÈ Àϰý󸮰úÁ¤À» Á¦°øÇÑ´Ù.
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 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
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.
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 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 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.
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 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.
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 1.1.19.3 ¿ä¾à ¶bigram Àº µ¥ÀÌŸº£À̽ºÀÇ À§Ä¡¸¦ »êÃâÇØ³»±â À§ÇØ Àü¿¡ »ç¿ëµÇ¾ú´Ù.
code ´Â µ¥ÀÌŸº£À̽ºÀÇ À§Ä¡¸¦ »êÃâÇØ³»±â À§ÇØ Àü¿¡ »ç¿ëµÇ¾ú´Ù. ±×°ÍÀº frcodeÀÇ Á¶»óÀÌ´Ù.
find ´Â ¿°ÅµÈ criteria¸¦ °°Àº ÆÄÀÏÀ» À§ÇÑ ÀÔ·ÂÇÑ µð·ºÅ丮À» ã´Â´Ù.
frcode ´Â ÆÄÀÏÀ̸§ÀÇ ¸ñ·ÏÀ» ¾ÐÃàÇϱâÀ§ÇØ updatedb¿¡ ÀÇÇØ ºÒ·ÁÁø´Ù. ±×°ÍÀº ¾Õ-¾ÐÃàÀ» »ç¿ëÇÑ´Ù, 4¿¡¼ 5±îÁöÀÇ ¿ø¼Ò¿¡ ÀÇÇÑ µ¥ÀÌŸº£À̽º»çÀÌÁ ÁÙÀδÙ.
locate ´Â ÆÄÀÏÀ̸§µéÀÇ µ¥ÀÌŸº£À̽º¸¦ ÅëÇØ ã´Â´Ù. ±×¸®°í ±× À̸§µéÀ» º¸°íÇÑ´Ù.
updatedb ´Â µ¥ÀÌŸ¹èÀ̽º À§Ä¡¸¦ ¾÷µ¥ÀÌÆ®ÇÑ´Ù. ±×°ÍÀº Àüü ÆÄÀϽýºÅÛÀ» Á¶»çÇÑ´Ù.(´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛÀ» Æ÷ÇÔ. ÇöÁ¦ ¸¶¿îÆ®µÈ, ¸¸¾à ¾ê±â ÇÏÁö ¾Ê¾Ò´Ù¸é) ±×¸®°í µ¥ÀÌŸº£À̽º¾È¿¡ ãÀº ¸ðµç ÆÄÀÏÀ̸§À» ¿Ã¸°´Ù.
xargs ´Â ÀÔ·ÂµÈ ÆÄÀÏÀÇ ¸ñ·Ï¿¡¼ ¸í·ÉÀ» °ø±ÞÇϴµ¥ »ç¿ëÇÒ¼öÀÖ´Ù.
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.
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 1.1.20.2 Gawk ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥: awk (link to gawk), gawk, gawk-3.1.3, grcat, igawk, pgawk, pgawk-3.1.3 and pwcat
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.
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.
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 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.
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 ¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
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¹®¼¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. 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.
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
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.
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.
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 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.
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.
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 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.
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.
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 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.
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.
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 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)
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 typewriter-like devices.
gtbl is the GNU implementation of tbl.
hpftodit creates a font file for use with groff -Tlj4 from an HP-tagged font metric file.
indxbib makes an inverted index for the bibliographic databases a specified file for use with refer, lookbib, and lkbib.
lkbib searches bibliographic databases for references that contain specified keys and reports any references found.
lookbib prints a prompt on the standard error (unless the standard input is not a terminal), reads from the standard input a line containing a set of keywords, searches the bibliographic databases in a specified file for references containing those keywords, prints any references found on the standard output and repeats this process until the end of input.
mmroff is a simple preprocessor for groff.
neqn formats equations for ascii output.
nroff is a script that emulates the nroff command using groff.
pfbtops translates a Postscript font in .pfb format to ASCII.
pic compiles descriptions of pictures embedded within troff or TeX input files into commands understood by TeX or troff.
pic2graph converts a PIC diagram into a cropped image.
pre-grohtml translates the output of GNU troff to html.
post-grohtml translates the output of GNU troff to html.
refer copies the contents of a file to the standard output, except that lines between .[ and .] are interpreted as citations, and lines between .R1 and .R2 are interpreted as commands about how citations are to be processed.
soelim reads files and replaces lines of the form .so file by the contents of the mentioned file.
tbl compiles descriptions of tables embedded within troff input files into commands that are understood by troff.
tfmtodit creates a font file for use with groff -Tdvi.
troff is highly compatible with Unix troff. Usually it should be invoked using the groff command, which will also run preprocessors and post-processors in the appropriate order and with the appropriate options.
zsoelim is the GNU implementation of soelim.
1.1.27 Sed-4.0.9 ¼³Ä¡ ¶The Sed package contains a stream editor.
Approximate build time: 0.2 SBU Required disk space: 5.2 MBSed (4.0.9) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/sed/ Sed¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Texinfo.
ed ¼³Ä¡
¾ÐÃàÇ®±â:
mkdir -p /build/sed_build cd /build/sed_build tar zxvf /source/sed-4.0.9.tar.gz -C ./ cd /build/source/sed-4.0.9Sed ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usr --bindir=/binÆÑŰÁö ÄÄÆÄÀÏ: make ÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ÇÏ°í ½Í´Ù¸é ¾Æ·¡ ¸í·É¾î¸¦ ÀÔ·ÂÇϼ¼¿ä:
make checkÆÑŰÁö ¼³Ä¡: make install 1.1.28 Flex-2.5.4a ¼³Ä¡ ¶The Flex package contains a utility for generating programs that recognize patterns in text.
.
Approximate build time: 0.1 SBU Required disk space: 3.4 MB(2.5.4a)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/non-gnu/flex/ Flex¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, M4, Make, Sed.
1.1.28.1 Flex ¼³Ä¡ ¶¾ÐÃà Ç®±â:
mkdir -p /build/flex_build cd /build/flex_build tar zxvf /source/flex-2.5.4a.tar.gz -C ./ cd /build/flex_build/flex-2.5.4a Flex ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/usrÆÐŰÁö ÄÄÆÄÀÏ: make ÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ÇÏ°í ½Í´Ù¸é ¾Æ·¡ ¸í·É¾î¸¦ ÀÔ·ÂÇϼ¼¿ä:
make bigcheck±×¸®°í ÆÐŰÁö ¼³Ä¡: make installÀϺΠÇÁ·Î±×·¥µéÀº /usr/lib¾ÈÀÇ Lex¶óÀ̺귯¸®¸¦ »ç¿ëÇÕ´Ï´Ù. ¾Æ·¡¿Í °°ÀÌ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾î ÁÖ¼¼¿ä: ln -s libfl.a /usr/lib/libl.aÀϺΠÇÁ·Î±×·¥µéÀº flex°¡ ¾Æ´Ï¶ó lex¸¦ »ç¿ë ÇÕ´Ï´Ù. ±×·± ÇÁ·Î±×·¥µéÀ» À§Çؼ Lex emulation modeÀÇ flex¸¦ lex¶ó´Â À̸§ÀÇ shell½ºÅ©¸³Æ®¸¦ ¸¸µì½Ã´Ù. cat > /usr/bin/lex << "EOF" #!/bin/sh # Begin /usr/bin/lex exec /usr/bin/flex -l "$@" # End /usr/bin/lex EOF chmod 755 /usr/bin/lex 1.1.28.2 Flex ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: flex, flex++ (link to flex) and lex
¼³Ä¡µÈ ¶óÀ̺귯¸®µé: libfl.a
1.1.28.3 ¿ä¾à ¶flex is a tool for generating programs that recognize patterns in text. Pattern recognition is useful in many applications. From a set of rules on what to look for flex makes a program that looks for those patterns. The reason to use flex is that it is much easier to specify the rules for than to write the actual pattern-finding program.
flex++ invokes a version of flex that is used exclusively for C++ scanners.
libfl.a is the flex library.
1.1.29 Gettext-0.14.1 ¼³Ä¡ ¶The Gettext package contains utilities for internationalization and localization. These allow programs to be compiled with Native Language Support (NLS), enabling them to output messages in the user's native language.
Approximate build time: 6.9 SBU Required disk space: 55 MBGettext (0.14.1) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/gettext/ Gettext¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Bison, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.
1.1.29.1 Gettext ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/gettext_build cd /build/gettext_build tar zxvf /source/gettext-0.14.1.tar.gz -C ./ cd /build/gettext_build/gettext-0.14.1 Gettext ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/usrÆÑŰÁö ÄÄÆÄÀÏ: makeÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ÇÏ°í ½Í´Ù¸é ´ÙÀ½ ¹®ÀåÀ» ½ÇÇàÇϼ¼¿ä.(´ë½Å ½Ã°£Àº Á» ¿À·¡ °É¸³´Ï´Ù.) make checkÆÐŰÁö ¼³Ä¡: make install 1.1.29.2 Gettext ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: autopoint, config.charset, config.rpath, envsubst, gettext, gettextize, hostname, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, msguniq, ngettext, project-id, team-address, trigger, urlget, user-email and xgettext
1.1.29.3 ¿ä¾à ¶autopoint copies standard gettext infrastructure files into a source package.
config.charset outputs a system-dependent table of character encoding aliases.
config.rpath outputs a system-dependent set of variables, describing how to set the runtime search path of shared libraries in an executable.
envsubst substitutes environment variables in shell format strings.
gettext translates a natural language message into the user's language, by looking up the translation in a message catalog.
gettextize copies all standard Gettext files into the given top-level directory of a package, to begin internationalizing it.
hostname displays a network hostname in various forms.
msgattrib filters the messages of a translation catalog according to their attributes and manipulates the attributes.
msgcat concatenates and merges the given .po files.
msgcmp compares two .po files to check that both contain the same set of msgid strings.
msgcomm finds the messages that are common to to the given .po files.
msgconv converts a translation catalog to a different character encoding.
msgen creates an English translation catalog.
msgexec applies a command to all translations of a translation catalog.
msgfilter applies a filter to all translations of a translation catalog.
msgfmt generates a binary message catalog from from a translation catalog.
msggrep extracts all messages of a translation catalog that match a given pattern or belong to some given source files.
msginit creates a new .po file, initializing the meta information with values from the user's environment.
msgmerge combines two raw translations into a single file.
msgunfmt decompiles a binary message catalog into raw translation text.
msguniq unifies duplicate translations in a translation catalog.
ngettext displays native language translations of a textual message whose grammatical form depends on a number.
xgettext extracts the translatable message lines from the given source files, to make the first translation template.
libasprintf defines the autosprintf class which makes C formatted output routines usable in C++ programs, for use with the <string> strings and the <iostream> streams.
libgettextlib is a private library containing common routines used by the various gettext programs. They're not meant for general use.
libgettextpo is used to write specialized programs that process PO files. This library is used when the standard applications shipped with gettext won't suffice (such as msgcomm, msgcmp, msgattrib and msgen).
libgettextsrc is a private library containing common routines used by the various gettext programs. They're not meant for general use.
1.1.30 Net-tools-1.60 ¼³Ä¡ ¶The Net-tools package contains programs for basic networking.
Approximate build time: 0.1 SBU Required disk space: 9.4 MBNet-tools (1.60) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: http://www.tazenda.demon.co.uk/phil/net-tools/ Net-tools ÀÇ ÆÐÄ¡¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®:
http://lfs.osuosl.org/patches/lfs/5.1.1/
Net-tools¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, GCC, Glibc, Make.
1.1.30.1 Net-tools ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/net-tools_build cd /build/net-tools_build tar jxvf /source/net-tools-1.60.tar.bz2 -C ./ cd /build/net-tools_build/net-tools-1.60 make config¸¦ ÇÒ ¶§, °¢Á¾ Áú¹®À» ¹Þ°Ô µË´Ï´Ù. ±× Áú¹®µé¿¡ ´äÀ» ÇÏ±â ¾î·Æ´Ù¸é, µû·Î ´äÀ» ÇÏÁö ¸»°í ±âº» ¼³Á¤°ªÀ¸·Î ÇսôÙ. ´ëºÎºÐÀÇ °æ¿ì¿¡´Â ±âº» ¼³Á¤ ´ë·Î ÄÄÆÄÀÏÀ» ÇØµµ ±¦Âú½À´Ï´Ù. Ä¿³Î¿¡¼ Áö¿øÇÏ´Â ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ÀüüÀûÀÎ Áú¹®À» ¹Þ°Ô µÉ °ÍÀÔ´Ï´Ù. ±âº» ¼³Á¤°ªÀº ¸¹ÀÌ »ç¿ëÇÏ´Â ÇÁ·ÎÅäÄݵ鿡 ´ëÇÑ Áö¿øÀ» Ȱ¼ºÈ ½Ãŵ´Ï´Ù. (TCP, PPP ³ª ±× ¿Ü¿¡ ¿©·¯ ÇÁ·ÎÅäÄÝ). ´ç½ÅÀº Ä¿³Î¿¡¼ Áö¿øÇÏ´Â ÀÌ·± ÇÁ·ÎÅäÄݵéÀ» Ȱ¼ºÈ ½ÃÄÑ¾ß ÇÕ´Ï´Ù.
ÆÐÄ¡Çϱâ:
patch -Np1 -i ../net-tools-1.60-miitool-gcc33-1.patchNet-toolsÄÄÆÄÀÏ ÁغñÇϱâ: make configDefault setting´ë·Î ÄÄÆÄÀÏÀ» ÇÒ »ý°¢À̶ó¸é yes "" |make config¸¦ ½ÇÇà½ÃŰ¸é µË´Ï´Ù. ÆÑŰÁö ÄÄÆÄÀÏ:
makeÆÑŰÁö ¼³Ä¡: make update 1.1.30.2 Net-tools ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: arp, dnsdomainname (link to hostname), domainname (link to hostname), hostname, ifconfig, nameif, netstat, nisdomainname (link to hostname), plipconfig, rarp, route, slattach and ypdomainname (link to hostname)
1.1.30.3 ¿ä¾à ¶arp is used to manipulate the kernel's ARP cache, usually to add or delete an entry, or to dump the entire cache.
dnsdomainname reports the system's DNS domain name.
domainname reports or sets the system's NIS/YP domain name.
hostname reports or sets the name of the current host system.
ifconfig is the main utility for configuring network interfaces.
nameif names network interfaces based on MAC addresses.
netstat is used to report network connections, routing tables, and interface statistics..
nisdomainname does the same as domainname.
plipconfig is used to fine tune the PLIP device parameters, to improve its performance.
rarp is used to manipulate the kernel's RARP table.
route is used to manipulate the IP routing table.
slattach attaches a network interface to a serial line. This allows you to use normal terminal lines for point-to-point links to other computers.
ypdomainname does the same as domainname.
1.1.31 Inetutils-1.4.2 ¼³Ä¡ ¶The Inetutils package contains programs for basic networking.
Approximate build time: 0.2 SBU Required disk space: 11 MBInetutils (1.4.2) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/inetutils/ InetutilsÀÇ ÆÐÄ¡¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®:
http://lfs.osuosl.org/patches/lfs/5.1.1/
Inetutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.
1.1.31.1 Inetutils ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/inetutils_build cd /build/inetutils_build tar zxvf /source/inetutils-1.4.2.tar.gz -C ./ cd /build/inetutils_build/inetutils-1.4.2 InetuilsÆÑŰÁöÀÇ ¸ðµç ÇÁ·Î±×·¥µéÀ» ´Ù ¼³Ä¡ÇÏÁö´Â ¾ÊÀ» °ÍÀÌÁö¸¸, man ÆäÀÌÁöµéÀº ´Ù ¼³Ä¡ÇÒ °ÍÀÔ´Ï´Ù. ¾Æ·¡ ¸í·ÉÀ» ½ÇÇàÇØ¼ ÆÐÄ¡¸¦ Çϼ¼¿ä:
patch -Np1 -i ../inetutils-1.4.2-no_server_man_pages-1.patchInetutils ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usr --libexecdir=/usr/sbin \
--sysconfdir=/etc --localstatedir=/var \
--disable-logger --disable-syslogd \
--disable-whois --disable-servers
Configure ¿É¼ÇÀÇ ÀǹÌ:
makeÆÑŰÁö ¼³Ä¡Çϱâ: make installping programÀ» /binÀ¸·Î ¿Å±é½Ã´Ù. mv /usr/bin/ping /bin 1.1.31.3 ¿ä¾à ¶ftp is the ARPANET file transfer program.
ping sends echo-request packets and reports how long the replies take.
rcp does remote file copy.
rlogin does remote login.
rsh runs a remote shell.
talk is used to chat up another user.
telnet is an interface to the TELNET protocol.
tftp is a trivial file transfer program.
1.1.32 Perl-5.8.3 ¼³Ä¡ ¶The Perl package contains the Practical Extraction and Report Language.
Approximate build time: 2.9 SBU Required disk space: 143 MBPerl (5.8.3) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: http://www.perl.com/ Perl°ú ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.
1.1.32.1 Perl ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/perl_build cd /build/perl_build tar zxvf /source/perl-5.8.3.tar.gz -C ./ cd /build/perl_build/perl-5.8.3Perl ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure.gnu --prefix=/usr -Dpager="/bin/less -isR" ¸¸¾à PerlÀÇ default ¼³Á¤À¸·Î ÄÄÆÄÀÏ Çϱ⺸´Ù ´Ù¸¥ ´õ ÀÚ¼¼ÇÑ ¿É¼ÇÀ» ÁÖ°í ½Í´Ù¸é, Interactive Configure Script¸¦ ½ÇÇàÇϰí, ÄÄÆÄÀϽÿ¡ ´Ù¾çÇÏ°Ô ¼öÁ¤(ÆíÁý)ÇØ¼ ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, ¸¸¾à ±âº»À¸·Î "Perl auto-detects" °¡ ÀÖ´Ù°í »ý°¢ÇÑ´Ù¸é(ÀÖ´Ù°í Çϸé) À§¿¡ ³ª¿µÈ ¹®ÀåÀ» ½ÇÇàÇÏ¸é µË´Ï´Ù.
Configure ¿É¼ÇÀÇ ÀǹÌ:
make ÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ÇØ º¼ »ý°¢À̶ó¸é /etc/hosts ÈÀÏÀ» ¸¸µé¾î¾ß ÇÕ´Ï´Ù. test¸¦ Çϱâ À§Çؼ´Â "localhost" ¸¦ /etc/hosts ÈÀÏ¿¡ ¸í½ÃÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù:
echo "127.0.0.1 localhost $(hostname)" > /etc/hostsÅ×½ºÆ®¸¦ ÇØ º¾½Ã´Ù: make testÆÑŰÁö ¼³Ä¡: make install 1.1.32.2 Perl ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: a2p, c2ph, dprofpp, enc2xs, find2perl, h2ph, h2xs, libnetcfg, perl, perl5.8.3 (link to perl), perlbug, perlcc, perldoc, perlivp, piconv, pl2pm, pod2html, pod2latex, pod2man, pod2text, pod2usage, podchecker, podselect, psed (link to s2p), pstruct (link to c2ph), s2p, splain and xsubpp
¼³Ä¡µÈ ¶óÀ̺귯¸®µé: (too many to name)
1.1.32.3 ¿ä¾à ¶a2p translates awk to perl.
c2ph dumps C structures as generated from "cc -g -S" stabs.
dprofpp displays perl profile data.
en2cxs builds a Perl extension for the Encode module, from either Unicode Character Mappings or Tcl Encoding Files.
find2perl translates find commands to perl.
h2ph converts .h C header files to .ph Perl header files.
h2xs converts .h C header files to Perl extensions.
libnetcfg can be used to configure the libnet.
perl combines some of the best features of C, sed, awk and sh into a single swiss-army language.
perlbug is used to generate bug reports about Perl or the modules that come with it, and mail them.
perlcc generates executables from Perl programs.
perldoc displays a piece of documentation in pod format that is embedded in the perl installation tree or in a perl script.
perlivp is the Perl Installation Verification Procedure. It can be used to verify that Perl and its libraries have been installed correctly.
piconv is a Perl version of the character encoding converter iconv.
pl2pm is a rough tool for converting Perl4 .pl files to Perl5 .pm modules.
pod2html converts files from pod format to HTML format.
pod2latex converts files from pod format to LaTeX format.
pod2man converts pod data to formatted *roff input.
pod2text converts pod data to formatted ASCII text.
pod2usage prints usage messages from embedded pod docs in files.
podchecker checks the syntax of pod format documentation files.
podselect displays selected sections of pod documentation.
psed is a Perl version of the stream editor sed.
pstruct dumps C structures as generated from "cc -g -S" stabs.
s2p translates sed to perl.
splain is used to force verbose warning diagnostics in perl.
xsubpp converts Perl XS code into C code.
1.1.33 Texinfo-4.6 ¼³Ä¡ ¶The Texinfo package contains programs for reading, writing, and converting Info documents.
Approximate build time: 0.2 SBU Required disk space: 17 MBTexinfo (4.6) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/texinfo/ Texinfo¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed.
1.1.33.1 Texinfo ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/texinfo_build cd /build/texinfo_build tar zxvf /source/texinfo-4.6.tar.gz -C ./ cd /build/texinfo_build/texinfo-4.6Texinfo ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usrÄÄÆÄÀÏÇϱâ: make ÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ÇÏ°í ½Í´Ù¸é ´ÙÀ½ ¹®ÀåÀ» ½ÇÇàÇϼ¼¿ä.
make check¼³Ä¡Çϱâ: make installTeXÀÇ ´Ù¾çÇÑ ºÎ°¡ÀûÀÎ ÄÁÆ÷³ÍÆ®µéÀ» ¼³Ä¡ÇÒ ¼ö ÀÖ½À´Ï´Ù: make TEXMF=/usr/share/texmf install-texmake ÆÄ¸®¹ÌÅÍÀÇ ÀǹÌ: cd /usr/share/info rm dir for f in * do install-info $f dir 2>/dev/null done 1.1.33.2 Texinfo ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: info, infokey, install-info, makeinfo, texi2dvi and texindex
1.1.33.3 ¿ä¾à ¶info is used to read Info documents. Info documents are a bit like man pages, but often go much deeper than just explaining all the flags. Compare for example man tar and info tar.
infokey compiles a source file containing Info customizations into a binary format.
install-info is used to install Info files. It updates entries in the Info index file.
makeinfo translates the given Texinfo source documents into various other formats: Info files, plain text, or HTML.
texi2dvi is used to format the given Texinfo document into a device-independent file that can be printed.
texindex is used to sort Texinfo index files.
1.1.34 Autoconf-2.59 ¼³Ä¡ ¶The Autoconf package contains programs for producing shell scripts that can automatically configure source code.
Approximate build time: 2.9 SBU Required disk space: 7.7 MBAutoconf (2.59) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/autoconf/ Autoconf¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Coreutils, Diffutils, Grep, M4, Make, Perl, Sed.
1.1.34.1 Autoconf ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/autoconf_build cd /build/autoconf_build tar zxvf /source/autoconf-2.59.tar.gz -C ./ cd /build/autoconf_build/autoconf-2.59Autoconf ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usrÄÄÆÄÀÏÇϱâ: makeÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ÇÏ°í ½Í´Ù¸é ´ÙÀ½ ¹®ÀåÀ» ½ÇÇàÇϼ¼¿ä.(´ë½Å ½Ã°£Àº Á» ¿À·¡ °É¸³´Ï´Ù.) make checkÆÑŰÁö ¼³Ä¡Çϱâ: make install 1.1.34.2 Autoconf ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate and ifnames
1.1.34.3 ¿ä¾à ¶autoconf is a tool for producing shell scripts that automatically configure software source code packages to adapt to many kinds of Unix-like systems. The configuration scripts it produces are independent -- running them does not require the autoconf program.
autoheader is a tool for creating template files of C #define statements for configure to use.
autom4te is a wrapper for the M4 macro processor.
autoreconf comes in handy when there are a lot of autoconf-generated configure scripts around. The program runs autoconf and autoheader repeatedly (where appropriate) to remake the autoconf configure scripts and configuration header templates in a given directory tree.
autoscan can help to create a configure.in file for a software package. It examines the source files in a directory tree, searching them for common portability problems and creates a configure.scan file that serves as as a preliminary configure.in for the package.
autoupdate modifies a configure.in file that still calls autoconf macros by their old names to use the current macro names.
ifnames can be helpful when writing a configure.in for a software package. It prints the identifiers that the package uses in C preprocessor conditionals. If a package has already been set up to have some portability, this program can help to determine what configure needs to check. It can fill in some gaps in a configure.in file generated by autoscan.
1.1.35 Automake-1.8.2 ¼³Ä¡ ¶The Automake package contains programs for generating Makefiles for use with Autoconf.
Approximate build time: 5.3 SBU Required disk space: 6.8 MBAutomake (1.8.2) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/automake/ Automake¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Autoconf, Bash, Coreutils, Diffutils, Grep, M4, Make, Perl, Sed.
1.1.35.1 AutomakeÀÇ ÀνºÅç ¶¾ÐÃàÇ®±â:
mkdir -p /build/automake_build cd /build/automake_build tar zxvf /source/automake-1.8.2.tar.gz -C ./ cd /build/automake_build/automake-1.8.2Automake ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usrÄÄÆÄÀÏÇϱâ: make ÀÌ ÆÑŰÁö´Â Á¦´ë·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö¸¦ °Ë»ç ÇÒ ¼ö ÀÖ´Â Test suite¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °Ë»ç¸¦ ÇÏ°í ½Í´Ù¸é ´ÙÀ½ ¹®ÀåÀ» ½ÇÇàÇϼ¼¿ä.(´ë½Å ½Ã°£Àº Á» ¿À·¡ °É¸³´Ï´Ù.)
make check¼³Ä¡Çϱâ: make install 1.1.35.2 Automake ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: acinstall, aclocal, aclocal-1.8, automake, automake-1.8, compile, config.guess, config.sub, depcomp, elisp-comp, install-sh, mdate-sh, missing, mkinstalldirs, py-compile, symlink-tree, ylwrap
1.1.35.3 ¿ä¾à ¶acinstall is a script that installs aclocal-style M4 files.
aclocal generates aclocal.m4 files based on the contents of configure.in files.
automake is a tool for automatically generating Makefile.in's from files called Makefile.am. To create all the Makefile.in files for a package, run this program in the top level directory. By scanning the configure.ins it automatically finds each appropriate Makefile.am and generate the corresponding Makefile.in.
compile is a wrapper for compilers.
config.guess is a script that attempts to guess the canonical triplet for the given build, host, or target architecture.
config.sub is a configuration validation subroutine script.
depcomp is a script for compiling a program so that not only the desired output is generated but also dependency information.
elisp-comp byte-compiles Emacs Lisp code.
install-sh is a script that installs a program, a script, or a datafile.
mdate-sh is a script that prints the modification time of a file or directory.
missing is a script acting as a common stub for missing GNU programs during an installation.
mkinstalldirs is a script that creates a directory tree.
py-compile compiles a Python program.
symlink-tree is a script to create a symlink tree of a directory tree.
ylwrap is a wrapper for lex and yacc.
1.1.36 Bash-2.05b ¼³Ä¡ ¶The Bash package contains the Bourne-Again SHell.
Approximate build time: 1.2 SBU Required disk space: 27 MBBash (2.05b) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/bash/ BashÀÇ ÆÐÄ¡¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®:
http://lfs.osuosl.org/patches/lfs/5.1.1/
Bash¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses, Sed.
1.1.36.1 Bash ÀνºÅç ¶¾ÐÃàÇ®±â:
mkdir -p /build/bash_build cd /build/bash_build tar zxvf /source/bash-2.05b.tar.gz -C / cd /build/bash_build/bash-2.05b ÆÐÄ¡ Çϱâ:
patch -Np1 -i ../bash-2.05b-2.patchBash ÄÄÆÄÀÏ ÁغñÇϱâ: ./configure --prefix=/usr --bindir=/binÄÄÆÄÀÏÇϱâ: make ÀÌ ÆÑŰÁö´Â ÆÑŰÁö°¡ Á¦´ë·Î ºôµå µÇ¾ú´ÂÁö¸¦ ´Ù¾çÇÏ°Ô °Ë»çÇÒ ¼ö ÀÖ´Â Test suite ¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Å×½ºÆ®¸¦ ÇØº¸·Á¸é ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make tests¼³Ä¡Çϱâ: make installÀ̹ø¿¡ »õ·Î ÄÄÆÄÀÏÇÑ bash ÇÁ·Î±×·¥À» ½ÇÇàÇÏÀÚ: exec /bin/bash --login +h 1.1.36.3 ¿ä¾à ¶bash is a widely-used command interpreter. It performs all kinds of expansions and substitutions on a given command line before executing it, thus making this interpreter a powerful tool.
bashbug is a shell script to help the user compose and mail bug reports concerning bash in a standard format.
sh is a symlink to the bash program. When invoked as sh, bash tries to mimic the startup behavior of historical versions of sh as closely as possible, while conforming to the POSIX standard as well.
1.1.37 File-4.07 ¶The File package contains a utility for determining the type of files.
Approximate build time: 0.1 SBU Required disk space: 6.3 MBFile (4.07) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.astron.com/pub/file/ ¹Ì·¯ »çÀÌÆ®:
ftp://gaosu.rave.org/pub/linux/lfs/
File¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed, Zlib.
1.1.37.1 File ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/file_build cd /build/file_build tar zxvf /source/file-4.07.tar.gz -C ./ cd /build/file_build/file-4.07 File ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/usrÄÄÆÄÀÏÇϱâ: make¼³Ä¡Çϱâ: make install 1.1.37.3 ¿ä¾à ¶file tries to classify each given file. It does this by performing several tests: file system tests, magic number tests, and language tests. The first test that succeeds determines the result.
libmagic contains routines for magic number recognition, used by the file program.s
1.1.38 Libtool-1.5.2 ¼³Ä¡ ¶The Libtool package contains the GNU generic library support script. It wraps the complexity of using shared libraries in a consistent, portable interface.
Approximate build time: 1.5 SBU Required disk space: 20 MBLibtool (1.5.2) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/libtool/ Libtool°ú ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed.
1.1.38.1 Libtool ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/libtool_build cd /build/libtool_build tar zxvf /source/libtool-1.5.2.tar.gz -C ./ cd /build/libtool_build/libtool-1.5.2 Libtool ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/usrÄÄÆÄÀÏÇϱâ: make ÀÌ ÆÑŰÁö´Â ÆÑŰÁö°¡ Á¦´ë·Î ºôµå µÇ¾ú´ÂÁö¸¦ ´Ù¾çÇÏ°Ô °Ë»çÇÒ ¼ö ÀÖ´Â Test suite ¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Å×½ºÆ®¸¦ ÇØº¸·Á¸é ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check¼³Ä¡Çϱâ: make install 1.1.38.3 ¿ä¾à ¶libtool provides generalized library-building support services.
libtoolize provides a standard way to add libtool support to a package.
libltdl hides the various difficulties of dlopening libraries.
1.1.39 Bzip2-1.0.2 ¼³Ä¡ ¶The Bzip2 package contains programs for compressing and decompressing files. On text files they achieve a much better compression than the traditional gzip.
Approximate build time: 0.1 SBU Required disk space: 3.0 MBBzip2 (1.0.2) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://sources.redhat.com/pub/bzip2/ Bzip2¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Make.
1.1.39.1 Bzip2 ¼³Ä¡ ¶¾ÐÃàÇ®±â:
mkdir -p /build/bzip2_build cd /build/bzip2_build tar zxvf /source/bzip2-1.0.2.tar.gz -C ./ cd /build/bzip2_build/bzip2-1.0.2Bzip2 ÄÄÆÄÀÏ ÁغñÇϱâ: make -f Makefile-libbz2_so make clean -f flag´Â ´Ù¸¥ MakefileµéÀ» »ç¿ëÇØ¼ ÄÄÆÄÀÏÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. µ¿Àû ¶óÀ̺귯¸®ÀÎ libbz2.so¸¦ ¸¸µé°í Bzip2 utilities¸¦ ±× ¶óÀ̺귯¸®¿Í ¿¬°á½ÃŰÁö ¾Ê¾ÒÀ» °æ¿ì Makefile-libbz2_so ¸¦ »ç¿ëÇÕ´Ï´Ù.
ÄÄÆÄÀÏÇϱâ:
make ¸¸¾à ´ç½ÅÀÌ Bzip2¸¦ ´Ù½Ã ¼³Ä¡ÇÏ·Á¸é ¿ì¼± rm -f /usr/bin/bz* ¸í·ÉÀ¸·Î /usr/bin¿¡ ÀÖ´Â bz·Î ½ÃÀÛÇÏ´Â ¸ðµç ÆÄÀÏÀ» Áö¿ö¾ß ÇÕ´Ï´Ù. ¾Æ·¡¿Í °°ÀÌ make install¸í ·ÉÀ¸·Î µ¤¾î¾²±â¸¦ ÇÒ °æ¿ì¿¡´Â ½ÇÆÐÇÒ °ÍÀÔ´Ï´Ù.
¼³Ä¡Çϱâ:
make install °øÀ¯µÇ´Â(shared) bzip2ÇÁ·Î±×·¥µéÀº /bin directory¿¡ ¼³Ä¡ÇÕ´Ï´Ù. ±×¸®°í ³ª¼ symbolic linkµéÀ» ¸¸µé°í ÇÊ¿ä ¾ø´Â °ÍµéÀº Áö¿ì¼¼¿ä.
cp bzip2-shared /bin/bzip2
cp -a libbz2.so* /lib
ln -s ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
rm /usr/bin/{bunzip2,bzcat,bzip2}
mv /usr/bin/{bzip2recover,bzless,bzmore} /bin
ln -s bzip2 /bin/bunzip2
ln -s bzip2 /bin/bzcat
1.1.39.2 Bzip2 ³»¿ë ¶¼³Ä¡µÈ ÇÁ·Î±×·¥µé: bunzip2 (link to bzip2), bzcat (link to bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless and bzmore
¼³Ä¡µÈ ¶óÀ̺귯¸®µé: libbz2.a, libbz2.so (link to libbz2.so.1.0), libbz2.so.1.0 (link to libbz2.so.1.0.2) and libbz2.so.1.0.2
1.1.39.3 ¿ä¾à ¶bunzip2 decompresses bzipped files.
bzcat decompresses to standard output.
bzcmp runs cmp on bzipped files.
bzdiff runs diff on bzipped files.
bzgrep and friends run grep on bzipped files.
bzip2 compresses files using the Burrows-Wheeler block sorting text compression algorithm with Huffman coding. The compression rate is generally considerably better than that achieved by more conventional compressors using LZ77/LZ78, like gzip.
bzip2recover tries to recover data from damaged bzip2 files.
bzless runs less on bzipped files.
bzmore runs more on bzipped files.
libbz2* is the library implementing lossless, block-sorting data compression, using the Burrows-Wheeler algorithm.
|
You will overcome the attacks of jealous associates. |









