명령 참고

JHBuild는 CVS와 같은 도구의 명령행 문법을 활용합니다:

jhbuild [global-options] command [command-arguments]

JHBuild 전역 옵션은 다음과 같습니다:

-f, --file config

~/.config/jhbuildrc 기본 파일 대신 다른 설정 파일을 사용합니다.

-m, --moduleset moduleset

설정 파일에 있는 모듈 세트 대신 다른 모듈 세트를 활용합니다. 이 옵션 값은 JHBuild moduleset 폴더에 있을 경우 상대 경로, 다른 위치에 있을 경우 절대 경로입니다.

--no-interact

사용자로부터 어떤 입력도 받지 않습니다. 이 옵션은 의도치 않게 빌드 현장을 떠날 경우 빌드가 어떤 문제로 인해 멈췄는지 확인하는 용도로 활용할 수 있습니다.

--exit-on-error

모듈 빌드에 실패하면 빠져나가는 옵션입니다. JHBuild가 비대화식 모드에서 어떤 추가 모듈을 계속 빌드하지 않고 멈추는지 여부를 확인하난 용도로 활용할 수 있습니다.

--conditions

운영체제와 jhbuildrc의 지정값을 기반으로 결정하기보단 다른 설정 플래그를 사용하도록 수정합니다. 상태를 제거하거나 추가할 목적으로 -wayland 또는 +docs와 같은 식으로 지정할 수 있습니다. --conditions=+docs,-wayland 또는 --conditions 인자를 여러번 지정하는 식으로 나누어 여러 수정 옵션을 설정할 수 있습니다.

게다가, JHBuild에서는 다음 환경 변수의 존재 여부 및 값을 확인합니다:

JHBUILD_RUN_AS_ROOT

기본적으로 전체 시스템에 영향을 줄 수 있는 치명적 동작을 막으려 루트 사용자 권한으로는 동작하지 않습니다. 그러나 일부 경우에 한해 JHBuild를 루트 권한으로 실행할 수는 있습니다. 컨테이너 내부에서나 연속 통합 환경일 경우에 해당합니다. JHBUILD_RUN_AS_ROOT 환경 변수를 설정하면 시작시 사용자 ID 검사를 하지 않습니다.

명령별 옵션은 다음과 같습니다.

5.1. autobuild

autobuild 명령은 설정 파일에 지정한대로 모듈을 자동으로 빌드하고 결과를 JhAutobuild에 업로드합니다.

jhbuild autobuild [--autogen] [--clean] [--distcheck] [--skip=module...] [--start-at=module] [--report-url=reporturl] [--verbose]

--autogen, --clean, --distcheck, --skip, --start-at 옵션은 build 명령에서와 동일하게 처리합니다.

--report-url=reporturl, -r reporturl

이 옵션은 보고서를 제출할 JhAutobuild URL을 지정합니다.

--verbose, -v

이 옵션을 지정하면 JHBuild 출력 내용이 많아집니다.

5.2. bootstrap

bootstrap 명령은 빌드 유틸리티 모음을 설치합니다. 빌드 유틸리티에는 autoconf, automake 같은 프로그램이 있습니다. 배포판의 패키지 관리 시스템으로 빌드 유틸리티를 설치하시는게 좋습니다. bootstrap 명령은 Mac OS와 같은 배포판 패키지 관리 시스템에서 빌드 유틸리티를 제공하지 않을 경우에만 사용하십시오.

jhbuild bootstrap

bootstrap 명령은 build명령과 마찬가지 방식으로 모듈을 빌드하지만, bootstrap.modules 모듈 세트를 활용합니다.

가용 옵션 내용은 build 명령 문서에서 살펴보십시오.

5.3. build

build 명령은 하나 이상의 패키지와 관련 모듈을 빌드합니다.

jhbuild build [--autogen] [--clean] [--check] [--dist] [--distcheck] [--distclean] [--ignore-suggests] [--no-network] [--skip=module...] [--start-at=module] [--tags=tags] [-D date] [--no-xvfb] [--try-checkout] [--no-poison] [--force] [--build-optional-modules] [--min-age=time] [--nodeps] [module...]

명령행에 지정한 모듈 이름이 없을 경우, 설정 파일의 modules 목록을 활용합니다.

-a, --autogen

모듈 빌드 전 항상 autogen.sh 스크립트를 실행합니다.

-c, --clean

모듈을 빌드하기 전 make clean을 실행합니다.

--check

모듈을 빌드한 후 make check 명령을 실행합니다.

-d, --dist

모듈을 빌드한 후 make dist 명령을 실행합니다.

--distcheck

모듈을 빌드한 후 make distcheck 명령을 실행합니다.

--distclean

