Non pensavo ci fossero distribuzioni là fuori che supportano entrambe nativamente, ma risulta che ce n'è una in fase di sviluppo, Bedrock Linux (grazie a iMalinowski per le informazioni). Su altre distribuzioni puoi utilizzare strumenti di conversione come alien
convertire da un formato all'altro. Qualsiasi cosa basata su software è fattibile, con abbastanza tempo ed energia, quindi sarebbe possibile costruire una tale distribuzione (ma date le differenze tra le capacità di .deb
e .rpm
pacchetti, abbastanza difficile).
Tuttavia tutto questo probabilmente deriva dall'idea che il supporto di entrambi i formati di pacchetto renderebbe la vita più semplice, perché potresti quindi installare pacchetti da qualsiasi luogo (beh, ovunque fornendo un .deb
o .rpm
). Filosoficamente, questo è imperfetto. Una distribuzione è un insieme coerente di pacchetti; se vuoi fornire software per quella distribuzione, devi davvero indirizzarlo in modo specifico, il che include l'utilizzo del formato del pacchetto (e, cosa più importante, dei metadati). Non ha senso supportare più formati di pacchetto in modo nativo.
(Nel mondo Debian, i pacchetti possono funzionare su varianti che non sono il loro obiettivo principale, perché la nomenclatura dei pacchetti è piuttosto omogenea e perché la maggior parte delle distribuzioni rientra in un albero di ereditarietà. Questo non è vero nel mondo RPM. In entrambi i casi mescolando e la corrispondenza è una cattiva idea.)
Dovresti considerare la tua distribuzione come una base su cui costruire il tuo sistema desiderato, attenendoti alle regole e all'ecosistema della tua distribuzione, senza mescolare elementi di altre distribuzioni. Hai bisogno di astrazioni di livello superiore per supportare il mixaggio e la corrispondenza (o meglio, per fornire ambienti di distribuzione incrociata):il runtime di Steam, Flatpak, ecc.
Bedrock Linux fa questo. Non sto dicendo che l'ho fatto o che è una buona idea, ma è stato fatto.
No, un tale mostro non dovrebbe essere costruito. A differenza, ad esempio, di un pacchetto di applicazioni MacOS, che in genere include tutto ciò di cui l'applicazione ha bisogno per essere eseguita sul sistema operativo, i pacchetti RPM e .deb dipendono quasi sempre da altri pacchetti, come le librerie condivise. I pacchetti Linux elencano gli altri pacchetti che devono essere presenti e il gestore pacchetti aiuta a far rispettare tali requisiti. Inoltre, le distribuzioni Linux differiscono nel modo in cui vengono fatte le cose (ad esempio /etc/network/interfaces.d
contro /etc/sysconfig/network-scripts
).
Non dovresti nemmeno mescolare pacchetti da repository arbitrari all'interno della stessa famiglia di formati di pacchetto. Cioè, l'installazione dei pacchetti SuSE su una macchina CentOS è solo un problema, anche se entrambi usano RPM. Non installerei nemmeno i pacchetti destinati a una versione diversa dello stesso sistema operativo (ad esempio i pacchetti Ubuntu 14.04 su un sistema 16.04) a meno che non sapessi esattamente cosa stavo facendo.
Quindi, provare a supportare sia RPM che .deb sullo stesso sistema è fuori discussione. In certe situazioni disperate, potresti convertire pacchetti specifici usando alien
, ma dovresti aspettarti di impegnarti molto nella risoluzione dei problemi che inevitabilmente sorgerebbero da tali hack.