소스에서 다른 프로젝트를 빌드할 때 소스에서 모든 종속성을 빌드해야 합니까?

소스에서 다른 프로젝트를 빌드할 때 소스에서 모든 종속성을 빌드해야 합니까?

내 배포판의 패키지 저장소에 내가 원하는 tmux 패키지의 현재 버전이 없습니다. tar.gz웹사이트에서 최신 버전을 형식으로 다운로드했습니다 . 그러나 ./configure이를 시도하는 동안 구성에서는 다른 종속성이 필요하다고 말했습니다. 내 질문은,소스에서 이러한 종속성을 수동으로 빌드하는 것이 모범 사례입니까?배포 패키지 관리자를 사용하여 해당 종속성을 다운로드한다면 다음과 같은 가능성이 있습니까?그들도구식이고 현재 tmux에 필요한 것보다 오래된 종속성이 있습니까?

이 특별한 경우에는 Ubuntu 18.04.4 LTS에서 3.0a를 빌드하려고 하는데 tmux존재하지 않는다는 패키지가 libevent.

답변1

libevent 버전 42.1이 필요하다고 가정해 보겠습니다.

패키지 관리자에 libevent 버전 42.5가 있으면 계속해서 설치하세요. 소스에서 빌드할 필요가 없습니다. libevent를 사용하여 소프트웨어를 빌드하려면 해당 개발 패키지를 설치해야 합니다. .deb 기반 배포판의 libevent-dev, RPM 기반 배포판의 libevent-devel.

패키지 관리자에 libevent 버전 40.3만 있는 경우 소스(42.1보다 큰 버전)에서도 libevent를 빌드해야 합니다.

권장사항: 소스에서 빌드한 모든 항목을 설치합니다 /usr/local( PREFIX수행하기 전에 설정 ./configure하거나 이 패키지가 다른 경우 문서를 읽어보세요). 이렇게 하면 직접 빌드한 것과 패키지 관리자가 설치한 것이 충돌하지 않습니다. 나는 stow이것을 위해서도 사용하므로 여러 버전을 유지할 수 있습니다.

그것들도 구식이 될 가능성이 있나요?

물론 "기회는 있다". 알아내는 유일한 방법은 패키지 관리자에게 가서 살펴보는 것입니다. 그리고 이는 업스트림에 최신 릴리스가 있는 경우 패키지 관리자에게 최신 릴리스를 알려줄 수 있는 좋은 기회가 될 수 있습니다.

관련 정보