�������� ���ʰ� ����� ������ �ý���

Gerard Beekmans December 16th, 1999
� ����ȯ, <el@linuxlab.co.kr>

 

     

    �� ���� �������� ���� ������� �ʰ� �ʿ��� ����Ʈ���� �ҽ��� ���� �����ͼ�, ������ �ڽŸ��� ������ �ý����� �����ϴ� ������ �����Ѵ�.

    ����

    1. Introduction

        1.1 What��s this all about?
        1.2 New versions
        1.3 Version history
        1.4 Contact info

    2. Software packages you need to download

    3. Preparing a new partition

        3.1 Creating a new partition
        3.2 Creating an ext2 file system on the new partition
        3.3 Adding an entry to LILO
        3.4 Creating directories
        3.5 Copying the /dev directory

    4. Installing Sysvinit

        4.1 Preparing Sysvinit
        4.2 Configuring Sysvinit
        4.3 Copying passwd & group files
        4.4 Installing a root shell
        4.5 Testing the system

    5. Installing a kernel

        5.1 Note on ftp.kernel.org
        5.2 Configuring the kernel
        5.3 Updating LILO
        5.4 Copying the new kernel source tree to $LFS
        5.5 Updating sysmlinks
        5.6 Testing the system

    6. Installing the GNU C Library

        6.1 Preparing the system for the GNU C Library installation
        6.2 Installing the GNU C Library

    7. Installing the GNU CC compilers

        7.1 Installing GCC 2.95.2
        7.2 Installing GCC 2.7.2.3

    8. Installing login utilities

        8.1 Installing agetty + login
        8.2 Modifying $LFS/etc/inittab
        8.3 Creating the UTMP record file
        8.4 Testing the system

    9. Installing Vim 

        9.1 Preparing the system for the Vim installation
        9.2 Installing Vim

    10. Creating initial boot scripts

        10.1 Preparing the directories and master files
        10.2 Creating the reboot script
        10.3 Creating the halt script
        10.4 Creating the mountfs script
        10.5 Creating the umountfs script
        10.6 Creating the sendsignals script  
        10.7 Set file permissions and create symlinks
        10.8 Creating the /etc/fstab file
        10.9 Testing the system

    11. Reinstalling statically linked software

        11.1 Installing the Termcap library
        11.2 Installing the Readline library
        11.3 Reinstalling Bash
        11.4 Reinstalling Sysvinit
        11.5 Reinstalling Make
        11.6 Reinstalling Sed
        11.7 Reinstalling Shell Utils
        11.8 Reinstalling File Utils
        11.9 Reinstalling + Installing Util Linux
        11.10 Reinstalling Text Utils
        11.11 Reinstalling Tar
        11.12 Reinstalling Gzip
        11.13 Reinstalling Bison
        11.14 Installing Flex
        11.15 Reinstalling Binutils
        11.16 Reinstalling Grep
        11.17 Reinstalling Mawk
        11.18 Reinstalling Find Utils
        11.19 Reinstalling Diff Utils
        11.20 Installing Less
        11.21 Reinstalling Perl
        11.22 Reinstalling M4
        11.23 Reinstalling Texinfo

    12. Installing the rest of the basic system software

        12.1 Installing E2fsprogs
        12.2 Installing File
        12.3 Installing Libtool
        12.4 Installing Modutils
        12.5 Installing Linux86
        12.6 Installing Lilo
        12.7 Installing DPKG
        12.8 Installing Sysklogd
        12.9 Installing Groff
        12.10 Installing Man-db
        12.11 Installing Procps
        12.12 Installing Procinfo
        12.13 Installing Procmisc
        12.14 Installing Shadow Password
        12.15 Installing GNU C++ Library

    13. Setting up basic networking

        13.1 Installing Netkit-base
        13.2 Installing Net-tools

    14. Setting up Email sub system

        14.1 Preparing system for Email sub system
        14.2 Installing Procmail
        14.3 Installing Sendmail
        14.4 Installing Mailx
        14.5 Creating /etc/init.d/sendmail bootscript
        14.6 Setting up permissions and symlinks
        14.7 Installing Mutt
        14.8 Installing Fetchmail
        14.9 Testing the Email sub system

    15. Installing Internet Servers

        15.1 Installing telnet daemon + client
        15.2 Installing Proftpd
        15.3 Installing Netkit-ftp
        15.4 Installing Apache
        15.5 Installing Slang Library
        15.6 Installing Zlib
        15.7 Installing Lynx
        15.8 Configuring the daemons
        15.9 Configuring telnetd
        15.10 Configuring proftpd
        15.11 Configuring apache
        15.12 Testing the daemons

    16. Installing X Window System

        16.1 Creating missing symlink
        16.2 Installing X
        16.3 Creating /etc/ld.so.conf
        16.4 Modifying /etc/man_db.config
        16.5 Creating the /usr/include/X11 symlink
        16.6 Creating the /usr/X11 symlink
        16.7 Adding /usr/X11/bin to the $PATH environment variable
        16.8 Configuring X
        16.9 Testing X

    17. Installing Window Maker

        17.1 Preparing the system for the Window Maker installation
        17.2 Updating dynamic loader cache
        17.3 Configuring WindowMaker
        17.4 Testing WindowMaker

    18. Configuring system for Internet

    19. Copyright & Licensing Information

     

------------------------------------------------------------------------

1. Introduction

    1.1 What��s this all about?

    ���� �� ���� ���� ������ ���� ���� �� ���̴�. ���� �׸� ���� ������ �������� ����� ���� �ƴ�����, ������ �� ��� �������� ��ó�� ���� ���� ������. ��� �������� ���� ������ ������ ������, ���� ���� ����غ� � �����ǿ��� ���� ������ ���� ������.(��� Debianó�� ���� ���ϴ� �Ϳ� �ſ� ����� �͵� ������..)  

    �ᱹ ���� �ٸ� �������� ���� ������� �ʰ�, ���α׷��� �ҽ��ڵ常�� ��� �� �ڽŸ��� ������ �������� ����� ������� Ž���ϱ�� ���� �Ծ���. ���� �߰��� ���� �ſ� ������ �۾��� ���� �Ϻο�����, ��ô �ų��� ���̰�, �����е� �ý����� ��� ������Ҹ� �����ϴ� �۾��� ���� ���� ���� ���� ���� �� ���̴�.  �� ���� �������� �پ��� ����Ʈ������� �����ϱ� ����, ���� ���� �Ŵ����� �е��� �����.  �׸���, ������ �ý����� ��� ���� �ٷ� �� �ְ� �Ǵ� ���� ������ �ް� �� ���̴�. (����, ������ �׷���) ������ �ڽ��� ������ �ý����� �����ϴ� ���� �������� ����Ʈ��� �ν����ϴ� ������, �� ȯ���� ��� �����Ǹ� � ���� �������ϵ��� ���̴��� ��Ȯ�ϰ� �˾ƾ� �ϱ� �����̴�.

     

    1.2 New versions

    �� ���� �ֱ� ������ �׻� http://huizen.dds.nl/~glb/���� ã�� �� �ִ�.

     

    1.3 Version history

    1.0 (December 16th, 1999) - Initial release.

     

    1.4 Contact info

    ���� �����ϰ� �ʹٸ� tts-sol@dds.nl�� ������ ������ �ȴ�.  Gerard Beekmans,

     

------------------------------------------------------------------------

2. Software packages you need to download

------------------------------------------------------------------------

