웹사이트 검색

로컬 Red Hat 리포지토리를 만드는 방법


이 페이지에서

  1. 저장소에 필요한 패키지 설치\n
  2. 저장소용 디렉토리 생성
  3. 유용한 명령\n
  4. 저장소 동기화\n
  5. Createrepo 명령
  6. 클라이언트 서버 설정
  7. 리포지토리 업데이트를 위한 스크립트 및 Cron 작업 만들기\n
  8. 최종 생각
  9. 출처

로컬 Red Hat Enterprise Linux 리포지토리를 원하는 데는 여러 가지 이유가 있습니다. 인터넷에서 업데이트를 다운로드하는 데 시간과 대역폭이 많이 소요될 수 있으므로 대역폭은 중요한 요소입니다. 또 다른 이유는 서버가 인터넷에 연결되어 있지 않아 로컬 소스에서 업데이트를 받아야 하기 때문일 수 있습니다. 라이선스에 돈을 쓰지 않고 업데이트해야 하는 개발 환경이 있을 수 있습니다. 이유가 무엇이든 이 튜토리얼은 로컬 리포지토리를 설정하는 과정을 안내합니다.

참고: 리포지토리 역할을 하는 서버는 리포지토리 역할만 해야 합니다.

리포지토리에 필요한 패키지 설치

yum install yum-utils createrepo httpd

리포지토리용 디렉터리 만들기

mkdir /var/www/html/rhel6
mkdir /var/www/html/rhel6/server
mkdir /var/www/html/rhel6/dts
mkdir /var/www/html/rhel6/dts2
mkdir /var/www/html/rhel6/rhsc

유용한 명령

활성화 및 비활성화된 서버의 리포지토리를 모두 나열합니다.

yum repolist all

구독에서 사용 가능한 리포지토리 나열

subscription-manager repos --list

시스템에서 저장소 활성화

subscription-manager repos --enable=rhel-6-server-optional-rpms

시스템에서 저장소 비활성화

subscription-manager repos --disble=rhel-6-server-optional-rpms

서버, dts 및 rhsc(소프트웨어 컬렉션) 리포지토리를 리포지토리에서 활성화하려고 합니다.

리포지토리 동기화

이러한 모든 리포지토리가 활성화되면 해당 리포지토리의 download_path와 일치하도록 각각의 download_path를 변경하는 모든 리포지토리에 대해 다음 명령을 수행합니다.

reposync --gpgcheck -l --repoid=repoid --download_path=/var/www/html/rhel6/repo_name --downloadcomps --download-metadata

Createrepo 명령

패키지가 다운로드되면 각 리포지토리에 대해 아래의 createrepo 명령만 있으면 됩니다.

createrepo -v /var/www/html/rhel6/repo_name/ -g comps.xml

클라이언트 서버 설정

이제 로컬 리포지토리가 있지만 업데이트를 위해 이러한 리포지토리를 사용할 Red Hat 서버에서 몇 가지 사항을 변경해야 합니다.

먼저 /etc/yum.repos.d의 repo 파일 내에서 다른 모든 저장소의 사용 가능 플래그가 0(영)으로 설정되어 있는지 확인하세요. 나중에 필요할 수 있으므로 지금은 저장소를 삭제하지 않을 것입니다. 활성화된 플래그를 변경하는 것만으로도 충분합니다.

이제 저장소를 사용하는 모든 서버의 /etc/yum.repos.d 디렉토리에 추가될 .repo 파일을 만들어야 합니다. 해당 파일은 다음 파일과 유사해야 합니다.

vi /etc/yum.repos.d/name_of_repo_file.repo
[server]
name = rhel-6-server-rpms
baseurl = http://hostname_or_ip_address_of_repository/rhel6/server
gpgcheck = 0
enabled = 1

[dts]
name = rhel-server-dts-6-rpms
baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts
gpgcheck = 0
enabled = 1

[dts2]
name = rhel-server-dts2-6-rpms
baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2
gpgcheck = 0
enabled = 1

[rhsc]
name = rhel-server-dts2-6-rpms
baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2
gpgcheck = 0
enabled = 1

리포지토리 업데이트를 위한 스크립트 및 Cron 작업 생성

update-repository.sh라는 스크립트를 만들고 다음 내용과 함께 /usr/local/bin에 넣습니다.

vi /usr/local/bin/update-repository.sh
echo Update script started at $(date) >> /var/log/update-repository.log
reposync --gpgcheck -l --repoid=rhel-6-server-rpms --download_path=/var/www/html/rhel6/server --downloadcomps --download-metadata
createrepo --update /var/www/html/rhel6/server/
reposync --gpgcheck -l --repoid=rhel-server-dts-6-rpms --download_path=/var/www/html/rhel6/dts --downloadcomps --download-metadata
createrepo --update /var/www/html/rhel6/dts/ \\
reposync --gpgcheck -l --repoid=rhel-server-dts2-6-rpms --download_path=/var/www/html/rhel6/dts2 --downloadcomps --download-metadata
createrepo --update /var/www/html/rhel6/dts2/
echo Update script ended at $(date) >> /var/log/update-repository.log
chmod 600 /usr/local/bin/update-repository.sh

/etc/cron.d에 파일을 만들고 다음 내용을 사용하여 이름을 update-repository로 지정합니다.

vi /etc/cron.d/update-repository
@weekly root /usr/local/bin/update-repository.sh

마지막 생각들

로컬 리포지토리를 설정하는 데는 여러 가지 방법이 있으며 저는 확실히 이 방법을 발명하지 않았습니다. 설정에 대한 자세한 정보와 통찰력은 아래의 출처를 참조하십시오.

출처

  • https://linux-console.net/creating_a_local_yum_repository_centos