GNU/Linux >> Znalost Linux >  >> Linux

Je možné sestavit linuxové distro podporující RPM i .deb balíčky?

Nemyslel jsem si, že existují nějaké distribuce, které nativně podporují obojí, ale ukázalo se, že existuje jedna ve vývoji, Bedrock Linux (díky iMalinowski za informace). V jiných distribucích můžete použít konverzní nástroje, jako je alien převést z jednoho formátu do druhého. Cokoli založeného na softwaru je proveditelné s dostatkem času a energie, takže by bylo možné takovou distribuci postavit (ale vzhledem k rozdílům mezi schopnostmi .deb a .rpm balíčky, docela obtížné).

To vše však pravděpodobně pramení z myšlenky, že podpora obou formátů balíčků by zjednodušila život, protože byste pak mohli instalovat balíčky odkudkoli (tedy odkudkoli s .deb nebo .rpm ). Filosoficky je to špatně. Distribuce je koherentní sada balíčků; pokud chcete poskytnout software pro tuto distribuci, musíte se na něj skutečně konkrétně zaměřit, což zahrnuje použití jeho formátu balíčku (a co je důležitější, metadat). Nemá smysl nativně podporovat více formátů balíčků.

(Ve světě Debianu mohou balíčky pracovat na variantách, které nejsou jejich hlavním cílem, protože nomenklatura balíčků je poměrně homogenní a protože většina distribucí zapadá do stromu dědičnosti. To ve světě RPM neplatí. V obou případech smíšení a párování je špatný nápad.)

Svou distribuci byste měli považovat za základ, na kterém postavíte požadovaný systém, přičemž se budete držet pravidel a ekosystému vaší distribuce, aniž byste do toho směšovali věci z jiných distribucí. Potřebujete abstrakce vyšší úrovně pro podporu míchání a párování (nebo spíše pro poskytování prostředí pro různé distribuce):běhové prostředí Steam, Flatpak atd.


Bedrock Linux to dělá. Neříkám, že jsem to udělal, nebo že je to dobrý nápad, ale dělám to.


Ne, takové monstrum by se stavět nemělo. Na rozdíl například od balíčku aplikací pro MacOS, který obvykle obsahuje vše, co aplikace potřebuje ke spuštění na operačním systému, jsou balíčky RPM a .deb téměř vždy závislé na jiných balíčcích, jako jsou sdílené knihovny. Balíčky pro Linux obsahují seznam dalších balíků, které musí být přítomny, a správce balíků pomáhá tyto požadavky prosazovat. Kromě toho se linuxové distribuce liší ve způsobu, jakým se věci dělají (např. /etc/network/interfaces.d vs. /etc/sysconfig/network-scripts ).

Dokonce byste neměli míchat balíčky z libovolných úložišť ve stejné rodině formátů balíčků. To znamená, že instalace balíčků SuSE na počítač CentOS si jen koleduje o potíže, i když oba používají RPM. Neinstaloval bych ani balíčky určené pro jinou verzi stejného OS (např. balíčky Ubuntu 14.04 na systému 16.04), pokud bych přesně nevěděl, co dělám.

Takže pokus o podporu RPM i .deb na stejném systému nepřipadá v úvahu. V určitých zoufalých situacích můžete převést konkrétní balíčky pomocí alien , ale měli byste počítat s tím, že vynaložíte velké úsilí na řešení problémů, které by z takových hacků nevyhnutelně vyplývaly.


Linux
  1. Jak sestavit rpm balíčky

  2. Jak zobrazit seznam souborů nainstalovaných z RPM nebo DEB balíčku v Linuxu

  3. Užitečné webové stránky pro stahování DEB nebo RPM Linux aplikací

  1. Jak povolit Snap na Linux Mint 20 a nainstalovat balíčky Snap

  2. Nainstalujte balíčky RPM na Ubuntu 11.10 a Ubuntu 11.04

  3. Jaká je nejmenší možná implementace Linuxu?

  1. Jak zkontrolovat dodavatele nainstalovaných RPM balíčků v Linuxu

  2. Linuxové distro jen s busyboxem a bashem?

  3. Je možné zkompilovat Darwin Distro ze zdroje, jako můžete sestavit Linux Distro?