Fedora, FreeBSD, OS X(Homebrew, MacPorts), Ubuntu, Debian 등은 모두 바이너리 및 소스 코드 배포에 서로 다른 패키징 시스템을 사용합니다.
새로운 애플리케이션을 개발할 때 가능한 한 많은 사용자가 즉시 사용할 수 있도록 하고 싶습니다. 하지만 다양한 패키징 도구와 규칙을 모두 배우는 것은 힘든 일입니다. 할 수는 있지만 더 쉬운 방법이 있어야 합니다.
이러한 모든 패키징 시스템을 유지 관리하고 학습하는 데 드는 오버헤드를 완화하기 위해 알아야 할 슈퍼 도구가 있습니까?
답변1
가장 쉬운 방법은 소스 아카이브를 제공하고 배포판 관리자가 자신의 배포판용 패키지를 만들도록 하는 것입니다.
일반 바이너리 아카이브( )를 쉽게 만들고 이를 a 및 a .tar.gz
로 변환 할 수 있습니다 . 이는 대부분의 Linux 사용자를 대상으로 하지만 적절하게 만들어진 패키지만큼 유용하지는 않습니다. 올바른 형식의 바이너리 아카이브를 얻는 것은 빙산의 일각에 불과합니다. 좋은 포장을 위해서는 다음과 같은 조건이 필요합니다..deb
.rpm
- 파일을 적절한 디렉토리에 배치하십시오. 하지만FHSLinux 디렉터리 구조를 통합하려는 시도에도 불구하고 배포판 간에는 여전히 차이가 있습니다.
- 올바른 버전의 라이브러리에 대해 컴파일하십시오. 이것이 얼마나 어려운지는 프로그램이 빠르게 발전하는 ABI 라이브러리에 의존하는지 여부에 따라 달라집니다. 동일한 배포판의 다른 버전에는 다른 라이브러리 버전이 제공되므로 다른 패키지가 필요할 수 있습니다.
- 올바른 패키지 이름으로 종속성을 선언하십시오.
- 메뉴 항목, MIME 처리기, 문서, 시작 스크립트를 선언합니다...
일반적으로 각 배포판에 익숙한 사람이 패키지를 생성하도록 하는 것이 더 쉽습니다. 일반적으로 이러한 기여를 단일 소스 코드 패키지( debian
디렉토리, .spec
rpm 파일 등 포함)로 수집하고 소스 코드 아카이브를 배포한 다음 각 배포를 실행하는 사람들이 배포용 패키지를 만들도록 합니다. 프로그램을 크게 변경하지 않는 한, 특정 배포판이 작동하게 되면 최신 버전에서는 아마도 동일한 빌드 스크립트를 사용할 것입니다.
일부 배포판에는 패키지 구축 및 배포를 위한 자동화된 메커니즘이 있습니다. 예를 들어 우분투를 만들 수 있습니다암페타민Ubuntu를 실행하지 않더라도 지원되는 모든 Ubuntu 버전에 대해 자동으로 빌드됩니다.
답변2
당신은 고려할 수도 있습니다불소 PM이는 다양한 패키징 형식의 패키지를 쉽게 구축하는 데 도움이 되는 도구입니다.
답변3
옆에자일스의 대답, 적어도 GNU/Linux 배포판의 경우 상황이 크게 변하지 않았으며 Flatpak/Flathub, Snap/Snapcraft, AppImage... 심지어 Homebrew 및 NixOS와 같은 새로운 교차 배포 패키지도 거의 없습니다.
플랫폼이나 해당 워크플로 및 전략에 익숙한 개발자에게 패키징을 맡기는 것이 여전히 현명하지만 위의 대부분에는 별도의 설치 디렉터리가 있고 일부 지원 제한 사항/감옥이 있습니다. 따라서 자유롭게 애플리케이션을 구축할 수 있습니다.
답변4
MyPaint용 AppImage 래퍼를 살펴보고 Krita와 함께 사용해 보세요. 정말 멋집니다! 실행 파일로 설정한 단일 이미지 파일을 제공하므로 버전 제어에 대해 걱정할 필요가 없습니다. 또는 다른 패키지가 설치되어 있으면 충돌이 발생하여 소프트웨어가 불안정해질 수 있습니다. 하나의 파일에 전체 도커 시스템이 들어 있는 것과 비슷합니다. 무엇보다도 아무것도 설치할 필요가 없습니다!
확인 해봐...
Appimage.org