В моем производственном окружении работают версии CentOS 5.2 и 5.5. Мне нужно разработать новый инструмент с использованием C/C++ и развернуть его в этом производственном окружении.
Я планировал использовать Fedora 14 на своем десктопе с GCC 4.4 для разработки с Eclipse IDE. А затем я хочу развернуть исполняемые файлы на CentOS 5.2 или 5.5. В рабочей среде также будет GCC 4.4.
Поскольку и Fedora, и CentOS основаны на RHEL, я подумал, что это возможно.
Так могу ли я это сделать?
Или мне также необходимо иметь CentOS 5.2/5.5 на моем рабочем столе?
Спасибо Амит
решение1
Если вы собираете статические двоичные файлы, то вы должны иметь возможность собирать их практически на чем угодно и запускать практически где угодно. Точные детали того, как вы собираете вещи статически, лучше всего можно найти на stackoverflow.
Хотя сборка в другой среде кажется немного глупой. Почему бы не создать себе VM или chroot, идентичный production на вашей машине dev. Таким образом, вы будете гораздо менее склонны испытывать странные/неожиданные несовместимости.
решение2
если вы динамически связываете библиотеки, которых нет в centos, то вам также необходимо предоставить библиотеки
Если вы предоставляете исходный код и компилируете его на CentOS-компьютере, вам нужно будет предоставить любые заголовочные файлы или исходные файлы, которые вы используете в своем коде. Если вы не используете ничего особенного (например, просто используете libc), то нет необходимости предоставлять дополнительные библиотеки.
Еще одна вещь, на которую следует обратить внимание, — это архитектура процессора: если у вас есть код для 64 бит, он не будет работать на 32.
решение3
Тыможетделайте это, но вам не следует этого делать.
Лучше всего собирать ваши финальные, производственные пакеты в чистой среде, которой ваш рабочий стол разработки, конечно, не будет. Поскольку CentOS бесплатен, нет причин не иметь специальную среду сборки, которая либо очищается каждый раз с помощью kickstart, либо восстанавливается из заведомо исправного снимка. Возможно, потребуется немного работы по настройке, но после этого вы будете знать, что полученные пакеты будут работать без неожиданных зависимостей, которые могут случайно появиться.
И нужен ли вам gcc в вашей производственной среде? Там нет ничегонеправильныйс его наличием как таковым (злоумышленники будут копировать свои собственные двоичные файлы), но в целом производство должно быть максимально сфокусированным.