2014-10-23 4 views
0

우분투 14.04.1에서 제 C + + 프로젝트에 링크 할 타사 라이브러리를 확보하려고합니다. 내가 수집 한 바로는, 이러한 라이브러리를 획득 일반적으로 여러 가지 방법이 있습니다패키지 다운로드와 소스에서 컴파일하는 것의 차이점

(1) 우분투 소프트웨어 센터를 사용하여 패키지를 다운로드

(2) 적성을 사용하여 패키지를 다운로드

(3) 저장소 (git)에서 소스 코드를 다운로드하고 소스에서 컴파일,

(4) 헤더와 라이브러리가 포함 된 압축 된 폴더를 다운로드합니다.

제 질문은 (1) 또는 (2)를 사용하여 다운로드하는 것과 비교하여 (3) 또는 (4)를 사용하여 다운로드하고 설치하는 경우 패키지 관리자 (Aptitude)에서 어떤 문제가 발생하는지입니다. 소스에서 컴파일하거나 zip 폴더에서 직접 라이브러리를 다운로드하면 Aptitude가이를 인식하지 못하는 것 같습니다. 따라서 패키지를 업데이트하거나 삭제할 때 문제가 발생합니까? 예를 들어, 내가 소스에서 컴파일 한 경우, 어떻게 이러한 모든 디렉토리를 수동으로 검색하고 찾지 않고도 컴파일 된 라이브러리 파일 (예 :/usr/bin)을 쉽게 삭제할 수 있습니까? Aptitude에서 패키지를 다운로드 한 경우 전체 패키지를 삭제할 수 있습니다.

답변

0

(1)과 (2) 사이에는 실제 차이점이 없습니다. 패키지 시스템은 동일한 패키징 시스템과는 다른 인터페이스입니다. 내 제안은 패키지 관리자를 사용하여 소프트웨어를 관리하려고 항상 시도하는 것입니다. 그러나 라이브러리에 적합한 패키지를 찾을 수없는 경우 소스에서 직접 설치할 수 있습니다./usr/local 폴더를 사용하여 라이브러리를 설치하고 "ln -s"는 친구입니다 - 모든 실행 바이너리/usr/local/bin 또는 경로의 다른 폴더. 시스템의 설치 경로를 사용하지 마십시오. 나중에 문제가 발생할 수 있습니다. 복잡한 작업없이 쉽게 삭제할 수 있습니다. 적성은 아무튼 문제는 정말로 당신이 (즉, 당신이 직접 컴파일 한 라이브러리에 링크해야 패키지가없는) 어떤 의존성 문제가없는 경우 https://help.ubuntu.com/community/CompilingEasyHowTo

0

는 다음이있다 :

여기에 질문이있다 네가 가진 것을 알지 못한다.

반면에 Apt 및 dpkg에 대한 종속성을 충족시키는 경우 간단한 해결 방법이 있습니다. 원하는 위치에 바이너리를 설치하고 Aptitude 및 dpkg을 충족시키는 단순한 더미 패키지를 만듭니다. 이 목적으로 equivs 도구가 만들어졌지만 직접 패키지를 처음부터 롤업하는 것은 어렵지 않습니다. 따라서 libhorror0의 기능을 제공하는 파일을 컴파일하고 설치 한 경우 더미 패키지 libhorror0을 만들고 Apt가 패키지의 종속성을 만족시키기 위해 업스트림 패키지를 가져 오지 않도록 설치하십시오. Depends: libhorror0.

마지막으로, 최선의 선택은 실제적으로 실제로 마지막 플 런지를 취하여 프로젝트의 적절한 로컬 .deb 패키지를 만들고 로컬로 설치하는 것입니다. 업스트림 저장소의 공식 버전보다 높지만 다음 공식 버전보다 낮은 버전 번호를 사용해야합니다. 데비안 정책에 의해 승인되는 공통된 규칙은 버전 번호에 대해 ~suffix2을 두드리는 것입니다 (2는 두 번째 버전을 나타내고 다음은 ~suffix3 등이됩니다). 따라서 업스트림이 libhorror0-1.23-4이고 두 번째 빌드의 경우 libhorror0-1.23-4~karnivaurus2이어야합니다 (또는 업스트림 데비안 패키지가없는 경우 libhorror0-1.23-0~karnivaurus2을 사용하십시오).

이미 작동중인 프로젝트에서 .deb 패키지를 만드는 일은 종종 그리 어렵지 않습니다. debian 디렉토리에 필요한 파일 (최소한 rulescontrol이지만 일반적으로 저작권 공지와 변경 로그 및 Debhelper 용 데이터 파일)을 채우십시오. 이 중 대부분을 수행하는 도구 dh_make이 있습니다. 어쩌면 누군가가 데비안 패키지를 업스트림 소스에서 직접 빌드 할 수 있도록이 업스트림을 제출할 수도 있습니다.

관련 문제