검색

6.2. 부울 종속 항목 지원

download PDF

버전 4.13부터 RPM은 다음 종속성에서 부울 표현식을 처리할 수 있습니다.

  • 필수 항목
  • 권장
  • 권장 사항
  • Supplemental
  • enhances
  • 충돌

다음 섹션에서는 부울 종속성 구문에 대해 설명하고 부울 종속성 연산자 목록 , 부울 종속성 중첩부울 종속성 의미에 대해 설명합니다.

6.2.1. 부울 종속 항목 구문

부울 표현식은 항상 괄호로 묶습니다.

일반적인 종속성에서 빌드됩니다.

  • 이름 또는 이름
  • 비교
  • 버전 설명

6.2.2. 부울 연산자

RPM 4.13에는 다음과 같은 부울 Operator가 도입되었습니다.

표 6.2. RPM 4.13을 사용하여 도입된 부울 Operator
부울 연산자설명사용 예

용어가 true가 되도록 모든 피연산자가 충족되어야 합니다.Requires all operands to be fulfilled for the term to be true.

충돌: (pkgA 및 pkgB)

또는

용어가 true인 경우 피연산자 중 하나가 충족되어야 합니다.

필수: (pkgA >= 3.2 또는 pkgB)

if

첫 번째 피연산자가 충족되어야 하는 경우 두 번째 피연산자가 충족되어야 합니다.

권장 사항: (langsupportCZ의 경우myP throughout-langCZ)

기타

if 연산자와 같으며, 두 번째 피연산자가 실행되지 않으면 세 번째 피연산자가 충족되어야 합니다.

필요 사항: ma spring-backend-mariaDB if mariaDB else sqlite

RPM 4.14에는 다음과 같은 추가 부울 Operator가 도입되었습니다.

표 6.3. RPM 4.14로 도입된 부울 Operator
부울 연산자설명사용 예

with

용어가 true인 경우 동일한 패키지에서 모든 피연산자를 충족해야 합니다.Requires all operands to be fulfilled by the same package for the term to be true.

필요 사항: (pkgA-foo with pkgA-bar)

without

첫 번째 피연산자를 충족하지만 두 번째 피연산자를 충족하는 단일 패키지가 필요합니다. (set subtraction)

필요 사항: (pkgA-bar 없이 pkgA-foo)

unless

두 번째 피연산자가 실행되지 않으면 첫 번째 피연산자가 충족되어야 합니다.(반도 음수 부정확함)

충돌: ( driverB 제외)

기타 없음

unless 연산자와 마찬가지로, 두 번째 피연산자가 두 번째 피연산자가 인 경우 세 번째 피연산자가 충족되어야 합니다.

충돌: ( myP throughout-backend-SDL1이 아닌 경우, myP throughout-backend-SDL2 기타 SDL2)

중요

if 연산자는 또는 연산자와 동일한 컨텍스트에서 사용할 수 없으며 및 와 동일한 컨텍스트에서 연산자를 사용할 수 없는 경우 .

6.2.3. 중첩

피연산자 자체는 아래 예제와 같이 부울 표현식으로 사용할 수 있습니다.

이러한 경우 피연산자는 괄호로 묶어야 합니다. 또는 연산자를 주변 괄호 중 하나만 사용하여 동일한 연산자를 반복하여 연결할 수 있습니다.

예 6.2. 부울 식으로 적용된 피연산자 사용 예

Requires: (pkgA or pkgB or pkgC)
Requires: (pkgA or (pkgB and pkgC))
Supplements: (foo and (lang-support-cz or lang-support-all))
Requires: (pkgA with capB) or (pkgB without capA)
Supplements: ((driverA and driverA-tools) unless driverB)
Recommends: myPkg-langCZ and (font1-langCZ or font2-langCZ) if langsupportCZ

6.2.4. 의미 체계

부울 종속성을 사용하면 일반 종속성의 의미가 변경되지 않습니다.

부울 종속성을 사용하는 경우 일치하는 모든 이름을 확인하고 부울 연산자를 통해 일치하는 부울 값을 일치시킬 수 있습니다.

중요

Conflicts 를 제외한 모든 종속 항목의 경우 설치를 방지하려면 결과를 True 로 설정해야 합니다. Conflicts:.의 경우 설치를 방지하려면 결과가 False 여야 합니다.

주의

provides는 종속성이 아니며 부울 식을 포함할 수 없습니다.

6.2.5. if Operator의 출력 이해

또한 if 연산자는 부울 값을 반환하며, 이는 일반적으로 직관적인 이해에 가깝습니다. 그러나 아래 예제에서는 일부의 경우 잘못 이해 될 수 있는지에 대한 직관적 인 이해를 보여줍니다.

예 6.3. if Operator의 잘못된 출력

pkgB가 설치되지 않은 경우 이 설명은 true입니다. 그러나 이 문을 기본 결과가 false인 경우 상황이 복잡해집니다.

Requires: (pkgA if pkgB)

이 설명은 pkgB가 설치되고 pkgA가 아닌 한 충돌입니다.

Conflicts: (pkgA if pkgB)

대신 다음을 사용할 수 있습니다.

Conflicts: (pkgA and pkgB)

if 연산자가 조건 또는 조건에 중첩된 경우도 마찬가지입니다.

Requires: ((pkgA if pkgB) or pkgC or pkg)

이는 pkgB가 설치되지 않은 경우 용어가 true이기 때문에 전체 용어인 true를 만듭니다. pkgA가 pkgB가 설치된 경우에만 도움이 되는 경우, 대신 을 사용합니다.

Requires: ((pkgA and pkgB) or pkgC or pkg)
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.