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

Как я могу установить программное обеспечение (в данном случае nginx) из исходного кода, чтобы эффективно перезаписать и заменить ранее установленный пакет в Red Hat Enterprise Linux?

Итак, я унаследовал производственную коробку, работающую

Linux версии 2.6.9-023stab048.6-enterprise (root @ rhel4-32) (gcc версия 3.4.520051201 (Red Hat 3.4.5-2)) # 1 SMP Mon Nov 17 19:09:18 MSK 2008

установлен следующий устаревший пакет nginx (через yum list | grep nginx)

Установлен nginx.i386 0.6.39-1.el5

У нас было много трудностей при работе с этой устаревшей версией, и я хочу обновить ее, но, по-видимому, это самая новая версия, доступная через yum.

К сожалению, это находится в производственной коробке, которую я унаследовал, поэтому я не знаю, какие файлы был установлен этим пакетом или какие сценарии были написаны впоследствии, которые зависят от файлов nginx, находящихся в определенном месте. Итак, вот мои вопросы к вам:

Могу ли я получить доступ к другому набору репозиториев с помощью yum, у которого будет более новая версия (0.7. *)?

В противном случае существует ли какая-либо команда yum, которая позволила бы мне точно посмотреть, какие файлы были установлены с пакетом?

Каким будет лучший и самый чистый способ удалить версию пакета и заменить ее на nginx 0.7. *, Установленный из исходников?

Есть ли способ сделать это, не отключая сервер на длительный период времени (более 15 минут или около того)?

Спасибо за вашу помощь!

Ознакомьтесь с некоторыми другими репозиториями RPM, такими как rpmforge или epel, вы можете найти там более новые предварительно созданные пакеты. В качестве альтернативы возьмите исходный RPM для нужной вам версии (быстрый поиск в Google нашел его для 0.7.61) и создайте его (rpmbuild --rebuild <foo>.src.rpm)

Во-первых, если вы хотите увидеть пакеты, установленные с помощью nginx:

rpm -ql nginx

Существуют пакеты rpm для nginx 0.7 и 0.8, но я не могу сказать, что они надежны. Вместо этого я рекомендую вам создать свой собственный rpm-пакет на основе исходного кода. В первый раз сложно разобраться в спецификациях, но потом все обновления сделать очень легко. Если вам нужно минимальное время ожидания, вам нужно будет протестировать миграцию в другом окне. По опыту я бы сказал, что обновление nginx должно быть чистым процессом, но все же вам необходимо протестировать перед этим.