rpm
저장소에 이미 존재하는 패키지와 동일한 이름의 패키지를 빌드하고 다음 명령을 입력하면
$ dnf info package
이 명령은 빌드 패키지에 대한 정보만 표시합니다. 위 명령을 실행 dnf builddep package
하고 정보를 가져올 패키지를 선택할 수 있기를 원합니다.
다른 이름을 지정하지 않고 repo 패키지와 자체 빌드 패키지를 구별하는 방법이 있습니까?
부록: 빌드된 패키지에 최신 버전이 있습니다.
답변1
출력의 행과 내용을 살펴보십시오 Repo
. 이것들은 당신에게 말할 것입니다 :From repo
dnf info
Repo
사용 가능한 패키지가 있는 저장소를 알려줍니다. 패키지인 경우설치됨그러면 그것은 당신에게 말할 것입니다@System
.From repo
설치된 패키지에만 나타납니다. 설치된 패키지의 소스 저장소를 제공합니다. 저장소 이름(예:fedora
또는updates
) 또는@commandline
수동으로 설치된 RPM을 표시합니다.
dnf builddep
저장소에 지정된 패키지에 대한 최신 버전의 빌드 종속성을 설치합니다. 수동으로 설치된 RPM에서는 어떤 작업도 수행하지 않습니다.
답변2
dnf builddep
다음을 사용하여 설치 하려는 경우특정한패키지, 좀 더 구체적입니다. 즉, 다음을 모두 수행할 수 있습니다.
$ sudo dnf builddep somepackage-1.2.3
$ sudo dnf builddep somepackage-1.2.3-9.fc30
$ sudo dnf builddep /path/to/some/uninstalled/somepackage-1.2.4-1.fc30.$arch.rpm
$ sudo dnf builddep /path/to/some/unbuilt/somepackage-1.2.4-2.fc30.srpm
$ sudo dnf builddep /path/to/some/unbuilt/somepackage.spec
dnf info
처음 두 개에 대해서는 위와 동일합니다. (다소 놀랍게도 dnf info
RPM, SRPM 또는 표준 파일 경로에서는 실행할 수 없습니다 .할 수 있는rpm -q -i -p /path/to/uninstalled.{rpm,srpm}
플래그를 포함시키는 것만 기억하세요 . -p
하지만 그런 것은 없습니다 dnf info
. )
패키지 소스가 완전히 명확하지 않은 유일한 경우는 실제로 두 개의 서로 다른 저장소에 패키지가 있는 경우입니다.정밀한동일한네트워크 비디오 레코더.
dnf download --source
예를 들어, Fedora 저장소의 패키지에 대한 SRPM을 생성하고 를 updates
사용하여 로컬 RPM을 빌드 rpmbuild -rb
한 다음 이를 내 패키지에 대해 유지 관리하는 로컬 저장소에 추가한다고 가정해 보겠습니다 . 기본적으로 이는 somepackage-1.2.5-1.fc30.x86_64.rpm
저장소와 정확히 동일 합니다 updates
.
이러한 모호성 때문에 내 문서에는 $HOME/.rpmmacros
다음이 포함되어 있습니다.
%dist .ferd%{fedora}
이렇게 하면 로컬에서 빌드한 버전이 대신 으로 나타나므로 구별할 수 있습니다.somepackage-1.2.5-1.ferd30.x86_64.rpm
.fc30