Perguntas sobre o modo de instalação / atualização do rpm

0

Abaixo está a citação do meu livro enquanto explica a convenção de nomenclatura de um pacote (por exemplo: packagename-a.b.c-x.arch.rpm).

Build No : The number following the version number (x) is the build number. Many distribution maintainers add a letter code to the build number to distinguish their packages from those of others. Note that these numbers are not comparable across package maintainers— George's build number 5 of a package is not necessarily an improvement on Susan's build number 4 of the same package.

Abaixo está a citação ao explicar a atualização de um pacote

Warning: It's possible to distribute the same program under different names. In this situation, upgrading may fail or it may produce a duplicate installation, which can yield bizarre program-specific malfunctions. Red Hat has described a formal system for package naming to avoid such problems, but they still occur occasionally. Therefore, it's best to upgrade a package using a subsequent release provided by the same individual or organization that provided the original.

Q-1 Assim como por citação-1; a construção não. está associado a uma letra específica da distro. mantenedor, por isso pode falhar ao atualizar por causa do nome diferente? & portanto, não saberá se é uma versão atualizada sobre a instalação atual?

Q-2 Mas no caso da mesma distro / nome, como o rpm decide se é uma versão atualizada? Analisa o nome do pacote e escolhe a versão-não do nome? Se sim, então por que iria falhar em caso de distro diferente? também?

    
por LoveWithMaths 15.04.2018 / 08:07

1 resposta

1

O número da compilação é chamado de release. Por exemplo, para python-qt5-5.10-3.fc28.x86_64 , o nome é "python-qt5" a versão é "5.10" e a versão é "3.fc28" e a última é uma arquitetura "x86_64"

O que você chama de carta de George ou Susan é geralmente chamado de "dist tag". No exemplo acima, é ".fc28". Ele é usado para distinguir entre diferentes pacotes da mesma versão e release. Por exemplo, o python-qt5 para o Fedora 28 coloca os arquivos em /usr/lib64/python2.7/site-packages , mas isso não funcionará no RHEL6, já que espera módulos python no diretório /usr/lib64/python2.6 . Portanto, a versão RHEL6 do mesmo pacote é python-qt5-5.10-3.el6.x86_64

O próprio RPM compara apenas o nome, versão e release. Não há lógica que você não pode instalar o pacote Fedora 28 no RHEL7. Geralmente não funciona, devido a outras dependências. Por exemplo, se você tentar atualizar seu python-qt5-5.10-3.fc28.x86_64 com python-qt5-5.10-4.el7.x86_64 , ele provavelmente não funcionará devido a diferentes SONAMEs de libQT * .so no RHEL7. Mas se você fizer isso com algum pacote, que não tem nenhum requerimento (ou requisitos muito relaxados), então o próprio rpm permitirá a atualização porque "4.el7" é maior que "3.fc28". O problema é que o autor do pacote rpm não pretende (nem testou) instalar seu pacote em uma plataforma diferente. Raramente funciona, mas na maioria das vezes não.

    
por 15.04.2018 / 12:52