4.4. 소프트웨어 관리
dnf4 는 DNF 명령을 실행하는 데 사용할 수 있습니다.
이번 업데이트를 통해 dnf 또는 dnf4 를 입력하여 DNF 명령을 실행할 수 있습니다.
DNF는 RPM 패키지에서 RPMv6 서명을 확인할 수 있습니다.
Vulner-safe 암호화는 무결성과 소프트웨어의 출처를 보장합니다. 그러나 난체 컴퓨팅에서는 RSA와 같은 표준 비대칭 암호화 알고리즘은 더 이상 관련이 없습니다. 이번 업데이트를 통해 새로운 multisig DNF 플러그인을 사용하여 표준 RPMv4 서명 외에도 RPM 패키지에 대한 RPMv6 서명을 확인할 수 있습니다. RPMv6 서명은 ML-DSA와 같은 난소 안전한 알고리즘을 기반으로 할 수 있습니다.
RPMv6 서명을 확인하려면 python3-dnf-plugin- RPM 패키지를 통해 multisig 플러그인을 설치할 수 있습니다.
multisig
성공적인 확인은 gpgcheck 옵션이 True 로 설정된 리포지토리에서 패키지를 설치, 다시 설치, 업그레이드 또는 다운그레이딩하기 위한 전제 조건입니다.
createrepo_c 에서 zstd지원
이번 개선된 기능에는 createrepo_c 명령에 대한 Zstandard (zstd) 압축 알고리즘 지원이 추가되었습니다. 결과적으로 createrepo_c 는 zstd 로 압축된 메타데이터를 읽고 생성할 수 있습니다.
dnf 는 DNF 기록의 일시적인 트랜잭션 표시
dnf history info 명령은 트랜잭션이 지속적인지 또는 일시적인지 여부를 표시합니다. 따라서 특히 일시적인 패키지가 많은 시스템에서 패키지 변경 사항을 더 쉽게 추적할 수 있습니다.
RPM은 설치 중에 원래 패키지의 체크섬을 기록합니다.
이번 업데이트를 통해 RPM은 설치 중에 전체 .rpm 패키지의 SHA256 및 SHA512 다이제스트를 기록합니다. 그런 다음 RPM 데이터베이스에서 이러한 다이제스트를 검색하여 설치된 패키지가 특정 .rpm 파일에 해당하는지 확인할 수 있습니다. 결과적으로 설치된 패키지 세트가 DNF 리포지토리에서 사용할 수 있는 것과 같은 알려진 .rpm 패키지 세트와 일치하는지 다시 검사하여 RHEL 시스템의 무결성을 개선할 수 있습니다.
설치된 패키지의 패키지 다이제스트를 인쇄하려면 다음 명령을 사용합니다.
rpm -q --qf "[%{packagedigestalgos:hashalgo} %{packagedigests}\n]" <package_name>
$ rpm -q --qf "[%{packagedigestalgos:hashalgo} %{packagedigests}\n]" <package_name>
새 %_pkgverify_digests 매크로를 구성하여 데이터베이스에 기록되는 다이제스트 유형을 사용자 지정할 수도 있습니다. 예를 들면 다음과 같습니다.
%_pkgverify_digests 8:10
%_pkgverify_digests 8:10
RPM은 사양-로컬 파일 속성 및 종속성 생성기 지원
파일 속성 및 해당 종속성 생성기는 일반적으로 이러한 속성을 사용하는 패키지를 빌드하기 전에 설치해야 하는 별도의 패키지로 제공됩니다. 그러나 이 속성을 제공하는 패키지를 빌드하는 동안 file 속성을 적용해야 할 수 있습니다. 속성을 전혀 제공하지 않고 패키지를 빌드하는 데만 file 속성이 필요할 수도 있습니다.
이번 업데이트를 통해 다음 작업을 수행하여 spec-local 파일 속성 및 생성기를 등록할 수 있습니다.
-
%_local_file_attrs매크로를 정의합니다.%_local_file_attrs에는spec파일에 직접 등록할 새 속성 이름 목록을 콜론으로 구분하여 사용할 수 있습니다. -
각 속성에 대해 하나 이상의 종속성 생성기 매크로를 정의합니다(예:
%_NAME_provides또는%_NAME_path). 여기서NAME은 로컬 파일 속성의 이름입니다.
그런 다음 RPM은 사양 파일이 빌드될 때 종속성 생성에 파일 속성을 사용합니다. 따라서 설치를 위한 것이 아닌 빌드 타임 파일 속성을 생성할 수 있습니다.
예를 들어 다음 사양 파일 스니펫에서는 패키지 소스와 함께 번들된 foobar.sh 스크립트를 사용하여 각 패키지 파일에 대해 provides를 생성합니다.
Source1: foobar.sh
[...]
%define _local_file_attrs foobar
%define __foobar_provides %{SOURCE1}
%define __foobar_path .*
Source1: foobar.sh
[...]
%define _local_file_attrs foobar
%define __foobar_provides %{SOURCE1}
%define __foobar_path .*
$releasever_major 및 $releasever_minor 변수
새로운 $releasever_major 및 $releasever_minor 변수는 마이너 버전 대신 RHEL의 주요 버전별로 콘텐츠를 배포하는 EPEL(Extra Packages for Enterprise Linux) 리포지토리 및 기타 리포지토리를 보다 효과적으로 지원하기 위해 사용할 수 있습니다. 이러한 변수는 $releasever 변수 또는 system-release(releasever_major) 및 system-release(releasever_minor) 가상에서 자동으로 파생됩니다. 결과적으로 $releasever_major 및 $releasever_minor 를 사용하여 여러 RHEL의 여러 메이저 또는 마이너 버전에서 작동하는 리포지토리 구성 파일을 만들 수 있습니다.