Red Hat Training

A Red Hat training course is available for Red Hat Satellite

6장. 사용자 정의 패키지 업로드 및 관리 작업

어떠한 Red Hat Network 서비스를 사용하는지에 따라서, 비공개 채널에 패키지를 업로드하는데는 두 가지 다른 방법이 사용됩니다.
RHN Proxy Server 사용자는 RHN Package Manager 어플리케이션을 사용하여 중앙 Red Hat Network 서버로 패키지 헤더 정보를 보낸 후, RHN Package Manager를 호출한 Proxy의 로컬 리포지터리에 패키지를 저장하시면 됩니다.
RHN Satellite Server 사용자는 RHN Push 어플리케이션을 사용하여 로컬 RHN Satellite Server로 패키지 헤더 정보를 보낸 후, RHN Push를 호출한 Satellite의 로컬 리포지터리에 패키지를 저장하시면 됩니다.
이 장에서는 이러한 도구에 대하여 보다 상세하게 설명해 보겠습니다.

주의

RHN Proxy Server와 RHN Satellite Server를 동시에 사용하신다면, RHN Push만 사용하십시오. Proxy-Satellite 복합 사용시에는 사용자 정의 패키지와 채널을 Satellite에만 업로드하셔야 합니다. Proxy는 Satellite에서 패키지를 가져와서 클라이언트 시스템에 배포합니다.

6.1. RHN Proxy Server에 패키지 업로드하기

조직에서는 RHN Package Manager를 이용하여 RHN Proxy Server에 위치한 비공개 RHN 채널에 사용자 정의 패키지를 추가합니다. RHN Proxy Server가 오직 공식 Red Hat Enterprise Linux 패키지만 설치하기를 원하신다면, RHN Package Manager를 설치하실 필요가 없습니다.
RHN Package Manager를 사용하시려면, rhns-proxy-package-manager RPM 패키지와 이 패키지가 의존하는 기타 패키지를 설치하십시오. 이 패키지는 등록된 RHN Proxy Server 시스템에서 up2date rhns-proxy-package-manager 명령을 입력하여 설치하실 수 있습니다.

참고

패키지의 헤더 정보만 RHN 서버에 업로드됩니다. RHN이 클라이언트 시스템에 대한 패키지 의존성 문제를 해결하는데 이 헤더 정보가 필요합니다. 실제 패키지 파일(*.rpm)은 RHN Proxy Server에 저장됩니다. 이러한 이유로 사용자 정의 패키지는 RHN 웹사이트에서 볼 수는 있지만, 다운로드할 수는 없습니다. 사용자 정의 패키지는 클라이언트 시스템에서 up2date 명령을 사용하여 다운로드 받으셔야 합니다.

6.1.1. RHN Package Manager 설정 및 사용법

RHN Package Manager를 사용하여 RHN에 패키지를 업로드하시기 전에, 우선 Proxy 서버에 패키지를 직접 복사하셔야 합니다. 예를 들면, 개발용 호스트에서 다음과 같이 scp 명령을 입력하시면 됩니다:
scp foo.rpm root@rhnproxy.example.com:/tmp
RHN Package Manager를 사용하여 Red Hat Network에 패키지를 업로드하실때는 이전에 서버에 복사했던 파일을 지정하십시오.

참고

Red Hat Network에 패키지를 업로드하기 전에, 사용자 정의 패키지를 가져올 비공개 채널을 최소한 한개 정도 미리 생성하시는 것이 좋습니다. 시스템이 패키지를 받으려면 최소한 한개의 채널은 필요하기 때문입니다.
다음 명령은 패키지 헤더를 RHN 서버에 업로드한 후 패키지를 RHN Proxy Server 리포지터리에 복사합니다:
rhn_package_manager -c label_of_private_channelpkg-list
label_of_private_channel은 이 패키지들을 받도록 생성된 사용자 정의 채널의 레이블입니다. 정확한 채널 레이블을 사용하셔야 합니다. -c 또는 --channel 옵션을 이용하여 한개 이상 채널을 지정하시면, 업로드된 패키지 헤더가 지정된 모든 채널에 연결됩니다. 채널을 지정하지 않으시면, 패키지는 패키지 관리 페이지에서 채널 없음 목록에 나타납니다. 패키지를 재할당하는 방법은 4.6절. “소프트웨어 채널에 패키지 할당하기”>에서 참조하시기 바랍니다.
pkg-list는 업로드할 패키지 목록을 말합니다. 이 패키지는 이미 Proxy 호스트에 복사되어 있어야 합니다. 또는 -d 옵션을 사용하여 채널에 추가할 패키지를 포함한 로컬 디렉토리를 지정하시기 바랍니다. RHN Package Manager는 또한 --stdin 옵션을 사용하여 표준 입력으로부터 패키지 목록을 읽어올 수 도 있습니다.
설정 파일에는 기타 다른 옵션들 (예, Red Hat Network 서버 URL, HTTP 프록시 사용자명과 암호 및 패키지가 위치할 상부 디렉토리 등)도 지정되어 있습니다. 이 특수 설정 파일은 /etc/rhn/default/rhn_proxy_package_manager.conf에 위치해야 하며, 직접 수정하셔서는 안됩니다. 주요 설정 파일인 /etc/rhn/rhn.conf의 설정을 변경하여 기본 설정 파일의 내용을 무시하거나, 또는 RHN Package Manager를 이용하여 명령행 옵션을 전달하는 방법을 사용하셔야 합니다.
이 파일에서 설정되지 않은 변수는 현재 로그인된 사용자의 홈디렉토리에 위치한 .rhn_package_manager/etc/rhn/rhn_package_manager.conf에서 읽어옵니다. 다른 사용자가 이 파일을 읽지 못하도록 파일에 적절한 권한이 주어졌는지 확인하시기 바랍니다.
패키지를 업로드하신 후 로컬 디렉토리가 RHN 서버의 채널 이미지와 동기화되었는지 확인하시려면 다음 명령을 사용합니다:
rhn_package_manager -s -c name_of_private_channel
여기서 -s 옵션은 RHN 서버에 업로드되었지만, 로컬 디렉토리에는 없는 모든 패키지 목록을 보여줍니다. 조직 관리자만 이 옵션을 사용할 수 있습니다. 이 어플리케이션을 사용하시려면 사용자의 RHN 사용자명과 암호를 입력하셔야 합니다.
--copyonly 옵션은 명령 인자에서 지정된 파일을 Satellite에 업로드하지 않고 지정된 채널에 복사합니다. RHN Proxy Server 채널에 패키지가 없을 때, 채널에 모든 패키지를 다시 다운로드 받지 않고 필요한 패키지만 복사하고 싶은 경우 유용한 옵션입니다.
rhn_package_manager -c channel-name --copyonly /path/to/missing/file
패키지는 RHN 서버에 의해 저장되었으므로, RHN Package Manager를 사용하여 채널에 포함된 패키지 목록을 가져와 살펴보실 수 도 있습니다.
rhn_package_manager -l -c name_of_private_channel
-l 옵션은 지정된 채널에 있는 각 패키지에 해당하는 패키지 이름, 버전 번호, 릴리즈 번호, 아키텍쳐, 채널 이름을 보여줍니다. 추가 옵션은 표 6.1. “rhn_package_manager 옵션”에서 참조하시기 바랍니다.
표 6.1. “rhn_package_manager 옵션”에는 RHN Package Manager (rhn_package_manager)의 모든 명령행 옵션에 대한 요약 정보가 있습니다.

