dnf repo와 내장 패키지를 구별하는 방법은 무엇입니까?

dnf repo와 내장 패키지를 구별하는 방법은 무엇입니까?

rpm저장소에 이미 존재하는 패키지와 동일한 이름의 패키지를 빌드하고 다음 명령을 입력하면

$ dnf info package

이 명령은 빌드 패키지에 대한 정보만 표시합니다. 위 명령을 실행 dnf builddep package하고 정보를 가져올 패키지를 선택할 수 있기를 원합니다.

다른 이름을 지정하지 않고 repo 패키지와 자체 빌드 패키지를 구별하는 방법이 있습니까?

부록: 빌드된 패키지에 최신 버전이 있습니다.

답변1

출력의 행과 내용을 살펴보십시오 Repo. 이것들은 당신에게 말할 것입니다 :From repodnf 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 infoRPM, 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

관련 정보