Problem Summary:

reprepro list stretch doesn't list any packages in my apt repository and reprepro remove stretch <package> doesn't delete any packages from my repository. How can I:

  1. Add packages so that reprepro list stretch finds them, or
  2. Use reprepro to delete packages from my repo

The Environment:

I have a build machine with an apt repository on it. When I finish building, I install my package:

sudo reprepro -Vb /var/www/html/apt/debian \
              includedeb stretch \

Everything seems to work really well. I can apt-get install a320-latest from any client which has added my repository to their /etc/apt/sources.list.d/.

When I inspect further, I can confirm that I have several packages installed:

bob@apollo:/var/www/html/apt/debian$ tree 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

These also seem to be present in the repository registry:

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

Expected workflow:

I would like to delete pool/main/a/a320 and pool/main/h/helloworld.

I've tried:

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

I expected reprepro list stretch would list my packages, and reprepro remove stretch a320 would remove the a320 package. But that doesn't seem to do anything.

I was tempted to just delete the *.deb files, and the entries in ./dists/.../Packages manually, but I suspect that this will destroy some checksums and destroy the repository. It would probably also put ./dists out of sync with ./db which contains some binary objects (SQLite?).

I also tried reprepro export stretch and reprepro update stretch but they didn't seem to do anything.

At least something is working

Everything is great for the client right now.

Also, I can confrm that reprepro finds the stretch repository, otherwise it would give one of these errors:

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!

You have part of your solution right there in your question:
you have to tell reprepo where to look!

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


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

should do the trick.

  • Perfect answer thanks! I assumed that reprepro assumed -b was $(pwd) if unspecified. This really cleared things up. – Stewart Mar 6 '18 at 9:19
  • Glas I was able to help ! – Robert Riedl Mar 6 '18 at 10:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.