소스에서 설치 패키지 관리자를 손상시키지 않고 종속성을 해결하는 방법


19

소프트웨어를 컴파일하고 설치하는 것은 극복 할 수없는 고통과 문제입니다. 다음 단계로 넘어갈 수 있도록 더 많은 지식을 갖춘 사람과이 과정에 대한 이해를 돕고 싶습니다.

필요한 많은 과학 소프트웨어는 패키지로 배포되지 않습니다. "./configure"가 컴파일 변수를 설정하고 종속성 확인 "make"가 컴파일 "sudo make install"을 수행하면 모든 라이브러리와 저장소가 해당 위치에 배치된다는 것을 이해합니다. 그러나 결코 작동하지 않습니다. 나는 의존성 지옥에 들어 가지 않고 a) "./configure"단계에서 거의 벗어나지 않으며, 만약 그렇다면, "sudo make install"은 아마도 내 상자를 손상시킬 것이다.

a) 의존성 지옥은 매우 실망 스럽습니다. 때로는 라이브러리가 있지만 마음에 들지 않습니다. 또는 라이브러리를 설치하고 싶지 않습니다. 또는 "configure"가 찾을 수 없습니다. 또는 내 배포판은 그것을 어딘가에 두지 않아야합니다. 또는 내 시스템에는 두 가지 버전이 있습니다. 문제는 진단 방법을 이해할 수 없으므로 이러한 문제를 해결하는 것입니다. 프로그래머가 될 필요가없는 사람을위한 좋은 참고 자료는 무엇입니까?

b) 패키지 관리자가이를 인식하지 않고 "make install"을 사용하면 일부 라이브러리가 바뀌고 설정이 변경됩니다. 따라서 일부 프로그램은 실행되지 않고 다른 프로그램은 업데이트 할 수 없습니다. 따라서 "make install"을 사용하지 않고 PATH에 심볼릭 링크가 추가 된 컴파일 된 바이너리를 내 사용자 디렉토리에 보관하면 명확합니까?

내 상자는 단일 사용자이며 무료 HD가 많기 때문에 문제가 해결 될 경우 수십 개의 라이브러리 사본을 실제로 신경 쓰지 않아도됩니다. 공간이 싸다.


3
어떤 배포판을 사용하고 있는지 말하지 않아도 흥미로운 정보가 될 것입니다. 데비안 파생물을 실행 apt-get build-dep <package>하면 필요한 종속성을 자동으로 설치할 수 있습니다 .
Marco

나는 우리 실험실의 수퍼 전문가가 사용하기 위해 CentOS 6을 사용하지만 우분투를 사용했습니다.
Lenz

배포 패키지 러의 수명에 오신 것을 환영합니다. 이 모든 종속성 추적을 수행하는 것은 특히 어렵지는 않지만 번거로운 일입니다.
Gilles 'SO- 악한 중지'

비 루트 패키지 관리자 및 소프트웨어 설치 및 패키지 관리에 관한 root가 아닌 사용자로 태그 된 다른 질문을 참조하십시오 .
Gilles 'SO- 악한 중지'

답변:


16

대부분의 패키지에는 <package>-dev(데비안 기반) 또는 <package>-devel(Red Hat 기반)이 있으며 이는 빌드를 위해 링크하는 데 필요한 라이브러리입니다.

따라서 예를 들어 소스는 필요로 말한다면 libxml데비안 기반 시스템에서 찾을 수 있습니다, libxml2libxml2-dev(사용이 apt-cache search <dependancy>그들을 찾을).

당신은이해야합니다 libxml2-dev그것을 구축하고, libxml2그것을 실행합니다.

./configure단계는 일반적으로 --with-libxml=/usr/lib/올바른 라이브러리를 가리 키도록 플래그를 지원합니다 ( ./configure --help모든 옵션을 나열해야 함). 또한 일반적으로로 설치 위치 변경을 지원합니다 --prefix=$HOME/sw. 패키지 관리자가 제어하는 ​​것 이외의 접두사를 사용하는 것이 패키지 관리자 설치 소프트웨어와의 충돌을 피하는 가장 좋은 방법입니다.

데비안 및 파생 상품은 사용에 --prefix의를 /usr/local/또는 /opt/local/안전합니다.

패키지 관리자에서 필요한 라이브러리 (또는 버전)를 사용할 수없는 경우 소스를 다운로드하고 유사한 옵션을 사용하여 컴파일하십시오. 가장 중요한 것은 --prefix패키지 관리자 외부와 소프트웨어를 컴파일 할 때 실제로 사용하려는 외부를 사용하는 것 --with-<library>=/<path/to/installed/library>입니다.


5

auto-apt이를 위해 사용할 수있는 도구 가 있습니다.

에서 남자 자동 APT :

자동 수정은 자동 수정 환경 내에서 실행되는 프로그램의 파일 액세스를 확인하는 프로그램입니다. 프로그램이 설치되지 않은 패키지 파일에 액세스하는 경우 auto-apt는 apt-get을 사용하여 파일이 포함 된 패키지를 설치합니다.

다음과 같이 사용됩니다.

auto-apt run ./configure

또 다른 방법은 apt-get build-dep <package>데비안 기반 배포판 에서 사용 하는 것입니다.


apt-get build-dep <package>나를 위해 일했다. ./configure하나 더 필요한 패키지를 배우는 것이 계속해서 좌절 되었습니다!
HeatfanJohn

2

RPM 기반 배포판의 경우 (그렇지 않아 적절한 패키지를 만드는에서 손을 시도 할 수 ... 하드).

적절한 패키지의 장점은 패키지 관리자가 소프트웨어를 추적하고 다음 시스템의 다른 곳에서 쉽게 설정을 복제 할 수 있다는 것입니다. 적절한 소스 패키지 포워딩 (새로운 업스트림 버전, 버그 수정 패치, 기본 라이브러리 업데이트)을 사용하면 다음 번에 처음부터 완전히 파악할 필요가 없습니다.

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