Os RPMs são válidos em todas as plataformas?

7

Estou um pouco confuso sobre o RPM no Red Hat e / ou Fedora (e / ou outras distribuições?). Eu certamente posso aceitar que RPMs de 64 bits são necessários para sistemas operacionais de 64 bits e 32 bits para sistemas operacionais de 32 bits, mas ... Se eu tenho um RPM para ... OpenOffice.org, esse RPM é válido? para qualquer um dos meus sistemas operacionais que aceitam RPMs ou preciso procurar um RPM especificamente adaptado ao sistema operacional com o qual estou trabalhando?

    
por Nate 29.10.2010 / 13:47

2 respostas

7

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.

    
por 29.10.2010 / 14:07
2

além da resposta de tante . Basicamente, depende se os conteúdos binários do que é essencialmente um arquivo zip com metadados, estão ligados corretamente, se eles não estão ligados corretamente, eles terão que ser revinculados ou não funcionarão. Alguns RPMS podem conter apenas coisas como módulos perl que não requerem linkagem, desde que estejam no lugar certo para funcionar. No entanto, o IIRC, há mais de um formato RPM, acredito que o formato RPM do OpenSuse difere ligeiramente do Red Hats e, portanto, não funcionaria no Fedora. Obviamente, é improvável que um pacote do Fedora funcione na Red Hat porque as versões da biblioteca são muito diferentes, e a ligação seria desativada.

Em resumo, não, não vai funcionar, não se incomode em tentar. Apenas os RPMs genéricos, como os fornecidos para flash, oracle (você verá que o oracle exige religação), avg, etc, podem funcionar em outro lugar.

    
por 29.10.2010 / 14:27