Вики 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...

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

# sudo 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.1490423269.txt.gz · Последнее изменение: 25.03.2017 09:27 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki