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

Любое преимущество для сборки из исходного кода, если я могу получить его из репозитория аналогичного дистрибутива

Я использую Amazon Linux AMI, который, похоже, является ответвлением RHEL или CentOS. Я читал, что он должен быть двоично совместим с RHEL. Мой вопрос: есть ли какие-либо преимущества в компиляции пакета из исходного кода по сравнению с использованием репозиториев RHEL или CentOS (поскольку они тоже должны работать)?

Теоретически при компиляции вашего собственного исходного кода можно использовать преимущества определенных оптимизаций компилятора, которые задействуют ваше оборудование. На практике для большинства приложений это не имеет ощутимого различия - особенно по сравнению с проблемами, связанными с зависимостями, обновлениями, тестированием и т. Д. Это преимущество также предполагает наличие компилятора, который может оптимизировать для рассматриваемых функций, что ни в коем случае не является проблемой. дано.

Есть полуизвестная цитата Дональд Кнут:

«Программисты тратят огромное количество времени на размышления или беспокойство о скорости некритичных частей своих программ, и эти попытки повышения эффективности на самом деле имеют сильное негативное влияние, когда рассматриваются отладка и обслуживание. Мы должны забыть о небольшой эффективности, например 97% случаев: преждевременная оптимизация - корень всех зол. Тем не менее, мы не должны упускать наши возможности в этих критических 3% ».

На этом этапе развертывание ваших собственных двоичных файлов для повышения производительности определенно попадет в эту категорию. Бывают случаи, когда могут потребоваться определенные функции, которых нет в дистрибутивах (например), но таких случаев должно быть немного и они встречаются редко.

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

Компиляция из исходного кода дает вам более свежую версию, чем из репозиториев, она может включать некоторые исправления ошибок. но установка компиляторов на рабочие серверы - не лучшая практика безопасности.

Сборка из исходного кода обычно дает вам последнюю версию, и вы также можете попробовать бета-версии. Однако использование пакетов дает вам хорошо протестированные и стабильные версии. Зависит от ваших потребностей.

Компилируя, вы можете оптимизировать свое оборудование, как говорили другие, или включить функции, которых нет в двоичных пакетах.

Но иметь собственные пакеты, скомпилированные из исходного кода, может быть труднее поддерживать. Вы должны самостоятельно проверить наличие обновлений и проблем с безопасностью и при необходимости скомпилировать новую версию.