yum은 다른 패키지를 업데이트하지 않고 패키지를 설치하거나 실패합니까?


10

yum현재 설치된 종속성으로 만족할 패키지 버전을 선택하여 패키지를 설치하도록 지시하는 방법이 있습니까?

예를 들어, pecl 패키지를 설치 중이고 현재 설치 php-5.4.11했지만 최신 버전 php-5.4.14을 사용할 수있는 경우. 새 패키지를 설치하지 않고 모든 PHP 패키지를 5.4.14로 업데이트하는 대신 다른 모든 패키지를 업데이트하지 않고 설치를 요청한 패키지의 이전 버전을 선택하려고합니다 (또는 수행 할 수없는 경우 실패).

이것은 내가 PHP 패키지를 제외하거나 수정할 수 있다는 것을 알고 있지만 모든 설치에 적용되는 일반적인 옵션을 찾고 있습니다.

다음과 같은 것 :

yum install php-pecl-xxxx --no-updates

답변:


10

임시 솔루션 :

-C플래그 사용 :

sudo yum install foobar -C

영구적 인 해결책 :

이를 제어하려면 yum.confmetadata_expire플래그를 사용하십시오 .

편집 /etc/yum.conf및 설정

metadata_expire=15d

d, h 또는 m 을 사용하여 시간을 일, 시간 또는 분 으로 구성 할 수 있습니다 .

보너스 : 여기 문서가 있습니다 :

metadata_expire는 메타 데이터가 만료되는 시간 (초)입니다. 따라서 다운로드 된 현재 메타 데이터가이 초 미만인 경우 yum은 저장소에 대해 메타 데이터를 업데이트하지 않습니다. yum이 업데이트에 대한 정보를 자주 다운로드하지 않는 경우이 옵션의 값을 낮추십시오. 광고 h, m을 각각 추가하여 기본값을 초 단위 사용에서 일, 시간 또는 분 단위로 변경할 수도 있습니다. yum-updatesd가 한 시간에 한 번씩 실행되도록 기본값은 6 시간입니다. "never"라는 단어를 사용하는 것도 가능합니다. 즉, 메타 데이터가 만료되지 않습니다. metalink 파일을 사용할 때 metalink는 항상 저장소의 메타 데이터보다 최신이어야합니다. 유효성 검사로 인해이 제한 시간은 metalink 파일에도 적용됩니다. 또한 "never"는 "yum clean expire-cache"를 무시하지 않습니다.


0

현재로서는 그러한 옵션을 찾지 못했습니다. 그러나 업그레이드하지 않고 패키지를 설치하려면 동일한 버전의 rpm을 다운로드 한 다음 설치하는 것이 좋습니다.


0

에서 yum-utils패키지라는 도구가있다 yumdownloader. 설치하지 않고 repos에서 다운로드하는 데 사용할 수 있습니다. 같은 모든 표준 스위치가 --disablerepo적용됩니다. 자세한 내용은 매뉴얼 페이지 를 참조하십시오 .

RPM을 다운로드 한 다음 RPM을 사용하여 원하는 작업을 직접 수행 할 수 있다고 생각합니다.


1
이것은 자동 패키지 설치 시스템의 일부입니다. 문제는 yum이 '최신 설치'와 '필요한 모든 것을 업데이트하지 않기'를 원한다는 것입니다. 우리는 실제로 이미 설치된 것과 호환되는 패키지 버전을 설치하기를 원합니다. 기본적으로 installonly 또는 install xxx -no-updates 옵션.
클린트 프리스트

0

이전 버전의 패키지가 여전히 yum 리포지토리에있는 경우 실행 yum install packagename-version-release.arch하면 최신 릴리스로 업그레이드하지 않고도 이전 버전을 설치할 수 있습니다 . yum repo에 여러 버전과 아키텍처가있는 경우 전체 이름, 버전, 릴리스 및 아치를 사용해야합니다. yum list available 'packagename*''packagename'으로 시작하는 모든 패키지를 검색하도록 실행 하여 모든 정보를 얻을 수 있습니다 . 패키지를 업그레이드하고 이전 릴리스로 다운 그레이드하려는 경우을 실행할 수 있습니다 yum downgrade packagename1 packagename2. 다운 그레이드하려는 모든 패키지 목록을 포함해야합니다. 많은 종속성이 포함되어 있기 때문입니다.

이전 릴리스가 yum 저장소에 yum install /path/to/package.rpm없는 경우 신뢰할 수없는 소스에서 패키지를 설치하지 않도록주의 하면서 이전 패키지를 찾은 곳에서 다운로드 하여 설치하십시오.


그러나 yum사용 가능한 최신 호환 버전을 선택할 수 있다면 훨씬 더 유용 할 것 입니다.
forcefsck

가능하지만 패키지 요구 사항에 따라 적절한 요구 사항을 정의해야합니다.
jsbillings

때로는 요구 사항이 이전 패키지로 덮여 있지만 yum은 최신 패키지 만 선택해야한다고 주장합니다. 예 : 위에서 설명한 경우, 시스템 버전이 php-5.4.11에 고정되어 있으면 yum이 php-pecl-5.4.11을 자동으로 선택할 수 있어야합니다. 자동화에 문제가 될 수 있습니다.
forcefsck

Yum은 이전 버전에 종속되지 않은 경우 최신 버전으로 만 업데이트됩니다. 위의 경우, pecl 패키지에는 버전 요구 사항이 필요하지 않았습니다. Yum은 필요한 버전을 표시하거나 pecl 및 php 패키지를 버전 잠금으로 지정하지 않으면 마음을 읽고 임의 버전을 선택할 수 없습니다.
jsbillings

이 예에서 구체적으로, php를 업그레이드 할 수없는 경우 (버전 잠금 또는 repos에서 사용 가능한 최신 패키지가없는 경우) yum은 php 업그레이드가 필요하지 않은 최신 버전의 pecl을 선택할 수 있습니다. 정확하게 읽는 것은 마음에 들지 않습니다. apt-get이 이미 이것을하고 있다고 생각합니다. 다시 말하지만, 이는 시스템의 절반을 업그레이드하지 않고 추가 패키지를 설치해야하고 요청을 처리 할만큼 똑똑해야하는 yum이 필요합니다 (예 : 여러 버전이 존재하는 경우 이미 설치된 패키지와 호환되는 최신 버전 선택). 어떤 이유로 업그레이드 할 수 없습니다.
forcefsck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.