본문 바로가기

IT/Tizen

[Tizen] 우분투 15.04에서 gbs 실행에러 처리

2015. 7. 1 현재,

타이젠 SDK는 우분투 14.04까지 공식지원합니다.

우분투 최신버전인 15.04는 차기 SDK에서 지원하겠죠.


이미 우분투 15.04를 설치하신 분은,

타이젠 툴을 설치하면서 에러를 마주하실지도 모릅니다.



안녕하세요, Tizen 개발자 윤진입니다.


우분투 15.04를 설치하고 타이젠 gbs 툴을 설치하였습니다.

gbs 설치는 아래 포스팅을 참고하시면 됩니다.

[Tizen] 우분투에 타이젠 플랫폼 툴인 gbs & sdb 설치해보기

[Tizen] 타이젠 gbs의 모든 것


하지만 gbs를 설치하고 실행하면 아래와 같은 에러를 마주하실 수 있습니다.

$ gbs
Traceback (most recent call last):
  File "/usr/bin/gbs", line 30, in <module>
    from gitbuildsys import cmd_build
  File "/usr/lib/pymodules/python2.7/gitbuildsys/cmd_build.py", line 33, in <module>
    from gitbuildsys.cmd_export import get_packaging_dir, config_is_true
  File "/usr/lib/pymodules/python2.7/gitbuildsys/cmd_export.py", line 34, in <module>
    from gbp.scripts.buildpackage_rpm import main as gbp_build
ImportError: No module named buildpackage_rpm


이 에러는 buildpackage_rpm 모듈이 없어서 발생합니다.

buildpackage_rpm 모듈은 tizen에서 제공하는 git-buildpackage-rpm(0.6.15 버전)에서 설치됩니다.

하지만, 같은 패키지(0.6.22 버전)가 우분투 15.04에도 정식 탑재되었죠.

안타깝게도 우분투에 설치된 gbp의 버전이 높지만, tizen.org에서 필요로 하는 기능은 없습니다.

따라서 우분투에 설치된 gbp를 downgrade해야합니다.


우분투의 특정 패키지를 downgrade를 하기 위해서는,

과거 한 시점으로 Pinning해서 그 시점의 패키지를 받도록 해야합니다.

간단한 설정파일을 하나 만들어주세요.

$ vi /etc/apt/preferences.d/tizen
Package: *
Pin: origin download.tizen.org
Pin-Priority: 1000

위처럼 만들어 놓으면, 타이젠에서 제공하는 패키지를 우선적으로 설치하게 됩니다.


이제 gbs를 위한 패키지를 설치할 차례입니다.

좀 전에 설정한 pinning을 아래처럼 반영합니다.

$ sudo apt-get update


그리고 필요한 패키지를 아래처럼 설치하면 됩니다.

생각보다 많은 패키지들이 다운그레이드됩니다.

$ sudo apt-get install deltarpm createrepo git-buildpackage-common git-buildpackage-rpm git-buildpackage osc
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다      
상태 정보를 읽는 중입니다... 완료
createrepo 패키지는 이미 최신 버전입니다.
createrepo 패키지 수동설치로 지정합니다.
deltarpm 패키지는 이미 최신 버전입니다.
deltarpm 패키지 수동설치로 지정합니다.
git-buildpackage 패키지는 이미 최신 버전입니다.
git-buildpackage-rpm 패키지는 이미 최신 버전입니다.
git-buildpackage-rpm 패키지 수동설치로 지정합니다.
osc 패키지는 이미 최신 버전입니다.
osc 패키지 수동설치로 지정합니다.
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  libatk-wrapper-java libatk-wrapper-java-jni libgconf2-4 libgif4 libice-dev
  libpthread-stubs0-dev libsm-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev
  libxt-dev python-dateutil python-deltarpm python-keyring python-secretstorage
  x11proto-core-dev x11proto-input-dev x11proto-kb-dev xorg-sgml-doctools xtrans-dev
Use 'apt-get autoremove' to remove them.
제안하는 패키지:
  python-notify zipmerge
다음 새 패키지를 설치할 것입니다:
  git-buildpackage-common
0개 업그레이드, 1개 새로 설치, 0개 제거 및 1개 업그레이드 안 함.
149개를 완전히 설치하지 못했거나 지움.
0 바이트/292 k바이트 아카이브를 받아야 합니다.
이 작업 후 3,944 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] y
경고: 다음 패키지를 인증할 수 없습니다!
  git-buildpackage-common
확인하지 않고 패키지를 설치하시겠습니까? [y/N] y


설치 직후부터 gbs를 사용하실 수 있습니다.

$ gbs
Usage: gbs [GLOBAL-OPTS] SUBCOMMAND [OPTS]
           ...

gbs - the command line tool for Tizen package developers

Global Options:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -c CONF, --conf CONF  specify config file for gbs
  -d, --debug           debug output
  -v, --verbose         verbose output

Subcommands:
  changelog (ch)        update the changelog file with the git commit messages
  remotebuild (rb)      remote build package
  devel                 Manage devel branches
  export (ex)           export files and prepare for build
  chroot (chr)          chroot to build root
  import (im)           import spec file/source rpm/tar ball to git repository
  clone (cl)            Clone a git repository
  createimage (cr)      create image using ks file
  submit (sr)           submit tag to gerrit and trigger building in OBS
  pull                  Update a package git repository
  build (lb)            local build package

Try 'gbs SUBCOMMAND --help' for help on a specific subcommand.


그럼 좋은 하루 보내세요~

끝_