unix에서 실행파일 배포는 어떻게 하나요?

siba555의 이미지

윈도우에서는 인스톨쉴드나 이노셋업등으로 셋업파일을 만들어서 배포하는걸로 아는데 유닉스에서는 어떻게 하나요 그냥 tar로 묶어서 배포하시나요?

실행파일을 배포할려고하는데 자세한 설명좀 해주시면 정말 감사하겠습니다.

feanor의 이미지

윈도우 인스톨러를 만드는 방법이 여럿 있는 것처럼 (말씀하신 것 외에도 NSIS나 WISE 같은 시스템이 있지요) 유닉스 환경도 마찬가지입니다.

1) 소스 배포
일반적인 방법입니다. 보통 ./configure; make; make install로 설치할 수 있도록 합니다. 그렇지 않은 경우 INSTALL 파일에 자세한 설명을 적으십시오.

2) 정적 링크
이미지나 글꼴 같은 부가적인 리소스 파일이 필요 없다면 C 라이브러리를 포함해서 전부 정적으로 링크해서 바이너리만 배포하는 방법이 있겠습니다. 크기가 커집니다. dietlibc 처럼 크기가 작은 C 라이브러리를 사용하는 경우 종종 쓰입니다.

3) 바이너리 tar
정적으로 링크된 바이너리나 잘 알려진 라이브러리만 사용하는 바이너리를 리소스 파일과 함께 tar로 묶어서 배포하고, tar를 아무 디렉토리에나 푼 뒤 ./run 같은 식으로 실행할 수 있도록 쉘 스크립트를 넣는 방법입니다. 디렉토리 경로가 하드코딩되지 않도록 주의해야 하고, /proc/self/exe를 읽거나 BinReloc을 사용하는 식으로 실행파일 경로를 알아내는 게 필요할 수도 있습니다.

4) makeself
makeself를 써서 쉘 스크립트 상태로 배포할 수 있습니다. 윈도우의 압축 실행파일과 비슷하다고 생각하시면 됩니다. 압축을 푼 뒤에 실행할 스크립트를 넣을 수도 있습니다. nVidia 드라이버가 이 방법을 사용합니다.
http://www.megastep.org/makeself/

5) 인스톨러
유닉스에도 Loki Setup이나 Bitrock InstallBuilder와 같이 윈도우 인스톨러 툴과 유사한 툴들이 있습니다. Mono 프로젝트에서 공식 인스톨러를 이 방법으로 배포합니다.
http://www.icculus.org/loki_setup/
http://www.bitrock.com/

6) 패키지
RPM이나 DEB 포맷으로 패키징을 하는 방법이 있습니다. 시스템 패키지가 아닌 경우에는 /opt 아래에 설치하는 것이 좋습니다. 오페라 웹 브라우저와 페도라 디렉토리 서버 등이 /opt 아래 설치하는 패키지로 배포됩니다.

Autopackage는 5와 6의 중간 쯤에 위치하는 방법입니다. 자세한 내용은 홈페이지를 참고하세요.
http://autopackage.org/

위와 같은 큰 갈래 외에도 세부사항으로 들어가면 알아야 할 내용이 많이 있습니다. 예를 들어, tar로 묶어서 배포하는 경우 압축을 풀면 현재 디렉토리에 풀리는 것이 아니라 "이름-버전"과 같은 형식의 새 디렉토리 아래에 풀리게 하는 것이 보통입니다. (그렇지 않으면 설치하는 사람들이 대단히 싫어합니다.) 쉘 스크립트의 경우 보통 확장자를 .bin으로 합니다. 텍스트 모드로 설치하는 경우에는 dialog 등을 써서 설치에 필요한 내용을 물어볼 수 있습니다. Sun Java나 Mozilla Firefox, OpenOffice.org 처럼 그냥 자기네가 인스톨러를 개발해서 쓰는 곳도 있습니다.

siba555의 이미지

이번에 unix시스템을 접하게되었는데 정말 무궁무진하네요..
많은 도움 되었습니다.

댓글 달기

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