1

У меня есть локально скомпилированная версия apache, которая в контрольном файле

Replaces: apache2, apache2-mpm, httpd, httpd-cgi, apache2-mpm-prefork, apache2-utils, apache2-common, apache2.2-bin, apache2.2-common
Conflicts: apache2, apache2-mpm, httpd, httpd-cgi, apache2-mpm-prefork, apache2-utils, apache2-common, apache2.2-bin, apache2.2-common

Однако, если я затем выполню apt-get install php5, apt попытается удалить мой пакет и установить пакеты apache из репозитория ubuntu.

Я пытался поменять местами Replaces, Conflicts and Provides, но, похоже, не могу заставить его сохранить мой локальный пакет, приоритет пакета "необязательный", который совпадает с apache2.

Кто-нибудь знает, как я могу настроить свой пакет для замены Apache Ubuntu?

2 ответа2

1

Установите свои пакеты и отметьте их как удерживающие.

1

Это может быть связано с тем, что пакет php5 имеет зависимость (возможно, косвенную), которую ваши пакеты не удовлетворяют. Попробуйте использовать aptitude вместо apt-get , возможно, передав ему опцию -v один или несколько раз, чтобы получить более подробный отчет о цепочке проблемных зависимостей; или используйте aptitude в интерактивном режиме, чтобы можно было легко исследовать цепочку зависимостей (запросите установку php5 и посмотрите предложения по разрешению конфликтов).

Самый простой способ удовлетворения зависимостей - использовать сценарии компиляции Ubuntu для вашей собственной версии Apache, чтобы иметь одинаковые имена пакетов и большие номера версий, которые должны удовлетворять всем зависимостям.

Если все остальное терпит неудачу, вы могли бы использовать инструмент equivs-build из пакета equivs , чтобы создать тривиальный пакет для удовлетворения отсутствующих зависимостей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .