Удаление пакетов deb из репозитория apt с участиемторде
Краткое описание проблемы:
reprepro list stretch
не перечисляет никаких пакетов в моем хранилище apt и reprepro remove stretch <package>
не удаляет пакеты из моего хранилища. Как я могу:
- Добавить пакеты так, чтобы
reprepro list stretch
находит их, или - использование
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
должен сделать свое дело.