3. Preparing a new partition

     

    3.1 Creating a new partition

    ���ο� ������ �ý����� �����ϱ� ����, �츮�� ���� ���ο� �ý����� ������ �� �ֵ��� ����ִ� ������ ��Ƽ���� ������ �Ѵ�. ������ �ý��ۿ� �̹� ������ ����Ƽ�� ��Ƽ��(Linux Native partition)�� �ִٸ� �� ������ �dzʶپ ����.

    ������ ��Ƽ���� ������ �ϵ��ũ�̸��� �ɼ�����(�������� ù ��° IDE �ϵ��ũ�� ���ο� ��Ƽ���� ������ ��ȹ�̶�� /dev/hda, �� ��° �ϵ��ũ��� /dev/hdb�� ����Ѵ�) fdisk ���α׷��� �����Ѵ�(�Ǵ� cfdisk ���α׷��� �ִٸ� �װ��� ����ϴ� ���� ����.)

    ������ ����Ƽ�� ��Ƽ���� ��������� ��Ƽ�� ���̺��� �� ������ ���� (c)fdisk ���α׷��� ������.(��w�������� ����Ѵ�) ��Ƽ�� ���̺��� ������Ʈ�Ǿ���, �װ��� Ȯ���� �ý��ۿ� �νĽ�Ű�� ���� �������� �ý����� ����Ʈ�ؾ� �Ѵٴ� �޽����� �����ٸ�, �۾��� ����ϱ� ���� ��Ű�� ��� �ý����� ����Ʈ�Ѵ�.

     

    3.2 Creating an ext2 file system on the new partition

    ��Ƽ���� �����������, �� ��Ƽ�ǿ� ���ο� ext2 ���Ͻý����� �����ؾ� �Ѵ�. �������ʹ� ���� ������� �� ��Ƽ���� $LFS�� �θ��ڴ�. �������� /dev/hda4�� ��Ƽ���� �������, /mnt/hda4 ���丮�� �� ��Ƽ���� ����Ʈ�ߴٸ�, �� �������� $LFS/usr/bin�� ������ �����϶�� ���� �� �������� /mnt/hda4/usr/bin�� �����ϸ� �ȴ�.

    ���ο� ext2 ���Ͻý����� ����� ���� �츮�� mke2fs ������ ����Ѵ�. mke2fs ������ �ɼ����� $LFS�� �ָ� ���Ͻý����� ������� ���̴�.

     

    3.3 Adding an entry to LILO

    ������ ��ǻ�͸� �� �� �� ��Ƽ������ ��Ʈ�� �� �ֵ��� /etc/lilo.conf ������ ������Ʈ�ؾ� �Ѵ�. ������ ���� ���� lilo.conf ���Ͽ� �߰��Ѵ�.
     

      image=<image>
        label=<label>
         root=$LFS
        read-only


    <image> �ڸ����� �̹� �����ϴ� Ŀ�� �̹����� ��ִ´�.  ��а�(���ο� Ŀ���� ��ġ�� ������), ���� �������� ������ �ý��ۿ��� ����ϰ� �ִ� Ŀ�� �̹����� ����ؾ� �Ѵ�. <lable> �ڸ����� �������� ���ϴ� ���, � ���̶� ����� �� �ִ�. ���� ���̺��� ��lfs����� �ٿ��µ�, ��ǻ�Ͱ� ���� �� LILO ������Ʈ���� ���ϴ� ���̺�(��Ʈ �޴�)�� ������ �� �ִ�.

    /etc/lilo.conf ���� ������ ������ lilo�� ������ ���������� ������Ʈ �Ѵ�.

     

    3.4 Creating directories

    $LFS ��Ƽ�ǿ� �ּ����� ���丮 Ʈ���� ������.  

    ���� ���ɵ��� �����ϸ� �ʿ��� ���丮���� ������� ���̴�. �������� ���丮���� ����� ���� $LFS ��Ƽ���� ���� ����Ʈ�ؾ� �Ѵ�.
     

    cd $LFS
    mkdir boot etc home lib mnt proc root tmp var
    mkdir -p bin sbin usr/bin usr/sbin usr/src usr/man
    cd usr/man
    mkdir man1 man2 man3 man4 man5 man6 man7 man8
    cd ..
    ln -s . local
    ln -s /etc etc
    ln -s /var var


    ���ٽ���, LFS �ý��ۿ��� /usr/local ���丮�� /usr ���丮�� ��ũ�̴�. ���� �̰��� FHS(File Hierarchy Standard - http://www.pathname.com/fhs)�� �����Ѵٴ� ���� �˰� ������, �� ������ ��� ����Ʈ���� ��Ű���� ��·�� ����������(local) ��ġ�Ǵ� ���̰�, �������� CD-ROM�̳� �׿� ����� �͵鿡 ���� ��ġ�� �κ��� �ƴϹǷ�, /usr/local ���丮�� �Ϻ��� self-built �ý��ۿ� �״��� ������ ���� �ƴ϶�� ��������.  

    �׸���, /usr/etc�� /usr/var�� /etc�� /var ���丮�� ��ũ�̴�.  �� ���� ���� �� �������� �����̴�.

     

    3.5 Copying the /dev directory

    �츮�� mknod ������ ����ؼ� $LFS/dev ���丮 �Ʒ��� �ʿ��� ��� �������� ������ ���� �� ������, �׷� �ϵ��� �ſ� ���� �ð��� �ɸ���.  ���� �����ϰ�, ���� ������ �ý����� /dev ���丮�� ī���ؼ� $LFS ��Ƽ�ǿ� �ִ� ����� �����ߴ�.  ���� �Ӽ�, ����, �ɺ��� ��ũ, �׸��� �������� ��ȣ�ϱ� ���� ���� ������ ����ؼ� ī���Ѵ�.
     

    cp -av /dev $LFS


    �����п��� �� �ʿ��� �͵��� �����ϰ�, $LFS/dev ���丮�� ������� ������ ��Ƶ� �ȴ�.

 

------------------------------------------------------------------------

4. Installing Sysvinit

    4.1 Preparing Sysvinit

    �Ϲ����� ���, Ŀ�� �ε��� ������ �پ��� �ý��� ������ҵ��� �ʱ�ȭ�� �Ŀ� �ý��� ��Ʈ�� ������ �������μ� init ���α׷��� �ε��Ѵ�. ��κ��� ������ �ý��ۿ��� �� ���α׷��� Sysvinit(System V ��Ÿ���� init)�� ���̴µ�, �ٷ� �츮 LFS �ý��ۿ� ��ġ�� ���α׷��̴�.

    Sysvinit ������ Ǭ��.
    �ҽ� ���丮�� �̵��Ѵ�.
    Makefile�� �����Ѵ�.
    �� ���� ��򰡿�(��Ģ�� ���ϴ� ���Ϻ��ٴ� �տ� �־�� �Ѵ�.) ROOT = $LFS ������ �ִ´�.
    �� ������ ������ �� �ٿ��� /dev ��� ���ڿ� �տ� $(ROOT)�� ���δ�.

    ������ �� �ٿ� $(ROOT) ������ ������ ������, �Ƹ� �̷��� ���� ���̴�:
     

    @if [! -p $(ROOT)/dev/initctl ]; then ��
    echo ��Creating $(ROOT)/dev/initctl�� ��
    rm -f $(ROOT)/dev/initctl; ��
    mknod -m 600 $(ROOT)/dev/initctl p; fi


    ��make LDFLAGS=-satic�� ������ ������ ��Ű���� �������Ѵ�.
    ��make install�� �������� ��Ű���� �ν����Ѵ�.

     

    4.2 Configuring Sysvinit

    Sysvinit�� �۵��ϱ� ���ؼ���, ȯ�漳�� ������ ������ �Ѵ�.  �Ʒ� ������� ��� �ִ� $LFS/etc/inittab ������ �����:
     

    # Begin /etc/inittab

    id:2:initdefault:

    si::sysinit:/etc/init.d/rcS

    ~~:S:wait:/sbin/sulogin

    l0:0:wait:/etc/init.d/rc 0
    l1:1:wait:/etc/init.d/rc 1
    l2:2:wait:/etc/init.d/rc 2
    l3:3:wait:/etc/init.d/rc 3
    l4:4:wait:/etc/init.d/rc 4
    l5:5:wait:/etc/init.d/rc 5
    l6:6:wait:/etc/init.d/rc 6
    z6:6:wait:/sbin/sulogin

    ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

    1:2345:respawn:/sbin/sulogin

    # End /etc/inittab


     

    4.3 Copying passwd & group files

    �������� inittab ���Ͽ��� ������, �ý����� ��Ʈ�� �� init�� sulogin ���α׷��� �����ϰ�, sulogin�� �����п��� ��Ʈ �н����带 ��� ���̴�.  �̰��� LFS �ý��ۿ� �н����� ������ �־�� �Ѵٴ� ���� �ǹ��Ѵ�.  �츮�� ���� ��� ���� ������ �ý����� �н������ �׷������� ������ ����� ���̴�.  �н������ ��ȣȭ�Ǿ�(encoded) �����Ƿ� ���� ������� passwd ������ ī���ؼ� �װ��� ����ϴ� ���� �� ����.  ��ȣȭ�� �н����带 �ٽ� Ÿ�����ϴ� ��� �״�� ������ ���� �ȴ�.  �� ����� ����ϸ� �Ǽ��� ������ �� �ִ� ���ʿ��� �۾��� ���� �� �ֵ��� ���ش�.

     /etc/passwd�� /etc/group ������ $LFS/etc/�� ������ �ִ´�.
     $LFS/etc/passwd ������ ������� ���� root ����ڸ� ������ ��� ������ �����.
     $LFS/etc/group ������ ������� ���� root �׷��� ������ ��� ������ �����.

     

    4.4 Installing a root shell

    sulogin�� �����п��� ��Ʈ �н����带 ����� �������� �н����带 �Է��ϸ�, �������ʹ� ��(shell)�� �ʿ��� �ܰ��̴�. �� �������� �밳�� bash ���� ���δ�. ���� � ���̺귯���� ��ġ�Ǿ� ���� �����Ƿ�, �츮�� Sysvinit���� �׷��� ��ó�� bash�� �������� ��ũ�ؾ� �Ѵ�.

    Bash ��Ű�� ������ Ǯ����´�.
    ��configure --enable-static-link�� ������ ������ Bash ��Ű�� ȯ���� �����Ѵ�.
    ��make�� �������� ��Ű���� �������Ѵ�.
    bash ���̳ʸ��� $LFS/bin�� ������ �ִ´�.
    $LFS/bin/bash ���̳ʸ��� $LFS/bin/sh��� �̸����� �ɺ��� ��ũ�� �����.

     

    4.5 Testing the system

    �� ������ ������ ��������, �ý����� �׽�Ʈ�ϰ� �α׿� �� �� �ִ��� Ȯ���ؾ� �Ѵ�. �������� init ���α׷��� rcS�� rc ��ũ��Ʈ�� ������ �� ���ٴ� ���� �޽����� ������ �ǰ����� �ɰ��� ���� �ƴϴ�. �츮�� ���� �ܰ迡�� �� ��ũ��Ʈ���� ��ġ�� ���̴�.

    �� �ϳ� ������ ���� �������� �ý����� �˴ٿ� �� �� ���ٴ� ���̴�.  shutdown ���α׷��� Sysvinit ��Ű������ ���������� ������ ���� ���� �޽����� ������ ���̴�: ��You don��t exist. Go away.�� �� �޽����� �ý����� �н����� ������ ã�� �� ���ٴ� ���� ��Ÿ����. shutdown ���α׷��� �ʿ��� ���̺귯���� �������� ��ũ�Ǿ� �ִ���, ������ �츮�� ���� ������ ��ġ�� GNU C ���̺귯�� ��� �Ϻ��� nss ���̺귯�� (Name Server Switch)�� �������� ������.  NSS ���̺귯���� (��Ȳ�� ����) ��� passwd ������ ã�� �� �ִ��� ������ �����Ѵ�.

    ������ reboot -f �������� �ý����� ���Ʈ�� �� �ִ�. �� ������ shutdown ���α׷��� ����ؼ� �˴ٿ� �ϰ�, �ٷ� �ٽ� ��Ʈ�Ѵ�. ���Ͻý����� read-only�� ����Ʈ�Ǿ� �����Ƿ� �̷��� �ص� �ý��ۿ��� � �ջ� ������ �ʴ´�.(�׷���� �ص�, ������ �ý����� ����Ʈ�Ϸ� �� ��, ������ ����Ʈ ������ �������� ���� ä �ý����� ���������Ƿ�(��not unmounted cleanly��), ���� �ý����� �����ϰ� ����Ϸ��� e2fsck ���α׷��� �����ؼ� �����ؾ� �Ѵٴ� ��� �޽����� ������ �� ���� �𸣰ڴ�.)

     

------------------------------------------------------------------------

5. Installing a kernel

     

    5.1 Note on ftp.kernel.org

    �� ���� 2���� ���� �������� ftp://ftp.kernel.org/���� ���ο� Ŀ���� �ٿ�ε��� �� �ִٰ� ����������, �� ����Ʈ�� �밳 �ʹ� ���� �����ڰ� ���� �ְ�, �� ����Ʈ �����ڵ� ������ ��ó ����Ʈ���� Ŀ���� �ٿ�ε��ϴ� ���� ���� �Ŷ�� �ǰ��Ѵ�. �������� ftp://ftp.<country code>.kernel.org/ (���� ��� ftp.ca.kernel.orgó��)��� �ּҷ� �̷� ����Ʈ�� ������ �� ���� ���̴�.

     

    5.2 Configuring the kernel

    Ŀ�� ��Ű�� ������ Ǭ��.

    Ŀ�� ȯ���� �����ϴ� ��� �ϳ��� �����ϰ�(��������� ���� �� �ڼ��� ������ �˰� ������ README ������ �д´�) �ɼ��� �����ϴµ�, �� �ܰ迡���� � �͵� ���� �����ؼ��� �ȵȴ�. ��а��� Ŀ�� ����� �ε��� �� �ִ� ����Ʈ��� ���� �����̴�.

    Ŀ�� ȯ�漳���� ������ ��make dep�� ������ �����Ѵ�.
    ��make bzImage�� �������� Ŀ���� �������Ѵ�.
    arch/<cpu>/boot/bzImage(���� ��� arch/i386/boot/bzImage) ������ /boot ���丮�� ������ �ִ´�. (�Ǵ�, �������� ������ �ý��ۿ��� �ٸ� ���·� Ŀ�� �̹����� �ٷ�ٸ� �� ����� ������.)
    /boot/bzImage ������ �̸��� ������ ������� ���� �� �ִ�.  ���� ��� /boot/lfskernel ��.

     

    5.3 Updating LILO

    /etc/lilo.conf ������ ������� ���� LFS �������� ����. (��3��3������ ���� �κ�)
     image �̸��� lfskernel�� �ٲٰ� (�Ǵ� �������� ���� �̸��̳�, �ٲ��� �ʾҴٸ� ���� �̸��� bzImage�� �״��) lilo�� ������ ��Ʈ�δ� ������ ������Ʈ �Ѵ�.

     

    5.4 Copying the new kernel source tree to $LFS

    ���ο� Ŀ�� �ҽ� ��ü Ʈ���� $LFS/usr/src �Ʒ� �����Ѵ�. ��cp -av <kernel directory> $LFS/usr/src�� �������� ���� ����ȴ�.

     

    5.5 Updating sysmlinks

    �밳 /usr/local/include/linux ���丮�� /usr/src/linux ���丮�� �ɺ��� ��ũ�Ǿ� �ְ�, /usr/src/linux ���丮�� /usr/src/<kernel version>�� �ɺ��� ��ũ�Ǿ� �ִ�. /usr/src/linux ���丮�� �������� �� ���� ù �κп��� �ҽ� ��Ű���� Ǯ����� ���丮�� ����Ű�� �־�� �Ѵ�.

    /usr/include/linux�� /usr/src/linux ���丮�� ����Ű�� �� ���� �ִ�. - �� ����� �������� ����ϴ� �����ǿ� �����Ѵ�.

    LFS �ý��ۿ��� �Ʒ� ���ɵ��� �����ؼ� ������ �ɺ�����ũ���� �����Ѵ�.
     

    cd $LFS/usr/include
    ln -s ../src/linux/include/asm asm
    ln -s ../src/linux/include/linux linux


    ���� �������� (���������κ��� ��ġ�ؼ� ���� ����ϴ�) normal Linux �ý��ۿ��� ����� �� �ֵ��� ����Ʈ��� �������Ϸ��� Ŀ�� ����� �ʿ��ϰ�, �� Ŀ���� �ε����� �ʴ´ٸ� �ɺ��� ��ũ�� ����� ��¥ ��ġ�� �������� ���� �ٶ����ϴ�. lfskernel�� LFS �ý��۰� nomal Linux �ý��� ��� �ʿ��� ����ص�  �����ϴ�.

     

    5.6 Testing the system

    �ý����� ���Ʈ�ؼ� LFS �ý����� �����Ѵ�.  ���� �ν����� Ŀ���� �̻� ������ ������ �ʴ��� �˻��Ѵ�.(crashing ����)

     

------------------------------------------------------------------------

6. Installing the GNU C Library

     

    6.1 Preparing the system for the GNU C Library installation

    �� ���ǿ��� �츮�� Glibc�� ��ġ�� ���̴�. �׷����� �̵� ���̺귯���� ��ġ�Ϸ��� ����, �ٸ� ����Ʈ������� LFS �ý��ۿ� ��ġ�ؾ� �Ѵ�. �̰��� �ӽ� �۾� ��� �ſ� ���� �� �κ��� ���ϴµ�, Glibc�� GNU CC �����Ϸ��� �ν��� �� ���� ���� ��ġ�� ���α׷����� �������� ���̺귯���� ��ũ�ǹǷ� �� �Ŀ� ���α׷� ��θ� �ٽ� ��ġ�� ���̴�.  ���� ��� ����Ʈ��� �������� �����ϰ� �ٽ� �׵��� �������� �籸���ϴ� ������ ������ ��ġ�� �ʰ��� �� �۾��� �� �� �ִ� �� ���� ����� �˰� �ִٸ� �ε� ���Ե� �˷��ֱ� �ٶ���.

    ���� �ٸ� ����� �ϳ� �� �ƴµ� ��ó���� ���̳ʸ��� �̿��� Glibc�� ��ġ�ϴ� ���̴�. �׷����� �� ����� �츮�� ���� �ϴ� �۾�(�ҽ������� ������ �ý����� �����ϴ�)�� ��︮�� �ʴ´�. �׷��Ƿ� �� ����� �������� �ʰڴ�.

    �� ���ǿ��� ��ġ�Ǵ� ��� ����Ʈ����� �츮�� ���� �۾����� normal Linux ������ �ý��ۿ��� �����ϵǰ� �ٽ� LFS �ý������� ����� ���̴�.

    �������� �̷� ����Ʈ���� ��ġ�� �밳�� ��� �ſ� ���ٴ� ���� �˰� �� ���̴�.  ���� ��, �̷� ����Ʈ����� ��� �ϻ����� �͵��, ���� � ���� �ϴ��� ���� �������� ���� ���̹Ƿ�, ���� � ���� ���̴� ���α׷����� �𸥴ٸ� �� ������ ������ ������ README ���ϰ� �ٸ� ������(/usr/doc �Ǵ� http://kldp.org/���� �����ϴ� ������)�� �д� ���� ���ڴ�.

      Installing Make

      Make ��Ű���� ������ Ǭ��.
      configure �� ������ ��Ű�� ȯ���� �����Ѵ�.
      ��make LDFLAGS=-static�� ������ ������ ��Ű���� �������Ѵ�.
      make ���̳ʸ��� $LFS/usr/bin ���丮�� ī���Ѵ�.

      Installing Sed

      sed ��Ű���� ������ Ǭ��.
      configure �� ������ ��Ű�� ȯ���� �����Ѵ�.
      ��make LDFLAGS=-static�� ������ ������ ��Ű���� �������Ѵ�.
      sed ���̳ʸ��� $LFS/usr/bin ���丮�� ī���Ѵ�.

      Installing Shell Utils

      Shell Utils ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      ��make LDFLAGS=-static�� ������ ������ ��Ű���� �������Ѵ�.
      src���丮�� ������� ���� ���̳ʸ����� $LFS/bin���丮�� ī���Ѵ�:
      date echo false pwd sleep stty su true uname
      src ���丮�� ������� ���� ���̳ʸ��� $LFS/sbin ���丮�� ī���Ѵ�: chroot

      Installing File Utils

      File Utils ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      ��make LDFLAGS=-static�� ������ ������ ��Ű���� �������Ѵ�.
      ���� ���̳ʸ����� $LFS/bin ���丮�� ī���Ѵ�: chgrp chmod chown cp dd df dir dircolors du ln ls mkdir mkfifo mknod rm rmdir sync touch vdir
      ���� ���̳ʸ����� $LFS/usr/bin ���丮�� ī���Ѵ�: ginstall
      $LFS/usr/bin/ginstall ���� �̸��� $LFS/usr/bin/install �� �ٲ۴�.

      Installing Util Linux

      Installing Utils ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      lib ���丮�� ���� ��make�� �������� ���ϵ��� �������Ѵ�.
      mount ���丮�� ���� ��make LDFLAGS=-static�� ������ �����ؼ� ���α׷����� �������Ѵ�.
      ���� ���̳ʸ����� $LFS/sbin ���丮�� ī���Ѵ�: losetup mount swapon umount
      $LFS/sbin/swapon�� $LFS/sbin/swapoff�� �̸����� �ɺ��� ��ũ�Ѵ�.

      Installing Text Utils

      Text Utils ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      ��make LDFLAGS=-static�� ������ ������ ��Ű���� �������Ѵ�.
      src ���丮���� ���� ���̳ʸ��� $LFS/bin ���丮�� ī���Ѵ�: cat
      src ���丮���� ���� ���̳ʸ����� $LFS/usr/bin ���丮�� ī���Ѵ�:
      cksum comm csplit cut expand fmt fold head join md5sum nl od paste pr sort split sum tac tail tr unexpand uniq wc

      Installing Tar

      Tar ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      ��make LDFLAGS=-static�� ������ ������ ��Ű���� �������Ѵ�.
      ���α׷����� �������ϸ� src ���丮�� ���α׷��� �� �� �����: tar�� rmt.
      Tar�� �� �ƴ� ���α׷��̰�. Rmt�� ReMote Tapesever�� ���Ѵ�. �����п��� �� ���α׷��� �ʿ� ���ٸ� (���� ��� ������ ��Ʈ��ũ�� �ӽſ� ������ ��Ʈ����-tape streamer�� ���ٸ�) �� ���α׷��� ī���� �ʿ� ����.
      src/tar ���̳ʸ��� $LFS/bin�� ī���Ѵ�.
      src/rmt ���̳ʸ��� $LFS/bin�� (�����п��� �ʿ��ϴٸ�) ī���Ѵ�.

      Installing Gzip

      Gzip ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      ��make LDFLAGS=-static�� ������ ������ ��Ű���� �������Ѵ�.

      ���� Gzip ���� 1.2.4�� ����ϴµ� ������ �۾��� �����ϴ� ���� ���� �޽����� ������: basename�� ������ �ڷ����� ����ȴٴ� ���̴�. �����п��Ե� �� ������ ���� ������ ����ٸ�, ���� ������ ���� �ٷ����� �� �ִ�:

      gzip.h ������ ������� ���� ���� ���� ��:
      extern char *basename OF((char *fname));  

      �� ���� ������ ���� �ٲ۴�: extern char *basename2
      OF((char *fname));

      util.c ������ ���� ���� ���� ��:
      char *basename(fname)
      �� ���� ������ ���� �ٲ۴�: char *basename2(fname)

      ���� ��Ű���� �ٽ� ������ �غ���(make LDFLAGS=-static ������ �ٽ� �����Ѵ�.) ������ �������� ���̴�.

      ���� �߸��Ǿ�����? �� �ý��ۿ��� ǥ�� �ý��� ��� ���� ��� �ϳ��� ��basename���̶� �̸��� ���� �Լ�����.(���� �����ϱ⿡ string.h���� �� ������ �� �̻��� �� �𸣰ڴ�) Gzip ���α׷��� �� ��ü�� �� �Լ��� ������ �ְ�, �� basename�̶� �̸��� �Ȱ��� ����ϹǷ� �Ƹ� �����п��Ե� �׷� ������ ���� ���̴�. Gzip �ҽ����� basename �Լ��� basename2��� �̸����� �ٲٸ� ������ �ذ�ȴ�.

      .in�̶�� ����(extension)�� ���� ���� ���ϵ��� �����: gzexe.in zdiff.in zforce.in zgrep.in zmore.in znew.in

      ���� ���ϵ��� $LFS/bin ���丮�� ī���Ѵ�:  
      gunzip gzexe gzip zcat zdiff zforce zgrep zmore znew

      Installing Binutils

      BinUtils ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      ��make LDFLAGS=-static�� ������ �����ؼ� ���α׷����� �������Ѵ�.
      gas ���丮���� ���� ���̳ʸ����� $LFS/usr/bin ���丮�� ī���Ѵ�: as-new gasp-new
      �� ���ϵ� �̸���$LFS/usr/bin/as�� $LFS/usr/bin/gasp�� �ٲ۴�.
      ld ���丮���� ���� ���̳ʸ����� $LFS/usr/bin ���丮�� ī���Ѵ�: ld-new
      �� ������ $LFS/usr/bin/ld�� �̸����� �ٲ۴�.
      binutils ���丮���� ���� ���̳ʸ����� $LFS/usr/bin ���丮�� ī���Ѵ�: addr2line ar c++filt nm-new objcopy objdump ranlib size strings strip-new
      $LFS/usr/bin/nm-new ������ $LFS/usr/bin/nm�� �̸����� �ٲ۴�.
      $LFS/usr/bin/strip-new ������ $LFS/usr/bin/strip�� �̸����� �ٲ۴�.

      Installing Grep

      Grep ��Ű���� ������ Ǭ��.
      /configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      ��make LDFLAGS=-static�� ������ �����ؼ� ���α׷����� �������Ѵ�.
      src ���丮���� ���� ���̳ʸ����� $LFS/usr/bin
      ���丮�� ī���Ѵ�: egrep fgrep grep

      Installing Bison

      Bison ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.  
      ��make LDFLAGS=-static�� ������ �����ؼ� ���α׷����� �������Ѵ�.
      ���� ���̳ʸ��� $LFS/usr/bin ���丮�� ī���Ѵ�: bison
      ���� ���̳ʸ����� $LFS/usr/share ���丮�� ī���Ѵ�: bison.hairy bison.simple

      Installing Mawk

      Mawk ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      make CFLAGS=��-O -static�� ������ �����ؼ� ���α׷����� �������Ѵ�.
      ���� ���̳ʸ��� $LFS/usr/bin ���丮�� ī���Ѵ�: mawk
      $LFS/usr/bin/awk�� �̸����� $LFS/usr/bin/mawk ������ �ɺ��� ��ũ�Ѵ�.

      Installing Find Utils

      Utils ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      make CFLAGS=-static ������ �����ؼ� ���α׷����� �������Ѵ�.

      ���� Find Utils 4.1 ������ ����ϴµ� �������� �����ϴ� ���� ������ ������ �Ǿ���. ġ������ ����(fatal error)�̱�� ������ ������ �߻����� �� ������ �۾��� �������� �ʾҴ�. �������� ���� ������ �����ٸ� ������ �������� ��µǴ� �������� ���� ���� ���캼 �ʿ䰡 �ִ�: defs.h304: ���� basename �ڷ����� �����ϴ� ���̴�.

      �׷� ���� ������ ������ ����ٸ� ���� ������ ���� �ٷ����� �� �ִ�:

      find/Makefile ������ ������� ���� ���� ������ ��: CFLAGS
      �� ������ -D_GNU_SOURCE ��� ���� �߰��Ѵ�.
      find/defs.h ������ ������� ���� ���� ���� ��:
      char *basename P_((char *fname));  

      �� ���� ������ ���� �ٲ۴�:
       char *basename2 P_((char *fname));
       find/util.c ������ ������� ���� ���� ���� ã�´�:
       char *basename (fname)

      �� ���� �� �ٷ� �и��ȴ� (��char *���� ù ��° ���̰� �� ��° ���� ��basename (fname)���̴�)

      �� ���� ������ ���� �ٲ۴�:
      char *basename2 (fname)

      ���� �� �ٷ� ��� ���� �ʾƵ� ������, �� �׷��� �ϰ� �ʹٸ� �������� ���ϴ� ��� �ξ �������.  �������� ���⿡ �� ���� ��� ������ ���Ѵ�.

      ���� ��Ű���� �ٽ� ������ �غ���(make LDFLAGS=-static ������ �ٽ� �����Ѵ�.) ������ �������� ���̴�. find ���丮���� ���� ������ $LFS/usr/bin ���丮�� �����Ѵ�: find

      Installing Diff Utils

      Diff ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      make LDFLAGS=-static ������ �����ؼ� ���α׷����� �������Ѵ�.
      ���� ���̳ʸ����� $LFS/usr/bin ���丮�� ī���Ѵ�: diff diff3 sdiff

      Installing Ld.so

      Ld.so ��Ű���� ������ Ǭ��.
      util ���丮�� ����.
      make ldd �������� ldd�� �������Ѵ�.
      make ldconfig �������� ldconfig�� �������Ѵ�.
      ���� ���̳ʸ��� $LFS/usr/bin ���丮�� ī���Ѵ�: ldd
      ���� ���̳ʸ��� $LFS/usr/sbin ���丮�� ī���Ѵ�: ldconfig

      Installing Perl

      Perl ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.

      �������� �Ʒ� �������� �����ϰ�, ��� ������ ���� �⺻ ���� �״�� �ξ �ȴ�.
       

      What is the file extension used for shared libraries? [so]

      Answer with: none

      Any additional ld flags (NOT including libraries)? [-L/usr/local/lib]

      Answer with: -L/usr/local/lib -static

      Do you wish to use dynamic loading? [y]

      Answer with: n


      make ������ ������ ��Ű���� �������Ѵ�.
      ���� ���̳ʸ��� $LFS/usr/bin ���丮�� ī���Ѵ�: perl

      Installing M4

      M4 ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      make LDFLAGS=-static ������ �����ؼ� ���α׷����� �������Ѵ�.
      src ���丮���� ���� ���̳ʸ��� $LFS/usr/bin ���丮�� ī���Ѵ�: m4

      Installing Texinfo

      Texinfo ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      make LDFLAGS=-static ������ �����ؼ� ���α׷����� �������Ѵ�.
      makeinfo ���丮���� ���� ���̳ʸ��� $LFS/usr/bin ���丮�� ī���Ѵ�: makeinfo

      Installing Automake

      automake ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      ���� ��ũ��Ʈ���� $LFS/usr/bin ���丮�� ī���Ѵ�: automake aclocal
      ���� ���丮�� �����: $LFS/usr/share/automake
      ���� ���ϵ��� $LFS/usr/share/automake ���丮�� ī���Ѵ�:
      config.guess config.sub install-sh mdate-sh missing mkinstalldirs elisp-comp ylwrap acinstall

      ���� ���ϵ��� $LFS/usr/share/automake ���丮�� ī���Ѵ�: All *.am files

      ���� ���丮�� �����:
      $LFS/usr/share/aclocal m4 ���丮�κ��� ���� ���ϵ��� $LFS/usr/shar- e/aclocal���丮�� ī���Ѵ�: all *.m4 files

      Installing Autoconf

      Autoconf ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
      make ������ �����ؼ� ��Ű���� �������Ѵ�.
      ���� ���ϵ��� $LFS/usr/bin ���丮�� ī���Ѵ�: autoconf autoheader autoreconf autoscan autoupdate ifnames
      ���� ���丮�� �����: $LFS/usr/share/autoconf
      ���� ���ϵ��� $LFS/usr/share/autoconf ���丮�� ī���Ѵ�:
      acconfig.h acfunctions acheaders acidentifiers acprograms acmakevars

     

    6.2 Installing the GNU C Library

    �츮�� �ֱ� Glibc ������, 2.1.2�� ��ġ���� �ʰ� ���� ���� 2.0.7pre6�� ����� ���̴�. �� ����� glibc 2.1.2 ������ �ּ��� gcc 2.8(�Ǵ� egcs 1.1)���� �̻��� �䱸�ϱ� �����̴�. �� �ý��ۿ��� gcc 2.7.2.3 ������ ��ġ�Ǿ� �����Ƿ� ���� glibc 2.1.2 ���̺귯���� ������ �� �� ����. �׸��� ��, ���� ���� ������� ������ �ý����� gcc 2.95.2 �������� ���׷��̵��� ������ ����.(gcc 2.95.2�� �� ���� ���� ���� ���� �ֱ� �����̴�.) �����Ϸ��� ���׷��̵��ϴ� ���� ��ó�� �׷��� ���� �ϵ� �ƴϰ� ���� �� �ý����� ��¼�� �������� ���� ���� �ٶ��� �ʴ´�.

    �׷��Ƿ� ���� glibc 2.0.7pre6 ������ ��ġ�ؾ� �Ѵ�.  �׷�����, �츮�� gcc 2.95.2 �����Ϸ��� ��ġ�ϰ� �� ���̴�. �׸���, � ����Ʈ����� gcc 2.95.2 ���������� �����ϵ��� �ʴ� �͵� �����Ƿ�, �׷� �͵��� ���� gcc 2.7.2.3 �����Ϸ��� ��ġ�ؾ� �Ѵ�. (��¥ ���װ� �ƴѵ��� ���α׷� ���� ���� ������, gcc 2.95.2 �����Ϸ��� ���׶�� �Ǵ��Ѵ�. �׷��ٰ� �����Ϸ� ���״� �ƴϰ�, C ǥ���� �ٲ� ���̴�(���� ����� �����ϰ� �ִٸ� �Ƹ�..)

    �Ʒ��� glibc-crypt ��Ű������ ��Ʈ�̴�. �Ʒ��� ftp://ftp.gnu.org/gnu/glibc���� ���� glibc-crypt-README ���Ϸκ��� �ο��� ���̴�:
     

    ������, ���þ� �� � ���ε�, -Ư�� US�� ���̼��� ���� ���ͳ��� ���� ��ȣȭ�� ���õ� ����Ʈ��� �ؿܷ� ����Ǵ� ���� ������� �����Ƿ�, �������� US�� �ƴ� ���� ��� �ִٸ� �̰͵��� ftp.gnu.org�� �ִ� �� FSF FTP ����Ʈ���� ������ �ȵǸ�, �� ����Ʈ����� US�� ���� ������� ������ ���ߵǾ��ٴ� �׷� ���� ��� �ִ�.

     

    -------------------------����--------------------------
    In particular, the US does not allow export of this software without a
    license, including via the Internet. So please do not download it from the
    main FSF FTP site at ftp.gnu.org if you are outside of the US. This software
    was completely developed outside the US.


    ������ ���� ����Ʈ����� ftp://ftp.gwdg.de/pub/lin-
    ux/glibc/2.0.7pre6/�κ��� ������ glibc-crypt ��Ű���� ���Ѵ�. �� ���Դ� US �ȿ� ���� �ʴ� ����鿡�Ը� ����ȴ�. �׸���, DES ����Ʈ��� �鿩���� ���� ���� �����Ƿ�, �������� US �ȿ� ��� �ִٸ� ���� ����Ʈ�κ��� �鿩���� ���� �����ϴ�.

    Glibc ��Ű���� ������ Ǭ��.
    glibc-crypt�� glibc-linuxthreads ��Ű���� Ǯ�����
    glibc ���丮�� �ű��.
    glibc-crypt�� glibc-linuxthreads ��Ű�� ������ �� ���� Ǭ��.
    ��./configure  --with-gnu-binutils  --enable-shared  --enable-add-ons=linuxthreads,crypt�� ������ ������ ��Ű�� ȯ���� �����Ѵ�.(glibc �ֻ��� ���丮����)

    ���� ������ �־ configparms ������ ���� �����.
     

    # Begin configparms
    prefix=/usr
    slibdir=/lib
    sysconfdir=/etc
    # End configparms


    make ������ �����ؼ� ��Ű���� �������Ѵ�.
    LFS �ý������� ��ǻ�͸� ���Ʈ�Ѵ�.
    LFS ��Ƽ���� read-write ���� �ٽ� ����Ʈ�Ѵ�.
    Glibc �ҽ� ���ϵ��� ��� �ִ� ��Ƽ���� ����Ʈ�Ѵ�.
    ���� �� ��Ƽ���� �ϻ������� ����Ʈ�ϴ� �������� /usr ���丮�� �ٸ��ٸ� �� ��Ƽ�ǵ� ����Ʈ�Ѵ�.
    �Ϲ����� ������ �ý��ۿ��� usr/lib/gcc-lib ���丮�� /usr/lib/gcc-lib�� �̸����� �ɺ��� ��ũ�� �����.
    Glibc �ҽ� ���丮�� ����.
    make install �������� ��Ű���� �ν��� �Ѵ�.
    /usr/lib/gcc-lib �ɺ��� ��ũ�� �����Ѵ�.

    �������� normal Linux ��Ƽ�� bin ���丮�� �ִ� ls ���α׷��� �����ؼ� ���� ��ġ�� ���̺귯���� �����ϰ� �׽�Ʈ�� �� �ִ�.  �������� � ������ ������ �ʰ� �� ���α׷��� ������ �� �ִٸ� GNU C ���̺귯���� ����� �ν��� �� ���̶�� ���� �ȴ�.

 

------------------------------------------------------------------------

7. Installing the GNU CC compilers

    �������� gcc �����Ϸ��� �������ϱ� ���� �ý����� �ٽ� �����ؼ� normal Linux���� ���ư��� �Ѵ�.

     

    7.1 Installing GCC 2.95.2

    GCC ��ġ ��Ʈ�� ������Ʈ ������ ������ ���丮�� �� ���� ���Ѵ�.  �̰��� gcc �ҽ��� ���� ���丮��, �����ϵ� ���ϵ��� ���� �� �ٸ� ���丮�� ��������� �Ѵٴ� ���� ���Ѵ�.  ���� ��� gcc ��Ű���� /usr/src/gcc-2.95.2 ���丮�� Ǯ�����, /usr/src/gcc-install �̶� �̸����� �ٸ� ���丮�� ���� ���� �ִ�.

    GCC ��Ű���� ������ Ǭ��.
    gcc-install ���丮�� ����.
    ��../gcc-2.95.2/configure --prefix=/usr --enable-
    shared�� ������ ������ ��Ű�� ȯ���� �����Ѵ�.
    make bootstrap ������ �����ؼ� ��Ű���� �������Ѵ�.
    ���� ������ ��� $LFS/root/test.c ������ �����.
     

       // Begin test.c
       #include <stdio.h>
       int main() {
          printf(��Hello World!��n��);
          return 0;
       }
       // End test.c


    ���� ������ ��� $LFS/root/test2.c ������ �����.
     

      // Begin test2.c
       #include <iostream.h>
       int main() {
          cout << ��Hello World!�� << endl;
          return 0;
       }
       // End test2.c


    ��ǻ�͸� LFS �ý������� �ٽ� ��Ʈ�Ѵ�.
    LFS ��Ƽ���� read-write ���� �ٽ� ����Ʈ�Ѵ�.
    gcc-2.95.2�� gcc-install ���丮�� �����ϰ� �ִ� ��Ƽ���� ����Ʈ�Ѵ�.
    gcc �ҽ� ���ϵ��� ��� �ִ� usr/src/gcc-2.95.2 ���丮�� /usr/src/gcc-2.95.2��� �̸����� �ɺ���  ��ũ�� �����.
    gcc-install ���丮�� ����.
    make install ������ ������ ��Ű���� ��ġ�Ѵ�.
    /root ���丮�� ����.
    gcc test.c -o test ������ �����ؼ� test.c�� Compile+link�Ѵ�.
    g++ test2.c -o test2 ������ �����ؼ� test2.c�� Compile+link�Ѵ�.
    �� ���α׷��� �����Ѵ�
    �� ���α׷� ��� �������� �����ϰų� ��������� /usr/src/gcc-2.95.2 �ɺ��� ��ũ�� ������ �����Ϸ��� ��Ŀ�� ������ ���̴�.

     

    7.2 Installing GCC 2.7.2.3

      gcc-2.7.2.3 ��Ű���� ������ Ǭ��.

      configure --prefix=/usr/gcc2723 --enable-shared

    ������ ������ ��Ű�� ȯ���� �����Ѵ�.
    ȯ���� �����ϴ� ��ũ��Ʈ�� �ý��� Ÿ���� �������� ���ϰڴٰ� ���ϸ�, configure --host=<cpu>-linux-gnu --prefix=/usr/gcc2723 --enable-shared �������� ��Ű�� ȯ���� �����Ѵ�.

    <cpu> �ڸ����� ������ �ý��ۿ� �´� ���� �ִ´�.  �������� Pentium �ý����� ������ �ִٸ� i586�� �Է��Ѵ�. �������� PII �Ǵ� �� �̻��� �ý����� ������ �ִٸ� i686�� �ִ´�. ���� �������� Intel ����� �÷����� ������ ���� �ʴٸ�, ������ �־�� ���� ������ �Ǵ��ؾ� �Ѵ�.
    (���� ���� ����� �÷����� ����� �������Ƿ� �ٸ� �÷����� ���� ������ �� �� ����.  �����Ե�, ���� ����(alpha)�� ����(sparc) �Ǵ� �� ���� �ý����� �츸ŭ �˳������� ���ϴ�.)

     �Ʒ� ���ɵ��� ������� �����ؼ� �����Ϸ��� �����:
     

     make LANGUAGES=c
     make stage1 (ignore errors about files not found)
     make CC=��stage1/xgcc -Bstage1/�� CFLAGS=��-g -O2��
     make stage2
     make CC=��stage2/xgcc -Bstage2/�� CFLAGS=��-g -O2��
     make compare


    ���� make compare ������ �̻��� �͵��� ���� ���� �ʴ´ٸ� �����Ϸ��� ���������� ������� ���̴�.

      make install CC=��stage2/xgcc -Bstage2/�� CFLAGS=��-g -O2��

    ������ �����ؼ� ��Ű���� �ν����Ѵ�.

 

------------------------------------------------------------------------

8. Installing login utilities

     

    8.1 Installing agetty + login

    �� �忡���� �ؽ�Ʈ �����Ͱ� �ʿ��ϹǷ� normal Linux �ý����� ����ؼ� ��� �۾��� �Ѵ�. �� �忡�� �����п��Դ� Util Linux ��Ű���� �ʿ��ϴ�.  ���� Util Linux �ҽ� ���丮�� ���� ������ �ʰ� �ִٸ�, �������� ó�� �� �ܰ踦 ��ġ�� �ʾƵ� ����.

    Util ������ ��Ű���� ������ Ǭ��.(���� �������� �������� ����ߴ� Util ������ ��Ű���� �����ٸ�)/configure�� ������ ��Ű�� ȯ���� �����Ѵ�.
    login-utils ���丮�� ����.
    make agetty login �������� agetty�� login�� �������Ѵ�.
    ���� ���̳ʸ��� $LFS/sbin ���丮�� ī���Ѵ�: agetty
    ���� ���̳ʸ��� $LFS/bin ���丮�� ī���Ѵ�: login

     

    8.2 Modifying $LFS/etc/inittab

    ���� �ܰ�� �츮�� �ý����� �� ������ agetty�� ���� �ֻܼ󿡼� ���۵� �� �ֵ��� $LFS/etc/inittab ������ �����ϴ� ���̴�.  �̷��� �ؼ� ��� ������ �ý����� �ƴ϶� ���� �� �۵��Ѵ�.

    $LFS/etc/inittab ������ ������� ����.
    ���� ���� ã�Ƽ� �����:
    1:2345:respawn:/sbin/sulogin
    �ռ� ���� �� �� ���� �ٵ��� �ִ´�:
     

    1:2345:respawn:/sbin/agetty /dev/tty1 9600
    2:2345:respawn:/sbin/agetty /dev/tty2 9600
    3:2345:respawn:/sbin/agetty /dev/tty3 9600
    4:2345:respawn:/sbin/agetty /dev/tty4 9600
    5:2345:respawn:/sbin/agetty /dev/tty5 9600
    6:2345:respawn:/sbin/agetty /dev/tty6 9600


     

    8.3 Creating the UTMP record file

    �������� ������ �ý��ۿ� �α׿� �� ������, /var/run/utmp ������ ��������. �� ������ ���� ������, agetty�� login�� ����� �ſ� ���� ���α׷����� �����Ÿ��� �����Ѵ�. �׷��Ƿ� �츮�� ��� �ִ� $LFS/var/run/utmp ������ ���� �׷� ���α׷����� �� �̻� �����Ÿ��� �ʰ� ������ �Ѵ�.

    $LFS/var/run ���丮�� �����.
    touch $LFS/var/run/utmp ������ �����ؼ� ����ִ� utmp ������ �����.

     

    8.4 Testing the system

    �������� ���� ���� �ý����� �׽�Ʈ�Ϸ� �Ѵٸ� �ý����� �ٽ� �����ؼ� LFS �ý������� ��Ʈ�Ѵ�.  Ŀ�ΰ� sysvinit�� �ε�� ����, agetty�� ���۵ǰ�, username�� �Բ� ��Ʈ������ �������� �����п��� �˸���. ���� root ����� �ϳ��� �����Ƿ� �������� root�� �α����Ѵ�.

 

------------------------------------------------------------------------

9. Installing Vim

    Vim�� ��ġ�� �������ʹ�, �츮�� LFS �ý����� ���ٹ̴� ��(dress up)�� �� �̻� normal Linux�� ����� �ʿ䰡 ����.  �� ���� �������� ���ݺ��� ������ �ʾ� normal Linux �ý����� ���Ʈ�ؼ� �츮�� LFS �ý������� ���ư��� �Ѵٴ� ���� ���Ѵ�.

     

    9.1 Preparing the system for the Vim installation

    Installing Ncurses

    Vim�� ��ġ�ϱ� ���� ncurses ���̺귯���� ��ġ�� �����̴�.

    Ncurses ��Ű���� ������ Ǭ��.
    ��./configure --with-shared ������ ������ ��Ű��ȯ���� �����Ѵ�.

    Ncurses�� �ֱ� ������ C ǥ���� 100% ��Ȯ�ϰ� ������ �����Ƿ�, gcc2723���� �������� �ʿ䰡 �ִ�.

     make CC=/usr/gcc2723/bin/gcc ������ �����ؼ� ���α׷����� �������Ѵ�.
     make install.data �������� terminfo ���ϵ��� ��ġ�Ѵ�.
     test ���丮�� ���� ���̺귯������ �����ϴ��� �˻��ϴ� �� ���� ���α׷��� �����Ѵ�.
     make install �������� ���̺귯������ ��ġ�Ѵ�.

     

    9.2 Installing Vim

    Vim�� �� �κ����� �Ǿ� �ִµ� src ��Ű���� rt (run-time)��Ű���̴�. �������� vim�� ��ġ�ϱ� ���� �� ��Ű�� ��� �����;� �Ѵ�.  �������� ���� �� ��Ű���� ��� �� ���丮�� �־��ٸ�, �������� ó�� ������ Ǯ �� ���� ���丮�� �� ��Ű���κ��� Ǯ����� ���ϵ��� ���� ���� ���̴�.(� ���� ���� Ǯ����°��� �������� �ʴ´�)

      Vim-src�� Vim-rt ��Ű���� ������ Ǭ��.
      configure�� ������ ��Ű�� ȯ���� �����Ѵ�.

    Vim�� ���� gcc 2.95.2���� �����ϵ��� �����Ƿ� �� ����Ǵ� gcc 2.7.2.3���� �������ؾ� �Ѵ�.

     make CC=/usr/gcc2723/bin/gcc ������ �����ؼ� ���α׷����� �������Ѵ�.
     make install ������ �����ؼ� ��Ű���� ��ġ�Ѵ�.

 

------------------------------------------------------------------------

10. Creating initial boot scripts

     

    10.1 Preparing the directories and master files

    �� ���ǿ��� �����ϴ� ���α׷��� ��ġ�Ϸ��� Sysvi-nit ��Ű���� �ʿ��ϴ�.

    ���� ������ �����ؼ� �ʿ��� ���丮���� �����:
     

    cd /etc
    mkdir rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d init.d rcS.d


    Sysvinit �ҽ��� ��ġ�� ���丮�� ����.
    debian/etc/init.d/rc ������ ���� ���Ϸ� �����Ѵ�:    
    /etc/init.d
    /etc/init.d ���丮�� ����.
    ���� ������ ��� ���ο� rcS ������ �����:
     

       #!/bin/sh
       # Begin /etc/init.d/rcS

       runlevel=S
       prelevel=N
       umask 022
       export runlevel prevlevel

       trap ��:�� INT QUIT TSTP

       for i in /etc/rcS.d/S??*
       do
          if [ ! -f  ��$i�� ] && continue
          $i start
       done

       # End /etc/init.d/rcS 


     

    10.2 Creating the reboot script

    ���� ������ ��� ���ο� reboot ������ �����:
     

       #!/bin/sh
       # Begin /etc/init.d/reboot 

       echo -n ��System reboot in progress...��

       /sbin/reboot -d -f -i 

       # End /etc/init.d/reboot


     

    10.3 Creating the halt script

      ���� ������ ��� ���ο� halt ������ �����:
     

       #!/bin/sh
       # Begin /etc/init.d/halt 

       /sbin/halt -d -f -i -p

       # End /etc/init.d/halt


     

    10.4 Creating the mountfs script

    ���� ������ ��� ���ο� mountfs ������ �����:
     

    #!/bin/sh
    # Begin /etc/init.d/mountfs 

    check_status()
    {
      if [ $? = 0 ]
      then
        echo ��OK��
      else
        echo ��FAILED��
      fi
    }

    echo -n ��Remounting root file system in read-write mode...��
    /sbin/mount -n -o remount,rw /
    check_status

    > /etc/mtab
    /sbin/mount -f -o remount,rw /

    echo -n ��Mounting proc file system...��
    /sbin/mount proc
    check_status

    # End /etc/init.d/mountfs


       

    10.5 Creating the umountfs script

    ���� ������ ��� ���ο� umountfs ������ �����:
     

     #!/bin/sh
     # Begin /etc/init.d/umountfs

     check_status()
     {
       if [ $? = 0 ]
       then
         echo ��OK��
       else
         echo ��FAILED��
       fi
     }
     echo -n ��Unmounting file systems...��
     /sbin/umount -a -r
     check_status

     echo -n ��Remounting root file system in read-only  
     mode...��
     /sbin/mount -o remount,ro /
     check_status

     # End /etc/init.d/umountfs


     

    10.6 Creating the sendsignals script

    ���� ������ ��� ���ο� sendsignals ������ �����:
     

    #!/bin/sh
    # Begin /etc/init.d/sendsignals

    check_status()
    {
      if [ $? = 0 ]
      then
        echo ��OK��
      else
        echo ��FAILED��
      fi
    }
    echo -n ��Sending all processes the TERM signal...��
    /sbin/killall5 -15
    check_status

    echo -n ��Sending all processes the KILL signal...��
    /sbin/killall5 -9
    check_status


       

    10.7 Set file permissions and create symlinks

    chmod 755 reboot halt mountfs umountfs sendsignals �������� ������ ���� �۹̼��� �����Ѵ�.
    ���� ���ɵ��� ������ �ʿ��� �ɺ��� ��ũ���� �����:
     

    cd ../rc6.d; ln -s ../init.d/umountfs S90umountfs
    ln -s ../init.d/reboot S99reboot
    ln -s ../init.d/sendsignals S80sendsignals

    cd ../rc0.d; ln -s ../init.d/umountfs S90umountfs
    ln -s ../init.d/halt S99halt
    ln -s ../init.d/sendsignals S80sendsignals

    cd ../rcS.d; ln -s ../init.d/mountfs S10mountfs


       

    10.8 Creating the /etc/fstab file

      ���� ������ ��� /etc/fstab ������ �����:
     

    /dev/<LFS-partition device>   /       ext2   defaults  0 1
    /dev/<swap-partition device> none swap     sw      0 0
    proc                                     /proc proc  defaults  0 0


       

    10.9 Testing the system

    �������� ��ǻ�͸� �ٽ� �����ϰ� LFS�� ��Ʈ�ؼ� �ý����� �׽�Ʈ�Ѵ�. ���� �޽������� �������� �������� ��Ʈ ��Ƽ���� read-write ���� �ڵ����� ����Ʈ �� ���̴�.

    ������ shutdown -r now �� �������� �������� ��ǻ�͸� ������� �� �ִ�.

     

    -------------------------------------------------------

    �� ���� ���� �κ�(11�塭19��)�� ���� �޿� �ٷ��.




�� top

home����...