[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5. 설치


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.1 기본 설치

GNU Finger를 설치하기 위해 밟아야 하는 단계는 다음과 같다.

  1. GNU finger의 소스를 GNU FTP 사이트인 ftp.gnu.org 등을 통해서 구한 뒤에 네트워크 상에서 finger 서버가 될 호스트를 선택하고 ‘clients’ 파일을 만든 후에 ‘/usr/local/etc/fingerdir’에 설치한다. (아니면 ‘config.h’에서 지정한 EtcDir에 설치한다.) finger 서버에 알릴 모든 호스트명을 ‘clients’ 파일에 기록한다. 이때 Finger 서버 자신도 포함되야 한다.
  2. 각각의 클라이언트에서 (Finger 서버 역시 마찬가지 이다.) 다음과 같이 실행한다.
  3. GNU Finger 소스의 최상위 디렉토리로 이동한다. 예를 들면, 소스를 ‘/src/gnu/finger’에 두었다면, ‘cd /src/gnu/finger’를 실행한다.
  4. 호스트가 이전에 컴파일 한 것과 다른 종류라면 ‘make clean’과 ‘./configure’를 실행한다. 예전 버전의 System V에서 csh을 쓰고 있다면, csh이 configure를 실행하는 것을 막기 위해서 ‘sh ./configure’를 실행해야 한다.

    configure 스크립트는 설치 중에 필요한 시스템 의존 변수들의 값을 알아내고 각각의 하위 디렉토리마다 Makefile을 생성한다. 몇몇 패키지에서는 시스템 의존적인 정의 사항들을 포함하는 C 헤더 파일을 만들기도 한다. 또한 현재의 설정 사항을 다시 만들 수 있는 ‘config.status’ 파일도 생성한다.

    configure를 실행하면 1, 2분 정도 소요된다. 실행 중에는 진행 과정이 화면으로 출력된다. 출력되는 메세지를 보고 싶지 않은 경우에는 표준 출력을 ‘/dev/null’로 바꾸어 configure를 실행하면 된다. 예를 들면, ‘./configure >/dev/null’과 같이 할 수 있다.

    소스 코드가 있는 곳이 아닌 디렉토리에서 패키지를 컴파일 하려면, GNU make와 같이 VPATH 값을 지원하는 버전의 make를 사용해야 한다. 목적 파일과 configure를 실행할 실행 파일을 만들고 싶은 디렉토리로 ‘cd’ 명령으로 이동한다. configure는 자동적으로 configure가 있는 디렉토리와 상위 디렉토리에서 소스 코드를 찾는다. 만일 특별한 이유로 인해서 configure가 사용자가 지정한 소스 코드 디렉토리에 있지 않다면 소스 코드를 찾을 수 없다는 메세지가 출력된다. 그런 경우에는 configure를 ‘--srcdir=DIR’ 옵션을 주어 실행시킨다. DIR은 소스 코드가 있는 디렉토리이다.

    ‘configure’가 사용자의 시스템 설정을 조사해서 (‘Makefile’과 설정 헤더 파일을 만드는) 패키지 설정을 실제로 하지 않고 단지 ‘config.status’에 기록하도록 할 수 있다. 이렇게 하려면 configure에 ‘--no-create’ 옵션을 준다. 나중에 ./config.status를 실행시켜 실제로 특정 호스트에 맞게 설정해 줄 수 있다. 이러한 방법은 ‘config.status’과 ‘Makefile’의 업데이트를 위한 ‘Makefile’ 규칙에 유용하게 사용된다. 또한 ‘config.status’에 ‘--recheck’ 옵션을 주어 설정을 다시 할 수 있다. 이 옵션은 전에 사용했던 인자와 동일하게 configure를 재실행 시키며, configure를 바꾸고자 할 때 매우 유용하다. 이때 ‘configure’는 사용자가 지정한 모든 인자들을 무시한다. GNU Finger 설정 파일을 ‘/usr/local/etc/fingerdir’가 아닌 다른 곳에 생성하고 싶다면 ‘./config.h’와 ‘include/fingerpaths.h’ 파일을 편집한다. 만일, 지원되지 않는 사진 코드를 포함하고 싶다면 컴파일과 필요한 파일을 링크시키기 위해 ‘lib/Makefile.in’과 ‘lib/site/Makefile.in’ 그리고 ‘src/Makefile.in’을 수정하는 것 말고도 사진 파일의 포맷을 반드시 선택해야 한다. 만일, 여러분의 시스템이 컴파일과 링크를 위해 configure가 알지 못하는 일반적이지 않은 옵션을 요구한다면 configure에 몇몇 변수의 초기값을 환경 변수에서 지정해 줄 수 있다. 본쉘과 호환되는 쉘에서는 다음과 같이 명령행에서 실행할 수 있다.

     
    CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure
    

    configure를 실행할 때 환경 변수로 바꾸고 싶은 다음과 같은 make 변수가 있을 것이다. (이런 변수는 환경 변수로 주어진 값이 configure가 선택한 값을 덮어 쓴다.)

    CC

    C 컴파일러 프로그램. ‘gcc’가 PATH에 포함되어 있다면 ‘cc’ 또는 ‘gcc’가 기본으로 사용된다.

    INSTALL

    파일을 설치하는데 사용될 프로그램. install이 기본으로 사용되며, install이 없을 경우에는 cp가 사용된다.

    (이런 변수들은 환경 변수에서 주어진 값이 configure가 선택하는 값에 추가된다.)

    DEFS

    설정 옵션. 형식은 다음과 같다. ‘-Dfoo -Dbar ...’

    LIBS

    링크시킬 라이브러리 옵션. 형식은 다음과 같다. ‘-lfoo -lbar ...’

  5. GNU Finger 실행 파일과 표준 타겟을 만들거나 설치하기 위해 다음 명령 중 하나를 실행한다.
    ‘make server’

    실행 파일을 만들거나 설치하기 위해서 finger 서버 설정 파일을 추가로 설치한다. 호스트가 finger 서버로 지정되어 있을 경우에는 이 명령어를 사용한다.

    ‘make client’

    실행 파일을 만들지만 서버가 아닌 클라이언트로 사용하기 위한 것만 설치한다. finger 서버로 사용되지 않을 경우에는 이 명령어를 사용한다.

    ‘make all’

    모든 실행 파일을 만든다. 설치하지는 않는다.

    위의 명령은 finger 서버를 위한 fingerd 뿐만 아니라 ‘lib/libfinger.a’와 finger, in.fingerd 그리고 in.cfingerd 프로그램들을 생성한다. 원한다면 ‘make’ 변수를 CFLAGS와 LDFLAGS로 다음과 같이 덮어 쓸 수 있다.

     
    make CFLAGS=-O2 LDFLAGS=-s
    
  6. 클라이언트가 실행될 수 있게 다음과 같이 시스템 설정을 변경한다. (특정 시스템에서의 설정 방법에 대해서는 시스템 문서를 참조하라.)
  7. 각 클라이언트에서 위의 단계를 수행한 다음에 지정된 GNU Finger 서버로 로그인 한다.
  8. fingerd로 서버 데몬을 시동한다. 서버 호스트가 재시작 될 때마다 fingerd가 시작되도록 설정해야 한다. 정확한 변경 방법은 서버 호스트의 시스템 문서를 참조하라.
  9. 사진을 포함하도록 선택했다면, 지금 사진을 설치하는 것이 좋다. 하지만 먼저 GNU Finger가 실행중인 다른 사이트에서 사진을 얻도록 시도해 보자. 예를 들면 다음과 같이 할 수 있다.
     
    finger --face bfox@aurel.cns.caltech.edu
    
  10. 사이트에 맞게 ‘/usr/local/etc/fingerdir/targets’에 있는 ‘x-.help’와 ‘x-.site’ 파일을 변경한다.

이것으로 설정이 마무리 되었다! 이제 설정 파일 부분으로 넘어가도록 하자.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2 설정 파일

이 장에서는 GNU finger 프로그램의 설정 파일 형식에 대해서 설명한다.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2.1 ‘clients’ 파일

‘/usr/local/etc/fingerdir/clients’ 파일에는 GNU Finger 서버인 fingerd가 등록할 수 있는 클라이언트들의 목록이 모두 포함되어 있다. 이 파일을 편집한 뒤 finger 서버에 SIGHUP을 보내서 설정이 변경되었음을 알릴 수 있다. 파일의 모든 행은 호스트 이름 또는 주석으로 시작된다. 이름 앞에는 @port가 와서 finger 서버에게 2003이 아닌 다른 포트 번호를 이용해 특정 호스트를 등록하도록 할 수도 있다. 주석은 해쉬 사인(#)으로 시작하는 모든 줄이다. 다음과 같은 예가 될 수 있다.

 
# 이 파일은 gnu.ai.mit.edu 네트워크에 있는 모든 GNU Finger 클라이언트를 포함하고 있다.
# Apple-gunkies는 GNU Finger 서버이다. (``serverhost''를 참고)
apple-gunkies.gnu.ai.mit.edu

# Albert는 메일 교환기이다. (``mailhost''를 참고)
albert.gnu.ai.mit.edu

# Spiff는 Sony 시스템이며, 2003 포트는 이미 `mbanks'에서 사용중이다.
# 포트 번호 2010을 대신 사용한다.
@2010 spiff.gnu.ai.mit.edu

churchy.gnu.ai.mit.edu
mole.gnu.ai.mit.edu
geech.gnu.ai.mit.edu
wookumz.gnu.ai.mit.edu
nutrimat.gnu.ai.mit.edu
kropotkin.gnu.ai.mit.edu
goldman.gnu.ai.mit.edu
hal.gnu.ai.mit.edu
wombat.gnu.ai.mit.edu

비록 이 예제 ‘clients’ 파일이 완전히 인증된 호스트의 도메인명을 갖고 있지만 일반적으로 호스트명 만을 포함해도 충분하다. 명백한 IP 주소 역시 사용될 수 있지만 이것은 그리 추천할 만한 것은 아니다. 서버 역시 ‘clients’ 파일에 포함되어 있고 in.cfingerd를 갖고 있음을 주목하라. 서버가 제대로 자신을 등록하기 위해서 필요하다.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2.2 ‘serverhost’ 파일

‘/usr/local/etc/fingerdir/serverhost’ 파일에는 GNU Finger 서버 호스트의 이름이 포함된다. 그 이름이 의미하듯이 이 파일에 포함된 호스트는 GNU Finger 서버인 fingerd가 실행되는 호스트이다. 해쉬 사인(#)으로 시작되는 행은 주석으로 처리되며, 다음과 같은 예가 될 수 있다.

 
# A-g는 모든 finger 호스트를 처리한다.
apple-gunkies.gnu.ai.mit.edu

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2.3 ‘mailhost’ 파일

‘/usr/local/etc/fingerdir/mailhost’ 파일에는 네트워크의 메일 교환 서버가 포함된다. 호스트는 반드시 SMTP로 통신하는 방법을 알아야 한다. 이 파일에 그것이 불가능한 호스트명이 적혀 있으면 안된다. 메일 포워드 정보를 얻고 ‘.forward’ 파일을 사용자의 홈 디렉토리에서 찾지 못하면 메일링 리스트를 확장하기 위해 접촉을 한다. GNU Finger는 ‘mailhost’의 유무에 관계 없이 언제나 사용자의 ‘.forward’ 파일을 참조한다. 이 파일에서 해쉬 사인(#)으로 시작하는 모든 행은 주석으로 처리된다.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2.4 ‘forwardhost’ 파일

‘/usr/local/etc/fingerdir/forwardhost’ 파일에는 현재의 finger 서버가 일치하는 사용자 이름이나 전자 우편 앨리아스를 찾지 못할 때 finger 요청을 포워드 할 호스트명이 포함된다. 이 파일이 없으면 어떤 포워딩도 이루어 지지 않는다. 해쉬 사인(#)으로 시작하는 모든 행은 주석으로 처리되며, 다음과 같은 예가 될 수 있다.

 
% finger -l nosuchuser@gnu.ai.mit.edu
[No user nosuchuser@apple-gunkies.gnu.ai.mit.edu, forwarding
 request to life.ai.mit.edu]
Login name: nosuchuser			In real life: ???

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2.5 ‘ttylocs’ 파일

‘/usr/local/etc/fingerdir/ttylocs’ 파일에는 사용자가 경유하거나 로그인 하는 터미널이나 호스트에 대한 설명이 포함된다. 각 클라이언트 호스트는 이 파일에 대한 복사본을 갖고 있다. 각 행은 호스트명이 있고 그 뒤에 설명이 있다. 이름과 설명은 하나 이상의 공백 또는 탭으로 분리되어야 한다.

 
spiff.gnu.ai.mit.edu            NE43 Hall
susie.gnu.ai.mit.edu            NE43 Sony 427 x8568
spike.gnu.ai.mit.edu            NE43 Sony 427 x8568
apple-gunkies.gnu.ai.mit.edu    NE43 427        
sugar-bombs.gnu.ai.mit.edu      Elsewhere
pogo.gnu.ai.mit.edu             NE43 447
albert.gnu.ai.mit.edu           Noisy Machine Room
128.52.46.42                    The salt mines
churchy.gnu.ai.mit.edu          NE43 426
mole.gnu.ai.mit.edu             NE43 430
geech.gnu.ai.mit.edu            NE43 426
wookumz.gnu.ai.mit.edu          NE43 427
calvin.gnu.ai.mit.edu           NE43
gnu.gnu.ai.mit.edu              NE43
kropotkin.gnu.ai.mit.edu        Total anarchy

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.3 사이트 지정 기능

GNU Finger의 출력을 커스터마이즈 하고 싶다면 ‘lib/site’ 디렉토리가 시작하기 좋은 위치이다. 만일, 얼굴을 보여주는 새 코드를 넣거나 특정한 "긴" 형식의 출력에 특히 흥미를 느낀다면 GNU Finger의 다음 버전에 지원되지 않는 기능으로서 기꺼이 포함시킬 수 있다. (여러분의 코드에 대해서 직접적으로 의견 교환을 하겠다.) 다른 형태의 비트맵 파일 포맷을 처리하거나 사용자 정보에 관련된 다른 형태의 코드를 통해서 finger 프로그램의 발전에 기여할 수 있다. 현재까지 ‘lib/site’에서 지원되는 유일한 파일은 ‘userinfo.c’이다.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4 설정 옵션

‘config.h’에 있는 다음의 정의들은 GNU Finger의 실행 방식을 제어한다.

SUPPORT_FINGERRC

사용자가 ‘.fingerrc’ 스크립트를 사용하는 것을 제한하려면 해제한다. 기본값으로 이 기능이 설정된다.

CHECK_OWNER_FINGERRC

‘.fingerrc’가 발견된 디렉토리의 사용자 소유의 것임을 분명히 하고자 할 때 정의한다.

CHECK_RDONLY_FINGERRC

‘fingerrc’를 소유자 이외의 사용자가 기록하지 못하도록 할 때 정의한다.

FINGERRC_SHELL

‘.fingerrc’를 실행시키는데 사용될 쉘. 사용자의 로그인 쉘을 사용하려면 정의를 해제한다.

DEFAULT_POLL_INTERVAL

등록 시간 간격이 fingerd에 ‘--interval’ 옵션으로 정확이 주어지지 않은 경우에, 지연 시간을 초 단위로 설정할 때 정의한다.

BASENAME_IS_SERVICE

finger 클라이언트가 언제나 ‘finger’ 서비스를 사용하도록 하려면 정의 해제한다. 그렇지 않으면 서비스는 클라이언트의 기본 서비스 항목에서 빠진다. 기본값으로 정의되어 있다.

INFO_IS_DEFAULT

‘finger --info’를 기본값으로 하고 싶으면 정의한다. ‘finger --brief’를 기본값으로 하고 싶다면 정의 해제한다.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Autobuild on September 8, 2012 using texi2html 1.82.