Qt, Boost 및 기타 여러 라이브러리와 해당 버전과 함께 제공되는 버전에 의존하는 Ubuntu 16.04에서 컴파일된 응용 프로그램이 있습니다. 하지만 Ubuntu 12.04를 실행하는 웹 서버에서 이 애플리케이션을 실행해야 하는데 루트 액세스 권한이 없습니다.
애플리케이션을 실행하려고 하면 라이브러리 버전이 다르거나 존재하지 않는다고 불평합니다.
이 문제를 해결하기 위해 ldd에서 보고한 각 라이브러리를 폴더에 복사하고 해당 폴더를 가리키는 LD_LIBRARY_PATH를 사용하여 응용 프로그램을 실행해 보았지만 응용 프로그램이 분할 오류 신호를 받았습니다.
이전 버전의 라이브러리에 없는 기능을 사용하고 있기 때문에 Ubuntu 12.04에서 애플리케이션을 컴파일할 수 없습니다. 또한 이전 시스템에 새 라이브러리를 구축할 계획도 없습니다.
제 질문은: 최신 버전의 Ubuntu에서 컴파일된 애플리케이션을 이전 버전의 Ubuntu에서 어떻게 실행합니까?
답변1
가장 간단한 해결책은 무엇입니까?
Ubuntu 12 서버를 구축하고, 애플리케이션을 실행하는 데 필요한 Ubuntu 12 서버를 복사하고, 해당 서버에서 버전을 컴파일합니다.
왜냐하면 당신이 모든 것을 다룰 수는 없기 때문입니다.모두공유 객체는 정확하지만 커널 인터페이스는 다를 수 있습니다.