Удаление пакетов deb из репозитория apt с участиемторде

Краткое описание проблемы:

reprepro list stretch не перечисляет никаких пакетов в моем хранилище apt и reprepro remove stretch <package> не удаляет пакеты из моего хранилища. Как я могу:

  1. Добавить пакеты так, чтобы reprepro list stretch находит их, или
  2. использование reprepro удалить пакеты из моего репо

Окружающая среда:

У меня есть сборочная машина с репозиторием apt. Когда я заканчиваю сборку, я устанавливаю свой пакет:

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

Кажется, все работает очень хорошо. Я могу apt-get install a320-latest от любого клиента, который добавил мой репозиторий к своим /etc/apt/sources.list.d/,

При дальнейшей проверке я могу подтвердить, что у меня установлено несколько пакетов:

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

Они также присутствуют в реестре хранилища:

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

Ожидаемый рабочий процесс:

Я хотел бы удалить pool/main/a/a320 а также pool/main/h/helloworld,

Я пробовал:

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

Я ожидал reprepro list stretch перечислил бы мои пакеты, и reprepro remove stretch a320 удалил бы пакет a320. Но это, похоже, ничего не делает.

Я был соблазн просто удалить *.deb файлы и записи в ./dists/.../Packages вручную, но я подозреваю, что это уничтожит некоторые контрольные суммы и разрушит хранилище. Было бы, вероятно, также положить ./dists не синхронизировано с ./db который содержит некоторые двоичные объекты (SQLite?).

Я тоже пробовал reprepro export stretch а также reprepro update stretch но они, похоже, ничего не делали.


По крайней мере, что-то работает

Все отлично для клиента прямо сейчас.

Кроме того, я могу подтвердить, что reprepro находит stretch хранилище, иначе это даст одну из следующих ошибок:

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 ответ

Решение

У вас есть часть вашего решения прямо в вашем вопросе:
ты должен сказать reprepo где искать!

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

а также

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

должен сделать свое дело.

Другие вопросы по тегам