Como de costume: a resposta depende.
RPMs (ou basicamente qualquer contêiner de pacotes binários) contêm código executável. Na maioria das vezes que o código depende de certas bibliotecas ou programas, o pacote especifica que ele depende, por exemplo, da biblioteca libA
em uma versão > = 1.0.
Agora, faça duas distribuições diferentes usando o formato de pacote RPM. digamos que um chama o pacote libA-1.0, então o RPM que você especificou depende da libA. A segunda distribuição binária tem um esquema naimg diferente e prefixa o pacote com um language
, então ele é denominado language-libA
. Mesmo que o conteúdo de ambos os pacotes libA seja idêntico, o gerenciador de pacotes não pode saber disso. Você poderia, é claro, forçar o RPM a instalar o pacote de qualquer maneira sem olhar para as dependências, mas isso geralmente só pede punição.
O problema é menos ruim se ambas as distribuições são relacionadas ou mesmo baseadas umas nas outras: o Ubuntu, por exemplo, é baseado no debian e, portanto, compartilha muitas convenções de nomenclatura e pacotes para que você possa transferir uma compilação de pacote do debian para um Ubuntu caixa.
Também depende muito da linguagem em que o pacote está escrito: Se você tem algo interpretado como Python, onde o pacote é basicamente um monte de arquivos de texto que levam um pacote para uma distribuição diferente, geralmente é fácil de lidar, mas está escrito em C ++ e depende e ambas as distribuições usam versões diferentes de bibliotecas principais ou compiladores que você está basicamente sem sorte.