2017-09-28 11 views
0

저는 RPM을 작성하는 것에 대해 읽었으며 그 과정은 상당히 복잡합니다. 다음과 같이 작동하는 프로그램/소프트웨어가 있습니까?spec 파일없이 한 줄에 소스에서 RPM을 만드는 법?

  1. tar.gz 파일을 다운로드하십시오.
  2. 실행
  3. RPM 파일이 디렉토리

이러한 프로그램이 존재 하는가에 출력 디렉토리에 디렉토리에

  • CD를 추출? 마치 이되어야합니다. 결국 make를 실행하고 설치 등을 할 때마다 spec 파일을 지정할 필요가 없으며 소프트웨어를 설치해야하는 위치를 제공 할 필요가 없습니다. 그렇다면 왜 RPM을 만들기 위해 모든 것을해야합니까?

    내가에서는 checkinstall을 사용하여 시도했지만, 내가 같은 오류가 계속은 "디렉터리를 찾을 수 없습니다 : /root/rpmbuild/BUILDROOT/hello-2.10-1.x86_64/usr"

    그래서 더 쉬운 방법은 무엇입니까?

  • +0

    당신이 요구하는 것이 있는지는 모르겠지만 당신이 make와 비교한다고 생각하지 않습니다. make를 실행할 때 Makefile이 필요하다면 다양한 타겟을 정의하라. 은 어떻게 생각하고있는 도구는 알게 될 것입니다 : 1. 어떻게 프로젝트를 빌드 출력 이슈 (들)이 무엇 2. 이러한 유물이 대상 파일 시스템에 배포해야 3. 4. 무엇 파일 권한이 있어야합니다. –

    +0

    흠. 현재 "make"와 "make install"을 문제없이 사용할 수 있다면 "make"와 "make install"이 정보를 얻는 동일한 장소의 정보를 염두에 두어야할까요? "checkinstall"도구는 이와 같은 작업을 수행해야하지만 RPM에서는 작동하지 않습니다. 해결 방법은 "deb"파일을 만들고 대신 deb -> rpm으로 변환하는 것입니다. 하지만 그것은 물론 불완전합니다 ... "checkinstall"을 입력하면 rpm/deb가 작성됩니다 (rpms의 경우 도청 됨). 사양 파일이 필요 없습니다. –

    +1

    충분히 공정한 ... 나는 당신이 의미하는 것을 본다. 질문이 표현되는 방식으로, Makefile의 정보에서 rpm을 생성하려는 것이 분명하지 않습니다 (어쨌든 나에게). 그건 가능할 수도 있지만 아마도 복잡한 Makefile이 될 것입니다. 우리는 프로젝트에서 많은 rpm spec 파일을 유지하고 솔직히 많은 중복 정보를 포함하지 않습니다. 어쨌든 이것은 여전히 ​​"소스에서"rpm을 생성하지 않습니다. rpm이 의존성과 관련하여 필요로하는 모든 정보를 제공하려면 Makefile이 필요합니다. 사전/사후 설치 스크립트가 필요한 경우 빠르게 복잡해질 것입니다. –

    답변

    0

    아니요 더 쉬운 방법은 없습니다.

    때때로 업스트림에서는 'make rpm'대상을 제공합니다. 언젠가 checkinstall이 작동합니다. 그러나 종종 spec 파일을 수동으로 만들어야합니다.

    • 당신이 루트로 해당 명령을 실행 :

      은 BTW에서는 checkinstall에서 해당 오류는 두 가지를 알 수있다. 그것은 매우 현명하지 못합니다.

    • 빌드 디렉토리를 거의 만들어야합니다. 명령 rpmdev-setuptree을 실행하면 자동으로 생성됩니다.
    +0

    고마워요!나는 이미 그 디렉터리를 설정하고 다른 사용자로 checkinstall을 실행하면 비슷한 오류가 발생합니다 ... –

    +0

    checkinstall을 사용하여 .deb 파일을 만든 다음 외계인을 사용하는 것이 유일한 방법입니다 .deb -> .rpm을 변환하십시오. checkinstall이 rpms를 생성하기 위해 SPEC 파일을 필요로하지 않는다면 왜 우리는 하나가 필요합니까? –

    +0

    Checkinstall은 'make install'을 모니터링하고 설치된 모든 파일을 % files 섹션에 저장합니다. 다른 모든 섹션은 기본값으로 두십시오. 슈퍼 쉬운 패키지는 괜찮을 수 있습니다. 그러나 일반적으로 의존성을 지정하고, 설치 스크립트를 게시하고 (데몬을 다시 시작하기 위해), 패키지를 설치하기 전에 사용자를 생성하고, 일부 파일을 configs로 표시해야합니다. 이것은 일반 소프트웨어에서는 거의 자동으로 수행되지 않습니다. – msuchy