RedHat : RPM을 구축하기 위해 일종의 모의 환경에 패키지를 설치할 수 있습니까?


10

RPM.spec의 종속 항목을 격리 된 환경에 설치할 수있는 도구가 있습니까? 시스템에 전 세계적으로 이러한 종속성을 설치하지 않으며 루트 권한이 없기 때문에 설치할 수 없습니다.

이유

최신 버전의 B (시스템에 전역 적으로 설치할 수 없음) 에 의존 하는 패키지 A 를 만들고 싶습니다 .

나는의 최신 버전 구축하고자 B를 하고 빌드 도구를 설치할 수 B는-devel의 빌드에 필요한 모든 파일을 제공하는 격리 된 환경으로 그것을 .

솔루션

  • 이를위한 도구가 있습니까?
  • 그렇지 않다면, 이렇게 말하려고 할 때 무엇을주의해야 chroot합니까?
  • 이것이 나쁜 습관입니까?

답변:


8

예, 도구가 호출 mock되었으며 EPEL에 있습니다.

일반적인 사용법 :

rpmbuild -bs mypackage.spec
mock -r epel-6-x86_64 mypackage-0.1-1.src.rpm

실제로 RPM을 빌드하는 데 선호되는 방법입니다. 프로세스와 시스템을 분리하여 예기치 않은 종속성이 발생하지 않기 때문입니다.

파일을 수정 /etc/mock하여 자신의 패키지, 개인 저장소 등을 가져 오거나 문서를 mockchroot 환경에 수동으로 추가하는 방법에 대한 정보를 확인할 수 있습니다 .

사용하려면 사용자를 mock그룹에 추가해야합니다 mock.

우연히도, kojiRed Hat이 호출 mock을 사용하여 각 개별 패키지를 빌드 하는 빌드 서버 . 항상 많은 패키지 를 빌드해야하는 경우 koji빌드 서버 를 설정하는 것이 좋습니다.


고마워 마이클. 이것은 매우 좋은 것 같습니다. 제 질문이 생각만큼 어리석지 않았기 때문에 기쁩니다. ;)
try-catch-finally

3

프로덕션 호스트에서 패키지를 작성하는 것은 나쁜 습관이며 루트 권한없이 패키지를 작성하는 것은 자신의 빌드 머신을 가져 오는 것보다 더 복잡합니다. 내가 일반적으로하는 일은 다음과 같습니다.

  1. 데스크탑 / 노트북에 VirtualBox 또는 유사한 도구 설치
  2. 프로덕션 환경에서 사용하는 OS의 32/64 VM 만들기
  3. 일반적으로 모의, rpmbuild 등 도구를 설치하십시오
  4. 패키지의 RPM 및 VM의 두 아치에 대한 추가 뎁 생성
  5. 테스트 후 서버에 배포하기 위해 RPM을 내부 리포지토리로 푸시
  6. 적절한 종속성이 있는지 확인하기 위해 다시 테스트하십시오.
  7. 구성 관리를 통해 릴리스하십시오.

작동합니다. 모의를 사용하는 것보다 낫습니까? 나는 모의가 더 쉬울 것이라고 생각하지만, 어느 쪽이든 거의 같은 일이 일어나고 있다고 생각합니다.
emory

나는 모의에 아무런 문제가 없으며 거의 ​​모든 "rpm을 만드는 방법"문서를 설치해야한다고 생각합니다. 그러나 루트 액세스 권한이 없으면 OP가 계정을 모의 그룹에 추가하고 모의를 설치하는 방법 등을 잘 모르겠습니다. 또한 깨끗한 빌드 VM이 있으면 의도 치 않게 패키지에 이상한 종속성이 추가되는 것을 방지 할 수 있습니다.
Ramin

훌륭한 지적입니다. 나는 그것을 고려하지 못했습니다. 이를 염두에두고 이것이 정답이라고 생각합니다.
emory

@emory는 귀하의 의견을 바탕으로 빌드 VM이 전체적으로 더 나은 솔루션이라고 생각하는 이유를 분명히 밝혔습니다. 저를 진심으로 감사합니다. :-)
Ramin

내 상황에서 @Ramin (직장에서) 나는 오직 사용자 입니다. 시스템은 전용 빌드 시스템이므로 해당 호스트의 모든 개발자가 루트 권한을 가진 경우 1 주일 후에는 해당 상자가 부팅되지 않습니다. ;) 따라서 Mock과 같은 도구를 사용하는 것이 옳은 것입니다! VM을 잘 자동화 할 수 있다면 VM을 설정하는 것도 좋습니다. Vagrant (아직 테스트하지 않았 음)가 그에 대한 올바른 도구 라고 생각 합니다.
try-catch-finally

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.