web-dev-qa-db-fra.com

Supprimer les paquets deb du référentiel apt avec reprepro

Résumé du problème:

reprepro list stretch ne répertorie aucun package dans mon référentiel apt et reprepro remove stretch <package> ne supprime aucun package de mon référentiel. Comment puis-je:

  1. Ajoutez des packages pour que reprepro list stretch les trouve ou
  2. Utilisez reprepro pour supprimer les paquets de mon dépôt

L'environnement:

J'ai une machine de construction avec un référentiel apt dessus. Quand j'ai fini de construire, j'installe mon paquet:

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

Tout semble fonctionner vraiment bien. Je peux apt-get install a320-latest à partir de tout client ayant ajouté mon référentiel à leur /etc/apt/sources.list.d/.

Lorsque j'inspecte davantage, je peux confirmer que plusieurs packages sont installés:

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

Ceux-ci semblent également être présents dans le registre du référentiel:

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

Flux de travail attendu:

Je voudrais supprimer pool/main/a/a320 et pool/main/h/helloworld.

J'ai essayé:

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...

Je m'attendais à ce que reprepro list stretch dresse la liste de mes packages et que reprepro remove stretch a320 supprime le package a320. Mais cela ne semble rien faire.

J'ai été tenté de simplement supprimer manuellement les fichiers *.deb et les entrées de ./dists/.../Packages, mais je suppose que cela va détruire certaines sommes de contrôle et détruire le référentiel. Cela aurait probablement aussi pour effet de désynchroniser ./dists avec ./db qui contient des objets binaires (SQLite?).

J'ai aussi essayé reprepro export stretch et reprepro update stretch mais ils ne semblaient rien faire.


Au moins quelque chose fonctionne

Tout va bien pour le client en ce moment.

De plus, je peux confirmer que reprepro trouve le référentiel stretch, sinon cela donnerait l'une de ces erreurs:

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!
1
Stewart

Vous avez une partie de votre solution dans votre question:
vous devez indiquer reprepo où regarder!

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

et

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

devrait faire l'affaire.

1
Robert Riedl