Se a sua biblioteca definir seu soname corretamente, você poderá ter várias versões instaladas sem qualquer dificuldade. Por exemplo, atualmente tenho três versões de %code% installed:
%pre%Isso funciona porque os programas são vinculados ao soname, então qualquer coisa construída para a versão 5 vincula-se a %code% , qualquer coisa construída para links da versão 6 contra %code% etc. O requisito da biblioteca é que todas as versões com o mesmo soname devem preservar sua ABI: novas versões podem adicionar recursos, mas não podem quebrar recursos existentes. Qualquer quebra de mudança implica um salto sonoro.
Se tudo isso for feito corretamente (no lado da biblioteca), você nunca precisará de várias versões de uma biblioteca com o mesmo soname: contanto que você tenha a versão mais recente, você Será capaz de executar qualquer software construído em qualquer versão da biblioteca com o mesmo soname. Continuando com o exemplo %code% , o software construído com a versão 5.1 da biblioteca roda bem com a versão 5.2. (O inverso não é necessariamente verdadeiro; o software que usa novos recursos em 5.2 não será executado com 5.1.)
Pode valer a pena olhar para %code% (sim, eu sei) se você ainda não estiver usando: ele tem um razoavelmente utilizável esquema de versionamento que lida com solavancos sonoros.
Algumas bibliotecas chegam a extremos extraordinários para minimizar a necessidade de solavancos sonoros; A biblioteca GNU C é um exemplo, usa extensivamente versões de símbolos para evitar quebrar a ABI enquanto ainda introduz novos recursos e mudanças incompatíveis com versões anteriores (apenas mantém as versões antigas, dentro da biblioteca).