2. dselect가 실행되었을 때

dselect가 실행되면 다음과 같은 화면을 보게 될 것이다:
Debian `dselect' package handling frontend.

   0. [A]ccess    Choose the access method to use. 
   1. [U]pdate    Update list of available packages, if possible. 
   2. [S]elect    Request which packages you want on your system.
   3. [I]nstall   Install and upgrade wanted packages. 
   4. [C]onfig    Configure any packages that are unconfigured. 
   5. [R]emove    Remove unwanted software.
   6. [Q]uit      Quit dselect.

[some other stuff]
각각을 하나씩 살펴보도록 하자.

2.1. 접근방식 (``Access'')

여기 접근방식 선택 화면이 있다.
dselect - list of access methods
  Abbrev.        Description
  cdrom          Install from a CD-ROM.
* multi_cd       Install from a CD-ROM set.
  nfs            Install from an NFS server (not yet mounted).
  multi_nfs      Install from an NFS server (using the CD-ROM set) (not yet mounted).
  harddisk       Install from a hard disk partition (not yet mounted).
  mounted        Install from a filesystem which is already mounted.
  multi_mount    Install from a mounted partition with changing contents.
  floppy         Install from a pile of floppy disks.
  apt            APT Acquisition [file,http,ftp]

여기서 우리는 dselect에게 설치하고자 하는 패키지들이 어디에 있는지를 알려주게 된다. 위의 리스트에서 순서는 무시하기 바란다. 정확한 설치 방법을 선택하는 건 매우 중요한 일이다. 위에 나열한 것보다 더 많은 방법이나 혹은 더 적은 방법들이 나타날 수도 있다. 그리고, 위의 순서와 다를 수도 있을 것이다. 하지만, 이것에 대해 걱정할 필요는 없다. 아래에서 위의 방법들이 가지고 있는 차이점을 알아보도록 하자.

apt

가장 좋은 방법 중의 하나라고 할 수 있는, 데비안 로컬 미러 사이트나 네트워크를 통한 설치를 위한 방법이다. 이 방법은 ``apt'' 시스템을 이용하여 (apt 매뉴얼 페이지를 참고하라.) 의존성이나 설치 순서를 정하는데, 가장 최적의 순서로 패키지를 설치할 수 있다.

이 방법의 설정은 수월하다; 여러 개의 위치를 섞어서 쓸 수도 있는데 file: URL (지역 디스크나 NFS로 마운트된 디스크), http: URL, 혹은 ftp: URL 등을 자유롭게 사용할 수 있다. 하지만, HTTP와 FTP 옵션은 지역의 허가된 프록시(local authenticating proxies)를 지원하지 않는다.

sources.list 메뉴얼 페이지를 보면 /etc/apt/sources.list 파일에 관한 더 자세한 정보를 얻을 것이다.

만약 http나 ftp에 (혹은 둘 다) 대한 프록시 서버를 가지고 있다면, http_proxyftp_proxy 환경 변수가 설정되어 있는지를 확인해라. dselect를 실행시키기 전에 쉘에서 이들을 다음과 같이 설정한다.
# export http_proxy=http://gateway:3128/
# dselect

multi_cd

이 복잡하고 강력한 방법은 최신 데비안을 여러 장의 바이너리 CD에서 설치하는 방법으로 가장 추천할만한 방법이다. 각각의 CD에는 전체 세트의 Packages.cd 파일들이 (각각이 패키지에 대한 기록을 담고 있다.) 있는데, 이것들은 다른 방법들에서 사용되는 전통적인 패키지 파일들에 대해 추가적으로 담겨있는 것들이다. 맨 처음 이방법을 택했다면, 우선 사용하고자 하는 CD-ROM이 마운트되지 않은 것을 확인하라. CD 세트 중에 마지막 바이너리 디스크를 (우리는 소스 CD들은 필요없다.) 드라이버에 넣고 아래의 질문들에 답하면 된다.

  • CD-ROM 드라이브의 위치

  • multi-cd 세트를 사용하는 것에 대한 확인

  • 디스크 내의 데비안 베포본의 위치

  • (가능하다면) 패키지 파일들의 위치

한번 사용 가능한 리스트를 업데이트하고 설치하고자 하는 패키지들을 선택한 다음부터 multi-cd 방법은 다른 방법과 달라진다. 각각의 CD들에 대해서 ``Install'' 단계를 실행시켜야 하기 때문이다. 불행하게도 dselect의 한계로 인하여 각각의 단계에서 새로운 CD를 설치할 수 없다. 각각의 디스크에 대해 다음의 작업이 필요하다.

  • CD를 CD-ROM에 넣는다.

  • dselect 주메뉴에서 ``Install''을 선택한다.

  • dpkg가 그 CD에서 설치를 끝낼 때까지 기다린다. (아마 설치가 성공적으로 끝났다거나, 에러가 발생했다는 메시지가 나타날 것이다. 후반부까지 이 메시지의 내용에 신경쓰지 않아도 된다.)

  • [Enter]을 치고 dselect 주메뉴로 돌아간다.

  • 다른 CD에 대해서 반복 작업을 수행한다.

아마도 패키지 설치 순서를 고려할 때 한번 이상의 설치 단계를 거쳐야 할 것이다. - 미리 설치하려고 한 패키지가 적절한 설정 없이 후반에 설치할 패키지를 필요로 하는 경우 이런 문제가 발행한다.

이런 문제가 발생하게 되면 ``Configure''를 실행시켜 그 문제점에 대한 도움을 받을 수 있을 것이다.

multi_nfs, multi_mount

이들은 multi_cd와 매우 비슷한데, 대신 매체를 바꿔줄 때 보다 편리하다. 예를 들면 multi-cd 설치를 다른 머신의 CD-ROM을 이용하여 nfs를 통해 하게된다면 도중에 CD를 바꾸는 번거로움을 없앨 수 있다.

floppy

CD-ROM이 없거나 네트워크 접속이 힘든 사람들을 위한 방법이다. 만약 전통적인 크기의 1.44M 플로피를 사용한다면 설치를 용이하게 하는 어떤 옵션도 사용하지 않을 것을 권한다. LS/120이나 ZIP 드라이브를 이용한다면 보다 편한 설치가 가능할 것이다. 먼저 플로피 드라이브의 위치를 지정해 준 다음에 플로피를 넣는다. 처음 것은 패키지 파일들을 가지고 있어야 한다. 이 방법은 느릴 뿐더러 매체의 문제가 생길 가능성이 크기 때문에 가급적 사용 안하는 것이 좋을 것이다.

nfs

사용 반대 -- apt나 multi_nfs를 대신 사용하라. 만약 다른 모든 방법들이 실패할 경우에만 이 방법을 사용하라.

이 방법은 설치 과정이 매우 간단하다. NFS 서버의 주소를 주고 데비안 배포판의 위치와 패키지 파일들의 위치만 알려주면 끝이다. dselect는 서버에서 여러가지 섹션을 설치할 것이다. 이 방법은 느리지만 쉽다. 적절한 설정 단계가 없기 때문에 수많은 ``Install''과 ``Configure'' 단계를 거치게 될 것이다. NFS 기반의 설치에서만 적합한 방법이다.

harddisk

사용 반대 -- apt 혹은 multi_mount를 대신 사용하라. 만약 다른 모든 방법들이 실패할 경우에만 이 방법을 사용하라!

하드 드라이브 파티션의 블럭 디바이스를 사용할 수 있게 해주고, 그 파티션에 파일들의 위치를 지정한다. 간단하지만 느리고, 설치 순서를 위한 단계가 없어서 ``Install''과 ``Configure'' 단계를 많이 거쳐야 한다. ``apt'' 방법이 설치 순서 설정 기능과 함께 이 기능을 지원하므로 사용을 권하지 않는다.

mounted

사용 반대 -- apt 혹은 multi_mount를 대신 사용하라. 만약 다른 모든 방법들이 실패할 경우에만 이 방법을 사용하라!

파일 시스템에서 데비안 파일들의 위치만을 지정해주면 된다. 아마 가장 쉬운 방법일 텐데, 느리다는 단점이 있다. 적절한 설치 순서를 위한 단계가 없으므로 수많은 ``Install''과 ``Configure'' 단계를 거쳐야 할 것이다.

cdrom

사용 반대 -- multi_cd를 대신 사용하라. 이 방법은 데비안 3.0 배포본과 같은 여러장의 CD 세트에 대해서는 동작하지 않는다.

하나의 CD 설치를 위한 방법으로, CD-ROM 드라이브의 위치, 데비안 배포본의 위치, 각 패키지 파일들의 위치만을 물어볼 것이다. 간단하지만 정말 느리고, 설치 단계 설정을 위한 단계가 없으므로 수많은 ``Install''과 ``Configure'' 단계를 필요로 한다. 하나의 CD-ROM에 만들어진 배포본은 더이상 없을 것으로 생각되기 때문에 권하지 않고, 대신 ``multi_cd'' 방법을 사용할 것을 권한다.

만약 어떤 문제가 발생할 때 -- 아마 Linux가 여러분의 CD-ROM을 찾지 못하거나, NFS 마운트가 작동하지 않거나, 어떤 파티션에 패키지가 존재하는지 잊어버렸을 때 등 -- 몇가지 선택이 있다.

접근 방식을 선택한 다음 dselect는 패키지들의 적당한 위치를 찾게 될 것이다. 만약 이 정보를 정확히 얻지 못한다면 Control-C를 누르고 ``Access'' 메뉴로 돌아가기 바란다.

이 과정이 끝난 다음에는 처음의 주화면으로 돌아가게 된다.

2.2. 갱신 (``Update'')

dselect는 설치 매체로부터 Packages 혹은 Packages.gz 파일들을 읽어서 시스템에서 사용 가능한 모든 패키지들의 데이터베이스를 구성한다. 이 과정은 약간 시간이 걸린다.

2.3. 선택 (``Select'')

이제부터 신중을 기해야 한다. 여기가 모든 것이 결정되는 핵심이다. 이 부분에서는 설치하고자 하는 패키지들을 선택한다.

[Enter]를 누르자. 만약 컴퓨터가 좀 느린 경우 화면이 지워지고도 15초 동안 아무것도 안나타날 수도 있다. 따라서 키를 막 누르지 말고, 침착하게 기다려라.

먼저 화면에 나타나는 것은 도움말 파일의 첫 페이지이다. ``Select'' 화면 어디서든 ? 키를 누름으로써 이 도움말의 첫 페이지를 볼 수 있으며, 그 페이지를 . (full stop) 키를 누름으로써 넘길 수 있다.

조급하게 생각하지 말고 충분한 시간을 두고 준비하고 방법을 배워라. 처음으로 ``Select'' 화면에 들어갔을 때는 절대로 선택을 하지 말아라. -- 그냥 [Enter]를 눌러서 의존성 문제를 확인해보고 이를 해결해보자. 만약 메인 화면으로 돌아왔다면, 다시 2.3절으로 돌아가자.

본격적으로 시작하기 전에 다음과 같은 사실을 주의하자.

``Select'' 화면의 상단 두 줄을 보자.
dselect - main package listing (avail., priority)    mark:+/=/- verbose:v help:?
EIOM Pri Section  Package      Inst.ver    Avail.ver   Description

이것들은 몇몇 특수키들에 대한 정보를 상기시켜 준다.

+

설치를 패키지를 선택한다.

=

패키지를 그대로 유지한다 -- 설치에 실패한 패키지에 유용하다. 이전 버전을 다시 설치하고 새로운 버전의 프로그램이 나타날 때까지 그것을 유지시킬 수 있다. (이 문제는 안정화된 데비안 배포본에서는 자주 나타나지 않는 것이다.)

-

(마이너스) 패키지를 제거한다.

_

(밑줄) 패키지를 완전히 제거한다. 패키지와 설정 파일 모두 제거한다.

i,I

화면에 표시되는 정보를 토클시킨다. (화면의 아랫부분에 나타난다.)

o,O

정렬 방법을 변경한다. (화면의 윗부분에 나타난다.)

v,V

이것은 보다 많은 정보를 나타내기 위한 것이다. 이 키를 사용하면 두번째 줄의 EIOM 문자들의 의미를 알 수 있다. 그 내용을 요약하면 다음과 같다.

Flag   의미              가능한 값 
E      에러              Space, R, I
I      설치 상태         Space, *, -, U, C, I 
O      이전 마크         *, -, =, _, n
M      현재 마크         *, -, =, _, n 
(대문자와 소문자 키들이 전혀 다른 효과를 나타낸다는 것에 유의하라.)

여기에서 모든 것에 대해 설명하기 보다는, Help 화면에서 그 내용을 직접 확인하는 것이 좋을 것이다. 예를 하나 들어보자.

dselect로 들어가서 이와 같은 줄을 찾았다고 하자.
EIOM Pri  Section  Package   Description 
  ** Opt  misc     loadlin   a loader (running under DOS) for LINUX kernel
이것은 여러분이 마지막에 dselect를 실행했을 때 loadlin을 선택했다는 것과 아직 선택되어 있다는 것을 말해주고, 하지만 아직 설치되지는 않았다는 것을 보여준다. 이유는 무엇 때문이겠는가? 당연히 loadlin 패키지가, 설치 중인 매체에 이 패키지가 포함되어 있지 않다는 것과 같은 이유 때문에, 물리적으로 설치 불가능하기 때문이다.

dselect가 사용하는 설치된 패키지들에 대한 정보는 패키지 파일들([U]pdate 단계에서 다운로드한 파일들)에 담겨져 있다. 이러한 파일들은 패키지들 자체로부터 만들어진다.

이 세상에 완전한 것은 없다. 따라서 때때로 패키지 안의 의존성 내용이 정확하지 않아 dselect가 그 문제를 해결할 수 없는 경우도 존재한다. 이런 경우 ``Select'' 화면에서 QX 명령을 이용하여 제어할 수 있다.

Q

덮어쓰기. dselect에게 내부의 의존성을 강제로 무시하고 여러분이 지정한 작업을 수행하게 한다. 물론 이것은 나쁜 방법이다.

X

만약 다른 모든 방법들을 실패했다면 이 키를 사용하라. 모든 것을 이전 상태로 돌리고 빠져나갈 것이다.

여러분의 실패를 방지하는데 도움을 주는 키로 R, U, D가 있다.

R

이 단계의 모든 선택을 취소한다. 이전 단계에서 선택한 것에는 영향을 미치지 않는다.

U

만약 dselect가 무언가 바꿀 것을 제안하거나 여러분 스스로 추가로 바꾼 것이 있다면, 이 키로 현재 dselect의 내용을 복구할 수 있다.

D

dselect에 의해 선택된 것들을 모두 제거하고, 여러분이 선택한 것만을 남겨놓는다.

다음과 같은 예를 보자. xmms 패키지는 다음과 같은 패키지들에 의존적이다. (이것이 많은 패키지에 의존적이기 때문에 선택했다.)

또한 아래의 패키지 역시 설치되어 있어야 한다. 하지만, 이것은 반드시 필요한 것은 아니다.

따라서, xmms를 선택했을 때, 아래와 같은 화면을 볼 것이다.
dselect - recursive package listing                  mark:+/=/- verbose:v help:?
EIOM Pri Section  Package      Description
  _* Opt sound    xmms         Versatile X audio player that looks like Winamp
  _* Opt libs     libglib1.2   The GLib library of C routines
  _* Opt libs     libgtk1.2    The GIMP Toolkit set of widgets for X
  _* Opt libs     libmikmod2   A portable sound library
  _* Opt libs     libogg0      Ogg Bitstream Library
  _* Opt libs     libvorbis0   The OGG Vorbis lossy audio compression codec.
(시스템에 어떤 패키지들이 설치되어 있는가에 따라서 나머지 패키지들은 나타날 수도 있고 그렇지 않을 수도 있다). 모든 추천된 패키지들이 선택되어 있다는 것을 확인할 수 있을 것이다.

R 키를 누름으로써 처음으로 돌아갈 수 있다.
dselect - recursive package listing                  mark:+/=/- verbose:v help:?
EIOM Pri Section  Package      Description
  __ Opt sound    xmms         Versatile X audio player that looks like Winamp
  __ Opt libs     libglib1.2   The GLib library of C routines
  __ Opt libs     libgtk1.2    The GIMP Toolkit set of widgets for X
  __ Opt libs     libmikmod2   A portable sound library
  __ Opt libs     libogg0      Ogg Bitstream Library
  __ Opt libs     libvorbis0   The OGG Vorbis lossy audio compression codec.
만약 이 xmms 패키지를 설치하지 않기로 결심했다면, 이 상태에서 [Enter]를 치면 된다.

D 키는 처음 선택했을 때의 그 상태로 돌아가게 한다.
dselect - recursive package listing                  mark:+/=/- verbose:v help:?
EIOM Pri Section  Package      Description
  _* Opt sound    xmms         Versatile X audio player that looks like Winamp
  __ Opt libs     libglib1.2   The GLib library of C routines
  __ Opt libs     libgtk1.2    The GIMP Toolkit set of widgets for X
  __ Opt libs     libmikmod2   A portable sound library
  __ Opt libs     libogg0      Ogg Bitstream Library
  __ Opt libs     libvorbis0   The OGG Vorbis lossy audio compression codec.

U 키는 dselect의 선택들을 복구한다.
dselect - recursive package listing                  mark:+/=/- verbose:v help:?
EIOM Pri Section  Package      Description
  _* Opt sound    xmms         Versatile X audio player that looks like Winamp
  _* Opt libs     libglib1.2   The GLib library of C routines
  _* Opt libs     libgtk1.2    The GIMP Toolkit set of widgets for X
  _* Opt libs     libmikmod2   A portable sound library
  _* Opt libs     libogg0      Ogg Bitstream Library
  _* Opt libs     libvorbis0   The OGG Vorbis lossy audio compression codec.

지금은 기본적인 것들을 실행할 것을 제안한다. -- 앞으로 많은 패키지들을 추가할 수 있는 기회가 있을 것이다.

무엇을 결정하였든지, [Enter]를 치면 그 결정을 받아들이고 주화면으로 전환된다. 만약 결과가 해결할 수 없는 문제를 담고 있다면, 바로 문제 해결을 위한 다른 화면으로 전환될 것이다.

따라서 R, U, D 키는 ``어떤 상황에서도'' 매우 유용하다. 어떤 것이든 실험해보고 모든 것을 원상태로 복구한 뒤 다시 시도해 볼 수 있다. 이것들을 ``비상시 유리를 깨고 사용하시오'' 딱지가 붙어있는 유리 상자와 같이 보지 말라.

``Select'' 화면에서 선택을 마친 후, I 키를 누르면 큰 창이 나타날 것이고, t 키를 쓰면 처음으로 간 뒤 Page-Down 키를 이용하여 선택 내용을 빠르게 검토할 수 있다. 이 방법은 작업 결과를 확인하고 에러를 쉽게 찾아낼 수 있게 한다. 어떤 사람은 모든 패키지들 선택을 실수로 해제하고 너무 늦게 그 사실을 알아채는 경우도 있다. dselect매우 강력한 도구이므로 잘못 사용하지 않도록 주의해야 한다.

이제 다음과 같은 상태가 될 것이다.
package category     status

required             all selected
important            all selected
standard             mostly selected
optional             mostly deselected
extra                mostly deselected

이제 만족스러운가? 이제 [Enter]를 누르고 ``Select'' 절차를 빠져나오면 된다. 만약 원한다면 다시 ``Select''를 실행시킬 수 있다.

2.4. 설치 (``Install'')

dselect는 실행시 7200개의 모든 패키지를 거치면서 선택된 패키지를 설치하게 된다. 설치가 진행되면서 결정이 필요할 때에는 질문이 나타나게 될 것이다.

시스템이 빠르면 화면이 너무 빨리 넘어갈지도 모른다. 그렇다면 Control-s/Control-q 키로 화면을 정지/해제 시킬 수 있고 화면의 마지막에서는 설치되지 않은 패키지들의 목록을 얻게 될 것이다. 만약 모든 것에 대한 기록을 간직하고 싶다면 teescript 같은 일반 유닉스의 기능을 이용하라.

패키지가 설치되지 않은 경우 가운데 하나는 설치를 위해 목록에 포함되긴 했지만 아직 설치되지 않은 패키지에 설치하고자 하는 패키지가 의존적인 경우이다. 이런 경우에 대한 해답은 ``Install''을 다시 한번 실행시키는 것이다. 모든 것이 제위치에 설치되기 위해서 설치를 4번 반복해야 하는 경우가 보고된 적도 있다. 물론 이 회수는 여러분이 어떤 방법으로 무엇을 설치하는 지에 따라 다르다. APT 방법의 사용하는 경우, ``Install'' 절차를 다시 실행해야 할 경우는 거의 없을 것이다.

2.5. 설정 (``Configure'')

대부분의 패키지들은 세번째 단계에서 설정이 되지만, 설정이 이루어지지 않은 패키지가 있다면 이 곳에서 설정을 한다.

2.6. 제거 (``Remove'')

설치되어 있지만 더이상 필요하지 않은 패키지들을 제거한다.

2.7. 종료 (``Quit'')

dselect를 빠져나간다.

이 단계에서 /etc/cron.daily/find를 실행시켜 시스템에 설치된 수많은 파일들을 확인하기를 권장한다. 그런 후 locate를 이용하여 주어진 파일이 위치를 확인할 수 있다.