Debian에 관하여(1)
Debian GNU/Linux Ⅰ-소개와 dselect 사용법

박주연 / 나우누리 리눅스 동호회 시샵

 

     

들어가는 이야기 와 GNU에 대한 이야기

    97년 7월 8일자 Computing Canada에는 리눅스는 단순한 운영체제가 아니다. 리눅스는 종교이다'라는 제목의 기사가 실렸다. 이에 동의하는 사람이 많을 것으로 안다. 리눅스를 사용한다는 것 자체만으로 다른 운영체제와의 비교를 거부하는 수많은 리눅스 사용자가 있고, 리눅스와 함께 하는 삶을 뿌듯해 하며 살고 있는 필자와 같은 사람도 있다. :-)

    91년 핀란드 청년 라이너스(Linus :이는 영어 발음으로 라이너스이며 핀란드 발음으로 리누스라고 한다. 어떻게 발음하든 개의치 는 않지만 필자는 라이너스라고 이야기한다.)에 의해 개발된 Unix-like 커널로 시작한 리눅스는 지금 수 많은 사람들의 지지속에 식지 않는 열정으로, 전세계의 많은 지원자들에 의해 개발되고 있다.

    그러나, 엄밀하게 이야기하자면 리눅스는 운영체제가 아니다. 리눅스는  GNU의 GPL을 충실히 지켜 나가고 있는 커널일 뿐이다. 운영체제라는 것은 '컴퓨터 사용자와 컴퓨터 하드웨어 사이의 인터페이스로서 행동하는 프로그램'이다 .커널만으로 운영체제는 성립되지 않으며 커널을 통해 사용자와 직접 대화할 수 있는 수많은 응용프로그램이 반드시 있어야 한다. 데비안 의 정식이름은 "Debian GNU/Linux'이다 GNU는 익히 들어 알고 있지만 왜 이러한 이름을 택하는지 배포본을 접할 때 에는 늘 염두해 두어야 할 사항이다.

    GNU는 리눅스가 나오기 이전부터 존재했던 FSF(Free Software Foundation)의 프로젝트명이다. 리처드 스톨맨(Richard M. Stallman : 이하 RMS )이 리더였던 이 프로젝트는 가장 자유롭고 쓸 만한 운영체제를 만들기로 결정하고, 그 일환으로 GNU의 GPL(General Public License)에 따르는 프로그램을 만들어 냈다. 그리고 수많은 프로그램들이 자발적인 참여자에 의해 만들어지게 되었다. 그런데 91년 라이너스가 GNU의 GPL을 따르는 커널을 만들어 내게 된다. GNU의 정신을 따르는 훌륭한 커널이 나타났으니 GNU측은 매우 환영했음은 당연한 사실이다. 이제 GPL을 따르는 커널이 나타났고 이미 GNU 프로젝트의 산물로 수많은 공개 프로그램인 나타났으니 이제야 비로서 운영체제의 격을 갖출 수 있게 된 것이다. GNU 프로젝트에서는 그 당시까지만 해도 커널을 만들어내지 못했었다.

    이때부터 배포본(Distribution)이 등장하게 되었다. 휼륭하게 작동하는 Unix-like 커널, 그리고 그 커널 위에서 동작하는 많은 프로그램들, 그것을 한데 묶어서 배포폰이 등장하게 된 것이다. 우리가 구별해야 할 것은 근래 들어 버전 0.2 발표된 GNU와 는 다르다는 것이다. 지금 우리가 사용하는 '리눅스 '라는 것은 '리눅스 커널을 기반으로 한 GNU 시스템이고 GNU 프로젝트에 의해 개발된 그들의 독자커널 Hurd가 사용되다면 'Hurd 커널을 기반으로 한 GNU 시스템' 이 된다.
    배포본의 종류는 정말 많다. 여태까지 다른 운영체제를 사용해 오고 있었다면 사실' 배포폰' 이라는 단어가 꽤 어색하기만 하다. 하지만 리눅스가 세상에서 가장 자유로운 운영체제임을 실감할 수 있는 것은 바로 다양한 배포본이 있다는 점이다.

    필자는 다른 배포본과 달리 전세계적으로 배포본 개발작업 공식참여자가 2백여명이 넘는 데비안에 대해서 소개하려고 한다. 국내에서는 슬랙웨어와 레드햇이 리눅스 배포본으로 가장 많이 사용되고 있는 가운데 변변한 문서도 없고, 구하기도 힘든 데비안이지만 이제 데비안을 쉽게 사용할 수 있는 길잡이노릇을 필자가 할 수 있을까 모르겠다. 그럼 이제부터 GUN의 정신에 가장 충실한 리눅스 배포본, 데비안에 대해서 알아보자. 하지만 이 글은 리눅스를 처음 접하는 사람을 위하여 작성한 글은 아님을 미리 밝힌다.

 

데비안과 SPl에 대한 간략한 이야기

    데비안은 1993년 이안 머독에 의해 FSF의 GNU프로젝트의 공식적 지원으로 개발되었다. 데비안의 개발자들은 GNU 프로젝트도 겸하고 있기도 하며, 직접적인 계승자이다. 데비안을 '드비앙' 혹은 '데비앙'이라 마치 불어인 것처럼 일부러 굴려서 발음할 필요는 없다. 데비안은 불어가 아니다. 데비안(Debian)은 DEb-ian이며 이만 머독(Ian Murdock)과 Debra 의 이름을 따서 만든 명칭이다. 발음은 첫번째 강세가 있고 ian은 발음기호가 ee-an이다. 영어발음으로 하면 '뎁에-안(?)' 정도가 될 듯하다. :-)

    데비안은 리눅스 커널을 기반으로 한 GNU시스템, 즉 리눅스 배포본의 한 종류이다. 데비안이 GNU라는 말을 넣는 것은, 과거 GNU의 공식적인 지원을 받아 만들어지게 된 배포본이고 당시 리더였던 이안 머독씨가 역시 GNU측이었기 때문이다. 물론 중간에 GNU측이 리눅스는 GNU시스템의 공식커널이 아님을 분명히밝히고 독자 커널을 개발하는 중이기 때문에 한동안 GNU라는 이름이 들어가지는 않았지만, 다시 GNU과의 협력관계에 있으며(데비안측에서는 이에 대해 'cooperrate'하고 있다고 공식적으로 어나운스 하였다.) GNU측에서는 데비안 배포본에 GNU명칭을 넣어 줄 것을 요청했다.
    그래서 이름이 'Debian GNU/Linux'이다.

    데비안 리눅스는 SPI(Software in Public Interest)라는 단체에서 제작을 후원하고 있다. SPI는 FSF와는 약간의 차이가 있는데 간단히 이야기하면, SPI는 리눅스 시스템의 지원에 더 많은 비중을 두고 있다는  점이다. 그 밖의 내용은 FSF와 거의 같다. SPI는 데비안 개발자에 의해 만들어 졌고, 데비안은 SPI의 프로젝트이다

 

