[완료] Qt 리눅스 배포해보신분 계신가요?

shint의 이미지

Qt로 만든소스를 리눅스로 배포하려고 합니다. 리눅스랑 배포하는 방법을 몰라서요;;;
목적은 RHEL4_U7에 Qt로 만든 프로그램을 설치하기 입니다.

64비트 fedora13에서 컴파일한 Qt소스를 RHEL4_U7에서 실행하려고 하니까 이런 현상이 일어났습니다.

일단 fedora13에서 필요한 모듈을 RHEL4_U7로 같은 폴더에 복사했습니다.
linux-vdso.so.1 => (0x00007fff5afff000)
libQtXml.so.4 => /home/shint/qtsdk-2010.05/qt/lib/libQtXml.so.4 (0x00007f7829d6c000)
libQtOpenGL.so.4 => /home/shint/qtsdk-2010.05/qt/lib/libQtOpenGL.so.4 (0x00007f7829a7a000)
libQtGui.so.4 => /home/shint/qtsdk-2010.05/qt/lib/libQtGui.so.4 (0x00007f7828cd5000)
libQtCore.so.4 => /home/shint/qtsdk-2010.05/qt/lib/libQtCore.so.4 (0x00007f78287f2000)
libGLU.so.1 => /usr/lib64/libGLU.so.1 (0x00007f7828593000)
libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f7828327000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f782810b000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f7827e04000)
libm.so.6 => /lib64/libm.so.6 (0x00007f7827b80000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f782796a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f78275eb000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f782734f000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f782714b000)
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f7826f41000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f7826d0b000)
libz.so.1 => /lib64/libz.so.1 (0x00007f7826af6000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f78268e4000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f78265a5000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007f78263a1000)
librt.so.1 => /lib64/librt.so.1 (0x00007f7826199000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f7825e9d000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f7825c57000)
libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007f7825a4f000)
libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007f7825833000)
libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007f782562e000)
libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007f782542c000)
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f7825227000)
libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007f782501c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7829fb8000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f7824df4000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f7824bd9000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f78249d5000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f78247d2000)

RHEL4_U7에서는 sample_exe에서 보이던 모듈들이 보이지 않습니다.
ldd sample_exe
not a dynamic executable

그냥 실행하면 glibc 2.5가 필요하다고 합니다.
./sample_exe
./sample_exe: error while loading shared libraries: requires glibc 2.5 or later dynamic linker

이렇게 하면 glibc 없이도 되는듯 보여서 해봤습니다.
/lib/ld-2.3.4.so ./sample_exe
./sample_exe: error while loading shared libraries: ./sample_exe: cannot open shared object file: No such file or directory

하지만. 같은 폴더에 모듈이 있는데도 실행이 안되서 어떻게 해야할지 아시는분의 조언을 듣고자 합니다.
그리고. 해당 시스템은 다른 프로그램도 설치된 상태라서 업데이트하기가 곤란한 상황입니다.

superkkt의 이미지

여기를 참고해보세요.

http://doc.qt.nokia.com/latest/deployment.html

======================
BLOG : http://superkkt.com

shint의 이미지

문서를 보면서
static으로 하려다가 make 하다가 에러가 난 상황이고.....
share로 하려다가 지금 문제를 만나게 되었습니다...
Qt 배포하는게 저에겐 쉽지 않네요;;;;;

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

ydhoney의 이미지

아니 근데 일단 fedora 13이랑 rhel4 up7은 좀 궁합이 안 맞잖아요.

안그래도 rhel6가 나온 세상에 rhel4 계열의 뭔가를 만드시려고 한다는게 대단하긴 합니다만, 일단 빌드부터 새로 시작해야 안되겠습니까?

그 두 배포판은 버전 수준이 한참 다른데요. 이를테면 win xp와 win7 정도의 차이가 납니다.

shint의 이미지

Qt4를 rhel4 64비트'에서 빌드 못해서요.
일단. fedora13 64비트'에서 빌드를 한후에 실행파일만. rhel4 64비트'에서 배포하려고 했던거였어요.

하지만 결과는.
error while loading shared libraries
requires glibc 2.5 or later dynamic linker
invalid ELF header..... 로 나왔습니다.

하위버젼에서 배포하는 방법을 알고 싶은데 쉽지가 않네요.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

bushi의 이미지

불가능하다고 말해도 심한 과장은 아니고,
제한적으로... 그러니까 C 라이브러리등은 제외한다고 해도 굉장히 번거롭습니다.

Qt4 를 rhel4 에서 빌드할 수 없다는 말씀은 잘 와닿지가 않는데...
rhel4 면... 아마 Qt2 와 Qt3 가 설치될 것이고 디폴트는 QT3 쯤이겠죠.
fedora 용의 Qt4 패키지는 Qt3 와 Qt4 가 같이 설치되는 환경을 위해 만들어졌을테고,
frdora13 이면 Qt4 가 디폴트로 자리잡겠네요.
rpm 버전도 심하게 차이나니 spec 파일을 그냥 쓸 수 있을지도 의문이지만...
세심하게 만져주면 시스템에 설치해서 쫑나는 일은 없을거라 생각합니다.
버전이 좀 구리지만 누가 이미 해 놓은 것도 있네요.
http://redhawk.ccur.com/nuu/rhel4/src/ 참고해서 패키지 만들어보시고요.
최신버전에 대한 패치는 사용하고 계시는 fedora13 용의 패키지에서 찾아보시면 되겠습니다.

firefox 처럼 호스트를 좀 덜가리는 바이너리를 배포해보고 싶다면,
거의 크로스컴파일에 준하는 환경이 필요합니다.
libc 등의 라이브러리부터 시작해서 목표로잡고 있는 가장 낮은 버전으로 빌드환경부터 꾸미셔야하고,
컴파일러도 따로 준비하시는 것이 좋습니다. 3.4 가 인기죠.
그리고, 필요하다면 배포 패키지에 그 라이브러리들까지 포함시켜야 합니다.
런쳐 역할을 하는 스크립트도 잘 만드셔야 라이브러리 물고 올라갈테고요.

shint의 이미지

아.. Qt4 를 RHEL4_U7 에서 빌드할 수 없다는건.
Qt SDK for Linux/X11 64-bit** (530 MB) 버젼을 fedora13 64bit에서 ./configure -> make 한것이 에러가 나서 적은 말입니다.
물론. RHEL4_U7도 make 도중에 에러가 났습니다.

Qt libraries 4.7.1 for Linux/X11(202 MB) 버젼은 fedora13 64bit에서 ./configure -static -> make 한것이 빌드 되었지만.
Qt Creator에서 Qt4 invalid라며 make install 하라는 문구가 떠서 컴파일은 못하고 있는 상황입니다.
게다가.... make install이라고 치면. 오류가 뜨고요.

지금은 RHEL4_U7에서
Qt libraries 4.7.1 for Linux/X11(202 MB) 이 버젼이 빌드 되는지 확인 중입니다.
만약 된다면. 라이브러리만 참조해서 실행할 수 있을지도 테스트해볼 생각입니다.

fedora13 64bit에서 Qt4를 static으로 빌드한것을 RHEL4_U7에서 실행할 수 있을지도 확인해보려합니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

shint의 이미지

Qt libraries 4.7.1 for Linux/X11(202 MB)을 받은후
static compile 이 되더군요.

우연하게 성공한거 같습니다.
http://developer.qt.nokia.com/forums/viewthread/2891/

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.