
É simplesmente o caminho de instalação? Se for esse o caso, qualquer pacote que tenha versão no nome/caminho nunca atualizará outro, então não pode ser isso. Não vejo menção a isso nas informações de dependência manual. Ao criar um RPM, como posso dizer ao cAPI-3.1.6-x86_64.rpm que ele deve atualizar o cAPI-2.1.7-x86_64.rpm quando eu o instalar, não criar um novo caminho em /usr/lib e ignorar o pacote existente?
Responder1
Geralmente concordando com@msuchyque a característica relevante é a combinação do pacotenomeearquitetura, ajuda a fornecer uma visão geral.
O local para procurar informações não é "upgrade", masinstalando múltiplas versõesde um pacote:
Várias versões instaladas(em rpm.org) dá uma boa visão geral:
Todas as ferramentas de gerenciamento de pacotes operam usando certas chaves para se referir a pacotes/programas. Normalmente essa chave é package nome ou pacote nome e pacote arco
Ou seja, existem duas opções (normalmente): o nome do pacote sozinho ou o nome do pacote em combinação com a arquitetura. Continua dizendo
os pacotes do kernel são construídos especificamente para que não ofereçam arquivos conflitantes de uma versão do kernel para a próxima
Ou seja, os kernels são tratados especialmente porque é conhecido (pelos desenvolvedores de pacotes) que todos os arquivos em um pacote de kernel Linux têm nomes distintos (ou os nomes dos arquivos têm a versão incorporada ou os arquivos residem em diretórios com a versão incorporada) . Esse é um caso especial. Muitos casos especiais dificultam o trabalho dos mantenedores do RPM.
Ele continua mostrando como pacotes para programas com versões estáveis de longo prazo são construídos usando esses números de versão como parte do pacotenome, permitindo assim que várias versões do programa sejam instaladas na mesma máquina. O exemplo dado é para python. Outros programas que você pode ver usando o mesmo esquema incluem Apache, autoconf, gcc, java. Aqui estão alguns exemplos do Fedora22:
SDL2-2.0.3-5.fc22.x86_64
openjpeg2-2.1.0-6.fc22.x86_64
pygobject2-2.28.6-13.fc22.x86_64
pygobject3-3.16.2-1.fc22.x86_64
pygobject3-base-3.16.2-1.fc22.x86_64
python3-3.4.2-6.fc22.x86_64
qt5-qtbase-5.5.0-15.fc22.x86_64
vte291-0.40.2-1.fc22.x86_64
vte3-0.36.4-1.fc22.x86_64
webkitgtk3-2.4.9-1.fc22.x86_64
webkitgtk4-2.8.5-2.fc22.x86_64
Ao ver esses pacotes, é fácil ficar confuso sobre quais números fazem parte do nome do pacote e quais são osversãoeliberar. O RPM usa travessões ( -
) para separá-los: se não houver travessão, o número faz parte do nome.
Responder2
É a %{name}.%{arch}
combinação. Se for o mesmo, então é uma atualização. Se for diferente, então é outra instalação.
Ou seja, você pode ter cAPI-3.1.6-x86_64
e cAPI-3.1.6-i386
instalar simultaneamente. Mas você não pode ter cAPI-3.1.6-x86_64
e cAPI-2.1.7-x86_64
em um sistema (a menos que faça truques realmente sujos).