rpm과 debian 패키지를 모두 지원하는 Linux 배포판을 구축하는 것이 이론적으로 가능한지 궁금합니다.
둘 다 지원하는 배포판이 있나요?
가능하지 않다면 이것이 가능합니까?
답변1
어떤 배포판도 기본적으로 두 가지를 모두 지원한다고 생각하지 않습니다.그것은 밝혀개발중인 것도 있고,베드록리눅스(감사해요I. 말리노프스키정보를 얻기 위해). 다른 배포판에서는 다음과 같은 변환 도구를 사용할 수 있습니다.alien
한 형식에서 다른 형식으로 변환합니다. 충분한 시간과 노력이 주어지면 소프트웨어 기반의 모든 것이 가능하므로 그러한 배포판을 구축하는 것이 가능합니다(그러나 기능 .deb
과 패키지 .rpm
간의 차이를 고려하면 매우 어렵습니다 ).
그러나 이 모든 것은 아마도 두 가지 패키지 형식을 모두 지원하면 삶이 더 단순해진다는 생각에서 비롯되었을 것입니다. 왜냐하면 어디에서나(물론 .deb
또는 를 제공하는 어느 곳에서나 .rpm
) 패키지를 설치할 수 있기 때문입니다. 철학적으로 이것은 결함이 있습니다. 배포판은 일관된 패키지 세트입니다. 해당 배포판에 소프트웨어를 제공하려면 해당 패키지 형식(그리고 더 중요한 것은 메타데이터)을 사용하는 것을 포함하여 구체적으로 대상을 지정해야 합니다. 기본적으로 여러 패키지 형식을 지원하는 것은 의미가 없습니다.
(데비안 세계에서는 패키지 명명법이 상당히 동질적이고 대부분의 배포판이 상속 트리에 적합하기 때문에 패키지는 주요 대상이 아닌 변형에서 작동할 수 있습니다. RPM 세계에서는 그렇지 않습니다. 혼합되는 두 상황 모두에서 일치하는 것은 나쁜 생각입니다).
배포판을 다른 배포판의 콘텐츠를 혼합하는 것이 아니라 배포판의 규칙과 생태계를 준수하면서 원하는 시스템을 구축하기 위한 기반으로 생각해야 합니다. 혼합 및 일치를 지원하려면(또는 교차 배포판 환경 제공) Steam 런타임, Flatpak 등 더 높은 수준의 추상화가 필요합니다.
답변2
Bedrock Linux가 바로 그런 일을 합니다.내가 그것을 했다는 것도 아니고 그것이 좋은 생각이라는 것도 아니지만, 그것은 이미 이루어지고 있습니다.
답변3
아니, 그런 괴물을 만들어서는 안 된다. 일반적으로 운영 체제에서 응용 프로그램을 실행하는 데 필요한 모든 것이 포함되어 있는 MacOS 응용 프로그램 패키지와 달리 RPM 및 .deb 패키지는 거의 항상 공유 라이브러리와 같은 다른 패키지에 의존합니다. Linux 패키지에는 있어야 하는 다른 패키지가 나열되어 있으며 패키지 관리자는 이러한 요구 사항을 적용하는 데 도움을 줍니다. 또한 Linux 배포판은 이를 다르게 수행합니다( 예 /etc/network/interfaces.d
:/etc/sysconfig/network-scripts
동일한 패키지 형식 계열의 임의 저장소의 패키지를 혼합해서는 안 됩니다. 즉, CentOS 시스템에 SuSE 패키지를 설치하는 것은 모두 RPM을 사용하더라도 문제를 야기할 뿐입니다. 내가 무엇을 하고 있는지 정확히 알지 않는 한 동일한 운영 체제에 대해 다른 버전의 패키지(예: 16.04 시스템의 Ubuntu 14.04 패키지)를 설치하지도 않습니다.
따라서 동일한 시스템에서 RPM과 .deb를 지원하는 것은 불가능합니다. 일부 절박한 경우에는 변환 전용 패키지를 사용할 수 있지만 alien
이러한 해킹으로 인해 필연적으로 발생하는 문제를 해결하기 위해 많은 노력을 기울여야 합니다.
답변4
예, 가능합니다. 하지만 배포가 중단됩니다.
패키지는 단순한 형식 그 이상이며 한 형식에서 다른 형식으로 쉽게 이식할 수 있습니다.
참고: 모든 패키지, 버전, 종속성, 구성 파일, 사전 설치 및 사후 설치 스크립트(한 패키지를 다른 패키지로 교체하는 경우) 형식의 중앙 집중식 목록을 다른 형식으로 갖고 싶으므로 패키지 설치 도구를 이식해야 합니다. 패키지) 및 제거 스크립트(이전 형식)를 새 패키지 시스템에서 실행하려고 합니다.
그러나 배포판과 패키지는 단순한 패키지 형식 그 이상입니다. 예를 들어, 데비안의 경우: 파일을 올바른 위치에 배치하고 싶고, 매뉴얼 페이지를 제공하고 싶고, 몇 가지 일반적인 악마 제거 스크립트를 갖고 싶고, 프로그램이 여러 아키텍처, 다양한 그래픽 환경에서 실행되기를 원합니다. 사용자가 배포판의 새로운 packages.packages에 익숙해질 수 있도록 합니다.
데비안에서는 사용자가 (소스에서) 중요한 패키지를 사용자 정의할 수 있도록 쉽게 패키지를 빌드할 수 있기를 원합니다. 이를 위해서는 대부분의 업스트림 작성자가 제공하지 않는 많은 인프라가 필요합니다(다양한 아키텍처에 대한 자동화된 빌드 및 테스트, 수시로 수행됨). 또한 데비안의 고유한 라이선스 요구 사항은 모든 패키지를 확인할 필요 없이 패키지나 배포판을 포크하는 것을 더 쉽게 만듭니다.
마지막으로 배포판은 패키지뿐만 아니라 일관된 패키지로 구성됩니다.