데비안 리눅스에 대하여

    데비안 리눅스의 몇 가지 특징을 들어보면 전체적인 개념을 잡는데 쉬울 것 같다.

    1. 데비안은 진보적인 패키지 관리 시스템(Debian Package Management System)을 갖고 있다. 데비안의 이 패키지 관리 시스템은 레드햇 리눅스의 패키징 시스템의 모체가 되었으며, 관리시스템으로 논문을 내도 좋으리만큼 훌륭한 시스템이다. dpkg를 이용한 개별 패키지의 설치, dselect 메뉴시스템에 의한 패키지의 설치는 아직 어떠한 배포본도 지니지 못한 독특한 특징이고, 진보된 개념이다. 우리는 이 패키지관리 시스템을 자세히 알아보게 될 것이다.

    2. 데비안은 이전의 슬렉웨어에는 없는 "업그레이드"를 최초로 도입하였다. 사용자가 설정한 내용을 잃어버리지 않고 배포본을 업그레이드 할 수 있고, 심지어 다른 일을 하면서 업그레이드를 할 수 있다는 장점이 있다. 그리고 무엇보다도 리부팅조차 필요치 않다는 점이다. 대부분의 경우 패키지 관리 시스템에서 물어 오는 대로 응답만 해주면 바로 패키지를 사용할 수 있는 뛰어난 기능을 제공한다.

    3. 대부분의 배포판은 개인, 혹은 소규모 그룹, 아니면 폐쇄적인 그룹이나 회사에 의해 개발이 된다. 레드햇, 칼데라 리눅스는 회사에 의해서 개발되는 배포본이고 슬랙웨어는 한 개인에 의해 개발되는 배포본이다. 이 반면, 데비안은 전세계적으로 산재한 이백여명 이상의 패키지 관리자에 의해 1천여개의 패키지가 한데 모여 만들어진다. 공식적 어나운스에서는 패키지가 700여개라고 밝히고 있지만, 실제 데비안 패키지는 배포본CD에 삽입되는 것이 1천 2백 32개이다. (데비안 2.0 개발 버전 기준) 그리고, GPL을 따르지 않아 배포본CD에는 넣지 않는 'non-free' 섹션의 패키지와 그 외 따로 만들어지는 패키지를 모두 합치면 1천 5백여개 이상이 된다. 너무 많아서 어떤 것을 설치해야 될지 모르는 행복한 고민(?)을 해야만 하는 정말 대단한 배보폰이 아닐까 싶다.(장단점이 있지만)

    4. 무엇보다도 데비안은 이윤 남기고 파는 것이 없다는 점이다. 물론 배포폰CD를 데비안측에 주문할 때에는 CD 값과 우송료는 부담해야 하지만, 그 외의 비용은 전혀 없다. 데비안 공식 배포본(프로그램 소스와 바이너리)은 4달러(한화 3800원 정도) 정도의 가격으로 판매가 되고 있다. 말 그대로 CD 값만 받는 셈이다. 그럼 데비안 개발자는 뭘 먹고 살라고 이렇게 파는가. 대신 SPI측에 기부금을 내줄 것을 권유하고 있다. 내도 그만 안내도 그만 이다. 97년 9월10일 현재 총 기부금은 3930.85 달러로 4백만원 남짓의 돈이다. 지난 3월부터 모인 돈인데 생각보다는 적다. 전 세계적으로 아직 기부하는 사람은 별로 없는 모양이다. 여러분이 이 글을 읽고 있을 즈음 얼마가 모여있을까? 여러분도 기부자의 한 사람이 되어 보는 건 어떨까 ?
    (
    http://www.buoy.com/debian/misc/donate.pl참조)

    5. 뛰어난 버그 트랙 리포트 시스템을 자랑한다. 패키지 수가 많고 패키지 관리자 수가 많아 단일 패키지에 대한버그가 www과 email로 리포트 되면 즉각적인 처리가 이루어질수 있다. (데비안은 보안관련 문제에 대해서는 48시간 대응을 표방하고 있다.)

 

데비안 패키지 관리 시스템에 대한 잡담

    기존의 슬렉웨어와 레드햇 사용자가 데비안을 처음 접할 때 가장 먼저 느끼는 감정은 설치가 ‘매우 어렵다’라는 점이다. 사실 초기 슬랙웨어를 끙끙 대면서 설치하던 것, 그리고 그 훨씬 이전 SLS 리눅스를 설치할 때를 생각하면 몸서리가 쳐질 정도인데 데비안 패키지 관리 시스템도 '매우 어렵다'고 시작부터 엄포(?)를 놓으니 벌써 책장을 넘기는 독자가 있을 줄로 믿는다. 필자가 데비안을 처음 접할 때에도 '정말 어렵다'라는 말부터 꺼냈다. 변변한 데비안 관련 한글 문서가 없고(지금도 없다. 애석하게도 ) 슬렉웨어에 비하면 정말 생소하기 짝이 없는 패키지 관리 개념은 필자를 상당히 당황하게 만들었다. 황량한 화면에 dselect라는 사용자 대화식 설치 프로그램, 온통 가득한 영어 슬랙웨어에서는 모르면 그냥 설치하면 별탈없이 돌아가줬지만 데비안은 왜 이런 것일까 라며 거짓말 조금 보태서 이야기하면 한 삼십여회는 설치했던 것 같다.

    지금 지나 보면 추억이고, 지금은 익숙하게 설치할 거라고 필자를 생각한다면 오산이다. 아직 필자는 데비안 패키지 1천 5백여개 중에 안 써 본 것이 반이 넘고, 설치 안한 것도 반이 넘는다. 왜? 무슨 역할을 하는지 잘 모르기 때문이라고 해야 할까?

    자 어쨌든 이제 개념을 잡아야 할 때이다. 우리가 영어를 능숙하게 구사하고 영어 문장에 대한 두려움이 없다면 데비안 시스템은 그리 설치하기가 어렵지 않다. 그만큼 매뉴얼이 자세하고 설치가이드 문서에는 이 데비안 설치시스템을 '닭에게 리눅스 설치하는 법을 가르쳐줘도 될 정도'라는 이야기도 들어있다. 무엇보다도 리눅스는 차근차근히 읽어 가면서 왜 안되는지 생각하는 습관을 들이는게 중요하다. 여태껏 다른 운영체제를 사용해 온 사람은 매뉴얼 없이도 프로그램설치를 능숙하게 하고 잘 써 왔지만, 리눅스는 꼭 그렇지만은 않다.

 

패키지 설치의 모든 것. dselect

    dselece는 데비안 리눅스의 패키지(확장자가 deb인 파일)를 관리하는 메뉴 시스템이다. 레드햇에서는 컨트롤 패널 내부에 패키지 관리를 도와주는 툴이 있으나, dselect와 는 꽤 차이가 난다. dselect는 데비안 리눅스를 설치하고 난 후 시스템에 설치된 패키지가 어떤 것이며, 버전은 어떠하고, 지금 현재 설치된 상태, 패키지가 하는 역할에 대한 짧은 소개 등을 직접 눈으로 보면서 관리를 하도록 해준다. dselect는 독립된 프로그램은 아니며 dselect와 dpkg, 그리고 그 밖의 debianutils가 함께 작동을 한다. dselect는 설치를 쉽게끔 하는 일종의 셸 이라고 볼 수 있다.

    dselece로는 패키지의 설치/삭제/업그레이드/설정을 메뉴 시스템으로 할 수 있게끔 해주며, 데비안을 처음 설치하고 난 후 dpkg에 익숙치 않은 사람에게 상당히 유용하며, 가장 먼저 접하는 프로그램이기도 하다. 실제로 레드햇에서 패키지 관리프로그램인 rpm의 역할을 하는 dpkg를 보다 쉽게 사용하고자 만든 dselcer는 초심자에게는 공포의 대상(?)이기도 하다. 셀 프롬프트에서 실행할 수 있는 dselect를 능숙하게 다룰 수 있다면 바로 옵션을 주고 실행할 수 있다. 자세한 것은 main 페이지를 참조하도록 하자

    쉘에서 dselet를 입력해넣자.
     

    $ dselcet

     

    그러면 화면은 다음의 형태를 나타낼 것이다.
     

    Debian Linux dselect' package handling frontend

    *0.[A]ccess   choose the access method to use.

     

    1.[U]pdate    Update list of available package if possible.

    2.[S]elect    Request which package you want on your system.

    3.[I]nstall   install and upgrade wanted package

    4.[C]onfig Configure any package that are unconfigured.

    5.[R]emove Remove unwanted software

    6.[Q]uit Quit dselect

     

    Use ^p and ^n cursor keys initial letters or digits to select;

    Press ENTER to confirm selection ^L to redraw screen.

     

    Version 1.4.0.19 (i386 elf). Copyright (C) 1994-1996 lan

    Jackson this is free software; see the GNU General Public

    Licence version 2 or later for copying condition There is NO

    warranty See dselect-licence for details.

     

    0.[A]ccess   : 패키지 관리 시스템에서 사용할 매체를 고르게 된다.
    1.[U]pdate   : 설치할 수 있는 패키지의 목록을 갱신해 준다.
    2.[S]elect    : 시스템에 설치/삭제/갱신할 패키지에 대해 지시를 내린다.
    3.[I]nstall     : 2번 메뉴에서 선택한 패키지를 설치/갱신한다.
    4.[C]onfig    : 환경설정이 안된 파일에 대한 환경설정을 한다.
    5.[R]emove  : 2번 메뉴에서 삭제하고자 선택한 패키지를 삭제한다.
    6.[Q]uit        : dselect를 종료한다.

    대략메뉴는 이렇게 소개할 수 있다. selection bar의 이동은 화살표키나 ^P(Ctrl + P), ^N(Ctrl + N)으로 할 수 있고, Enter키는 선택을, ^L(Ctrl + L)은 화면을 다시 그린다.
    보통 0번을 선택하여 어떤 매체를 이용할지 결정하고, 1번 메뉴에서 설치 가능한 프로그램의 목록을 갱신하여 주고, 2번 메뉴에서 설치할 프로그램을 선택한 후, 3번에서 설치를 마치고, 혹시 3번에서 설치가 제대로 안되어 환경설정이 제대로 안되었다면 4번을 선택하여 설정을 마치고, 5번에서 삭제할 패키지를 시스템에서 제거하고, 6번을 선택하여 종료하게 된다. 각 메뉴가 하는 역할을 하나하나 살펴보자 .

 

dselect-설치 매체의 선택

    0번 Access 메뉴를 선택하여 보자.
     

    dselect - list of access methods

    Abbrev. Description

     

    cdrom install from a CD-ROM

    nfs     install from an NFS server(not yet mounted)

    harddisk install from a hard disk partition(not yet mounted)

    mounted install from a filesystem which is already mounted.

    floppy install from a pile of floppy disks.

     

    Access method cdrom

    cdrom- install from a CD-ROM

    Installation from a CD-ROM Containing a Debian distribution.

    The CD-ROM may be or not be mounted already : it should contain

    a standard ISO9660

    CD-ROM filesystem

    explanation of cdrom

     

    여러분이 설치할 때 사용할 패키지의 목록과 패키지 파일이 들어 있는 매체를 선택해 주면 된다. 나타나듯이 cdrom으로 흔히 설치할 수 있고, 네트웍으로 연결되어 있다면 nfs를 통해 설치할 수 있거나, 하드디스크에 패키지 파일이 있는 경우 하드디스크로 설치할 수도 있고(이때에는 아직 마운트 되어 있지 않은 때이다.) 이미 마운트 되어 있는 디렉토리에 패키지의 목록과 패키지 파일이 있다면 mounted를 선택하면 된다. 혹은 데비안의 장점인 패키지 잘게 쪼개기 (dpkg-sprilt 유틸리티를 통해 할 수 있다.)를 통해 플로피 디스크로도 인스톨이 가능하다. 플로피 설치라고 하니 갑작스레 슬렉웨어가 생각이 난다. =)
    화면에는 나타나 있지 않지만, dpkg-mountable 패키지를 설치하게 되면, /etc/fstab안에 들어있는 어떠한 장치를 통해서도 설치가 가능해지고 dpkg-ftp 패키지를 설치하게 되면, methods list에 ftp가 생겨나며 ftp를 통해서도 설치가 가능해진다.
    보통 설치의 방법으로는 대부분 cdrom을 이용할 것이다. 그러면 cdrom를 선택해보자

     

    If you make a mistake use the interrupt key (^C) to abort.

     

    I see that/dev/cdrom  exist and is a black device

    Insert the CD-ROM and enter the block device name [/dev/cdrom/]:

     

    All deirectory names should be entered relative to the root of the CD-ROM

    I would to know where on the CD-ROM the top level of the Debian

    distribution is -this will usually contain the Package-Master file.

     

    if the CD-ROM is organised and doesn't have a strainghtforward copy

    of the distribution you may answer none' and we'll go through the parts

    I need individually

    Distribution top level ?[none]

    Using /./stable/binary-i386'as main bianry dir

    Using /./stable/binary-i386/Package.gz' for main

    Using /./contrib/binary-i386'as contrib binary dir

    Using /./contrib/binary-i386/Package.go'for contrib.

    /./non-free/binary-i386'does not exits

     

    Note: most CD-ROM distributions of Debian not include programs

    availble in the non-free' directory of he distribution site

    This is because these programs have copyrights that prevent

    distribution for profit on an CD-ROM -ie they the non-free software.

    If you wish to install these programs you'll have to get them from an

    alternative source

     

    Which directory contains the *.deb package from the non-free distribution

    area(this diretory is named non-free/binary'on the distribution site)?

    Say none' if this area is not available.

    Enter_non-free_binary dir.[] 

     

    위에서부터  차례차례로 살펴보자, 우선 cdrom이 어느 곳에 있는지 알려주어야 한다. 필자는 /dev/cdrom/ 과 /dev/hdc를 심볼릭 링크(symbolic link)하여 사용하고 있으므로. /dev/cdrom 이라 적어주었다. 여러분이 사용하는 cdrom장치에 따라 달라질 수 있다.
    다음으로는 배포본의 최상위 위치(Top level)는 어디인지 몰어 온다. 이 Top level이라는 곳이 우선 데비안 배포본의 디렉토리 구성을 살펴보아야 이해가 빠를 것 같다.. 데비안 1.3 공식 배포본 바이너리 CD를 보면서 생각해보자

 

dselect 데비안 배포본의 디렉토리구조

    이 디렉토리 구조를 살펴보자. Top level 아래에 Debian-1.3이 bo와 심볼릭 링크되어 있다. bo 디렉토리는 데비안 1.3에 안정화된 버전(stand version)을 담고 있다. 코드명이라고 생각하면 된다. 참고로 1.2 버전에서는 rex였고, 앞으로 나올 2.0은 hamm이라는 이름으로 개발중에 있다. 만약 버그가 발견되면 1.3.1, 1.3.2..와 같은 식으로 버전번호가 나타나며 bo-fixed, bo-updated등의 이름으로 나타나게 된다.

    bo디렉토리 밑에는 binary 가 binary-i386과 심볼릭 링크되어 있고, binary-all이라는 디렉토리와 disks-i386이라는 디렉토리, msdos-I386이라는 디렉토리가 보인다. binary-i386은 현재 이 배포본이 지원하는 아키텍처를 의미한다. binary-alpha, binary-powerpc, binary-sparc이 존재할 수 있으며 현재 포팅되고 있다. 이 디렉토리에는 데비안 패키지로 프로세서에 의존적인(dependet)패키지들이 속한다. binary-all 디렉토리에는 프로세서에 독립적인(independent) 패키지들이 속한다. 보통 메뉴얼 페이지, 하우투 문서, 일반적인 쉘스크립트, perl스트립트들이 여기에 속할 수 있다.

    disks-i386 디렉토리에는 맨 처음 설치시에 필요한 이미지 디스크를 담고 있다. 역시 아키텍처명이 붙어서 이 디렉토리에는 i386용 디스크 이미지가 들어있음을 알 수 있다.
    boot 디렉토리는 loadlin을 이용하여 디스크 이미지 없이 바로 cdrom만으로 설치 작업에 들어갈 수 있도록 해주는 몇 가지 이미지 파일이 들어있다.
    contrib에는 나중에 설명할 contrib 섹션에 속하는 프로그램들이 저장된다.

    msdos 디렉토리는 8.3 파일 시스템을 지닌 FAT16을 지원하기 위해 필요하다. 원래의 패키지 파일이 msdos파일시스템에 저장될 때 어떠한 이름으로 저장될지 그 이름을 참조할 수 있다. doc 디렉토리는 데비안에 관련한 설치 가이드 등의 문서들이 들어있다.

    frozen이 bo에 심볼릭 링크되어 있고, stable이 frozen에 심볼릭 링크되어 있는 걸 보자 frozen은 코드 안정화 기간을 거친 배포본 버전이 일정기간 아무런 문제가 없을 때, 더 이상의 패키지 갱신/추가/삭제를 하지 않고 다음 버전으로 릴리즈될때 forzen이라는 명이 붙게 된다. 그리고 이 버전이 정식으로 릴리즈되면 stable version의 호칭을 얻게 된다. tools 디렉토리에는 우리가 잘 알고 있는 rawrite2와 같은 msdos상에서 사용 가능한 유틸리티들이 들어있다.

    다시 top level로 돌아가자. Top level은 이와 같이 구성되는 데비안 배포본의 가장 최상위 디렉토리는 어디인가 표시하는 것이다. 보통 데비안 배포본의 Top level은 none 이다. none으로 설정한 뒤 다음에 나올 모든  디렉토리를 써 넣어 주어도 되나, '.' 는 자기 자신의 디렉토리를 나타내므로 필자는 '.'을 넣었다.
    그렇게 기재하고 나면, 데비안 패키지 관리 시스템은 해당되는 디렉토리를 찾아서 사용하게 된다.

    보다시피 데비안의 주 패키지 디렉토리는 stable/binary-i386이고, 그 디렉토리에 있는 패키지 목록은 해당 디렉토리에 있는 Package.gz에 보관된다. 그리고, 그 다음에는 차례로 contrib/binary-i386을 사용할 것이다.
    데비안 메인 디렉토리인 stable 디렉토리는 데비안의 공식적 배포내용이 들어가게 된다. 그리고 contrib에는, 데비안 배포본에는 속하지만 데비안의 공식적 배포 패키지가 아닌 것들이 추가된다. 여기에는 주로 사용 프로그램의 인스톨러(installer)나 특정한 상용 패키지(예를 들어 Motif라이브러리 등)가 있어야 정상적으로 작동하는 프로그램, 혹은 저작권이 정확히 명시되어 있지 않은 패키지가 이에 속한다. 이 디렉토리에 있는 패키지를 설치하는 것은 자유지만, 설치후 있을지 모르는 오동작에 대해서는 데비안에서 책임지지 않는다. (하지만 설치해도 별 문제는 없다.)

    그리고 데비안공식 배포폰에는 절대로 들어가지 않는 디렉토리로 non-free와 non-US local이 있다. non-free디렉토리 소스가 공개되지 않고 binary로만 배포되는 프로그램이나 GPL을 따르지 않고, 자체의 저작권을 명시한 프로그램이 이에 속한다. 이 디렉토리는 공식CD로 배포되지 않기 때문에 <ftp.debian.org>나 그 밖의 미러링 사이트에서 받아야 한다. non-US 디렉토리는 암호화와 보안과 관련된 패키지가 여기에 속한다. 미국의 수출법에는 암호화와 관련한 프로그램, 이를테면 pgp나 ssltelnet, apache-ssl, ssleay bzip등을 자국내에서 외부로 수출하는 것을 막고 있다. 그러나 미국이외의 지역에서 수입하는 것은 합법적이 된다. 따라서 이 것들은 미러링 사이트에서 구하여야만 한다. Top level의 readme.pgp문서를 참조하기 바란다.

    local 디렉토리는 customied한 패키지를 모아두기 위해 만들어졌다. 즉 데비안의 공식배포본과는 조금 다른 환경에 있을 경우 함께 배포된 패키지 소스로 다시 패키징하여 자신만의 패키지로 사용할 수 있다. 혹은 local 디렉토리에 특정한 지역의 환경에 맞춰서 넣어둔다면 그 지역만의 배포본을 만들 수가 있을 것이다. 현재 진행중인 Debian-KR프로젝트도 이 local 디렉토리를 이용하고 있다.

    이제 디렉토리 설명을 어느 정도 끝났다. 그럼 위에서 나타난 화면이 어느 정도 이해가 갈 것이다. 위와 같은 상황을 데비안 공식 배포본에 non-free 디렉토리가 없기 때문이다. 없으니 나중에 설치하도록 하고 일단 Enter 키를 눌러 넘어가자 local 디렉토리도 물어 올 것이지만 없으므로 역시 Enter키를 눌러 넘어가자.

 

dselect 패키지 목록갱신

    그러면 일단 여러분은 설치할 매체선택은 다 끝났다.

     

    Uncompressing /var/lib/dpkg/methods/mnt/./stable/binary-

    i386/Packages.gz ... done.

    Replacing available packages info, using packages-main.

    Information about980 package(s) was updated.

    Uncompressing /var/lib/dpkg/methods/mnt/./contrib/binary-

    i386/Packages.gz ... done.

    Undating available package info, using package-ctb.

    Information about 33 package(s) was updated.

    Update OK. Hit RETURN.

     

    선택 막대가 다음 매뉴얼인 1.(U)pdate에 와 있는 것을 볼 수 있다. 이제 이 메뉴를 선택하면 여러분이 0번 메뉴에서 행한 매체로부터 설치할 수 있는 패키지의 목록을 읽어 현재 설치된 패키지 리스트와 비교하여 자료를 갱신하여 준다. 그러면 위와 같은 메시지가 나타날 것이다.

 

dselect- dselect  의 꽃 패키지 selection 메뉴

    이제 패키지 리스트 업데이트가 끝났다. 그 어렵다는 2번 [S]elect 메뉴로 들어가보자

     

    Help : Introduction to package list
    Welcome to the main package listing Please read the help that is available!

    You will be presented with a list of package which are installed or available for installation You can navigate around the list cursor keys. mark packages. for installation (using +')or deinstallation (using -').

    Package can be marked either singly of in groups : initially you will see that the line All package' is selected +',-'and so on will affect all the package described be the highlighted line Use o' to change the order of the list (this also changes which of group selections are possible.)

    (Mainly for new installations:) Standard package will be requested: by default. Use capital D' or R' key to override this - see the keybindings help screen.

    Some of your choices will cause conflicts or dependency problems: you will be given a sub-list the relevant packages so that you cam solve the problems.

    When you are satisfied with your choices you should press Return to confirm your changes and leave the package listing A final check on conflicts and dependencies will be done- here too you may see a sublist.

    Press Space to level help and enter the list ; press ?' at any time for help

    ?= help menu  Space= exit help =next help or help page key

 

    마치 지옥문을 들어온 듯한 기분일까 패키지 리스트에 대한 소개말이 간략히 적혀 있다. 한국말로 번역하면 대략 이런 정도가 될 것이다.
     

    도움말 : 패키지 리스트에 대한 소개

    메인 패키지 목록에 오신걸 환영합니다 도움말을 꼭 읽어보십시오.

    설치할 수 있는 패키지나 이미 설치된 패키지들의 목록이 나타날 것입니다. 커서키로 목록을 살펴보실 수 있고 설치를 원하시면 '+' 키를 이용해서 표시해주시고 삭제하시려면 '-'키를 이용하시면 됩니다.

    패키지는 하나 혹은 그룹단위로 표시될 수 있습니다. 초기에 'All packages'라는 줄이 선택된 것을 볼 수 있을 것입니다. '+''-' 키등은 강조표시된 줄에 씌여있는 모든 패키지에 영향을 줍니다. '0'키를 이용하면 목록의 순서를 바꿀 수 있습니다 (이것은 어떤 종류의 그룹 단위 선택이 가능한지도 바꿀 수 있습니다.)

    (처음 설치하실 때 는 주로 :) 표준(standard) 패키지는 디폴트로 설치한다고 요청하십시오 이를 무효로 하려면 대문자 D' 혹은 R'키를 이용하십시오 - 키 도움말 화면을 참조하십시오.

    선택한 내용들이 대립(confilcts)혹은 의존성문제(dependency problems)를 유발할 수 있습니다. : 이렇게되면 관련된 패키지의 부목록이 주어질 것이며 이 부목록을 통해 문제를 해결할 수 있을 것입니다.

    선택을 끝냈다면 변화를 패키지 시스템에게 알리기 위해 리턴키를 누르고 패키지 리스트를 나가면 됩니다. - 여기에서 또 부 목록을 볼 수 있습니다.

    도움 말을 빠져나가고 목록을 보려면 스페이스키를 누르십시오: '?'를 누르면 언제라도 도움말을 볼 수 있습니다.

    ?= help menu  Space= exit help =next help or help page key

 

    무슨 소리인지 아직 감이 안온다면 좀 더 자세히 알아볼 필요가 있다.

    패키지의 선택은 '+' 키;를 누름으로서 가능하고 삭제는 '-' 키를 누름으로서 가능하다. 키의 역할 중 '_' 키도 패키지 삭제이다. 다만 좀 다르다면, 이것은 purge 기능으로 '-'는 삭제하나 그 패키지와 관련된 설정파일은 지우지 않는 것을 의미한다. '-'로지우는 것보다 '_'로 지우는 것을 권장한다. 다만, 심사숙고해야 할 필요는 있다.

    잠시 후 화면에서 보겠지만 강조된 라인이 보일 것이다. 이 라인에서 '+' 나 '-' 키를 누르면 그 강조된 줄에 속하는 모든 패키지들에 영향을 미친다. 상당히 쓸모 있으면서도 조심해야 하는 부분이기도 하다. 초보자나 처음 설치할 경우 패키지 수가 약 7백여개이기 때문에 리눅스나 유닉스의 프로그램을 확실히 알고 있지 않는 사용자는 하나하나 선택하는 것이 상당히 버거울 지경이다. 여담이지만 레드햇도 힘들다고 'Everything'을 선택하는 사용자가 상당히 많다 한다. 데비안은 Everything을 위해 그렇게 했다가는 더 복잡하게 엉켜 나가기 때문에 권장할 만한 사항은 아니다. 이제 선택화면에서 필자가 오랜경험(?)에서 얻은 데비안 설치 쉽게 하는 요령을 여러분에게 소개할 것이다. 걱정마시라. 아직 포기하긴 이르다.

    대립과 의존성이라는 다소 생소한 단어가 보인다. 대립(Conflicts)과 의존성(Dependency)은 반드시 알아두어야 하며 레드햇도 이 패키징 개념을 데비안에서 도입하였다. 앞으로 배포본은 이 추세로 나아갈 것이므로 이 번 기회에 머리속에 확실히 넣어두자.

 

dselect - 선택화면 무얼 알아야 하나

    스페이스키를 누르면 다음과 같은 화면이 뜰 것이다.

     

    dselect- main package listing (status. priority) mark: +/=/- verbose :v help :?

     

    EIOM Pri Section Package Inst.ver Avail.ver Description

     

    -All packages-

    --Installed packages--

    ---Installed Required packages---

    ----Installed Required package in section base----

     

    ***Req base adduser 3.7 3.7 Add users and groups to  

    ***Req base ae 962-14 962-14 Anthony's Editor - a tin

    ***Req base base-files 1.3.5 1.3.5 Debian Base System Miscel

    ***Req base base-passwd 1.3.2 1.3.2 Debian Base System Passwo

    ***Req base bash 2.01-2 2.01-2 The GNU Bourne Again SHel

    ***Req base bsdutils 3.3 3.3 Basic utilities from 4.4B

     

    All packages

     

    The line you have highlighted represents many packages: if you ask to install,

    remove, hold, &c it you will affect all the package which match the criterion shown

     

    If you move the highlight to a line for a particular package you will see information

    about that package dispalyed here You can use o' and O' to change the sort order

    and give yourself the opportunity to mark package in different in different kinds of

    groups

     

    description

     

    화면의 구성을 살펴보도록 한다. 맨 첫줄은 상태표시 라인이라고 할 수 있다. dselece는 현재 주 패키지목록을 보여주고 있으며, 이때의 정렬방법은 (status,priority )이다. 다시 말하면 이미 설치된 것과 우선순위 (priority)에 따라 패지지가 정멸되어 있는 것이다. 정렬방법은 o나 O(order)로 바꿀 수 있다. 두 키는 역할이 다르므로 직접 눌러보는게 도움이 될 것이다. 두번째 줄을 보자. 두번째 줄에서는 EIOM이라는 부분이 보일 것이다. EIOM은 순서대로 Error flag. Install state, Old mark, Mark 이다.
    Error flag 는 빈공란(스페이스)와 'R'의 상태가 있다. 빈 공란은 패키지에 아무런 문제가 없다는 것을 뜻한다. (패키지가 아예 잘못되었을 경우를 제외한다면) 'R'의 상태는 설치도중 심각한 에러가 발생하였음을 뜻한다. 이럴 경우 해당패키지를 다시 설치해야 한다.

    install state에는 5가지의 상태가 있다. 빈 공란일 경우 아예 설치가 안되어 있을 때이다. '*' 의 상태는 현재 패키지가 문제없이 설치되어 있는 경우이다. 'U' 상태일 경우 패키지를 하드디스크에 풀어놓았으나, 아직 환경설정이 안되어 있을 때이다. 이러한 상태의 패키지는 주 메뉴의 4번 [C]onfig 메뉴를 통해 환경설정을 마칠수 있다. 'C'의 상태는 환경설정도중 에러가 발생하여 반만 환경설정이 되었다는 것을 의미한다. 'I'는 설치 도중 에러가 발생하여 반만 설치되었다는 것을 의미한다.

    old mark는 목록이 갱신되기 바로 전, 그러니까 dselect 메뉴에서 보기 바로 전에는 현재 시스템에 어떠한 상태로 있었는지 알려준다. 그리고 Mark는 '+','-' '=', '_'키를 통해 이제 이 패키지를 어떻게 할 것인지를 나타내게 된다.

    old mark와 Mark의 상태에는 역시 5가지가 있다. '*'의 경우 앞으로 설치되거나 업그레이드 될 패키지를 의미한다. '-'는 패키지를 삭제할 것이지만, 환경설정파일은 그대로 보존하는 것을 의미한다. '=' 는 hold로 이 패키지에 대하여는 삭제/갱신을 하지 않게 된다. '_'는 패키지를 삭제하고 동시에 환경설정파일을 모두 지워 버리는 것을 의미한다. 깔끔한 관리를 위해서는 미련을 두지 않는게 좋을 때도 있다. =)
    마지막으로 'n'의 상태는 패키지 목록에서 새롭게 추가된 패키지를 의미하는 것으로 이 패키지는 아직까지 시스템에서 한번도 설치.삭제등으로 표식을 하지 않았던 패키지가 이에 속한다. 'New'를 나타낸다.
     

    분류

    설명

    Required

    (Req) 가장 필수적인 패키지들.
    이 패키지가 없으면 시스템이 동작하지 않는다. libc linary, adduser, boot script rc.d 기본 파일등 로긴프롬프트가 나올 때 까지 필요한 파일들이 이에 속하게 된다.

    Important

    (imp) 시스템에 매우 중요한 파일들.
    이 패키지가 없으면 기초적인 일조차 하기 힘들 때가 있다. 간단한 편집기(vi)MTA, MUA(mail. mailx) cron manpages,,perl등이 이에 속하며 보통 여기에 속하는 것들은 시스템을 runlevel 3에서동작시키는데 필수적인 요소들로 이루어져 있다.

    Standard

    (Std) 시스템에서 표준적으로 사용되는 파일들.
    없다고 해서 시스템이 동작하지 않는다거나 하지는 않는다. 그러나 기본적인 개발 도구 (gcc, mark, m4. binutils)와 emacs, tex 시스템이 이에 속하며 이보다 낮은 우선 순위를 가진 패키지는 거의 대부분 설치해도 무방하다.

    Optional

    (Opt) 특별히 필요한 패키지는 아니지만 선택적으로 설치하여 사용할 수 있는 것들이다.
    대부분의 패키지들이 이 우선순위를 지니고 있으며 잘 모르면 설치안해도 무방한 패키지이다. X  윈도우 시스템 커널 소스등이 이에 속한다.

    Extra

    (Xtr) 없어도 되는 패키지들의 모음이다.
    이 곳에 속하는 패키지는 이미 이보다 높은 우선순위를 지낸 패키지와 똑같은 일을 하지만, 데비안 베포본 정책상 우선순위가 낮아지게 된 패키지들이 이에 속하게 된다. 또한 실제 시스템구성에서 없다고 해도 시스템이 기본적으로 돌아가는 데에 전혀 지장이 없는 프로그램이 여기에 속한다. 혹은 과거 프로그램과의 호환성 문제로 지원되는 라이브러리들이 이곳에 속한다.

 

    다음 항목에는 'Pri'라는 부분이 있다. 이는 'Priority'를 나타내는 것으로 이 패키지가 시스템을 구성하는데 있어 얼마나 우선순위가 있느냐 하는 것을 나타낸다. 시스템에서 가장 필수적인 것에서부터 가장 필요없는 것까지 데비안에서 는 이 우선 순위를 4단계로 분류하고 있다.

    이 우선순위라는 개념이 꽤 낯설게만 느껴질 수도 있겠다. 그럴 수밖에 없다. 아직 이 우선순위의 개념은 데비안만 적용하고 있기 때문이다. 간단한 예를 들어보자. C 라이브러리는 유닉스 시스템에서 매우 중요한 역할을 한다. 이 라이브러리가 없으면 시스템 전체가 돌아가지 않을 수 있다. 따라서, 이 C 라이브러리는 다른 어떠한 것보다 중요하며 반드시 가장 먼저 설치되어야 한다. 따라서, 이 C 라이브러리는 우선순위가 Required가 된다. 그리고, login 프롬프트가 나와야 시스템에 로그인하여 운영체제를 사용할 수 있으므로 역시 login도 Required가 된다. 커널만으로 시스템은 동작하지 않는다. 반드시 쉘(shell)이 있어야 한다. bash는 리눅스의 표준셀로 다른 어떠한 것보다 먼저 설치되어야 한다. 역시 Required가 된다.

    smail 과 같은 MTA를 보자. 시스템에서 E-MAIL을 주고 받지 않아도 시스템은 동작할 수 있다. 그러나 E-MAIL은 매우 보편적인 것이고, 다중 사용자용 운영체제에서는 필수적인 요소라고 할 수 있다. 따라서 Important로 우선순위가 정하여 질 수 있다. sendmail이라는 MTA가 있다. 이 sendmail은 smail과 똑같은 기능을 한다. 그러나 데비안의 배포본 정책상 표준 MTA는 smail이고, sendmail은 표준 MTA가 아니다. 반면, 이 sendmail은 레드햇이나 슬랙웨어 혹은 다른 유닉스계열에서는 표준으로 사용하고 있다. 어쨌든 데비안의 정책상 smail은 sendmail보다 더 높은 우선순위를 지니게 되며, 이때 sendmail은 이미 속하는 smail과 동일한 역할을 하는 대신 우선순위가 낮으므로 Extra가 될 것이다.

    리눅스는 커널 소스가 공개되어 배포되므로 커널을 자신의 시스템에 맞게 재 컴파일하기 위해서는 컴파일러가 필요하다. 그러나 컴파일러가 없어도 시스템은 동작하지만, 리눅스에서는 매우 일반적인 사항이 컴파일러이다. 따라서 gcc, make 등 기본적인 개발도구들은 Standard에 속하게 된다.

    X 윈도우 시스템은 시스템에서 꼭 필요한 체제는 아니다. X 윈도우가 없이도 리눅스는 잘 동작한다. 따라서 선택적으로 X 윈도우 시스템을 설치할 수 있으므로 Optional에 속하게 된다.

    다음은 섹션부분이다. 위에서 보았던 디렉토리의 (+)구조로 나뉘어 진다.
     

    admin, base, comm, devel, doc, editors, electronics, games, graphics, hamradio, interpreters, libs, mail, misc, net, news, otherosfs, shells, sound, tex, text, utils, web, x11

     

    이 분류에 의해 데비안 패키지들이 들어가게 된다. 섹션은 이름만 봐도 어떤 내용인지 짐작할 수 있을 것이다.

    그 다음에는 패키지의 이름이 나오고, 그 다음줄에는 'inst.ver', 'Avail.Ver'이 나온다. 'inst.Ver'은 현재 설치된 패키지의 버전을 의미하고 'Avail.Ver'는 아직 설치되지 않은 버전이 나타나게 된다. Ins.Ver보다 Avail.Ver이 높다면 패키지는 업그레이드 되고, 낮으면 설치시에 다운그레이드 경고 메시지를 내고 다운그레이드 하지 않는다. 만약 현재 설치된 패키지가 아니거나 그 패키지에 대한 목록이 없다면 '<none>' 이라고 나타나게 된다.

    이제 마지막 부분이다 Description 에서는 패키지에 대한 요약설명을 보여준다. 화면을 보면 알겠지만 패키지에 대한 자세한 설명은 화면의 아래쪽 반에 나타나게 된다. 이때 나타나는 정보가 많은 경우 d(down)키  u(up)키를 이용하여 볼 수 있으며 정보의 표시 방법은 소문자 'i'키를 누르면 된다. 대문자 "I키를 누르게 되면 패키지에 대한 설명부분의 크기를 조정할 수 있다.

    V키를 누르게 되면 조금 더 쉬운 형태로 화면을 나타내어 준다. verbose mode로 전환을 뜻한다.

    여러분은 도움말 화면에서 본 것처럼 '-All Packages-'라는 라인을 만났다. 이 라인에서 '+'키를 누르게 되면 데비안의 모든 파일에 영향을 끼치게 됨을 의미한다. 그러나 그렇게 하면 초보자는 아마 기절할지도 모른다. 쏟아지는 부목록(Sub-list)에, conflict에, dependency에, Repalces에 너무 조급해하지 말자 이제 여러분은 마지막 개념만 알고 지나가면 된다.

    데비안의 패키지는 대립, 의존, 대치, 제공, 선의존(Pre-depends), 제안, 추천 등에 영향을 받게 된다.

    만약 여러분이 특정 패키지를 설치하기 위해 패키지 위에서 '+'키를 눌렀거나, 삭제하기 위해 '-' 키나 '_' 키를 눌렀는데 다음과 같은 화면을 볼지도 모른다. 영어 화면을 생략하고 이해하기 쉽게 한글로 의역을 하였다.
     

    도움말 : 대립(conflict)/의존(dependency)성 해결 부 목록에 대한 소개

    대립/의존성 해결- 소개

    선택하신 내용 중 하나 이상의 것에서 대립과 의존성 문제가 발생하였습니다
    - 몇몇의 패키지들은 다른 패키지와 관련되어 함께 설치되어야만 하고, 몇몇 패키지가 함께 설치될 수 없는 것도 있습니다.

    관련된 패키지를 담고 있는 부 목록을 보게 될 것입니다. 화면의 하단부 반은 연관된 대립과 의존성 문제에 대해서 보여줍니다. 문제들 사이에서 "i" 키를 눌러 사용하면 패키지의 설명과 내부 컨트롤 정보를 볼 수 있습니다.

    '제안(suggested)'되는 패키지목록을 만들고, 부 목록에 미리 표식을 하게 됩니다. 설치하고자 하는대로 진행되고 있으면(제안을 받아들이면) 리턴 키를 누르십시오. 문제가 발생할 것 같은 변화를 피하고 메인 메뉴로 돌아가려면 대문자 "X"를 누르십시오

    목록을 움직이면서 원하는 것을 더 많이 선택하거나 삭제할 수 있습니다. 그리고 대문자'D'와 'R'키를 사용하여 내 제안을 거부할 수 있습니다.(키 도움 말을 참조하시오) 대문자 'Q'를 누르면 현재 화면에 나타난 상태(선택한 내용 그대로)를 강제로 적용할 수 있습니다. 만약에 추천을 무시하거나 프로그램에 제대로 동작하지 않는다고 생각한다면 도움말을 빠져나가고, 목록을 보려면 스페이스 키를 누르십시오 : '?'를 누르면 언제라도 도움말을 볼 수 있습니다.

    ?= help menu Space = exit help .=next help or a help page key

     

    대립(Conflicts) : 말 그대로 서로 앙숙이다. 개와 고양이는 서로 같이 살수 없다. 하였던가. 똑같은 일을 하는 패키지나, 다른 패키지가 하는 일을 침범하면 두 패키지는 서로 함께 설치될 수 없다. 예로 smail과 sendmail두 MTA의 관계를 들 수 있다.

    의존(Depends) : 상호 의존하는 패키지간에 나타난다. 대부분의 프로그램은 C 라이브러리가 없으면 동작할 수 없으므로 이러한 프로그램은 C 라이브러리 (libc5, libc6 패키지 등)에 대한 Depends를 가진다. elm, mailx 같은 MUA는 smail, sendmail과 같은 MTA 가 필요하다. 따라서 이때 elm, mailx는 smail sendmail과 같은 MUA에 대해 Depends를 가진다.

    선의존(Pre-depends) : 다른 패키지가 설치되기 전에 반드시 먼저 설치되어야 하는 패키지를 의미한다. Pre-depneds는 관계있는 패키지가 설치될 경우, Pre-depends 되는 패키지는 설치시 맨처음에 part1으로 설치된다. 보통 libc, libreadline2, libgdbm1등 주요 패키지가 업그레이드 될 때 이 Pre-depends가 적용될 것이다.

    대치 (Replaces) : 한 패키지가 다른 패키지의 역할도 할 수 있는 경우의 관계이다. 보통 이 경우는 패키지 이름이 변경되어 버전업 되었을 때 이전 패키지의 역할도 함께 하도록 하는 일종의 호환성측면과 관련이 있다. 한 예로 gv(ghostview)가 과거에 있던 패키지인 gv-2d,gv-3d 패키지의 역할을 Replaces 할 수 있는 예가 있다.

    제공(Provides) : 이 제공은 Replaces와는 좀 다르다. 이 내용과 함께 반드시 알아야 할 사항은 가상 패키지에 대한 개념이다. 가상패키지란 비슷한 역할을 하는 패키지로 대표해서 부를 수 있는 말이다. 예로, samil과 sendmail 같은 경우 같은 역할을 하므로 이 패키지를 대표할 수 있는 가상 패키지를 'mail-transport-agent'라고 부른다. 또한 elm, mutt, mail, pine등과 같은 패키지는 모두 유저가 메일을 읽을 때 사용하는 프로그램이므로 이 프로그램의 가상 패키지 이름은 "mail-reader'가 된다.

    추천(Recommands) : 추천의 개념은 A 패키지가 B 패키지에 의존성은 없지만 있으면 더 많은 기능을 발휘할 수 있는 경우에 해당한다. 보통 추천의 경우 부 목록이 나오면서 추천된 패키지가 자동으로 선택된다.

    제안(Suggests) : 제안의 개념은 A 패키지가 B 패키지에 의존성도 없고, 꼭 있을 필요는 없지만 있으면 더 나은 기능을 제공할 때에 사용된다. 추천과 비슷하나, 추천은 자동으로 추천된 패키지가 선택되지만 제안은 자동으로 선택되지 않고 사용자가 알아서 하게끔 한다.

 

