Crie um repositório deb com várias versões do mesmo pacote

16

Eu quero criar meu próprio repositório deb para armazenar alguns pacotes. Eu tentei reprepro e funciona bem, exceto por um recurso fundamental. O Reprepro não pode armazenar várias versões do mesmo pacote no repositório.

A capacidade de armazenar várias versões do mesmo pacote é essencial para mim, então estou perguntando qual software pode fazer isso.

Aqui está uma parte das perguntas frequentes sobre reprepro que mostra que não é possível:

3.1) Can I have two versions of a package in the same distribution?
-------------------------------------------------------------------
Sorry, this is not possible right now, as reprepro heavily optimizes
at only having one version of a package in a suite-type-component-architecture
quadruple.
You can have different versions in different architectures and/or components
within the same suite. (Even different versions of a architecture all package
in different architectures of the same suite). But within the same
architecture and the same component of a distribution it is not possible.
bessarabov
fonte

Respostas:

11

Pelo que entendi, o mini-dinstall requer arquivos .changes do debian ao adicionar pacotes. Como eu só tinha arquivos .deb disponíveis descobri que apropriadamente suporta múltiplas versões também.

Outra opção mais leve é ​​o frete, que é um conjunto de scripts de shell para manter um repositório debian. Agora (2017) uso frete há três anos para manter um repositório pequeno, mas atualizado ativamente, com bons resultados. Um recurso importante foi a capacidade de manter várias versões de um pacote.

Edit: Link atualizado para o novo repositório de frete, pois o anterior não era atualizado desde 2014.

bohrax
fonte
11
Downvoter: cuidado para elaborar?
bohrax
11
Note-se que freightfoi bifurcada e agora está sendo mantida em github.com/freight-team/freight - a versão original não foi atualizado desde 2014.
Wolfgang
@WolfgangThanks, atualizou o link na resposta!
bohrax
9

A solução é usar o mini-dinstall para gerenciar repositórios de deb. Ele não exclui a versão anterior do pacote do repositório.

bessarabov
fonte
2
Isso parece verdadeiro apenas se "keep_old = 1" estiver definido no mini-dinstall.conf. O padrão (de acordo com a página de manual e a experiência recente) é remover versões mais antigas. Testado com a versão 0.6.29ubuntu1.
Pendor
2

Eu ouvi coisas boas sobre uma alternativa, frete:

https://github.com/rcrowley/freight

HTH, mistige

mistige
fonte
Não sei ao certo por que essa resposta foi reduzida, a menos que fosse por falta de detalhes. Freight fato parece uma alternativa viável para reprepro, que eu pretendo experimentar desde que eu tenho a mesma necessidade que o OP
killthrush
Eu não sou o menos favorável, mas talvez porque o frete já tenha sido mencionado na minha resposta há um ano. De qualquer forma, posso atestar isso como uma opção viável. Eu o uso há mais de um ano para um repositório pequeno, mas atualizado ativamente. Nós ter sido mordido por este problema, porém: github.com/rcrowley/freight/pull/65
bohrax
11
@bohrax: Parece que freightfoi bifurcada e agora está sendo mantida em github.com/freight-team/freight .
Wolfgang
-1

Se você quiser escrever o arquivo Packages (por exemplo, com um script personalizado), poderá colocar várias versões do mesmo pacote e o apt-get permitirá que você instale uma versão específica com a sintaxe

apt-get install packagename=version

Você pode obter todas as informações necessárias para escrever este pacote com

dpkg-deb --info package.deb

e

md5sum package.deb

O apt-get upgrade também escolherá o número da versão mais alta (pelo menos em meus testes limitados).

pfyon
fonte
Obrigado pela resposta, mas prefiro usar algum sistema que gere o arquivo Packages.
bessarabov
Isso não responde à pergunta sobre a criação de um repositório de pacotes com várias versões do mesmo pacote. É uma resposta para outra pergunta.
precisa saber é o seguinte
-2

Como o software informa, os mais antigos são eliminados quando um novo entra. Geralmente, isso é feito com vários repositórios. Assim como o Ubuntu e o Debian têm vários repositórios para estável e instável ou Natty, Oneiric, ..., você precisará ter vários repositórios.

Geralmente, os gerenciadores de pacotes selecionam a versão mais recente de um pacote, por isso seria difícil para os usuários escolherem também.

Martin Ueding
fonte
11
Criar vários repositórios não resolve meu problema. Preciso de várias versões do mesmo pacote para estar no mesmo repositório. Para aqueles que estão interessados, por que eu preciso disso aqui é um tópico com a minha explicação: answers.launchpad.net/launchpad/+question/171452
bessarabov
Eu temo que você tenha que olhar para o seu problema de um ângulo diferente, já que os repositórios regulares do Debian não têm suporte para várias versões.
Martin Ueding 03/12/19
2
Você não está certo. Por favor veja o repositório debian regular ftp.us.debian.org/debian/pool/main/p/perl e veja que existem várias versões do mesmo pacote para a mesma arquitetura.
bessarabov