Что может помешать запуску двоичного файла в дистрибутиве Linux, скомпилированном на другой платформе? - PullRequest
2 голосов
/ 19 апреля 2010

У нас есть 2 разных компилятора: red hat as4 и as5. Наши архитекторы требуют, чтобы мы, разработчики, компилировали нашу программу на этих двух платформах каждый раз, прежде чем копировать их на свой компьютер в процессе производства.

Что может помешать нам скомпилировать наше приложение только на одном компьютере (скажем, например, что красный имеет значение 4) и развернуть этот двоичный файл на всех целевых платформах?

Какова ваша точка зрения и могли бы вы указать конкретные проблемы, с которыми вы столкнулись при этом? С какими проблемами я могу столкнуться при этом?

Ответы [ 3 ]

3 голосов
/ 19 апреля 2010

Вы можете столкнуться с несовместимостью совместно используемых библиотек, собрав одну систему и запустив другую. Маловероятно переходить между последовательными версиями Red Hat, но это возможно.

Другая проблема, с которой вы можете столкнуться, - это если одна система 32-битная, а другая 64-битная. В этом случае приложение, скомпилированное на 64-битной машине, не будет работать на 32-битной машине.

3 голосов
/ 19 апреля 2010

Предотвратить? Ничего такого. Приложение, работающее на EL4, должно также работать на EL5, за исключением того, что внешние приложения являются разными версиями или библиотеки устарели. Тем не менее, Red Hat любит делать всевозможные изменения в gcc, которые включают в себя безопасность и оптимизацию кода, и вы упустите любые улучшения EL5, если просто скопируете двоичный файл, скомпилированный EL4.

Кроме того, каждому нужен перерыв .

0 голосов
/ 20 апреля 2010

Ого, компиляция, а затем разработчики копируют бинарные файлы в производство? Это довольно странный процесс, который у вас там есть.

Да, конечно, вы можете запускать одни и те же двоичные файлы на RHEL 4 и 5, если они имеют одинаковую архитектуру и у вас установлены зависимости.

Я бы настоятельно рекомендовал вам встроить свои двоичные файлы в RPM, тогда для вас могут быть созданы зависимости, которые гарантируют, что он может быть установлен только тогда, когда зависимости удовлетворены.

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

** У вас есть один из тех, верно

*** Конечно, у вас есть один из них!

...