Para ter versões diferentes do software instaladas ao mesmo tempo, você precisa usar nomes de pacotes diferentes em vez de números de versão diferentes; somente uma versão de um pacote (identificada pelo nome) pode ser instalada ao mesmo tempo.
Por exemplo, digamos que você precisa ter o MySoft 7 e o MySoft 8 instalados ao mesmo tempo, mas também precisa atualizar cada versão quando o fornecedor liberar pequenas atualizações. Talvez você comece com o MySoft 7.0 v6 que deseja instalar em /opt/vendor/mysoft7
e MySoft 8.0 v2 que você deseja instalar em /opt/vendor/mysoft8
, então você construiria dois pacotes:
Package: mysoft7
Version: 7.0.6
e
Package: mysoft8
Version: 8.0.2
para criar mysoft7_7.0.6_amd64.deb
e mysoft8_8.0.2_amd64.deb
. Em teoria, você pode usar qualquer esquema de versão que quiser, mas seria aconselhável estar em conformidade com Convenções Debian ao especificar o número da versão.
Em seguida, se você precisar fazer upgrade de qualquer versão devido a alterações de upstream do fornecedor, crie uma nova versão do pacote relevante e atualize o número da versão relevante. Por exemplo, se o MySoft 8.0 v3 for lançado, você construirá agora:
Package: mysoft8
Version: 8.0.3
A instalação deste pacote irá então desinstalar automaticamente o mysoft8
versão 8.0.2, removendo assim os arquivos instalados do mysoft8_8.0.2_amd64.deb
e substituindo-os pelos arquivos contidos em mysoft8_8.0.3_amd64.deb
Se você precisar de cada versão upstream instalada ao mesmo tempo, precisará usar um nome de pacote diferente para cada versão. Neste ponto, o número da versão do pacote se torna irrelevante e você pode usar apenas 1.0
. Cada um precisaria instalar em um diretório diferente, porque um arquivo só pode pertencer a um pacote de cada vez. Nesse cenário, você teria que limpar manualmente versões antigas indesejadas do software, desinstalando o pacote relevante.
Estou um pouco incerto sobre por que seu deb atual tentaria reinstalar se já estiver instalado (o que, infelizmente, é o cerne da sua pergunta!). Isso sugere que apt
acha que a versão do pacote disponível em seu repositório é maior do que a versão instalada. Talvez o tamanho do número da versão esteja confuso? /var/log/dpkg.log
e /var/log/apt/history.log
devem mostrar o que está acontecendo.