2013-03-19 7 views
1

고객에게 배포하는 라이브러리가 있습니다. 내 타사 종속성을 동적으로 연결된 종속성으로 남겨 두겠다는 아이디어를 모색 중입니다. 이 경우 내 고객을위한 배포는 내 라이브러리를 사용하기 전에 내 의존성을 설치해야하기 때문에 더욱 복잡해집니다. 이 질문에 조금 새로운 점이있어서 넓은 질문이 있습니다.종속성을 설치하는 가장 좋은 방법은 무엇입니까?

모든 고객이 리눅스에 있다고 가정하면 RPM 패키지는 시스템 라이브러리 디렉토리에 의존성 .so 파일을 설치하는 것입니다. 내가 RPM에 대해 읽은 내용에서, 이것이 실제 사용되는 방식이 아닙니다. 나는 내가 찾고있는 것이 리눅스를위한 일종의 '인스톨러'라고 생각하지만 아마도 그러한 것은 존재하지 않을 것이다.

모든 관련 바이너리 (및 해당되는 경우 라이센스)를 포함하는 패키지를 구축하는 가장 좋은 방법은 무엇이며 설치 방법에 대한 지침이 있습니까?

답변

1

여러 가지 옵션이 있습니다 :

  • 정적 링크를 (재생의 라이센스를 허용하는 경우)
  • 이 배포판의 범위를 지원하고 (당신의 고객이 누구 생존 능력에 따라 달라집니다) 그들 모두를위한 패키지를 제공 . 고객을위한 가장 쉬운 옵션, 가장 복잡한 옵션.
  • 은 Windows 스타일의 자체 포함 dir 구조 (예 : /opt/myapp 또는 /home/someuser/myapp)로 응용 프로그램을 설치하는 설치 프로그램을 제공합니다. 거기에 공유 라이브러리를 넣고 그에 따라 LD_LIBRARY_PATH으로 설정된 스크립트를 통해 시작하십시오. Loki 게임, Adobe Reader, Google 어스 및 다른 사람들이이 옵션을 사용하는 것을 보았습니다.

하지 마십시오는 :

  • 는 표준 디렉토리 구조에 바이너리와 라이브러리를 복사합니다 사용자 지정 설치를 제공합니다. 고객이 보유한 다른 앱에 필요한 특정 라이브러리 버전을 덮어 쓸 수 있습니다. 배포판의 패키지 관리가이 파일들에 대해 알지 못하기 때문에 그것은 또한 끔찍한 혼란을 남깁니다.
  • 은 모두에게 rpm을 제공합니다. 비 rpm 배포판에서는 고객이 직접 패키지 관리 시스템에 맞게 패키지를 변환해야합니다.
+0

철저한 답변 주셔서 감사합니다! 나는 후속 조치가있다 : 선택 2 (지원하는 범위의 배포판 ...), 여기 패키지의 예가 무엇인가? 우리는 yum이나 apt-get와 같은 패키지 관리자를위한 패키지와 같은 것을 말하고 있습니까? – Ben

+0

@ 벤 예, 정확히! 예를 들어, 우분투 12.04와 12.10,'RHEL6과 Fedora '를위한'rpm's에'deb' 패키지를 제공 할 것입니다. 물론 여러분은 그것들을 테스트해야합니다. :) – us2012

관련 문제