Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:advanced-packaging-tool:replace-deb-packages-in-reprepro

Замена deb-пакетов (с сохранением номера версии) в репозитории REPREPRO

При использовании локального репозитория на базе reprepro для распространения deb-пакетов, иногда может возникнуть необходимость в замене некоторых опубликованных в репозитории пакетов при условии, что версия пакетов должна остаться прежней. Для решения этой задачи сначала потребуется удалить из репозитория пакеты с текущей версией, а потом добавить в репозиторий обновлённые пакеты.

В моём примере требуется замена пакетов squid* определённой версии, опубликованных в репозитории, расположенном на сервере reprepro в каталоге /srv/reprepro/debian для Debian Jessie ( ветка main ) .

Посмотрим, какие пакеты в репозитории сейчас подпадают под заданные условия:

# reprepro -b /srv/reprepro/debian  \ 
 listfilter 'jessie' '$PackageType (==deb), $Source (%squid*), $SourceVersion (%3.5.24*)'
jessie|main|i386: squid-common 3.5.24-1 jessie|main|i386: squid3 3.5.24-1 jessie|main|amd64: squid 3.5.24-1 jessie|main|amd64: squid-cgi 3.5.24-1 jessie|main|amd64: squid-common 3.5.24-1 jessie|main|amd64: squid-dbg 3.5.24-1 jessie|main|amd64: squid-purge 3.5.24-1 jessie|main|amd64: squid3 3.5.24-1 jessie|main|amd64: squidclient 3.5.24-1

Удалим старые пакеты с фильтром по названию и версии:

# reprepro -b /srv/reprepro/debian \
 removefilter 'jessie' '$PackageType (==deb), $Source (%squid*), $SourceVersion (%3.5.24*)'
Exporting indices... Deleting files no longer referenced...

Теперь опубликуем в репозиторий обновлённые пакеты из локального каталога:

# reprepro -b /srv/reprepro/debian  \ 
 -C main includedeb 'jessie' /home/user/build/squid*.deb
Exporting indices...

Теперь можем перейти на Linux-сервер, являющимся клиентом нашего локального репозитория и, при необходимости, выполнить переустановку пакета squid3, предварительно обновив кеш менеджера пакетов APT:

# apt-get clean
# apt-get update
# apt-get --reinstall install squid3

Автор первичной редакции:
Алексей Максимов
Время публикации: 25.03.2017 09:16

Обсуждение

Ваш комментарий:
 

unix-linux/advanced-packaging-tool/replace-deb-packages-in-reprepro.txt · Последние изменения: 25.03.2017 09:49 — Алексей Максимов