9

아직 오픈 소스가 아니며 다양한 리눅스 배포판에 실행 파일을 배포하고 싶습니다. 이것이 가장 좋은 방법은 무엇입니까, 나는 .rpm과 .deb 패키징을 조금 봤지만 바이너리에 사용할 수 있는지 없는지 알 수 없습니다. 이상적으로는 OS X의 PackageMaker 또는 Windows의 일반 설치 프로그램과 같이/usr/bin에 자동으로 복사되도록 할 수 있습니다. 그것은 .rpm과 .deb 패키지가 필요한 것입니까, 아니면 자동으로 할 쉘 스크립트를 번들로 묶어야합니까?리눅스 배포본에 바이너리 애플리케이션 배포하기

답변

6

RPM 및 DEB 패키지는 Linux에서 바이너리 패키지를 배포하기위한 두 가지 기본 메커니즘입니다. RPM은 RedHat와 그 유도체 (Fedora, CentOS)에서 사용되고 DEB는 Debian과 Ubuntu에서 사용됩니다.

.rpm과 .deb 파일 자체는 일반적으로 "벙어리"아카이브이며 사전 설치된 도우미 응용 프로그램을 통해 파일 시스템의 올바른 위치에 설치됩니다. 특수한 시스템 별 구성이 필요한 매우 복잡한 응용 프로그램이 아니라면 파일을 설치하기위한 스크립트 작성에 대해 걱정할 필요가 없습니다. 내가 바이너리를 배포하는 참조

일반적인 패턴은 다음과 같습니다

  • 가 compessed 타르볼 해제 (.tar.gz를 또는 .tar.bz2) 및 배포 배포자가 세부 사항에 대해 걱정하자. 이것은 인기있는 응용 프로그램에서는 잘 작동하지만 새로 릴리스되면 아무도 응용 프로그램을 패키지로 만들지 않을 것입니다.
  • tarball과 RPM 및/또는 DEB 패키지로 출시하십시오 (고객의 요구에 따라 다름). 지원되는 배포판을 사용하는 고객은 사전 제작 된 패키지를 설치할 수 있습니다. 비정상적인 배포판을 사용하는 사람이라면 어쨌든 tarball에서 설치하는 것이 좋습니다.
+0

또한 64 비트 컴퓨터 및/또는 더 많은 이국적인 프로세서에 대해 다른 RPM/deb 버전을 유지해야한다는 점에 유의하십시오. – Gnudiff

0

rpm과 deb는 바이너리를 저장합니다. 각기 다른 배포판에서 경로와 같이 내용이 다르므로 각 배포판 또는 배포판마다 다른 바이너리가 필요할 수 있습니다.

나는 rpm과 deb가 있고 그 두 배포판을 못 박는 것으로 시작하는 것이 좋습니다. 그런 다음 사람들이 디렉토리 구조를 추출하고 복사하여 자신의 권한을 처리 할 수있는 기타 배포판에 대한 타볼을 만들 수 있습니다.

또한 deb와 같은 경우 사이트를 저장소로 설정할 수 있습니다. 그렇게하면 사람들이 repo를 추가하고 우분투에서 deb을 쉽게 설치/설치할 수 있습니다. 제 3 자 폐쇄 소스 개발자가 많이 있습니다.

0

.rpm과 .deb 파일은 그렇지만 인스톨러 배포판이 .rpm과 .deb 파일을 처리 할 수 ​​있는지 확인해야합니다. 이 올바른 배포판 관리자를 보유하고 있는지 확신 할 수없는 여러 배포판에서 실행되도록하려면 셸 스크립트 방법을 사용해야합니다. 바이너리를 .rpm 및 .deb로 빌드하면이 방법으로 대부분의 배포판을 사용할 수 있으며 사용자는 편안하고 익숙한 방식으로 설치할 수 있습니다. 와 함께 사용하면 자신 만의 설치 프로그램/제거 프로그램 쉘 스크립트를 굴릴 필요가 없습니다.

0

당신은 아마 (당신이 공식적으로이를 지원으로, 당신은 그래서 이것은 사소한해야하고 그들에 테스트 할 것이다), 그리고 .tar.gz를 제공 당신이 공식적으로 지원하는 각 리눅스 배포판에 대한 기본 패키지를 제공해야 사람들은 다른 사람들을 위해 들러 보낼 수 있습니다.

사용자는 지원하지 않는 일부 외계인 배포에 대해 항상 자신의 .rpm 등을 만들 수 있습니다. 공식적으로 지원되는 OS에서 작동하지 않는 한 사용자는 불만을 제기 할 수 없습니다.

공식적으로 지원하는 OS는 무엇입니까? 분명히 모든 것을 테스트해야 할 것입니다 (최소한 각 릴리스의 각 OS에서 모든 회귀 테스트를 통과해야합니다).

여러 아키텍처를 지원하는 경우 물론 복잡합니다.

1

MojoSetup은 완벽하게 교차 배포판 솔루션이며 정식으로 라이센스되었습니다 (zlib, 매우 관대 함). 필요한 것은 모든 Linux 배포판에 포함 된 표준 sh 셸입니다. 또한 Linux의 모든 그래픽 환경에서 지원되는 freedesktop.org 사양 바로 가기를 작성하여 바탕 화면 바로 가기를 손쉽게 사용할 수 있습니다 (따라서 PNG로 다른 해상도로 덤프하고 .desktop 파일의 공백을 채우기 만하면됩니다).

인스톨러는 아주 간단한 루아 프로그래밍 언어를 사용하여 스크립팅되며, 몇 가지 예제 설치 스크립트 in the Mercurial repository과 오랜 튜토리얼이 있습니다. 가벼운 교차 배포판 설치 프로그램을 개발하는 데에도 수년이 걸릴 수 있습니다.