다음 이전 차례

7. 기본적인 시스템 소프트웨어의 설치

이 장에서 우리는 기본적인 리눅스 시스템에 필요한 모든 소프트웨어를 설치할 것이다. 이 장이 끝나면 여러분은 완전하게 동작하는 리눅스 시스템을 갖게 된다. 나머지 장들은 네트워킹 설정이나 인터넷 서버 + 클라이언트 (telnet, ftp, http, email), 인터넷 설정, X 윈도우 시스템 같은 선택적인 주제들에 대해 다룰 것이다. 여러분은 재량껏 그 장들을 뛰어넘어도 된다. 예를 들어 LFS 시스템을 네트웍에 연결할 계획이 없다면 인터넷을 설정하는 것은 거의 필요치 않을 것이다.

모든 기본적인 시스템 소프트웨어를 설치하기 전에 미리 설치되어 있어야 할 많은 패키지들이 있다. 전형적인 설정 스크립트들은 rm 이나 grep, sed, mv, cat, cp, diff 같은 프로그램들을 필요로 한다. 여러분은 압축 파일을 tar 와 gzip 으로 묶인 파일을 풀어야 하며 오브젝트 파일로 컴파일한 후 프로그램을 링크시며야 한다. 이 모든 (몇개를 더 포함해서) 프고르매들은 다른 어떤 것을 설치할 수 있기 전에 사용할 수 있어야 한다. 이 프로그램들은 정적으로 링크될 것이다. 그 이유는 여러분의 기존의 리눅스 시스템이 LFS 시스템에 설치하려는 것과 다른 버전의 C 라이브러리를 가지고 있을 수 있기 때문이다. 이 장에서 설치하는 프로그램들은 기존의 리눅스 시스템의 C 라이브러리에 링크될 것이다. 이것은 이 프로그램들을 LFS 시스템에서 실행하는 경우 라이브러리 충돌을 일으킬 수 있다. 따라서 우리는 이 프로그램들을 정적으로 링크해야 한다. 기본적인 시스템 소프트웨어들을 설치하는 동안 우리는 정적으로 링크된 소프트웨어들을 다시 설치하여 LFS 시스템의 C 라이브러리에 동적으로 링크되도록 할 것이다.

7.1 디버깅 심볼에 대하여

모든 프로그램이나 바이너리는 기본적으로 디버깅 심볼을 포함하여 컴파일된다. 이는 여러분이 프로그램이나 라이브러리를 디버거를 통해 실행할 수 있으며 디버거의 출력물이 좀 더 사용자에게 편하게 된다는 것을 뜻한다. 이 디버깅 심볼들은 또한 프로그램이나 라이브러리의 크기를 매우 크게 한다. 이 문서는 디버깅 심볼 없이 소프트웨어를 설치하진 않는다 (많은 독자들이 디버깅 소프트웨어를 사용하는지 않하는지를 내가 알지 못하기 때문에). 대신에 여러분은 원할경우 strip 프로그램으로 그 심볼들을 직접 제거할 수 있다.

