바이너리 실행파일을 배포하려고 하는데요.

shodhpfooqmm의 이미지

안녕하세요.

C로 작성한 프로그램을 소스코드가 아닌 바이너리 실행파일을 배포하려고 하는데요,
Windows의 경우는 xp, vista, 7 등으로 나누어 각각 컴파일 후 배포하면 될 것 같은데요,

Linux의 경우 우분투, 페도라 등 많은 배포판이 있는데,
이럴 때는 우분투, 페도라 등의 버전이 아닌 Linux 버전을 기준으로 각각 다 컴파일 후 배포해야 되나요? 혹은 어떤 특정 배포판의 특정 버전에 대한 컴파일을 하면 되나요? (예를 들어 우분투 하나, 페도라 하나, 레드헷 하나)

되도록 간단히 배포하고 싶은데, 많이 쓰는 버전을 모두 설치 후 돌아가는지 테스트하기엔 시간이 부족합니다.
저는 구글링을 통해 http://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCEQFjAA&url=http%3A%2F%2Fkldp.org%2Fnode%2F36739&ei=q3NmT_azLomImQXY1cSGCA&usg=AFQjCNEWn9Tlmw5XLx50GKPyhhAcc4U_fA&sig2=L9-x7o0tnlm4ihDSqoTFaA 를 찾을 수 있었는데, 제가 생각하는 정보를 찾을 수 없었습니다.
혹시 리눅스의 각 버전별로 정리된 곳이 있을까요?

선배님들의 조언 부탁드립니다.

snowall의 이미지

리눅스 바이너리는 커널 버전만 신경쓰면 될 것이고, 그것도 아마 하위호환성이 있어서 작동 가능한 최소한의 커널 버전만 테스트하면 될 것 같네요.

배포판에 따라 달라지는건 바이너리가 아니라 패키지 방식이라고 생각합니다.

피할 수 있을때 즐겨라! http://melotopia.net/b

익명 사용자의 이미지

?? 디바이스 드라이버 모듈을 배포하는 거라면 커널 버전을 신경쓰면 되지만,

application 이라면 관련 라이브러리 호환을 모두 확인해야 합니다.

배포판 별로 호환 테스트를 한 후에 그 목록과 함께 배포하면 될 것 같습니다.

planetarium의 이미지

일단 deb과 rpm 두가지 형태를 준비해서 각각 우분투와 페도라 정도에서 테스트해보시면 기본은 된거라고 생각합니다.
필요한 라이브러리 목록을 다운로드 페이지에 명시해주고...

일례로 리눅스용 크롬 https://www.google.com/chrome/
우분투와 데비안을 위한 deb과, 페도라와 오픈수세를 위한 rpm, 각각 32/64bit 용으로
네가지 패키지를 지원하고, 나머지 배포판에 대해선 커뮤니티에 맡기고 있습니다.

shodhpfooqmm의 이미지

제 처음 생각은 그냥 실행 파일만 검사 후 배포하는 것이었는데요,
rpm 같은 툴을 사용하면 설치에 해당하는 작업을 자동으로 하는 게 맞나요? (제 경우는 실행파일 하나만 배포하는 것이라 이러한 툴을 사용하지 않아도 될 것 같은 생각이 듭니다.)

리눅스 배포판의 버전이 참 다양해 난감하네요..ㅠ

마잇의 이미지

배포하는 대상이 어떤 부류인가에 따라 좀 차이가 있을 수 있겠는데요.

불특정 다수에게 배포 하려면 deb, rpm 각각 i386, amd64 버전으로 준비 하셔야 사용자들의 접근 장벽이 좀 수월하겠습니다. 최소한 각 배포본의 최근 안정 버전에서는 테스트해서 잘 도는지 확인은 해보셔야 됩니다.

'이건 웬만큼 리눅스 경험 있는 사용자들이나 사용할 법한 프로그램이다' 싶으면 실행 파일 하나라고 하셨으니 타르볼 정도만 배포하셔도 큰 문제는 없습니다. 다만 어떤 라이브러리(패키지) 버전 몇 이상이 필요하다 이런 정보는 적어 주시는 게 좋습니다.

rpm 사용하는 배포본은 거의 안써봐서 분위기를 잘 모르겠구요 우분투(deb)의 경우에는 ppa를 이용한 배포가 대세입니다. ppa는 우분투에서 운영하는 독립적인 저장소 서비스 입니다. Personal Package Archive. 저도 어설피 알고 있는 거지만 요기다가 계정 만들어서 deb 형식에 맞춰 소스 패키지를 올리면 지정한 배포본 버전, 아키텍쳐별로 빌드해서 유효한지 검사해주고 사용자들은 이 저장소들을 각자 추가해서 설치할 수 있습니다. 개발자가 새 버전을 PPA에 올리면 등록한 사용자들은 업데이트가 자동으로 된다는 게 큰 장점입니다. 공식 저장소에 있는 패키지지만 최신 버전으로 유지 하고 싶거나 아직 공식 저장소에 등록되지 않은 패키지들이 PPA를 많이 이용합니다.

sudo add-apt-repository ppa:jconti/recent-notifications
sudo apt-get update && sudo apt-get install indicator-notifications

요런식으로 추가 합니다. 복사해서 터미널에 붙여 넣으면 끝이니까 상당히 편하죠. 이후에 업데이트도 지원 되구요.

프로그램이나 패키지 한 번도 안 만들어본 사용자의 의견이니 기술적인 부분은 너무 신뢰하지 마세요. 우분투 사용자들 설치 진입 장벽 낮출려면 PPA는 필수 입니다. 요건 확실해요 ~.~


--
마잇

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.