git 모듈에 대해서는 모듈을 빌드하기 전 git clean -dfx 명령을, 다른 모듈에 대해서는 모듈을 빌드하기 전 make distclean 명령을 실행합니다.

이 옵션은 제출하지 않은 바뀐 내용을 삭제합니다.

--ignore-suggests

약 의존성 관계는 빌드하지 않습니다.

-n, --no-network

모듈을 빌드할 때 네트워크에 연결하지 않습니다. 빌드할 때 다운로드 또는 업데이트 과정을 건너뜁니다. 네트워크에 연결하지 않고서 모듈을 빌드할 수 없다면 모듈 빌드에 실패합니다.

-s, --skip=module,...

목록의 모듈을 빌드하지 않습니다. 특정 의존 관계 요소 빌드를 건너뛸 때 사용합니다.

--tags=tag,...

tag에 일치하지 않는 모듈을 무시합니다. 모듈은 모듈의 모듈 세트 이름과 일치하는 태그를 속성 값으로 갖습니다.

-t, --start-at=module

목록 시작 항목부터 진행하기보단 이름으로 지정한 모듈부터 시작합니다. 빌드가 멈추었을 경우에 활용할 수 있습니다.

-D date

버전 관리 시스템에서 지원할 경우 빌드하기 전 지정 날짜로 소스 트리를 업데이트합니다. "2009-09-18 02:32Z"와 같은 ISO 날짜 형식으로 지정해야합니다.

-x, --no-xvfb

Xvfb 시뮬레이션 환경을 사용하기보단 실제 X 서버에서 그래픽 동작 시험을 수행합니다.

-C, --try-checkout

빌드에 실패했을 때 버전 관리 시스템에서 지원할 경우, 빌드를 다시 진행해보기 전 강제로 체크아웃을 수행하고 autogen.sh 스크립트를 실행합니다.

-N, --no-poison

하나 이상의 모듈 관련 요소 빌드에 실패했을 경우 이 옵션은 JHBuild로 하여금 모듈을 무조건 빌드하게 합니다.

-f, --force

정책상 불필요하더라도 모듈을 빌드합니다.

--build-optional-modules

이 옵션에 추가 의존 요소로 지정한 모듈은 꼭 빌드할 필요는 없습니다. 이 옵션에서는 JHBuild에 추가 의존 요소를 무조건 빌드하도록 합니다.

--min-age=time

지정 상대 시간보다 최근에 설치한 모듈은 건너뜁니다. time 문자열은 단위가 숫자 뒤에 따라붙는 형식입니다. 초(s), 분(m), 시간(h), 일(d) 단위를 사용할 수 있습니다. 이를테면 --min-age=2h 옵션은 2시간 이내에 필드한 모듈은 건너뜁니다.

--nodeps

빠진 시스템 의존 요소는 무시합니다. 단일 시스템 의존 요소를 무시하려면 skip 변수에 모듈을 추가하십시오.

5.4. make

make 명령은 실제로 개발중인 모듈에 한합니다. 현재 디렉터리에 소스를 우선 체크아웃해야 하며, 이 명령은 buildone -nf $(basename $(pwd)) 명령과 동일한 동작을 수행합니다.

jhbuild make [--clean] [--check] [--distcheck] [--quiet]

buildone 명령의 옵션과 동일합니다.

5.5. buildone

buildone 명령은 build 명령과 유사하나 의존 모듈을 빌드하지 않는 차이점이 있습니다. 하나 이상의 모듈을 다시 빌드할 경우 활용합니다.

jhbuild buildone [--autogen] [--clean] [--check] [--distcheck] [--distclean] [--no-network] [-D date] [--no-xvfb] [--force] [--min-age=time] [--nodeps] module...

--autogen, --check, --clean, -d, --distcheck, --distclean, --no-network, -D, -x, --nodeps 옵션은 build 명령에서와 동일하게 처리합니다.

최소한 하나의 모듈을 명령행에 지정해야합니다.

5.6. checkbranches

checkbranches 명령은 버전 관리 시스템에서 제대로 정의한 모듈의 브랜치를 가져오며 브랜치는 모듈 세트에 대해 늘 존재합니다.

jhbuild checkbranches [--branch=branch...]
--branch=branch, -b branch

branch는 가져올 대상입니다.

$ jhbuild -m gnome-2.20 checkbranches
libgnomecanvas is missing branch definition for gnome-2-20
$

5.7. clean

명령은 하나 이상의 모듈의 빌드 디렉터릴르 정리합니다.

jhbuild clean [--skip=module...] [--start-at=module]

명령행에 지정한 모듈 이름이 없을 경우, 설정 파일의 modules 목록을 활용합니다.