표 6.1. rhn_package_manager 옵션

옵션 설명
-v, --verbose 표준 출력 메시지를 보다 자세하게 출력합니다.
-d, --dir DIRECTORY_NAME 이 디렉토리에서 패키지를 처리합니다.
-c, --channel CHANNEL_NAME 패키지를 받을 채널을 지정합니다. -c 옵션을 여러번 사용하여 여러개 채널을 동시에 지정하실 수 있습니다 (예: -c channel_one -c channel_two)
-n, --count NUMBER 호출 당 지정된 숫자 만큼의 헤더를 처리합니다 — 기본값은 32 입니다.
-l, --list 지정된 채널에 포함된 패키지 목록을 보여줍니다.
-s, --sync 로컬 디렉토리가 서버와 동기화되었는지 확인합니다.
-p, --printconf 설정 파일을 출력 후 종료합니다.
--newest 서버에 있는 패키지와 비교하여 보다 최신인 패키지만 푸시합니다. 소스 패키지는 절대로 서로 버전을 비교하지 않는다는 점에서 특별합니다. 소스 버전은 관련 바이너리 패키지에 따라서 최신 버전을 알 수 있습니다. RHN Package Manager에 이 옵션을 함께 사용하시면 소스 패키지가 패키지를 업로드하지만, 관련 바이너리 패키지가 업로드되기 전에는 RHN 웹 인터페이스에서 소스 패키지가 나타나지 않습니다. 이 옵션은 --source 옵션과 반대됩니다. --source --newest 옵션은 관련 바이너리 패키지가 먼저 업로드되지 않아도 새로운 패키지를 가진 독립형 소스 패키지를 업데이트합니다.
--source 지정된 소스 패키지를 업로드합니다. 이 옵션을 사용하여 업로드하시면 소스 패키지를 기존 바이너리 패키지와 연관된 특별 소스 패키지가 아닌 평범한 독립형 패키지로 취급합니다. 예를 들면, 어플리케이션 소스를 정규 소스 관리팀이 아닌 외부 개발자나 테스터에게 배포하려고 하실때 이 옵션을 사용하시면 됩니다.
--stdin 표준 입력에서 패키지명을 읽어옵니다.
--nosig 패키지가 서명되지 않은 경우에도 실패하지 않습니다.
--no-ssl SSL을 끕니다 (권장하지 않는 옵션)
--stdin 표준 입력에서 패키지명을 읽어옵니다.
--username USERNAME RHN 사용자명을 지정합니다. 지정하지 않은 경우, 채널 관리자 사용자명이 요청될 것입니다.
--password PASSWORD RHN 암호를 지정합니다. 이 옵션에서 암호를 지정하지 않으시면, 채널 관리자 암호가 요청될 것입니다.
--dontcopy 업로드 이후 단계로서 패키지 트리에서 최종 위치에 패키지를 복사하지 않습니다.
--copyonly 패키지를 복사만 하고, 다시 가져오지 않습니다.
--test 푸시된 패키지 목록만 출력합니다.
-?, --help 옵션 목록을 보여주는 도움말 화면을 출력합니다.
--usage 사용 가능한 옵션에 대해 간단하게 설명합니다.
--copyonly 패키지만 복사합니다.

참고

이 명령행 옵션은 rhn_package_manager 맨페이지: man rhn_package_manager에서도 찾아보실 수 있습니다.