Removendo pacotes deb do repositório apt com reprepro

1

Resumo do problema:

reprepro list stretch não lista nenhum pacote no meu repositório apt e reprepro remove stretch <package> não exclui nenhum pacote do meu repositório. Como posso:

  1. Adicione pacotes para que reprepro list stretch os encontre ou
  2. Use reprepro para excluir pacotes do meu repo

O ambiente:

Eu tenho uma máquina de compilação com um repositório apt nela. Quando termino de construir, eu instalo meu pacote:

sudo reprepro -Vb /var/www/html/apt/debian \
              includedeb stretch \
              ${build_dir}/a320-latest-0.0.${SVN_REVISION}-Linux.deb

Tudo parece funcionar muito bem. Eu posso apt-get install a320-latest de qualquer cliente que tenha adicionado meu repositório ao seu /etc/apt/sources.list.d/ .

Quando eu inspeciono mais, posso confirmar que tenho vários pacotes instalados:

bob@apollo:/var/www/html/apt/debian$ tree pool
pool
└── main
    ├── a
    │   ├── a320
    │   │   └── a320_0.0.571_amd64.deb
    │   └── a320-latest
    │       └── a320-latest_0.0.575_amd64.deb
    ├── h
    │   └── helloworld
    │       └── helloworld_0.2_amd64.deb
    └── s
        ├── sim-dev
        │   └── sim-dev_1.0_amd64.deb
        ├── sim-devenv
        │   └── sim-devenv_1.0_amd64.deb
        ├── sim-runtime
        │   └── sim-runtime_1.1_amd64.deb
        └── sim-workstation
            └── sim-workstation_1.0_amd64.deb

11 directories, 7 files

Estes também parecem estar presentes no registro do repositório:

bob@apollo:/var/www/html/apt/debian$ cat dists/stretch/main/binary-amd64/Packages | grep Package:
Package: a320
Package: a320-latest
Package: helloworld
Package: sim-dev
Package: sim-devenv
Package: sim-runtime
Package: sim-workstation

Fluxo de trabalho esperado:

Gostaria de excluir pool/main/a/a320 e pool/main/h/helloworld .

Eu tentei:

bob@apollo:/var/www/html/apt/debian$ sudo reprepro list stretch
bob@apollo:/var/www/html/apt/debian$ sudo reprepro remove stretch a320
Not removed as not found: a320
Exporting indices...

Eu esperava que reprepro list stretch listasse meus pacotes e reprepro remove stretch a320 removeria o pacote a320. Mas isso não parece fazer nada.

Eu estava tentado a excluir apenas os arquivos *.deb e as entradas em ./dists/.../Packages manualmente, mas suspeito que isso destruirá algumas somas de verificação e destruirá o repositório. Provavelmente também colocaria ./dists fora de sincronia com ./db que contém alguns objetos binários (SQLite?).

Eu também tentei reprepro export stretch e reprepro update stretch , mas eles não pareciam fazer nada.

Pelo menos alguma coisa está funcionando

Tudo é ótimo para o cliente agora.

Além disso, posso confrmar que reprepro encontra o repositório stretch , caso contrário, ele causaria um desses erros:

bob@apollo:/var/www/html/apt$ sudo reprepro list stretch
Error opening config file './conf/distributions': No such file or directory(2)
There have been errors!

bob@apollo:/var/www/html/apt/debian$ sudo reprepro list wheezy
Cannot find definition of distribution 'wheezy'!
There have been errors!
    
por Stewart 28.02.2018 / 11:58

1 resposta

1

Você tem parte da sua solução na sua pergunta:
você tem que dizer reprepo onde procurar!

sudo reprepro -Vb /var/www/html/apt/debian list stretch

e

sudo reprepro -Vb /var/www/html/apt/debian remove stretch a320

deve fazer o truque.

    
por Robert Riedl 28.02.2018 / 15:21