패키지를 사용할 수 없으면 yum 오류


14

최근에 스크립트에서 버그가 발생하여 다음을 시도했습니다.

yum -y install another_package.x86_64 some_package.x86_64 && run_my_script

이 스크립트는 최신 CentOS에서 잘 실행되었지만 Cent OS 5에서 실행하려고 시도했을 때 some_package.x86_64사용할 수 없었습니다. 그러나 오류와 중지 대신 yum메시지가 인쇄되었습니다.

No package some_package.x86_64 available.

yum스크립트를보다 강력하게 만들기 위해 이러한 상황 (기본값은 어떤 IMO)에서 오류를 강제 로 발생 시킬 수 있습니까?


스크립트를 더 강력하게 만들고 계속하기 전에 yum의 반환 값을 확인하십시오.
frlan

1
@frlan 문제입니다. 이 경우 yum행복하게 돌아옵니다 0. 스크립트가 진행하기 전에 이미 반환 값을 확인하고 있습니다. 예고 &&?
pmr

답변:


11

알다시피,이 동작은 RHEL 5와 6 사이에서 변경되었습니다 ( 일부 토론 은 https://bugzilla.redhat.com/show_bug.cgi?id=736694 참조 ). 해당 링크에서 리턴 코드를 확인하면 yum info <pkg>필요에 따라 스크립트를 중단 할 수 있습니다. 다음과 같은 것 :

# Set a variable containing the packages to install:
pkgs_to_install='another_package.x86_64 some_package.x86_64'

# Loop over the packages in the list:
for pkg in ${pkgs_to_install}; do
  # Stop executing if at least one package isn't available:
  yum info ${pkg} >> /dev/null 2>&1 || exit
done

# Continue running your original script:
yum -y install ${pkgs_to_install} && run_my_script

3
좋아, 이것이 이것이 기본값이어야한다고 생각하는 것이 미친 짓이 아니라는 것을 확인하고 돕는다.
pmr

2
현재 yum 동작은 스크립트 사용법에 매우 적합하지 않습니다.
Karata

14

버그 1274211 , 이것은 얌 - 3.4.3-133.el7에서 수정되었습니다. 그러나 엄격 모드를 활성화해야합니다.

스크립팅 목적으로이 작업을 수행하는 가장 쉬운 방법은 명령 줄 스위치를 사용하는 것입니다.

yum -y --setopt=skip_missing_names_on_install=False install another_package.x86_64 some_package.x86_64 && run_my_script

그러나 다음에서 구성 옵션으로 설정할 수도 있습니다 yum.conf.

[main]
skip_missing_names_on_install=0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.