우리는 샌드박스/개발, 품질, 프로덕션이라는 일반적인 3계층 환경에 RHEL - Red Hat Enterprise Linux Server(VM)를 보유하고 있습니다. 2018년 초 서버를 처음 구축하는 동안 처음부터 Sandbox/Dev VM을 생성하고 모든 패키지(yum-update)를 업데이트한 다음 이 VM에서 템플릿을 생성했습니다. 동일한 템플릿을 사용하여 품질 및 프로덕션 VM을 생성하고 호스트 이름, IP 주소 등을 변경했습니다. 따라서 모든 가상 머신은 동일합니다.
최근에 Sandbox/Dev에서 OS를 Rhel 7.4에서 7.5로 업그레이드한 다음 (yum update)를 실행하여 패키지를 업데이트했습니다. 최종 사용자는 시스템에서 실행되는 애플리케이션을 테스트하고 있습니다.
몇 주 후에 품질 서버에서 OS 업그레이드를 수행하고 다음 달에 프로덕션 서버에서 OS 업그레이드를 수행할 예정입니다. 이제 내 질문은 품질 및 프로덕션 서버에서 동일한 버전의 패키지를 유지하는 방법입니다.
예를 들어:libstdc++-4.8.5-28.el7_5.1.x86_64예4.8.5-28yum-update를 실행한 후. 새 버전이 있어도 동일한 품질과 프로덕션 버전을 어떻게 얻을 수 있습니까(4.8.6이 있다고 가정). 내 시스템에 설치된 모든 패키지에 대한 이 정보를 어떻게 얻을 수 있습니까? 즉, 3개 서버의 모든 패키지가 동일한 버전이기를 바랍니다.
도움과 제안을 부탁드립니다.
인사,
서부 독일
답변1
이를 방지하려면 기본 REPO를 정의한 후 yum 업데이트의 업데이트에서 관련 패키지를 제외할 수 있습니다.
먼저 REPO 디렉토리를 입력합니다.
vi /etc/yum.repos.d/
그런 다음 새 REPO를 생성합니다.
vi local.repo in
[Local Repo Name]
name=Local Repo
baseurl=http:// or file://rpm.path
enabled=1
gpgcheck=0
캐싱 작업
yum clean all #Delete the entire repo cache.
yum makecache #Make the new repo cache
지금까지 우리는 원하는 버전으로 업데이트하는 데 필요한 정의를 만들었습니다. 이제 Redhat이 해당 패키지를 업데이트할 때 먼저 여기에서 정의를 살펴보겠습니다. 그러나 여기의 업데이트 패키지는 공개 REPO에서 사용 가능한 경우 계속 업데이트됩니다. 이러한 일이 발생하지 않도록 하려면 다음과 같은 조치를 취하십시오.
vi /etc/yum.conf in
exclude=packagename* #libstdc* etc...
이제부터 패키지는 원하는 최신 버전으로 유지됩니다. 커널 업데이트 후 안정성 문제를 방지하기 위해 커널 업데이트 중에 이 애플리케이션을 수행할 수도 있습니다.