Назад | Перейти на главную страницу

Упаковка Debian: как предотвратить ошибку «попытки перезаписи»

У меня есть два пакета Debian, которые ранее были размещены в нашем внутреннем репозитории. Оба они используют один и тот же исходный код, но скомпилированы с разными параметрами, создавая два отдельных двоичных файла с одинаковыми библиотеками. Их предполагалось установить на отдельных серверах.

Следовательно, эти два пакета нельзя установить одновременно, потому что они пытаются установить одни и те же библиотеки, отсюда и ошибка dpkg «пытается перезаписать / my / lib».

Проблема: мне нужно установить их на одном сервере.

Вопрос: какую модификацию я должен добавить, чтобы сделать их совместимыми?

Несколько отведений:

Я понимаю, что этот вопрос довольно сложно объяснить, особенно на плохом английском, но я надеюсь, что вы дадите мне несколько зацепок :)

Спасибо сообществу!

Ваш 3-й вариант является наиболее распространенным. Часто вы увидите, что это называется -common или -base. Это делается во многих местах, чтобы предоставить отдельные пакеты библиотек, а также пакеты документов или дополнения. По сути, вы создаете несколько пакетов из одного источника. Таким образом создается большинство пакетов -doc и -common, а также множество пакетов lib *.

например

package-base
package-option1
package-option2

package-option1 и package-option2 оба зависят от package-base. Это лучший и самый безопасный способ сделать это. В репозиториях пакетов Debian / Ubuntu есть множество примеров - apache2, php5, dhcp3, nagios3, vim.

dh_make поддерживает создание этих пакетов библиотеки или нескольких двоичных пакетов из одного источника, это стоит проверить.

Общий метод базового пакета, описанный Филом, вероятно, является лучшим вариантом, однако если вы пометите один пакет как замена другой - позволит пакету B перезаписать файлы, принадлежащие пакету A. Конечно, это скорее быстрое исправление, чем долгосрочное решение.