Я устанавливаю NGinx из исходников, так как пакеты из репозитория ubuntu довольно старые. Мне было интересно, как лучше всего обновить эти типы установок?
Мой текущий рабочий процесс включает в себя.
Что-то мне подсказывает, что это не лучший маршрут.
Предложения?
Вы правы, что это не лучший маршрут. Этот маршрут требует множества ручных действий, очень подвержен ошибкам и плохо масштабируется.
При работе с дистрибутивами Linux вы должны как можно больше придерживаться управления пакетами.
Преимущества использования управления пакетами:
Когда вы начинаете работать только из исходного кода, вы теряете все эти замечательные функции, и все начинает довольно быстро портиться.
Чтобы решить вашу конкретную проблему, вы должны проверить репозиторий ubuntu backports, возможно, у них есть обновленная версия для NGinx, которую вы можете использовать.
Если у них нет подходящей версии, лучшим решением будет создание пакета ubuntu с обратным переносом самостоятельно. Это действительно не так сложно, и это меньше работы, чем каждый раз вручную компилировать исходный код. Для резервного копирования требуется, в основном, взять исходный пакет из ubuntu, заменить старый файл tar.gz upsteam на последний, который вам нужен, и перестроить пакет.
Ты можешь использовать это руководство чтобы помочь вам перенести пакет обратно.
Мне показалось довольно удобным устанавливать разные версии в разные места и просто указывать ссылку на версию, которую вы хотите использовать, например:
lrwxr-xr-x 1 root wheel 7B Jun 7 18:26 /usr/local/foo -> foo-1.0
drwxr-xr-x 2 root wheel 512B Jun 7 18:26 /usr/local/foo-1.0
drwxr-xr-x 2 root wheel 512B Jun 7 18:26 /usr/local/foo-1.1
Преимущества:
/usr/local/foo/bin/bar
Конечно, вам все равно придется повторно применить любые изменения конфигурации, которые вы внесли в предыдущую версию, но для этого вы можете использовать некоторую систему управления версиями (RCS / SVN / GIT) или инструмент управления конфигурацией, например Bcfg2.
И, конечно, это подходит только для небольшого количества хостов.
В следующий раз ... как насчет его компиляции в * .rpm или * .deb?
Если вы собираетесь устанавливать это на одной машине, то делать это каждый раз из исходников - лучший способ. Если вы собираетесь устанавливать это на нескольких машинах и хотите убедиться, что он согласован, вероятно, стоит научиться создавать пакеты Debian. Вероятно, вы могли бы использовать упаковку в Ubuntu в качестве основы.
Нет отличного способа. Причина, по которой было создано эффективное управление пакетами, заключалась в решении этой самой проблемы. Обновление и удаление вещей, скомпилированных с исходным кодом, сложно.
Я согласен с Томом и Дэвидом.
Если это разовый случай, то, вероятно, лучше всего будет перекомпилировать из исходников. Если это на множестве машин, определенно пора перейти к поддерживаемому управлению пакетами.
Боюсь, это единственный способ. если вам нужно поддерживать больше серверов - подумайте о том, чтобы создать отдельную тестовую среду, в которой вы компилируете и, возможно, упаковываете результат вашей компиляции.
это немного стандартизирует ваши настройки и упростит развертывание на многих серверах. также вам не понадобится gcc на производственных машинах [что многие сочтут преимуществом безопасности].