LINUX.ORG.RU

Пакеты в Debian, разница между Provides и Replaces

 


1

1

Здравствуйте, все.

Собственно, ${subj}.

Если я хочу заменить стандартный пакет foo своим колхозным пакетом foo-alt (те же яйца, только с другими ключами сборки) и при этом не сломать тех, кто зависит от foo, то в чём для меня разница между Provides и Replaces?

И стоит ли мне в этом случае явно указывать, что foo-alt Conflicts: foo?

Перемещено leave из development

★★★★★

Replaces заменяет указанный пакет. Provides предоставляет твой пакет как заглушку, к примеру программе нужен пакет/библиотека libjopa, если твой пакет содержит в себе её функционал, то ты можешь указать через Provides это. То есть это поле нужно для работы с виртуальными пакетами. Поэтому в твоём случае нужно использовать Replaces. Conflicts приведёт к удалению конфликтующего пакета, и потенциально может сломать зависимости (если ты их не пересобирал)

Sunderland93 ★★★★★
()
Ответ на: комментарий от Sunderland93

Спасибо.

Вот теперь точно ничего не понимаю =)

Я таки предполагаю, что foo и foo-alt должны конфликтовать, т. к. их содержимое (libzhopa.so) должно лежать по одному и тому же пути.

Т. е. смысл такой же, как в типичных конфликтах bar:i386 и bar:amd64 в multiarch-установках.

Второй мой вопрос мой состоял в том, нужно ли явно указывать Conflicts: foo в ситуации, когда уже указано Provides или Replaces.

Что касается моего первого вопроса – правильно ли я понимаю, что Provides таки сохраняет зависимости при замене foo -> foo-alt, а Repalces – не сохраняет (т. е. ломает)?

Я бы хотел именно сохранить зависимости, т. е. чтобы foo-alt был виртуальным foo.

Bass ★★★★★
() автор топика
Ответ на: комментарий от Bass

нужно ли явно указывать Conflicts: foo в ситуации, когда уже указано Provides или Replaces.

Да, не зависимо от ситуации. У тебя реальный конфликт с другим пакетом.

Я бы хотел именно сохранить зависимости

Ты можешь сохранить дочерние зависимости, скопипастив спеку из оригинального пакета.

Для родительских пакетов подмена возможна только через provides виртуальных пакетов, емнип.

LamerOk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.