dselect - 먼저 설치한 사람의 비법은 뭐지 ?

    이제 여러분은 데비안 메뉴시스템의 기본적인 개념을 모두 마스터했다. 이제 개념을 익혔으니 dselect를 요령껏 사용하는 방법을 생각해보기로 한다. 필자가 드는 몇 가지의 예는 오직 경험에 의거하여 이야기하는 것일 뿐 절대적인 것은 아니다.(즉. 검증된 바는 없다.=))

    1) Required, Important Standard의 우선순위(Priority)를 갖는 프로그램은 가급적 모두
       설치하자.
    이 우선 순위를 갖는 패키지는 함부로 지우거나 삭제하면 정말 예기치 못한 Conflict /Dependency problem에서 헤어나지 못하는 수가 있다. 여러분이 데비안 시스템에 능숙해 졌다고 생각될 때에 이 우선순위를 갖는 패키지 중 필요없는 것이 무엇인가 꼼꼼히 생각하여 삭제하여도 늦지 않다. 설치도중 Conflict /Dependency problem가 발생하여도 침착하게 읽어보고 어떤 패키지가 어떤 패키지와 충돌이 있는지, 그리고 어떤 패키지가 필요한지, 하나하나 알아두자. 머리 속에 남기면 매우 도움이 될 것이다. 목록의 정렬 방법은 'o'와 'O' 키를 통해(우선순위로 정렬) 'by priority'로 맞추고 하면 쉽게 설치할 수 있을 것이다

    2) Required의 우선순위를 갖는 패키지는 삭제하지 말라.
    삭제도 안될뿐더러, 삭제하면 시스템이 동작하지 않을 수가 있다. 굳이 삭제하고 싶다면 책임은 질 수 없지만 다음호에서 dpkg의 사용법을 다루면서 강제로 지우는 법을 배워보자. =)

    3) Optional의 우선순위를 갖는 패키지는 하나하나 꼼꼼하게 점검하면서 설치한다.
    Optional의 우선순위를 갖는 패키지가 거의 대부분 이기 때문에 시간소비가 많고 어려울 수 있다. 하지만 하나하나 패키지에 익숙해지다보면 나도 모르는 새 포함된 유닉스 리눅스용 프로그램이 무슨 역할을 하는지 확실히 알게 된다.

    4) 아는 패키지부터 설치하라.
    보통 Requitred, Important, Standard의 우선순위 패키지는 거의 대부분 설치를 할 것이나, Optional부터는 어떤 것을 설치해야 할지 모르는 경우가 허다해서 중도에 포기하는 사람이 많다. 아는 패키지부터 설치하다 보면 데비안 패키지 시스템은 패키지간의 대립 /의존/선의존/추천/제안/대치/ 제공을 그때그때 알려주므로 그때그때의 상황에 맞춰 필요한 것을  설치하다보면 그 많은 패키지를 다 보지 않고서도 패키지 선택이 끝나 있음을 알게 될 것이다.

    5) Extra 패키지는 그 역할을 정확히 할 때에만 설치하자.

    6) Recommands, Suggest에서 추천하고 제안하는 내용은 받아들이자.
    해로운 것 설치하라고 하지는 않는다.

    7) libs 섹션에 있는 패키지는 특별한 경우를 제외하곤 모두 설치하도록 하자.
    라이브러리가 없으면 동작하지 않는 프로그램들이 많기 때문이다. 하지만 특별한 경우를 제외하고는 conflicts, dependency 등의 문제가 일어날 때 부 목록에 나타나는 라이브러리만 설치하여도 사용상 문제는 없다.

    8) *-dev로 끝나는 개발 패키지(헤더 파일과 static libraris)는 꼭 필요한 것만 설치한다.
    필요없이 많이 설치해도 사용하지도 않고 하드만 차지하는 경우가 허다하기 때문이다. 다만 필수적인 *-dev, 이를테면 libc5-dev등 C 라이브러리용 헤더파일등은 설치하도록  한다.

    선택을 모두 마쳤다면 이제는 리턴키를 누른다. 리턴키를 누를 때 마지막으로 데비안 메뉴 시스템은 마지막으로 conflict/dependency에 대한 검사를 한다. 만약 문제가 발생하면 능숙한 솜씨로(?) 이 문제를 해결한다. 여러분은 지금쯤 이미 dselect에 익숙해졌을 것이라고 믿어 의심치 않는다.

 

