Я использую CentOS(7.2) и мне нужно скомпилировать некоторые инструменты из исходного кода, чтобы получить некоторые новые функции на сервере. Я в порядке с компиляцией из исходного кода, но у меня есть проблемы с ням. Давайте посмотрим на пример с GIT.
Если вы попытаетесь yum install git
вы получите GIT 1.8.3.1. Мне нужна более новая версия, например, 2.10. Я следую учебнику со страницы git https://git-scm.com/book/en/v2/Getting-Started-Install-Git здесь.
Если вы установите необходимые инструменты для компиляции git, вы заметите, что одной из зависимостей является сам git. Так что перед компиляцией новой версии у вас фактически установлен git. После компиляции желаемая версия доступна (2.10)
Так что все хорошо, но вот пара вопросов, с которыми я сталкиваюсь. Допустим, в репозитории CentOS есть более новая версия GIT. Так что после yum update git
моя скомпилированная версия будет заменена, скажем, 1.9. Я хотел бы предотвратить такую ситуацию.
Моей первой мыслью было добавить exclude git*
в yum.conf
и это решило бы проблемы с обновлением, но у него есть два недостатка:
- Вы все еще можете сделать
yum remove git
и он удалит git 2.10 (те же места в файлах). - Если вы попытаетесь заставить
yum install X
гдеX
имеет git в качестве зависимости, вы не сможете установить его:/
Вопрос - Как обновить yum информацией о пакете, скомпилированном из исходного кода?
Одна вещь, которую я мог бы сделать, это создать пустой RPM для git и добавить его в yum. Так что у yum будет информация о моей скомпилированной версии. Однако я не уверен, что это хорошее решение?
Я хотел бы получить некоторый вклад и идеи об этой ситуации. Пожалуйста, не используйте строго GIT, это может быть любой другой пакет, например, nginx или PHP.
Любая помощь будет оценена!