· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Apt Rpm-HOWTO

APT+RPM 요령(HOWTO)
원문 : http://bazar.conectiva.com.br/~godoy/apt-howto/


DeleteMe영어실력이 모자라서 아직 번역에 대한 허락을 받지 못했습니다. --잔디인형


(준비 버전)


  • 저자

  • 이 문서는 장치에 apt 클라이언트나 apt 저장소를 어떻게 설정하는지를 설명합니다.

    이 문서는 apt와 그 정책을 설명하지 않습니다. 우리는 RPM 기반 시스템에 apt를 적용하는 것을 설명하고 있습니다. (어떤 apt 작업에서 몇가지 정보가 제공되지만, 이 문서는 apt에 대한 모든 것을 가르쳐 주기 위한 문서가 아닙니다.)

    1. 이 문서에서 사용된 관례


    제가 말하는 것을 확실히 이해하게 하기 위해, 우리는 이 문서에서 다음 관례들을 사용하고 있습니다.

    표 1. 관례

    저자가 말하고 싶은 것 저자가 사용한 것
    사용자 프롬프트 $
    최고관리자(root) 프롬프트 #
    파일 이름 file
    디렉토리 이름 some/directory
    명령어 이름 COMMAND parameter1 parmeter2 ...
    명령에서 선택적인 전달인자 COMMAND obligatory-parmeter optional-parameter
    파일의 내용 당신의 파일에 이것을 써 넣으세요
    주의해야 할 것은 이렇게 경고
    이것은 경고입니다.
    몇가지 설명 참고: 이것은 참고 입니다.
    어떻게 하는지나 당신의 작업을 개선하기 위한 조언 조언: 이것은 조언입니다.
    예를 들면 두가지 서로 다른 방법이 사용될 수 있는 매개변수 use_this | or_thisa
    참고 : a. 여기서 | 표시는 키입니다.

    2. apt는 무엇입니까?


    apt는 사용자가 설치하고자 하는 패키지를 요구할 때 패키지를 만들기 위해 필요한 모든 패키지들을 설치(또는 업그레이드)하는 시스템과 같은 방법으로 패키지들을 관리하기 위해 사용되는 데비안 도구입니다.

    우리가 여기서 설명하고 있는 apt는 rpm 파일들과 작업하는 버전입니다.

    apt-get와 그 친구들을 사용하기 위해, 당신은 apt 패키지를 설치해야 할 것입니다, 당신의 GNU/Linux 제공자가 apt를 제공한다면, 당신은 그 FTP 사이트에서 이것을 찾을 것입니다.

    경고
    이것은 개발 버전입니다. 이것은 당신의 시스템을 뒤섞을 것이고, 그래서 이것을 사용하는 것은 위험을 갖고 있습니다

    3. 당신의 시스템을 위한 apt 설치와 설정

    apt를 사용하기 위해 다음 처리를 해야 합니다.

    • root 사용자가 되세요

    • rpm -ihv이나 rpm -Uhv으로 apt 패키지를 설치합니다. 이 패키지는 당신의 제공자 사이트에서 얻을 수 있습니다. (그가 apt를 제공한다면 당신의 배포판 CD에도 있을것입니다.)

    • 기본 서버에서 패키지들의 데이터베이스를 다운로드 하기 위해 apt-get update를 실행하세요.

    • apt-get check 를 실행세요, 그러면 apt가 검사할 수 있으며 당신의 박스에서 OK라면, 패키지들의 의존성이 정확하게 만족된 것입니다. 참고 : 당신의 시스템이 심각하게 손상되어있지 않다면, apt-get -f install로 고칠 수 있을 것입니다. 손상됐다며, 당신은 apt를 시작하기 전에 수동으로(rpm 명령을 사용하여) 이 의존성들을 고쳐야 할 것입니다.

    • 모든 것이 잘 진행됐으면, 이 문서에서 이후에 열거되는 apt-get와 apt의 명령들을 사용할 수 있을 것입니다.

    4. apt-get을 어떻게 사용합니까?

    apt-get 명령들을 매우 쉽고 직관적입니다.

    이 명령들의 구조는 다음과 같습니다.
     # apt-get [options] command
     # apt-get [options] install package [package ...]
    

    명령 줄은 다음 기본 형태의 변형이 될 것입니다.

    apt-get update
    apt-get 로컬 데이터베이스를 서버의 pkglist 파일들로 갱신합니다.

    apt-get check
    apt를 사용하여 시스템의 무결성을 검사합니다.

    apt-get install some-package
    새로운 패키지를 설치하고, 의존적인 패키지들을 자동적으로 풀고 다운로드 합니다.

    apt-get upgrade
    시스템에서 오래된 것을 검사하고 그것들을 자동적으로 갱신합니다.

    apt-get dist-upgrade
    apt-get upgrade와 같습니다. 그러나 모든 기본 패키지들을 설치하고 모든 갱신을 시도하며 필요한경우 새로운 패키지들을 설치합니다.

    apt-get remove some-package
    패키지와 이것에 의존적인 다른 모든 패키지들을 지웁니다.

    apt-get clean
    캐시 디렉토리(/var/cache/apt/archives/)에서 다운로드했던 패키지들을 지우고 공간을 확보합니다.

    5. apt-cache를 어떻게 사용하나요?

    apt-get과 나란히 apt-cache가 있습니다.

    apt-cache는 apt의 cache에서 패키지들로 부터 정보를 조작하고 얻기 위한 명령입니다.

    이 명령은 일반 사용자에게 사용되지 않습니다. 당신이 개발하는 것이 있다면 apt와 함께 사용되는 것을 좋아할 것입니다.

    apt-cache add
    소스 캐시에 패키지 파일을 추가합니다.

    apt-cache gencaches
    패키지와 소스 캐시를 만듭니다.

    apt-cache showpkg
    단일 패키지를 위한 일반적인 정보를 보여줍니다.

    apt-cache stats
    기본적인 상태들을 보여줍니다.

    apt-cache dump
    전체 파일을 간단한 형식으로 보여줍니다.

    apt-cache dumpvail
    표준 출력으로 유효한 파일들을 출력합니다.

    apt-cache unmet
    의존성을 만날수 없는 것들을 보여줍니다.

    apt-cache check
    캐시 비트를 검사합니다.

    apt-cache search
    정규 표현식으로 패키지 목록을 찾습니다.

    apt-cache show
    패키지에서 읽을 수 있는 부분을 보여줍니다.

    apt-cache depends
    패키지정보의 의존성 열을 보여줍니다.

    apt-cache pkgnames
    모든 패키지들의 이름들을 나열합니다.

    apt-cache dotty
    GraphVis를 위한 패키지 그래프를 생성합니다.

    6. apt-cdrom과 apt-config 사용

    apt-cdrom은 apt의 sources.list 파일에 CDROM을 추가하는 간단한 명령입니다. 이것의 문법은 이 기본적인 명령줄의 변형입니다.

     # apt-cdorm add
    

    apt-cdrom은 CDROM 드라이브를 특별하게 사용하지 않는다면 당신의 /etc/fstab으로 부터의 정보를 사용합니다.

    apt-config는 apt의 apt.conf 파일을 읽기 위한 도구이며, 이것을 화면에 표시하기 위해 매우 유용합니다. 이것의 문법은 이 선택사항들의 변형입니다.

    apt-config ''' '''''options''''' ''' shell
    쉘 모드

    apt-config ''' '''''options''''' ''' dump
    화면에 설정된 선택사항들을 보여줍니다.

    7. 저장소 생성

    apt-get 저장소를 설정하기 위해, 당신은 표준 배포판 패키지 트리와 그것의 기본 디렉토리가 있는 HTTP나 FTP 서버가 필요할 것입니다. 디렉토리 트리의 꼭대기는 /etc/apt/sources.list에 있어야 합니다.


    참고 : HTTP와 FTP가 아닌 다른 방법으로 아직 시험되지 않았습니다.


    당신은 이 서버에서 접근될수 있도록 파일들을 유효하게 만들어야 합니다. 당신은 검사하기 위해 파일 다운로드를 시도하는데 아무 브라우저나 웹 도구를 사용할 수 있습니다. 이 검사를 하여 현재 서버에서 잘못 설정된 문제들을 제거할 것입니다.

    당신은 다음 디렉토리 구조가 필요할 것입니다.

    메인 디렉토리
    이것은 저작권 파일들, 소스 패키지들의 디렉토리들, 바이너리 패키지들의 디렉토리들 등을 포함할 것입니다. 이것은 CD에서 루트 디렉토리와 똑같습니다.

    벤더 디렉토리
    이것은 바이너리 패키지들을 가지는 다른 디렉토리들의 묶음입니다.

    저장소들
    이것들은 벤더 디렉토리 안에 있는, 패키지들을 포함할 디렉토리들입니다. 이것들의 이름은 대문자 RPMS 뒤에 점이 따라오는 RPMS. 으로 시작되어야 합니다. 점 뒤에 이 파일들로 구성하기 원하는 이름을 사용할 것입니다. 그 예는 각각 당신의 배포판의 beta와 official 버전들을 위한 betaofficial 입니다.

    base 디렉토리
    이 디렉토리는 패키지 이름들고 의존성이 있는 pkglist 파일들을 가질 것입니다.

    이 모든 디렉토리들로 당신이 만든 저장소들에 접근하기 위한 sources.list 파일을 설정할 수 있을 것입니다.

    예제 1. /etc/apt/sources.list
     rpm http://joes.box.com/stuff 5.1/conectiva cds security
    

    예제 1에 보여준 설정으로 저장소 트리는 예제 2에 명시된 것들이 필요합니다.

    예제 2. 서버 트리
     /home/httpd/stuff .... (1)
     /home/httpd/stuff/5.1 .... (2)
     /home/httpd/stuff/5.1/lots-of-README-and-LICENSE-files
     /home/httpd/stuff/5.1/SRPMS
     /home/httpd/stuff/5.1/conectiva
     /home/httpd/stuff/5.1/conectiva/base
     /home/httpd/stuff/5.1/conective/base/hdlist.cds
     /home/httpd/stuff/5.1/conectiva/base/hdlist.security
     /home/httpd/stuff/5.1/conectiva/base/pkglist.cds.bz2 .... (3)
     /home/httpd/stuff/5.1/conectiva/base/pkglist.security.bz2 .... (4)
     /home/httpd/stuff/5.1/conectiva/RPMS.cds/ .... (5)
     /home/httpd/stuff/5.1/conectiva/RPMS.security/ .... (6)
     /home/httpd/stuff/5.1/conectiva/etc-etc
    
    1. 이것은 저장소 트리의 꼭대기 입니다.
    2. 이것은 여기서 특별한 버전 5.1의 꼭대기 입니다.
    3. 우리는 이 제어 파일을 생성했었습니다.
    4. 이것 역시 그렇습니다.
    5. 이것은 Conectiva CD의 유효한 패키지들을 포함합니다.
    6. 이것은 보안 수정된 패키지들을 포함합니다.


      참고 : cdssecurity 이름들은 맘대로 입니다. 실제에서 당신은 당신이 원하는 방법대로 부를 수 있습니다. 유일한 제한은 저장소 트리의 논리적 혹은 물리적인 분할이 필요합니다.

    7.1. genbasedir

    모든 저장소는 설명과 의존성들이 유효한 모든 패키지의 목록이 포함된 패키지 색인 파일을 가져야 합니다. 이 파일은 pkglist로 이름 붙여지고, bzip2로 압축됩니다.

    pkglist 파일들을 생성하기 위해 당신은 저장소의 base 디렉토리로 가서 genbasedir을 실행해야 합니다. 이것은 bzip2로 압축된 파일들을 생성할 것입니다.

    예제 3. genbasedir 문법
     # genbasedir [-s <html>|</html> --sign] [--topdir=dir] distribution component [component ...]
    

    예제 3의 각 요소에서:

    -s 또는 --sign
    이 전달인자를 사용하는 것은 당신의 pkglist 파일들에 서명을 할 수 있을 것입니다. 이것은 당신의 gpg 인증을 알려주고 같은 디렉토리에 hashfile.gpg로 이름 붙여진 파일을 생성할 것입니다.

    --topdir
    이 전달인자는 당신의 저장소에서 발견되는 꼭대기 디렉토리를 명시합니다. 이것은 당신의 sources.list 파일에 명시된 URL과 일치하는 디렉토리 입니다.

    distribution
    배포판은 당신의 GNU/Linux 배포판 이름입니다. 이것은 일반적으로 몇가지 버전이나 다른 지시자가 덧붙여진 당신의 벤더 이름입니다. 이것 역시 당신의 sources.list 파일에 있습니다.

    component(s)
    이것 (혹은 이것들)은 당신의 rpm 파일들이 자리잡은 곳에 위치합니다. 당신은 이전에 당신이 사용했던 추가사항들을 여기에 넣어야 할 것입니다. 그렇지 않으면 동작하지 않습니다.


    예제 2에서 우리는 이렇게 했습니다.
     # genbasedir --topdir=/home/httpd/stuff 5.1/conectiva cds
     # genbasedir --topdir=/home/httpd/stuff 5.1/conectiva security
    

    8. apt 파일들

    8.1. sources.list

    /etc/apt 디렉토리에서 발견되는, sources.list 파일은 apt가 패키지 정보를 위해 찾을 곳을 알기 위해 사용할 소스를 설명합니다.

    이 파일의 문법은 다음과 같습니다.

     TYPE URI ARGS
    

    현재 TYPE는 deb나 rpm일 것입니다. 우리는 rpm 형식만 설명할 것입니다.

    8.2. rpm 형식

    rpm 형식은 패키지들의 세트가 포함된 표준적인 RPM 배포판입니다. 여겨서 한줄 이상이 가능하며, 첫번째 줄에 가장 빠른 저장소가 오도록 할수 있습니다.

     rpm uri distribution component [component ...]
    

    uri는 apt 저장소 서버를 가리킵니다.

    distribution은 정확한 경로를 명시할 수 있습니다. 당신이 이 선택사항을 사용한다면, 당신은 component 부분을 생략하고, 슬래쉬로 끝나도록 해야 합니다.

    apt는 내부적으로 사용하는 uri를 정렬할 것입니다. 그러나 당신의 최상위 에서 최하위 패키지 소스들로 정렬하는데 매우 중요합니다.(예를 들면 가장 빠른 것에서 가장 느린것)

    8.3. uri 명시

    당신은 여러개의 uri를 위한 소스들을 사용할 수 있습니다.

    경고
    HTTP와 FTP에서만 시험된 방법들이며 안전하다는 것을 꼭 기억하세요. 저자는 여기에서 이것들만 설명할 것입니다. 추가적인 방법은 여기서 설명한 것처럼 그것들이 설명되면 제공하게 될 것입니다.

    ftp
    이 방법은 저장소 서버에 FTP 접속을 명시합니다.
    http
    이 방법은 저장소 서버에 HTTP로 접속할 것을 명시합니다.

    9. apt 저장소를 유지하기

    당신의 저장소를 설정한 후, 당신은 당신의 사용자들에게 유용하도록 하기를 원할 것입니다. 저자가 그것에 대해 무엇을 말할수 있을까요? 유지하세요! 당신은 당신의 파일들과 목록들을 계속 갱신해야 할 것입니다.

    apt 저장소 관리는 아주 아주 아주 간단합니다. 당신은 다만 갱신된 패키지들을 거기에 두고 genpkglis 명령으로 목록을 다시 생성하기만 하면 됩니다.

    조언 : 우선 공유할 수 있도록 하기 전에 당신의 새로운 패키지를 검사하세요. 그것들이 속해있는 디렉토리에 복사하고 오래된 패키지를 지웁니다. 여기에서, 당신의 사용자들이 이 패키지들을 사용할 수 없다면 당신의 pkglist 파일을 다시 생성합니다. 즉시 가능하도록 목록을 갱신하십시요.

    저는 그렇게 생갑합니다. 그러나 사실 뭐가 더 나은지 모릅니다. 모든 것을 해당되는 디렉토리에 복사하고, 목록을 다시 생성하고, 오래된 패키지들을 지우고, 목록을 다시 생성하는 것; 또는 복사, 삭제, (다운로드 받을 파일이 없습니다.) 목록 재생성을 착수 (모든 것이 평상시로 되돌아갑니다)... 저는 당신의 apt 저장소가 어떻게 사용되는가는 당신에게 달려있다고 생각합니다.

    10. GPG 서명 사용

    apt는 gptg 를 지원합니다, 그래서 당신은 당신의 벤더들로부터 당신만의 고유한 패키지들을 만들기 위해 이것의 사용을 원할것입니다.(또는, 당신이 GNU/Linux 벤더라면, 당신은 당신의 사용자들에게 이러한 이득을 제공하기를 원할 것입니다.)

    apt 는 PGP를 지원하지 않습니다. 그래서 그것을 사용하기 위한 시도는 시간낭비입니다.

    sources.list 문법은 이 작업을 위해 바뀌어야 합니다.

     rpm [gpg-id] uri distribution component [component ...]
    

    gpg-id는 패키지에 서명하기 위해 벤더에 의해 한번 사용됩니다. 사실 이것은 vendors.list 패일에서 유효한 벤더키 지문의 마지막 부분을 지시하는 지시자 입니다.

    예제 4. vendors.list
     # 실제 패키지 제공자 목록
     #
     # 이 파일은 실제로 패키지한 사람들로 부터 패키지 제공자(벤더나 개인)의 목록을 포함합니다.
     #
     #  
     cncbr   E368DDD099807190 "Conectiva S.A. <security@conectiva.com.br>"
    

    제 말은, 이것을 바꾼 뒤로 gpg-id 필드를 만나는 것은, 당신은 당신의 gpg 열쇠고리에 벤더의 공개키를 가지도록 해야 할 것입니다.

    예제 5. gpg 키들을 포함하기
     # gpg --import file-with-key
    

    예제 5에서, file-with-key(절대 추측하지 마세요)는 벤더의 공개 gpg 키가 포함된 파일입니다.

    이 명령은 당신의 벤더 키를 root 열쇠고리에 포함시킬 것입니다.(이후로 root만 패키지를 설치, 제거나 관리할 수 있습니다. 이것은 다른 사용자들의 어떠하 열쇠고리로도 알수 없게 합니다.)

    11. archives 디렉토리가 어떻게 동작합니까?

    어떤 패키지를 설지하거나 업그레이드(upgrade나 dist-upgrade) 하기 위한 당신의 apt 요청은, /var/cache/apt/archives/partial/에 필요한 패키지들을 다운로드할 것이며, 그것의 MD5 헤시와 크기를 검사한 후에, 이 패키지들을 /var/cache/apt/archives에 옮길 것입니다.

    당신은 archives/ 디렉토리의 모든 파일이 검사된 것이라고 생각할 수 있습니다. archives/partial/ 파일들에서는 그렇지 않습니다.





    sponsored by andamiro
    sponsored by cdnetworks
    sponsored by HP

    Valid XHTML 1.0! Valid CSS! powered by MoniWiki
    last modified 2005-04-19 00:07:52
    Processing time 0.0248 sec