가용 옵션에 대한 설명은 build 명령 문서에서 살펴보십시오.

5.8. dot

dot 명령은 모듈 세트간 관계를 설명하는 방향성 그래프 파일을 만듭니다. 이 파일은 다이어그램을 만드는 GraphViz 프로그램에서 처리해서 만듭니다.

jhbuild dot [--soft-deps] [--clusters] [module...]

명령행에 지정한 모듈 이름이 없을 경우, 설정 파일의 modules 목록을 활용합니다.

--soft-deps 옵션은 약 의존성 관계를 가진 모듈에 점선을 추가합니다. --clusters 옵션은 metamodules에서 지정한 모듈을 한데 묶어 보여줍니다.

dot 명령 출력 결과는 포스트스크립트 파일을 만드는 dot 유틸리티로 내보낼 수 있습니다:

$ jhbuild dot modules | dot -Tps > dependencies.ps

또는 PNG 이미지로도 가능합니다:

$ jhbuild dot modules | dot -Tpng > dependencies.png
그림 1JHBuild dot 출력 예제

5.9. gui

gui 명령은 모듈을 빌드하고 옵션 값을 바꾸는 JHBuild 그래픽 인터페이스를 시작합니다.

jhbuild gui

그래픽 인터페이스는 GTK로 표현하므로 추가 지원 라이브러리가 필요합니다.

5.10. info

info 명령은 하나 이상의 모듈 정보를 보여줍니다.

jhbuild info [--installed] [module...]

명령에서는 모듈 이름, 형식, 의존 관계, 의존 패키지, 소스 디렉터리, JHBuild로 설치한 최근 날짜를 나타냅니다. 가능하다면 CVS 저장소나 다운로드 URL에 해당하는 정보도 나타낼 수 있습니다.

지정한 모듈이 없다면 명령은 모듈셋에 정의한 모든 모듈 정보를 보여줍니다.

--installed 옵션을 선택하면 설치한 패키지 내용만 따로 걸러서 보여줍니다. 실제 jhbuild로 빌드하고 설치한 모듈만 나타냅니다. 출력 내용에서는 시스템 의존 요소는 없습니다.

--installed 옵션을 하나 이상의 모듈 이름과 함께 지정했다면 해당 설치 모듈(시스템 의존 요소는 제외) 정보만을 출력합니다. 최소한 하나의 모듈 마저도 설치하지 않았다면 1 값을 반환하며 명령을 끝냅니다.

5.11. list

list 명령은 build 명령이 빌드할 모듈 목록을 확장해서 보여줍니다.

jhbuild list [-a] [-r] [-s] [--start-at=module] [--tags=tags] [--ignore-suggests] [--list-optional-modules] [module...]

명령행에 지정한 모듈 이름이 없을 경우, 설정 파일의 modules 목록을 활용합니다.

--skip, --start-at, --tags, and --ignore-suggests 옵션은 build 명령에서와 동일하게 처리합니다.

-a, --all-modules

빌드 의존 관계와 상관 없이 모듈 세트의 모든 모듈을 나열합니다.

-r, --show-revision

모듈이 브랜치 모음이라면 모듈 이름과 브랜치 이름을 함께 보여줍니다.

--list-optional-modules

이 옵션은 JHBuild가 무조건 추가 의존 요소를 보여주게합니다.

5.12. rdepends

rdepends 명령은 모듈의 역 의존 관계를 나타냅니다.

jhbuild rdepends [module]
--dependencies

모듈의 의존 경로를 나타냅니다.

--direct

지정 모듈에 따라 직접적 의존 관계를 가진 모듈만 표시하도록 제한합니다.

5.13. run

run 명령은 모듈을 빌드할 때 JHBuild에서 활용하는 동일한 환경을 지정 명령이 활용하도록 합니다.

jhbuild run [--in-builddir] [--in-checkoutdir] program [argument...]

그놈을 빌드할 때 JHBuild를 활용할 경우, 이 명령으로 X 시작 스크립트에 활용할 수 있습니다.

--in-builddir=module

지정 모듈의 빌드 디렉터리에서 명령을 실행합니다.

--in-checkoutdir=module

지정 모듈의 소스 디렉터리에서 명령을 실행합니다.

5.14. sanitycheck

sanitycheck 명령은 빌드 환경이 양호한지 여러번에 걸쳐 검사를 수행합니다.

jhbuild sanitycheck

검사 대상 일부는 다음과 같습니다:

  • 체크아웃 대상 디렉터리와 설치 대상 디렉터리에 기록할 수 있는가.

  • 필요한 빌드 도구를 설치했는가.

  • 보통 쓰는 일부 매크로는 다양한 automake 버전에서 쓸 수 있는 aclocal 명령의 검색 경로에 있습니다.

  • XML 카탈로그에는 닥북 DTD와 스타일시트가 있습니다.