dselect 심호흡 이제 설치작업으로

    이제 3[I]nstall 메뉴를 선택하여 설치에 들어간다.각 디렉토리별로 설치에 들어가게 되며 시간은 각자가 가진 CD-ROM에 따라 다르겠지만 밤을 새고 있다면 잠깐 눈을 붙여도 좋다. 물론, 중간에 에러를 발생시킬 수 있다. 앞에서 설명한 현재 패키지의 상태를 반드시 점검해 보면서 적절한 조치를 취한다. 이에 대한 조치를 취하는 것은 어느 배보폰이나 마찬가지이겠지만, 여러분이 여러 번 경험해 보면 터득할 수 있는 방법이다. 다만 필자가 생각하기에는 'EIOM"으로 나타나는 현재 패키지 상태를 잘 보고 그에 따라 조치를 취해준다면 마지막으로 이런 메시지를 볼 수 있을 것이다.
     

    Installation. O.K.

 

    여러분이 꿈에 그리는 메시지 이 메시지만 나타나준다면 여러분은 데비안 리눅스 설치를 성공적으로 마친 것이다.

 

dselect- 정리는 이렇게

    이제 마지막 작업, 혹시 지우기 위해 표시해 둔 패키지가 있다면 5.[R]emove를 통해 패키지를 삭제한다. 혹은 아직 설정이 덜 끝난 패키지가 있다면, 4.[C]onfig 메뉴로 마지막 설정도 마무리 해준다.

 

글을 마치며

    어떤 일이든 시작하기가 어렵지 숙달되면 다 쉽게만 느껴지는 것이 사실이다. 어떤 배포판이든 어떤 운영체제이든 처음 설치할 때의 어려움은 반드시 존재한다. 데비안 리눅스만 유독설치하기가 어려운 것은 아니다. 다만 새로운 개념 앞서가는 개념에 다소 익숙치 않아서 일뿐이다.
    얼마 전 모 잡지의 통계를 보니 국내 리눅스 사용자 중 단 7%만이 데비안 리눅스를 사용하고 있다는 사실을 접했다. 비록 적은 소수의 사람이지만 이제 많이 늘어나리라 본다. 인터넷을 통해 진행되고 있는 Debian-KR 프로젝트는 올 겨울에 완료될 것이다. 올 겨울 Debian-KR v2.0이 여러분에게 좋은 선물이 될 수 있었으면 좋겠다.

    끝으로 국내 리눅스 전문 잡지가 태어난 것을 진심으로 축하 드립니다.




▲ top

home으로...