할 수 있나요? - GCC 4.4를 사용하여 Fedora 14에서 C/C++를 개발하고 GCC 4.4를 사용하여 CentOS 5.2에 배포

할 수 있나요? - GCC 4.4를 사용하여 Fedora 14에서 C/C++를 개발하고 GCC 4.4를 사용하여 CentOS 5.2에 배포

내 프로덕션 환경은 CentOS 5.2 및 5.5 버전을 실행합니다. C/C++를 사용하여 새 도구를 개발하고 이를 프로덕션 환경에 배포해야 합니다.

Eclipse IDE로 개발을 수행하기 위해 GCC 4.4가 설치된 데스크탑에서 Fedora 14를 사용할 계획이었습니다. 그런 다음 나중에 실행 파일을 CentOS 5.2 또는 5.5에 배포하고 싶습니다. 프로덕션 환경에도 GCC 4.4가 있을 것입니다.

Fedora와 CentOS는 모두 RHEL 기반이므로 이것이 가능하다고 생각했습니다.

그럼 내가 이걸 할 수 있을까?

아니면 개발 데스크탑에도 CentOS 5.2/5.5가 있어야 합니까?

감사합니다 아미트

답변1

정적 바이너리를 구축한다면 거의 모든 것을 기반으로 구축하고 거의 모든 곳에서 실행할 수 있어야 합니다. 정적으로 구축하는 방법에 대한 정확한 세부 정보는 stackoverflow에서 가장 잘 답변됩니다.

하지만 다른 환경에서 건물을 짓는 것은 다소 어리석은 것처럼 보입니다. 개발 머신에서 프로덕션과 동일한 VM 또는 chroot를 직접 구축해 보는 것은 어떨까요? 이렇게 하면 이상하거나 예상치 못한 비호환성을 경험할 가능성이 훨씬 줄어듭니다.

답변2

centos에 없는 라이브러리에 대해 동적으로 링크하는 경우 라이브러리도 제공해야 합니다.

소스 코드를 제공하고 centos 상자에서 컴파일하는 경우 코드에 사용할 헤더나 소스 파일을 제공해야 합니다. 특별한 것을 사용하지 않는 경우(예를 들어 libc만 사용하는 경우) 추가 libs를 제공할 필요가 없습니다.

주의해야 할 또 하나의 사항은 CPU 아키텍처입니다. 64비트용 코드가 있으면 32비트에서는 작동하지 않습니다.

답변3

~할 수 있다이렇게 하세요. 하지만 그러면 안됩니다.

개발 데스크톱에서는 확실히 그렇지 않은 깨끗한 환경에서 최종 프로덕션 패키지를 구축하는 것이 가장 좋습니다. CentOS는 무료이므로 킥스타트에서 매번 정리되거나 알려진 양호한 스냅샷에서 복원되는 특별한 빌드 환경을 갖지 않을 이유가 없습니다. 약간의 설정 작업일 수도 있지만 그 후에는 결과 패키지가 우연히 들어온 놀라운 종속성 없이 작동한다는 것을 알게 될 것입니다.

그리고 프로덕션 환경에 gcc가 필요합니까? 아무것도 없어요잘못된그 자체로는 그것을 가지고 있지만(공격자는 자신의 바이너리에 복사합니다) 일반적으로 생산은 가능한 한 집중되어야 합니다.

관련 정보