2016-11-07 5 views
-1

나는이 문제를 상당히 일반적으로 생각하지만 커뮤니티 의견이 있어야하며이 질문을 게시하고 있습니다.Linux의 범용 설치 관리자

사용 사례 : 지원하려는 모든 Linux 배포판 (32 비트, 64 비트)에 대해 단일 패키지 (32 비트)를 만들려고합니다.

문제 : 설치

  • 스크립트를 설치 전/후를 실행 할 수 있어야합니다.
  • 패키지를 업데이트하는 온라인 저장소를해야합니다 (위를 CentOS 6)
  • 나이가 새로운 배포판을 지원할 수 있어야 모두 32 비트 및 64 비트 시스템에서 실행 할 수 있어야한다.
  • X 서버없이 실행할 수 있어야합니다.
  • 표준 yum/zypper/apt 명령을 사용하여 설치할 수없는 소프트웨어에 의존해서는 안됩니다. 비표준 저장소에 의존해서는 안됩니다.

나는이 링크를 통해 온 : 그것은 많은 대안을 나열하지만, ​​그들 중 누구도 위의 모든 요구 사항을 충족 것 같다 https://www.reddit.com/r/linux/comments/4ohvur/nix_vs_snap_vs_flatpak_what_are_the_differences/ . 나는 다음과 같은 두 가지 대안 바라 보았다 또한

(아니면 내가 뭔가를 간과) :

  1. QT 설치 FWK 타르와
  2. 자동 압축 풀림 스크립트를 (내가 맞다면, 실행 X를 필요로) 번들로 제공됩니다.

모든 필요에 맞는 유일한 해결책은 "tars가 번들 된 자동 압축 풀기 스크립트"입니다. 그러나 많은 설치 작업과 업그레이드 작업을 효과적으로 관리해야합니다. 이 대안을 계속하기 전에 누구나 여러 배포본에 대해 단일 패키지를 만드는 데 성공했는지 확인할 수 있습니까?

+0

질문을 downvote 때 이유를 지정하십시오. downvote 및 아무 의견이있는 이해되지 않는다. –

답변

1

나는 자기 압축 파일을 지나치게 많이 압축하여 자신의 설치 프로그램을 롤링하는 개념을 믿지 않는다. 모든 배포판은 다르기 때문에 자체 설치 메커니즘을 사용하여 해결해야합니다. 또한 설치 프로그램을 직접 작성하면 바퀴가 다시 발명됩니다.

타겟팅하려는 모든 배포판의 패키지 방법을 사용하여 광고하고 싶습니다. 근본적으로 하나의 SPEC 파일은 일반적으로 CentOS 6,7 및 모든 최신 페도라 버전을 지원하기에 충분합니다. mock 또는 copr 서비스를 사용하여 대상으로하는 배포판에 대한 모든 바이너리 패키지를 생성하십시오. 데비안 규칙 파일은 데비안, 우분투 및 민트 패키지를 생성하기에 충분해야합니다. 아치 리눅스도 지원하려면 팩맨 스크립트를 추가하십시오 (매우 쉽습니다).

이 방법을 사용하면 틀림없이 다른 패키지가 하나만있는 것이 아닙니다. 그러나 이제는 실제로 해당 시스템에 맞는 각 시스템의 설치 프로그램이 있고 해당 배포판에서 사용할 수있는 라이브러리와 연결되므로 플랫 팩 같은 모든 종속성을 포함 할 필요가 없습니다.

설치 배포판 별 패키지는 실제로 특정 배포판 버전 용으로 설계되지 않은 자동 압축 해제 아카이브를 통한 설치보다 "매끄럽게"수행되므로 사용자에게 큰 도움이 될 것입니다.또한 패키지를 가지고 있으면 나중에 패치가 필요할 때 업데이트 경로를 제공하는 것이 매우 쉽고 안정적입니다.

+0

우선, 설명을 해주고 하향 투표하지 말고 Marcus에게 감사드립니다. 또한, 이미 내 모든 CMake 파일에 debs와 RPM을 생성 해주었습니다. 지금 패키지를 배포하는 방법을 알려줍니다. 문제는 없지만, 우리가 지원하고자하는 배포판의 수가 (32 비트 및 64 비트의 모든 기존 및 새로운 배포판을 계산할 때) 커지기 때문에 현재 배포되는 패키지의 수는 문제가됩니다. –

+0

하지만 패키지 수를 줄이는 것이 실제로 실제로 좋은 것인지는 알지 못합니다. 우리는 표적 배포판 당 하나의 패키지가 사용자에게 가장 적합한 솔루션이라고 동의합니다. 그래서 당신이 단순히 이러한 모든 패키지를 같은 타르에 집어 넣을지라도 실제로 이점을 얻을 수는 없습니다. –

+0

그래서 이미 deb 및 rpm 저장소가 설치되어 있지만 더 이상 사용하지 않으려합니다. 전체 아이디어는 단지 1 세트의 바이너리를 가지고 어떻게 든 "설치자"에 묶는 것입니다. 이것은 rpms와 debs를 없애고 사용자 컴퓨터에이 바이너리를 설치하는 "설치 프로그램"을 가지고 있음을 의미합니다. –