2013-01-21 2 views
1

centos로 패키지 된 다른 컴파일러 (gcc)를 사용해야합니다. 그것은 또한 다른 경로로 설치된 새로운 버전을 재 포장 한 gcc입니다.rpmbuild - 빌드 할 때 일부 패키지를 충돌로 표시하는 방법

나는 그것의 기본 설정에서이 빌드에 대한 모의를 사용하고

config_opts [ 'chroot_setup_cmd'] = 내 경우는 CentOS는 주식 GCC를 포함에

그룹 구축 '구축 groupinstall'. 나는 모의 환경에서 아무 것도 바꿀 수 없다.

빌드가 실제로 진행되기 전에 gcc 패키지를 삭제하는 방법이 있습니까?

내 repacked gcc로 컴파일 된 일부 프로그램은 gcc를 재 포장 한 올바른 include 대신 system/usr/include /를 사용하는 경향이 있으므로 문제를 현지화하는 방법을 찾고 있습니다.

+0

모의 (mock)을 사용하지 않았기 때문에 나는 진짜 답을 줄 수 없다. 그러나'% prep' 섹션에'rm -f $ (rpm -ql gcc) 여기서 일하니? –

답변

1

이 작업을 완료하려면 instructions provided by Fedora을 사용해보십시오. 설치해야하는 rpm이 repo의 일부가 아닌 경우 빌드를 수행해야합니다.

그래도 작동하지 않는다면 사용자 환경을 설정하거나 질문에 상태를 변경할 수없는 경우 관리자에게 요청할 것입니다. 설정 파일은 /etc/mock/*.cfg에 저장됩니다. 난 당신의 요구와 일치하는 뭔가를 복사하고 고유 한 이름을 지정하는 것이 좋습니다 것입니다. 그런 다음 GCC의 사용자 정의 사본이있는 위치에 따라 추가 Repo 행 (로컬 또는 원격)을 추가해야합니다.

정말 최신 릴리스로 표시된 경우 GCC 버전을 선택하도록 환경을 구성합니다. 이벤트에 고유 한 이름 지정 규칙이 있거나 어떤 이유로 든 선택되지 않으면 모든 빌드 패키지를 설치하기 위해 chroot_setup_cmd를 수정해야합니다. 검토 할 때

yum groupinstall buildsys-build 

나는 관련 패키지 목록을 모두 볼 수 있습니다. 분명히 '빌드'를 확인하고 싶을 것입니다. 그런 다음 config_opts [ 'chroot_setup_cmd']를 수정하여 'groupinstall'대신 'install'을 사용하면 모든 관련 빌드 패키지와 사용자 정의 GCC를 설치할 수 있습니다.

그래도 작동하지 않는다면 GCC가있는 개인 저장소에 항상 빌드 패키지를 복사하고 그 중 유일하게 가져올 수있는 패키지인지 확인하고 repo가 ​​'빌드'그룹을 지원하도록 구성 할 수 있습니다. 그런 다음 패키지를 빌드하십시오. 나이 때문에 매우 도움이되지는 않지만, Mock docs에는 로컬 repos를 사용하여 환경을 구성하는 데 유용한 정보가 있습니다.