소스 코드에서 빌드된 소프트웨어를 rpm/yum 데이터베이스에 등록할 수 있는 방법이 있습니까?

소스 코드에서 빌드된 소프트웨어를 rpm/yum 데이터베이스에 등록할 수 있는 방법이 있습니까?

rpm 또는 yum을 사용하여 바이너리 패키지에서 소프트웨어를 설치할 때 나중에 메타 정보( rpm -qi PACKAGE, rpm -ql PACKAGE, ...)를 쿼리하고 제거( rpm -e PACKAGE)할 수 있습니다.

그러나 소스 코드에서 빌드하고 설치하는 소프트웨어의 경우 나중에 제거할 수 있도록 항상 빌드 디렉터리에 보관해야 합니다. 빌드 디렉터리를 삭제하면 나중에 소프트웨어를 제거할 수 없기 때문입니다! 빌드 디렉터리를 영원히 유지할 수 있더라도 make 파일의 복잡성을 알지 못하면 메타 정보를 쿼리하는 것은 쉽지 않습니다.

make install질문: 설치 중인 바이너리(일반적으로 대부분의 패키지 단계에서)를 rpm/yum 데이터베이스에 "등록"하여 나중에 쉽게 제거하고 메타 정보를 쿼리할 수 있는 방법이 있습니까 ?

답변1

목표를 달성하기 위한 한 가지 옵션은 자신만의 RPM을 "롤링"하는 것입니다. 사소한 작업은 아니지만 일단 프로세스를 이해하면 소프트웨어가 요구하는 복잡성 수준에 따라 단 몇 단계만 거치면 꽤 쉽게 완료할 수 있습니다. 저는 클라이언트를 위해 소스에서 구축된 많은 소프트웨어를 설치해야 하며, 가능하다면 시간을 들여 RPM을 생성하는 것이 소프트웨어 수명 전체에 걸쳐 관리상 이점이 있다는 것을 알았습니다. 나는 여전히 빌드 프로세스를 제어하고, 한 단계 더 나아가 빌드된 소프트웨어를 깔끔한 RPM 패키지로 포장합니다.

내 경험에 따르면 소프트웨어를 RPM으로 설치하면 다음과 같은 이점이 있습니다.

  • 사용자는 RPM 데이터베이스를 쿼리하여 설치된 소프트웨어에 대한 정보를 찾을 수 있습니다.
  • yum사용자 정의 저장소를 통해 여러 시스템에 패키지를 쉽게 푸시할 수 있습니다.
  • 소프트웨어 설치 및 제거가 쉬워졌습니다.
  • RPM 패키지 관리자의 모든 이점을 활용할 수 있습니다.
  • RPM 및 SRPM 파일을 유지하여 다양한 버전의 소프트웨어를 "보관"할 수 있습니다.
  • RPM 사용자 정의에 대한 노력을 더 넓은 커뮤니티와 공유할 수 있습니다.

이것Fedora Project wiki에는 좋은 튜토리얼이 있습니다.사용자 정의 RPM을 생성하는 프로세스와 단계를 설명합니다. 이것은 자신의 RPM을 사용자 정의할 때 사용할 수 있는 기능을 이해하기 위한 좋은 출발점입니다.

답변2

기술적으로는 그렇습니다. 그러나 그럼에도 불구하고 사양 파일에 필요한 rpmdb를 채우는 데 필요한 모든 정보를 수집해야 하므로 재사용이나 공유를 위해 사양 파일을 생성하는 것이 더 효율적인 경우가 많습니다.

답변3

좋은 바이너리 패키지는 사양 파일을 제공하거나 생성합니다.

아주 좋은 바이너리 패키지는 변경 없이 SRPM을 생성하는 데 사용할 수 있는 사양 파일을 제공합니다.rpmbuild -bs file.spec

그런 다음 바이너리 rpm을 만들 수 있습니다.rpmbuild -rebuild file.SRPM

답변4

Ulrich의 의견을 바탕으로 답변하십시오.

아직 시도하지는 않았지만 checkinstall설명을 보면 제가 찾고 있던 것과 정확히 일치하는 것 같습니다.

Ulrich Dangel 참고: 답변으로 귀하의 의견을 복사하여 붙여넣을 수 있으면 최종 답변으로 표시하겠습니다. 그때까지는 이것이 최종 답변입니다. 감사해요.

관련 정보