자체 컴파일된 패키지를 패키지 관리자(예: apt-get, yum)와 잘 작동하게 만드는 방법 [복제]

자체 컴파일된 패키지를 패키지 관리자(예: apt-get, yum)와 잘 작동하게 만드는 방법 [복제]

내가 원한다고 가정 해 봅시다 :

  • 나만의 맞춤형 애플리케이션 컴파일 및 설치
  • 이를 위해서는 최신 버전의 libthrift 소스 코드를 다운로드, 컴파일 및 설치해야 합니다.
  • 최신 버전의 libboost를 다운로드, 컴파일 및 설치해야 합니다.

여기서는 시스템에 이러한 라이브러리를 설치하고 다른 패키지와 상호 작용할 수 있습니다. 많은 라이브러리가 libthrift 및 libboost에 의존합니다.

  • 이를 설치하면 apt-get/yum을 사용하여 설치된 기존 패키지가 손상될 수 있습니다.

또한 나중에 apt-get 또는 yum을 실행하면 다음과 같습니다.

  • 내 사용자 정의 libthrift 및 libboost가 덮어쓰기되어 이러한 라이브러리의 사용자 정의 버전에 의존하는 사용자 정의 애플리케이션이 중단됩니다.

그렇다면 여기서 해결책은 무엇입니까? /home에 설치하고 싶지 않습니다(코드 회귀 빌드 클러스터의 공유 사용자가 패키지를 사용할 수 있기를 원합니다). 나는 또한 /opt가 실제로 이 목적으로 사용되지 않는다는 것을 읽었습니다(설치된 패키지는독립적인, 그러나 그렇지 않습니다). 이것인용하다나는 사건이 충분히 상세하다는 것을 알았습니다.

답변1

일반적으로 해결책은 "소스에서 패키징 시스템이 관리하는 디렉토리에 설치하지 마십시오"입니다.

예를 들어, 사용자 정의 컴파일된 코드를 설치하고 빌드 시스템에 대한 적절한 호출(예: //를 일반으로 설정)을 사용하여 이에 의존하는 라이브러리 및 포함 파일을 찾을 수 있습니다 /usr/local./usr/localCPPFLAGSCFLAGSLDFLAGSMakefile

응용 프로그램별 디렉터리(예: /usr/local/myapp, 또는 /opt/myapp)에 모든 항목을 설치할 수도 있습니다.

이것은 또한 좋은 사용 사례입니다.루스트어바웃, 호스트 시스템과 격리된 격리된 개발/런타임 환경을 매우 쉽게 설정할 수 있습니다.

관련 정보