바이너리 (a.out 이나 ELF 바이너리여야 한다) 로부터 디버깅 심볼을 제거하기 위해선 strip --strip-debug filename 을 실행한다. 여러 파일들에서 디버깅 심볼을 제거하고 싶다면 와일드 카드 문자를 쓰면 된다 (strip --strip-debug $LFS/usr/bin/* 와 같이).

여러분이 디버깅 심볼이 큰 차이를 만드는지 알고 싶다면 아래에 통계가 있다:

사용하는 컴파일러와 동적으로 프로그램을 링크시키기 위해 쓰이는 C 라이브러리의 버전에 따라 크기가 다를 수 있으나 디버깅 심볼을 포함한 것과 그렇지 않은 것을 비교한다면 여러분의 결과는 비슷할 것이다. 이 장을 끝내고 모든 LFS 바이너리들과 라이브러리들에서 디버깅 심볼을 제거한 후 나는 102MB 를 약간 넘은 디스크 공간을 다시 얻었다. 매우 차이가 크다. 그 차이는 모든 것을 설치하게 되는 이 문서의 마지막에 같은 일을 했을 때 더욱 커질 것이다.

7.2 기본적인 시스템 소프트웨어 설치를 위한 LFS 시스템의 준비

Binutils의 설치

./configure
make -e LDFLAGS=-all-static
make -e prefix=$LFS/usr install
 

Bzip2의 설치

make -e LDFLAGS=-static
make -e PREFIX=$LFS/usr install
cd $LFS/usr/bin
mv bunzip2 bzip2 $LFS/bin
 

Diffutils의 설치

./configure
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
 

이 패키지는 특정 플랫폼에서 정적 링크에 문제를 일으킨다고 알려져 있다. 여러분이 이 패키지를 컴파일하는데 문제를 겪는다면 수정된 패키지를 http://www.linuxfromscratch.org/download/diffutils-2.7-fixed.tar.gz 에서 구할 수 있다.

Fileutils의 설치

./configure --disable-nls
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
cd $LFS/usr/bin
mv chgrp chmod chown cp dd df ln ls mkdir mknod mv rm rmdir sync $LFS/bin
 

필요한 경우 기존의 시스템에 GCC 설치하기

Glibc-2.1.3을 컴파일하기 위해서는 gcc-2.95.2가 설치되어 있어야 한다. 2.8 이후의 어떤 버전이라도 가능하지만 2.95.2를 추천한다. 많은 glibc-2.1 기반의 시스템은 gcc-2.7.2.3이 설치되어 있으며 이 컴파일러로는 glibc-2.1을 컴파일할 수 없다. 따라서 우리는 기존의 시스템에도 gcc-2.95.2를 설치할 것이다. 그러나 기존의 컴파일러를 덮어씌우진 않을 것이다. gcc를 여러분의 시스템에 설치하기 전에 이것이 필요한지 확실히 결정해야 한다. 기존의 것의 버전 번호가 2.8 이상인지 보기 위해서 gcc --version 를 실행한다. 만약 그렇지 않다면 여러분은 gcc-2.95.2를 설치해야 한다. 후에 glibc를 컴파일하는데 어려움을 겪는다면 어쨋든 gcc-2.95.2를 설치하길 원하게 될 것이다.

mkdir $LFS/usr/src/gcc-build; cd $LFS/usr/src/gcc-build
../gcc-2.95.2/configure --prefix=/usr/gcc2952 \ 
--with-local-prefix=/usr/gcc2952 --with-gxx-include-dir=/usr/gcc2952/include/g++ \ 
--enable-shared --enable-languages=c,c++
make bootstrap; make install
 

LFS 시스템에 GCC를 설치하기

mkdir $LFS/usr/src/gcc-build;cd $LFS/usr/src/gcc-build
../gcc-2.95.2/configure --enable-languages=c --disable-nls
make -e LDFLAGS=-static bootstrap
make -e prefix=$LFS/usr local_prefix=$LFS/usr install
 

필요한 심볼릭 링크들의 생성

모든 프로그램들이 컴파일러와 프리-프로세서를 찾을 수 있도록 하기 위해서 몇가지 심볼릭 링크가 필요하다. 몇몇 프로그램은 cc 프로그램을 실행하고 다른 것들은 gcc 프로그램을 실행하며, 몇몇 프로그램은 /lib (LFS 시스템에서의 /usr/lib) 에 cpp 프로그램이 있길 예상하지만 다른 것들은 /usr/bin 아래에 있길 예상한다.

cd $LFS/lib; ln -s ../usr/lib/gcc-lib/<host>/2.95.2/cpp cpp
cd $LFS/usr/lib; ln -s gcc-lib/<host>/2.95.2/cpp cpp
cd $LFS/usr/bin; ln -s gcc cc
 

<host>를 gcc-2.95.2 파일들이 설치된 디렉토리 (내 경우엔 i686-unknown-linux)로 대체한다. 여러분은 아마 두 개의 서로 다른 디렉토리를 발견할 것이다.

Glibc의 설치

glibc-crypt 패키지에 대한 주의사항:

-*-*-*-*-*-
프랑스, 러시아 미국 등의 일부 국가들이 암호화 소프트웨어의 사용과 배포를
매우 엄격히 규제하고 있기 때문에 이 add-on은 GNU C 라이브러리의 주 배포판
안에 포함되지 않는다. 더 자세한 사항은 메뉴얼의 "Legal Problems" 부분을
읽기 바란다.

특별히, 미국은 이 소프트웨어를 라이센스 없이 미국 밖으로 유출하는 것을 -
인터넷을 통하는 것을 포함하여 - 허가하지 않는다. 따라서 여러분이 미국 밖에
있다면 이 add-on을 FSF의 공식 FTP 사이트인 ftp.gnu.org로부터 받지 말길
바란다. 이 소프트웨어는 완전히 미국 밖에서 개발되었다.
-*-*-*-*-*-
 

"이 소프트웨어"는 ftp://ftp.gwdg.de/pub/linux/glibc/에 있는 glibc-crypt 패키지를 가리킨다. 이 법규는 단지 미국에 살지 않는 사람들에게만 적용된다. DES 소프트웨어를 가지고 들어오는 것이 규제되지는 않으므로 여러분이 미국 내에 살고 있다면 위의 독일 사이트로부터 이 소프트웨어를 구할 수 있다.

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

mkdir $LFS/usr/src/glibc-build;cd $LFS/usr/src/glibc-build
../glibc-2.1.3/configure --enable-add-ons
make; make install_root=$LFS install
 

mkdir $LFS/usr/src/glibc-build; cd $LFS/usr/src/glibc-build
CC=/usr/gcc2952/bin/gcc ../glibc-2.1.3/configure --enable-add-ons
make; make install_root=$LFS install
 

이전의 NSS 라이브러리 파일들의 복사

여러분의 기존 리눅스 시스템이 libc-2.0.x를 사용한다면 NSS 라이브러리 파일들을 LFS 파티션으로 복사해야 한다. 정적으로 링크된 프로그램들 중 일부는 여전히 NSS 라이브러리에 의존하며 username, userid 그리고 groupid를 찾는 프로그램들이 특히 그렇다. ls -l libc.so.*를 실행하여 기존의 리눅스 시스템이 어떤 버전의 C 라이브러리를 사용하는지 볼 수 있다.

결과가 /lib/libc.so.6 -> libc-2.0.7.so 같은 것이라면 시스템은 glibc-2.0을 사용하는 것이다.

결과가 /lib/libc.so.6 -> libc-2.1.2.so 같은 것이라면 시스템은 glibc-2.1을 사용하는 것이다.

여러분의 시스템이 libc-2.0.x.so 파일 (x는 7 같은 마이크로 버전 번호) 을 가지고 있다면 cp -av /lib/*nss* $LFS/lib 를 실행하여 NSS 라이브러리 파일들을 복사한다.

grep의 설치

./configure --disable-nls
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
 

이 패키지는 특정 플랫폼에서 정적 링크 에러를 낸다고 알려져 있다. 여러분이 이 패키지를 컴파일할 때 문제를 겪는다면 수정된 패키지를 http://www.linuxfromscratch.org/download/grep-2.4-fixed.tar.gz에서 구할 수 있다.

gzip의 설치

./configure
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
cd $LFS/usr/bin
mv gunzip gzip $LFS/bin
 

이 패키지는 특정 플랫폼에서 컴파일 문제를 일으킨다고 알려져 있다. 여러분이 이 패키지를 컴파일할 때 문제를 겪는다면 수정된 패키지를 http://www.linuxfromscratch.org/download/gzip-1.2.4-fixed.tar.gz에서 구할 수 있다.

Make의 설치

./configure
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
 

Sed의 설치

./configure
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
mv $LFS/usr/bin/sed $LFS/bin
 

이 패키지는 특정 플랫폼에서 정적 링크 문제를 일으킨다고 알려져 있다. 여러분이 이 패키지를 컴파일할 때 문제를 겪는다면 수정된 패키지를 http://www.linuxfromscratch.org/download/sed-3.02-fixed.tar.gz에서 구할 수 있다.

Sh-utils의 설치

./configure --disable-nls
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
cd $LFS/usr/bin
mv date echo false pwd stty su true uname hostname $LFS/bin
 

Tar의 설치

./configure --disable-nls
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
mv $LFS/usr/bin/tar $LFS/bin
 

Textutils의 설치

./configure --disable-nls
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
mv $LFS/usr/bin/cat $LFS/bin
 

Util-linux의 설치

./configure
cd lib;make
cd ../mount;make -e LDFLAGS=-static
cp mount umount $LFS/bin
cp swapon $LFS/sbin
 

7.3 기본적인 시스템 소프트웨어의 설치

모든 소프트웨어들의 설치는 매구 직관적이며 여러분은 각 패키지에 대한 일반적인 설치 방법을 설명하고 특정 패키지가 다른 설치 방법을 쓴다면 그 방법을 설명하는 것이 훨씬 쉽고 짧다고 생각할 것이다. 이 문제에 대해 나도 여러분의 의견에 찬성하지만 나는 모든 패키지에 완벽한 과정을 설명하는 것을 선택했다. 이것은 단순히 가능할 지도 모를 에러나 혼돈을 막기 위함이다. 이 문서를 더 진행해 가기 전에 여러분은 시스템을 재시작하여 LFS 시스템으로 부팅해야 한다. 그러나 그러기 전에 어떤 파티션이 스왑 파티션으로 사용되는지 알아야 한다. 이 정보는 일반적으로 /etc/fstab 파일에서 찾을 수 있다. /dev/hda6 none swap sw 0 0 과 비슷한 줄을 이 파일에 있는지 찾아본다.

그 줄의 4번째 필드는 만드시 'sw'여야 한다. 그 줄은 스왑 파티션을 나타낸다. 여러분이 기억해야할 것은 그 위치이다 (내 경우엔 /dev/hda6이지만 여러분의 시스템에선 다를 수 있다). 어떤 파티션이 스왑 파티션인지 알았으면 컴퓨터를 리부팅하여 여기부터 계속해 나가도 된다.

파티션을 재마운트하고 스왑 활성화하기

소프트웨어를 설치하기 전에 우리는 파티션을 읽고쓰기 모드로 다시 마운트해야 한다. 또한 규모가 큰 컴파일 과정 (gcc의 컴파일 처럼) 동안 메모리 부족 문제가 발생하지 않도록 스왑 파티션을 활성화해야 한다.

mount -o remount,rw / /
/sbin/swapon <swap device>
 

GCC의 설치

mkdir $LFS/usr/src/gcc-build;cd $LFS/usr/src/gcc-build
../gcc-2.95.2/configure --with-gxx-include-dir=/usr/include/g++ \ 
--enable-shared --enable-languages=c,c++
make bootstrap; make install
 

Bison의 설치

./configure --datadir=/usr/share/bison
make; make install
 

Mawk의 설치

./configure
make; make install
cd /usr/bin; ln -s mawk awk
 

Findutils의 설치

./configure
make; make install
 

이 패키지는 컴파일 문제를 일으킨다고 알려져 있다. 여러분이 이 패키지를 컴파일할 때 문제를 겪는다면 수정된 패키지를 http://www.linuxfromscratch.org/download/findutils-4.1-fixed.tar.gz에서 구할 수 있다.

Termcap의 설치

./configure
make; make install
 

Ncurses의 설치

./configure --with-shared
make; make install
 

Less의 설치

./configure
make; make install
mv /usr/bin/less /bin
 

Perl의 설치

./Configure
make; make install
 

우리는 'make test' 과정을 생략한다는 것을 주의한다. 이는 이 순간에 아직 시스템이 perl 테스트를 실행할 준비가 되지 않았기 때문이다. 지금은 우리는 perl 컴파일이 잘 되었다고 믿을 것이다.

M4의 설치

./configure
make; make install
 

Texinfo의 설치

./configure
make; make install
 

Autoconf의 설치

./configure
make; make install
 

Automake의 설치

./configure
make install
 

Installing BashBash의 설치

./configure
make; make install
mv /usr/bin/bash /bin
 

Installing FlexFlex의 설치

./configure
make; make install
 

Binutils의 설치

./configure
make; make install
 

Bzip2의 설치

make; make install
cd /usr/bin; mv bunzip2 bzip2 /bin
 

Diffutils의 설치

./configure
make; make install
 

E2fsprogs의 설치

./configure
make; make install
mv /usr/sbin/mklost+found /sbin
 

File의 설치

./configure
make; make install
 

Fileutils의 설치

./configure
make; make install
cd /usr/bin
mv chgrp chmod chown cp dd df ln ls mkdir mknod mv rm rmdir sync /bin
 

Grep의 설치

./configure
make; make install
 

Groff의 설치

./configure
make; make install
 

Gzip의 설치

./configure
make; make install
cd /usr/bin; mv z* gunzip gzip /bin
 

Ld.so의 설치

cd util; make ldd ldconfig
cp ldd /bin; cp ldconfig /sbin
rm /usr/bin/ldd
 

Libtool의 설치

./configure
make; make install
 

Linux86의 설치

cd as
make; make install
cd ../ld
make ld86; make install
 

Lilo의 설치

make; make install
 

Make의 설치

./configure
make; make install
 

Sh-Utils의 설치

./configure
make; make install
cd /usr/bin
mv date echo false pwd stty su true uname hostname /bin
 

Shadow Password Suite의 설치

./configure 
make; make install
cd etc
cp limits login.access login.defs.linux shells suauth /etc
mv /etc/login.defs.linux /etc/login.defs
cd /usr/sbin
mv chpasswd dpasswd groupadd groupdel groupmod logoutd mkpasswd \ 
newusers useradd userdel usermod grpck pwck vipw grpconv grpunconv \ 
pwconv pwunconv /sbin
 

Man의 설치

./configure -default
make all; make install
 

Modutils의 설치

./configure
make; make install
 

Procinfo의 설치

make; make install
 

Procps의 설치

gcc -O3 -Wall -Wno-unused -c watch.c
make; make -e XSCPT="" install
mv /usr/bin/kill /bin
 

Psmisc의 설치

make; make install
 

Sed의 설치

./configure
make; make install
mv /usr/bin/sed /bin
 

start-stop-daemon의 설치

make start-stop-daemon
cp start-stop-daemon /sbin
cp start-stop-daemon.8 /usr/share/man/man8
 

Sysklogd의 설치

make; make install
 

Sysvinit의 설치

cd src
make; make install
 

Tar의 설치

./configure
make; make install
mv /usr/bin/tar /bin
 

Textutils의 설치

./configure
make; make install
mv /usr/bin/cat /bin
 

Vim의 설치

./configure
make; make install
 

Util-linux의 설치

HAVE_PASSWD=yes
HAVE_SLN=yes
HAVE_TSORT=yes
 

groupadd -g 5 tty
./configure
make; make install
 

7.4 예전의 NSS 라이브러리 파일들의 제거

여러분이 기존의 리눅스 시스템에서 LFS 시스템으로 NSS 라이브러리 파일들을 복사했었다면 (기존 시스템이 glibc-2.0을 쓰기 때문에) 이제 아래를 실행하여 그 파일들을 제거한다:

rm /lib/libnss*.so.1 /lib/libnss*2.0*
 

7.5 소프트웨어의 설정

이제 모든 소트으웨어들이 설치되었고 몇몇 프로그램이 정상적으로 돌도록 하기 위해 우리가 해야할 것은 설정 파일들을 만드는 것 뿐이다.

Glib의 설정

/etc/nsswitch.conf 파일을 만들어야 한다. 이 파일이 없거나 잘못된 경우 glibc가 기본 값을 사용하긴 하지만 이 기본값은 이후 장에서 다룰 네트워킹과 잘 동작하지 않는다. 또한 우리의 타임존도 설정되어야 한다.

# Begin /etc/nsswitch.conf
passwd: files
group: files
shadow: 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
 

/etc/localtime or ln -s /usr/share/zoneinfo/Canada/Eastern /etc/localtime tzselect의 결과는 "EST5EDT"나 "Canada/Eastern" 같은 것이다. 그런 정보로 여러분이 만드는 심볼릭 링크는 ln -s /usr/share/zoneinfo/EST5EDT 이거나 ln -s /usr/share/zoneinfo/Canada/Eastern /etc/localtime 이다.

LILO의 설정

lilo의 설정 파일을 처음부터 만들지는 않고 기존의 리눅스 시스템의 파일을 사용할 것이다. 이 파일은 머신에 따라서 틀리며 따라서 내가 여기서 만들 수는 없다. 여러분은 기존의 리눅스 시스템에서 쓰던 것과 똑같은 lilo 옵션들을 쓰길 원할 것이므로 기존 시스템의 것과 똑같이 파일을 만든다.

cp /mnt/original/etc/lilo.conf /etc
cp /mnt/original/boot/* /boot
 

기존의 리눅스 시스템이 커널 이미지들은 (어느 것도) /mnt/original/boot 안에 가지고 있지 않다면 그 파일들의 위치를 /etc/lilo.conf 파일에서 확인한 후 그 파일들을 /etc/lilo.conf가 찾을 수 있는 곳으로 복사한다. 혹은 여러분은 그 파일들을 /boot로 복사한 후 /etc/lilo.conf 파일을 수정하여 LFS 시스템에서 커널 이미지들이 있는 새 경로를 찾도록 할 수 있다. 어떤 것도 잘 동작하며 어떻게 할 것인가는 여러분에게 달렸다.

Sysklogd의 설정

# Begin /etc/syslog.conf
 
auth,authpriv.* -/var/log/auth.log
*.*;auth,authpriv.none -/var/log/sys.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
*.emerg *
 
# End /etc/syslog.conf
 

Shadow Password Suite의 설정

이 패키지는 사용자의 암호를 바꾸고 새로운 사용자/그룹을 추가하고 사용자/그룹을 삭제하는 등의 일을 하기 위핸 유틸리티들을 포함하고 있다. 'password shadowing'이 무엇인지를 설명하진 않겠다. 여러분은 doc/HOWTO 파일 안에서 이에 대한 것을 모두 읽어볼 수 있다. 여러분이 명심할 것이 하나 있는데, shadow 지원 기능을 사용하기로 했다면 암호를 확인할 필요가 있는 프로그램들 (예를 들어 xdm이나 ftp 데몬, pop3d 등) 이 'shadow-compliant(섀도우 호완)'이어야 한는 것이다. 다시말해 그 프로그램들이 섀도우 패스워드와 잘 작동할 수 있어야 한다.

섀도우 패스워드를 사용하지 않기로 결정했더라도 (doc/HOWTO 문서를 읽은 후에) 여러분은 여전히 패키지를 사용하는데 그것은 이 패키지 안의 유틸리티들으 섀도우 패스워드를 사용하지 않는 시스템에서도 사용되기 때문이다. 이에 대한 모든 내용을 HOWTO에서 볼 수 있다. 또한 여러분이 원하는 때에 섀도우 패스워드의 사용 여부를 변경할 수 있다는 것을 명심한다.

지금이 doc/HOWTO 파일의 #5 부분을 읽을 매우 좋은 시기이다. 여러분은 섀도우 기능이 작동하는지 여부를 검사하는 방법과 기능을 정지시키는 방법을 알 수 있다. 만약 작동하지 않고 있으며 검사를 하지 않았었다면 여러분의 모든 콘솔에서 로그아웃 한 후 더이상 시스템을 사용할 수 없게 될 것이다. 이는 더이상 로긴을 할 수 없기 때문이다. 이 문제를 쉽게 해결하는 방법은 커널에 init=/sbin/sulogin 이라는 인자를 넘겨준 후 util-linux 압축파일을 풀고 login-utils 디렉토리로 이동하여 login 프로그램을 만든 후 /bin/login을 그것으로 바꿔 버리는 것이다. 일이 절망적으로 잘못되진 않겠지만 (적어도 Linux 상에서는) 알맞게 테스트를 하고 매뉴얼을 읽음으로써 어려움을 피할 수 있다 ;)

Sysvinit의 설정

/etc/inittab 파일을 아래처럼 수정한 후 여러분은 이전처럼 로긴할 수 있다 (agetty와 login 프로그램을 사용하여). Sulogin은 일반적인 로긴에선 더이상 쓰이지 않을 것이다.

# Begin /etc/inittab
 
id:2:initdefault:
 
si::sysinit:/etc/init.d/rcS
 
su: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
 
ft:6:respawn:/sbin/sulogin
 
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
 
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
 
# End /etc/inittab
 

/var/run/utmp 파일의 생성

login이나 shutdown 등의 프로그램들은 /var/run/utmp 파일에 무언가 쓰기를 원한다. 이 파일은 현재 로긴해 있는 사람들에 대한 정보를 담고 있다. 또한 컴퓨터가 마지막으로 셧다운 된 때에 대한 정보도 담고 있다.


다음 이전 차례