5.15. shell

shell 명령은 JHBuild가 모듈을 빌드할 때 활용한 바로 그 동일한 환경의 사용자 쉘을 시작합니다.

jhbuild shell

이 명령은 다음 명령과 동일합니다:

$ jhbuild run $SHELL

쉘을 활성화했다면 UNDER_JHBUILD 환경 변수 값이 "true"가 됩니다. jhbuild에서 제어하는 셸임을 나타내도록 셸 프롬프트 개별 설정 여부를 나타낼 때 사용할 수 있습니다. 예를들면 이 환경 변수는 .bashrc에 넣으시면 됩니다:

	if [ -n "$UNDER_JHBUILD" ]; then
	    PS1="[jhbuild] $PS1"
	fi
      

위 코드로, jhbuild 환경임을 쉽게 알 수 있도록 배시 쉘 일반 프롬프트 앞에 [jhbuild]를 나타냅니다.

5.16. sysdeps

sysdeps 명령은 다음 항목을 나타냅니다:

  1. 빌드에 사용한 시스템 패키지 목록. JHBuild는 이 모듈을 빌드하지 않으며, 대신 시스템 패키지를 활용하도록 선택합니다.

  2. 필요 패키지 목록. 패키지 빌드를 시작하려면 시스템에 있어야합니다.

  3. 추가 패키지 목록. 관련 시스템 패키지를 찾을 수 없거나 너무 오래됐을 경우입니다. JHBuild에서 이 모듈을 빌드합니다. partial_build 옵션을 False 값으로 설정하면 추가 패키지를 나타내지 않습니다.

jhbuild sysdeps [--install]
--install

이 옵션은 모듈 세트의 의존 관계에 있는 시스템 패키지를 설치합니다. 배포판에 따라 다릅니다. 시스템 패키지는 가능할 경우 PackageKit 프로그램으로 설치합니다. DebianUbuntu의 경우 APT를 사용합니다. 이 옵션을 사용하려면 apt-file 프로그램을 설치해야합니다.

예제 1sysdeps 예제
$ jhbuild sysdeps
System installed packages which are new enough:
  speex (speex.pc required=1.2rc1, installed=1.2rc1)
  lcms2 (lcms2.pc required=2.2, installed=2.2)
...
Required packages:
  System installed packages which are too old:
    (none)
  No matching system package installed:
    zlib (zlib.pc required=1.2)
Optional packages: (JHBuild will build the missing packages)
  System installed packages which are too old:
    WebKit (webkitgtk-3.0.pc required=1.5.1, installed=1.4.0)
    ...
  No matching system package installed:
    pulseaudio (libpulse.pc required=2.0)
    ...

5.17. tinderbox

tinderbox 명령은 build 명령과 비슷하지만, 터미널 출력을 웹사이트에 공개하는데 적합한 HTML 파일로 기록합니다. 모질라 틴더박스 또는 데비안의 buildd와 같은 시스템을 구축했을 때 이 명령을 활용할 수 있습니다.

jhbuild tinderbox [--autogen] [--clean] [--distclean] [--no-network] [--output=directory] [--skip=module...] [--start-at=module] [-D date] [-C] [-N] [-f] [--nodeps] [module...]

--autogen, --clean, --distclean, --no-network, --skip, --start-at, -D, -C, -N, -f, --nodeps 옵션은 build 명령에서와 동일하게 처리합니다.

-o, --output=directory

HTML 파일을 기록할 디렉터리입니다. JHBuild에서는 인덱스 파일(index.html)과 각 모듈별 HTML 파일을 만듭니다.

5.18. uninstall

uninstall 명령은 하나 이상의 설치 모듈을 제거합니다.

jhbuild uninstall module...

5.19. update

update 명령은 build 명령과 비슷하나, 모듈을 빌드하지 않고 다운로드하거나 모듈 소스 코드를 업데이트하는 과정만 진행합니다.

jhbuild update [--skip=module...] [--start-at=module] [--tags=tags] [--ignore-suggests] [-D date] [module...]

--skip, --start-at, --tags, --ignore-suggests and -D 옵션은 build 명령에서와 동일하게 처리합니다.

5.20. updateone

updateone 명령은 update 명령과 유사하나, 의존 관계에 있는 모듈은 업데이트하지 않습니다. 하나 이상의 모듈을 업데이트할 경우 활용할 수 있습니다.

jhbuild updateone [-D date] module...

-D 옵션은 build 명령에서와 동일하게 처리합니다.

최소한 하나의 모듈을 명령행에 지정해야합니다.