jhbuild 사용하기..

joone의 이미지
새로운 소프트웨어를 빌드하고 실행해 보는 것은 상당히 흥미있는 일이지만, 기존 시스템에 상당한 변경을 가한다고 생각하면 별로 시도하고 싶은 생각이 들지 않을 것이다. GNOME Project에서도 내년 3월이면 GNOME Desktop의 새로운 버전인 GNOME3를 출시할 전망이다. 기존 GNOME Desktop을 완전히 뜯어 고친 새로운 형태인데, 설치하고 싶은 생각은 굴뚝같지만, 이를 설치하기 위해 관련 모듈 소스 코드를 받아서 빌드하려면 시간이 많이 걸릴 것이다. 게다가 GNOME3를 경험하려면, 아직 개발 중인 GNOME Shell을 기본 데스크탑 환경으로 사용해야 하는데, 부담이 좀 크다. 이 때, 필요한 것이 바로 jhbuild이다. 현재 사용하고 있는 시스템 환경에 영향을 주지 않고, 따로 빌드 환경을 구성해주고 소스 코드를 바로 다운로드 받아, 바로 빌드하도록 도와주는 툴이다. 의존성 있는 라이브러도 받아서 함께 빌드해주니 정말 편리하다.


jhbuild의 좋은 점이 무엇일까?

1. 모듈 세트로 소스코드를 다운로드 받아 configure, build, install이 가능
$ jhbuild build gtk+ 
gtk+관련 모듈을 다운로드 받아서 알아서 빌드한 후, ~/.jhbuildrc에 설정한 위치로 빌드된 파일을 설치해준다. 
2. 원하는 모듈을 버전 별로도 빌드 및 설치 가능

3. 시스템이 깨긋한 상태에서 모듈과 의존성 있는 모듈을 새롭게 소스코드 부터 받아서 설치까지 검증

4. 자동화 빌드 시스템 구축


컴퓨터가 빌드할 때면, 내가 일하는 것도 아닌데, 뭔가 내가 열심히 일하는 것 같은데, 만족감이 느껴질 때가 있다. 하지만, 비슷한 과정을 매번 반복하는 것은 성가스러운 일인데, jhbuild가 많은 부분을 해결해줘서 좋다. 툴은 툴일 뿐, jhbuid를 잘 사용하려면 이 역시 노력이  필요하다.


처음 jhbuild를 설치하고 주의할 점

.jhbuildrc 파일에 아래 두 줄을 추가해야 한다.
addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'lib', 'pkgconfig'))
addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'share', 'pkgconfig'))


이렇게 해야, /usr/lib에 설치된 다른 의존성 있는 모듈을 사용하여 빌드가 가능하다. png, tiff등까지 따로 설치할 필요는 없다.

참고


댓글

joone의 이미지

틀린 내용이나 팁으면 추가 바랍니다..
바로 git repository에서 최신 코드를 받아와서 그런지
생각보다 빌드 에러가 잘 나네요..

gnome shell 빌드 중입니다..

권순선의 이미지

흥미있네요. 개인적으로는 아주 재미있게 읽었는데 답글이 별로 없어서 위로 끌어올립니다. :-)

boram1288의 이미지

"jhbuid를 잘 사용하려면 이 역시 노력이 필요하다." 이거 완전 공감요.

grafika의 이미지

Mac OS X에서 GTK+를 설치할 때 아주 유용하게 썼던 기억이 있습니다.

복잡한 설치 과정을 세 줄 입력으로 끝내는 것이 아주 매력적이었습니다.

하지만, jhbuild도 잘 사용하려면 노력이 필요하다는 부분은 정말 공감합니다.

댓글 달기

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