Equery/ko

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Equery and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎italiano • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

equery는 여러 일반 포티지 동작을 단순하게 만든 도구입니다. 다른 동작을 수행하며, 꾸러미 의존성, 메타데이터, 설치 파일을 보여줄 수 있습니다.

설치

Emerge

equeryapp-portage/gentoolkit 꾸러미로 설치하는 도구모음의 일부입니다:

root #emerge --ask app-portage/gentoolkit

equery 또는 다른 도구 설치 방법을 알아보려면 Gentoolkit 게시글을 찾아보십시오.

사용법

도입부

equery는 시스템에 설치한 꾸러미의 유용한 정보를 보여주는 도구입니다. equery는 모듈 시스템을 기반으로 합니다. 모든 모듈은 약어 이름을 지니고 있습니다. 예를 들어 equery l gcc 명령은 equery list gcc 명령과 동일한 동작을 실행합니다. --help 옵션(equery --help) 은 사용할 수 있는 모든 모듈 목록과 약어 이름을 출력합니다. 이 명령에 모듈 이름(equery --help module) 을 추가하면 지정 모듈의 도움말 화면을 보여줍니다. 마지막으로 man equery 명령을 실행하면 존재하는 모듈의 자세한 설명을 보여주며 일부 유용한 명령 예제를 제시하기도 합니다.

다음은 모듈이 주로 하는 역할의 기능을 보여줍니다.

user $equery --quiet list gcc
sys-devel/gcc-4.3.2-r3
user $equery --quiet list sys-devel/gcc
sys-devel/gcc-4.3.2-r3
user $equery --quiet list '>=sys-devel/gcc-4'
sys-devel/gcc-4.3.2-r3

emerge 와 비슷한 equery는 꾸러미 이름 일부를 이해하지는 못합니다:

user $equery check zilla
!!! No package found matching zilla

emerge와는 달리 equery는 shell 처럼 분류 및 꾸러미 이름에 별도의 검색식을 넣을 수 있습니다:

user $equery check '*zilla*'
 * Checking www-client/mozilla-firefox-3.0.14 ...
    90 out of 90 files passed
user $equery check www-c*/*
 * Checking www-client/links-2.2 ...
   30 out of 30 files passed
 * Checking www-client/mozilla-firefox-3.0.14 ...
   90 out of 90 files passed

대부분의 equery 모듈은 여러 입력 값을 가집니다:

user $equery hasuse sse sse2
 * Searching for USE flag sse ...
[IP-] [  ] media-libs/flac-1.2.1-r3 (0)
[IP-] [  ] media-libs/speex-1.2_beta3_p2 (0)
  
 * Searching for USE flag sse2 ...
[IP-] [  ] dev-libs/openssl-0.9.8k (0)
[IP-] [  ] x11-libs/pixman-0.16.0 (0)

몇가지 모듈은 완전한 정규 표현식을 허용합니다:

user $equery -q list --portage-tree --full-regex '[kr]?flickr.*'
dev-dotnet/flickrnet-bin-2.2
dev-ruby/flickr-1.0.2-r1
dev-ruby/flickr-1.0.2-r2
dev-ruby/rflickr-20060201
media-gfx/kflickr-0.6
[...]
참고
equery의 수많은 이전 옵션을 파일 검색식으로 바꿉니다. 예를 들자면 각 세트의 모든 꾸러미에 대한 동작을 지시한다면 '*' (asterisk)를 사용합니다. 분류의 모든 꾸러미에 대해 동작을 지시한다면 'category-name/*'를 사용합니다.
경고
별표나 부등호 같은 특별한 쉘 문자를 사용한다면 따옴표 입력을 잊지 마십시오.

이 문서의 다음 몇 부분에서는 제각기 다른 equery 의 모듈을 간단하게 소개합니다.

기능

모든 equery 기능 목록을 보려면 인자를 붙이지 말고 실행하십시오:

user $equery
Gentoo package query tool
Usage: equery [global-options] module-name [module-options]
 
modules (short name)
 (b)elongs               list what package FILES belong to
 (c)hanges               list changelog entries for ATOM
 chec(k)                 verify checksums and timestamps for PKG
 (d)epends               list all packages directly depending on ATOM
 dep(g)raph              display a tree of all dependencies for PKG
 (f)iles                 list all files installed by PKG
 h(a)s                   list all packages for matching ENVIRONMENT data stored in /var/db/pkg
 (h)asuse                list all packages that have USE flag
 ke(y)words              display keywords for specified PKG
 (l)ist                  list package matching PKG
 (m)eta                  display metadata about PKG
 (s)ize                  display total size of all files owned by PKG
 (u)ses                  display USE flags for PKG
 (w)hich                 print full path to ebuild for PKG

별칭

equery 를 다루는 일반 접근 방식은 별칭을 만드는 것이며, 배시를 사용한다면 보통 명령 별칭을 ~/.bashrc 파일에 넣을 수 있습니다:

파일 ~/.bashrc
alias eqf='equery f'
alias equ='equery u'
alias eqh='equery h'
alias eqa='equery a'
alias eqb='equery b'
alias eql='equery l'
alias eqd='equery d'
alias eqg='equery g'
alias eqc='equery c'
alias eqk='equery k'
alias eqm='equery m'
alias eqy='equery y'
alias eqs='equery s'
alias eqw='equery w'

belongs (b) 옵션으로 파일이 들어있는 꾸러미 찾기

user $equery belongs -e /usr/bin/glxgears
 * Searching for /usr/bin/glxgears ...
 x11-apps/mesa-progs-7.5.1 (/usr/bin/glxgears)

belongs 옵션은 -f 옵션으로 제시한 정규 표현식과 일치하는 파일을 검색할 수 있습니다. -e 옵션은 일치하는 항목을 찾았을 경우 검색을 멈춥니다. 어떤 파일도 꾸러미 둘에서 동시에 소유하는 일은 없어야 하므로 안전한 최적화를 할 수 있습니다.

belongs의 약어 버전 (b)도 사용할 수 있습니다. 예를 들어 equery가 어떤 꾸러미에 속했는지 보려면:

user $equery b equery
 * Searching for equery ... 
app-portage/gentoolkit-0.3.0.8-r2 (/usr/lib/python-exec/python2.7/equery)
app-portage/gentoolkit-0.3.0.8-r2 (/usr/lib64/python3.3/site-packages/gentoolkit/test/equery)
app-portage/gentoolkit-0.3.0.8-r2 (/usr/bin/equery -> ../lib/python-exec/python-exec2)
app-portage/gentoolkit-0.3.0.8-r2 (/usr/lib64/python2.7/site-packages/gentoolkit/equery)
app-portage/gentoolkit-0.3.0.8-r2 (/usr/lib/python-exec/python3.3/equery)
app-portage/gentoolkit-0.3.0.8-r2 (/usr/lib64/python2.7/site-packages/gentoolkit/test/equery)
app-portage/gentoolkit-0.3.0.8-r2 (/usr/lib64/python3.3/site-packages/gentoolkit/equery)

changes (c) 로 ChangeLog 항목 보기

changes 옵션은 꾸러미 버전 또는 버전의 일정 범위의 ChangeLog를 볼 수 있게 합니다. emerge --sync 명령을 실행하고 나서 포티지는 업그레이드할 내용을 알려주는 메시지를 출력합니다. 어떤 점이 바뀌었는지 살펴보는 명령은 다음처럼 사용할 수 있습니다:

user $equery changes portage
*portage-2.1.6.13 (03 May 2009)
  
  03 May 2009; Zac Medico <zmedico@gentoo.org> +portage-2.1.6.13.ebuild:
  2.1.6.13 bump. This fixes bug #268398 (document econf automatic die)
  and bug #267104 (handle insufficient space interaction with userfetch).
  Bug #268228 tracks all bugs fixed since 2.1.6.11.

check(k) 옵션으로 꾸러미 무결성 확인하기

때로는 꾸러미의 무결성을 검사하는데 유용합니다. equery에서는 MD5 검사합을 통해 꾸러미가 깨졌는지, 바뀌었는지, 제거됐는지 나타내는 타임 스탬프를 활용하여 검증할 수 있습니다.

user $equery check gentoolkit
 * Checking app-portage/gentoolkit-0.3.0_rc7 ...
   71 out of 71 files passed

depends (d) 옵션으로 꾸러미에 의존하는 모든 꾸러미 찾아보기

시스템에 왜 꾸러미를 설치했는지 궁금하시죠? equerydepends 옵션을 통해 의존 꾸러미 목록을 알려줄 수 있습니다. 간접 의존성 목록을 보함하려면 -D 옵션을 사용하십시오.

user $equery depends pygtk
 * Searching for pygtk ...
app-admin/pessulus-2.24.0 (>=dev-python/pygtk-2.6.0)
app-editors/gedit-2.24.3 (python ? >=dev-python/pygtk-2.12)
dev-libs/libgweather-2.24.3 (python ? >=dev-python/pygtk-2)
dev-python/gnome-python-base-2.22.3 (>=dev-python/pygtk-2.10.3)
dev-python/gnome-python-desktop-base-2.24.1 (>=dev-python/pygtk-2.10.3)
[...]

두번째 예제에서는 udev에 직접 의존하는 모든 꾸러미를 보여줍니다:

user $equery d udev
sys-auth/consolekit-0.4.5_p20120320 (acl ? >=sys-fs/udev-146-r1)
sys-fs/cryptsetup-1.4.1 (>=sys-fs/udev-124)
                        (>=sys-fs/udev-182[static-libs])
                        (<=sys-fs/udev-171-r6)
sys-fs/lvm2-2.02.88 (>=sys-fs/udev-151-r4)
virtual/dev-manager-0 (sys-fs/udev)
x11-libs/cairo-1.10.2-r2 (drm ? >=sys-fs/udev-136)
참고
이 출력내용에는 위에서 보신 바와 같이 (acl ? >=sys-fs/udev-146-r1)acl 처럼 해당 USE 플래그를 직접 활성화하지 않아도 USE 플래그로 설정 관리하는 추가 의존 설정이 있습니다. USE 플래그를 활성화했을 때만 해당 꾸러미와 의존 관계를 가집니다..

depgraph (g) 옵션으로 의존성 그래프 가져오기

depgraphdepends의 반대 개념입니다. 의존 관계에 있는 꾸러미(해당 꾸러미에 의존하는 ebuild는 아님)의 모든 ebuild를 찾습니다. 의존 관계에 있는 꾸러미를 찾으면 해당 꾸러미의 의존 관계에 있는 모든 요소를 뒤집니다. 트리 깊이를 설정하려면 --depth 옵션을 사용하십시오.

user $equery depgraph mozilla-firefox
 * Searching for mozilla-firefox ...
 * dependency graph for www-client/mozilla-firefox-2.0.0.19:
`-- www-client/mozilla-firefox-2.0.0.19
 `-- virtual/jre-1.6.0 (virtual/jre) [java]
  `-- virtual/jdk-1.6.0 (virtual/jdk-1.6.0*)
  `-- dev-java/icedtea6-bin (unable to resolve: package masked or removed)
   `-- dev-java/sun-jdk-1.6.0.15
    `-- dev-java/java-sdk-docs-1.6.0.10 [doc]
     `-- app-arch/unzip-6.0-r1
      `-- app-arch/bzip2-1.0.5-r1 [bzip2]
    `-- sys-libs/glibc-2.9_p20081201-r2
     `-- sys-devel/gettext-0.17 [nls]
      `-- virtual/libiconv-0 (virtual/libiconv)
[...]

java USE 플래그를 설정했을 때 어떻게 jre직접 의존 관계에 놓여있고 jdk간접 의존 관계에 놓여있는지 확인할까요?

files (f) 옵션으로 꾸러미로 설치한 파일 보기

equeryfiles 모듈을 통해 ebuild에서 설치한 모든 파일을 볼 수 있습니다. 알아보기 쉬운 디렉터리 배치 형식으로 보려면 --tree 옵션을 사용하십시오. 일부 형식의 파일만 찾아보려면 --filter 옵션을 사용하십시오. 예를 들어 설치한 실행 가능 파일만 보려면 --filter=cmd 옵션을, 또는 설정 파일 위치만 재빠르게 찾아보려면 --filter=conf 옵션을 사용해보십시오.

user $equery files --tree gentoolkit
 * Searching for gentoolkit ...
 * Contents of app-portage/gentoolkit-0.3.0_rc7:
 /etc
   > /eclean
      + distfiles.exclude
      + packages.exclude
   > /env.d
      + 99gentoolkit-env
   > /revdep-rebuild
      + 99revdep-rebuild
 /usr
   > /bin
      + eclean
      + eclean-dist -> eclean
      + eclean-pkg -> eclean
      + epkginfo
      + equery
      + eread
      + euse
      + glsa-check
      + revdep-rebuild
   > /lib
      > /python2.6
         > /site-packages
            > /gentoolkit
            + gentoolkit-0.3.0_rc7-py2.6.egg-info
               + __init__.py
               > /equery
                  + __init__.py
                  + belongs.py
                  + changes.py
                  + check.py
                  + depends.py
                  + depgraph.py
                  + files.py
[...]

또 다른 예를 들자면, media-sound/ncmpcpp 에서 설치한 모든 파일을 보려면:

user $equery f ncmpcpp
 * Searching for ncmpcpp ...
 * Contents of media-sound/ncmpcpp-0.5.10:
/usr
/usr/bin
/usr/bin/ncmpcpp
/usr/share
/usr/share/bash-completion
/usr/share/bash-completion/ncmpcpp
/usr/share/doc
/usr/share/doc/ncmpcpp-0.5.10
/usr/share/doc/ncmpcpp-0.5.10/AUTHORS.bz2
/usr/share/doc/ncmpcpp-0.5.10/NEWS.bz2
/usr/share/doc/ncmpcpp-0.5.10/config.bz2
/usr/share/doc/ncmpcpp-0.5.10/keys.bz2
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/ncmpcpp.1.bz2

다른 모듈과 추가 명령 줄 플래그 설명은 equery man page (man equery)에서 찾을 수 있습니다.

hasuse (h) 옵션으로 꾸러미의 개별 USE 플래그 살펴보기

hasuse 옵션은 제시한 USE 플래그로 빌드한 꾸러미를 찾는데 사용할 수 있습니다. hasuse 옵션은 플래그를 활성화 했는지 여부는 나타내지 않습니다. 다만, ebuild에 요청 플래그가 있는지 목록만 출력합니다. 관련 정보 또는 사용 요령을 더 알아보려면 equery 맨 페이지의 hasuse 예제 섹션을 살펴보십시오.

user $equery hasuse qt3 qt4
 * Searching for USE flag qt3 ...
[IP-] [  ] app-crypt/pinentry-0.7.5 (0)
[IP-] [  ] net-dns/avahi-0.6.24-r2 (0)
[IP-] [  ] net-wireless/wpa_supplicant-0.6.9 (0)
  
 * Searching for USE flag qt4 ...
[IP-] [  ] net-dns/avahi-0.6.24-r2 (0)
[IP-] [  ] net-wireless/wpa_supplicant-0.6.9 (0)

list (l) 옵션으로 꾸러미 살펴보기

list는 포티지 트리 또는 오버레이에서 설치한 꾸러미를 찾아보는데 있어 지금까지 가장 강력하며 단순한 모듈입니다.

user $equery list '*'
 * Searching for * ...
[IP-] [  ] app-admin/eselect-1.2.3 (0)
[IP-] [  ] app-admin/eselect-ctags-1.10 (0)
[IP-] [  ] app-admin/eselect-esd-20060719 (0)
[IP-] [  ] app-admin/eselect-fontconfig-1.0 (0)
[IP-] [  ] app-admin/eselect-opengl-1.0.8-r1 (0)
[IP-] [  ] app-admin/eselect-python-20090824 (0)
[IP-] [  ] app-admin/eselect-ruby-20081227 (0)
[IP-] [  ] app-admin/eselect-vi-1.1.5 (0)
[IP-] [  ] app-admin/perl-cleaner-1.05 (0)
[IP-] [  ] app-admin/pessulus-2.24.0 (0)
[IP-] [  ] app-admin/python-updater-0.7 (0)
[IP-] [  ] app-admin/sudo-1.7.2_p1 (0)
[...]

표준 요청문은 주어진 꾸러미 이름으로 설치한 꾸러미를 검색합니다. '*'을 전달하면 세트의 모든 꾸러미를 표시합니다. 제일 좌측에 있는 필드에서는 P(ortage)에 있으며 I(nstalled: 설치)한 모든 꾸러미를 볼 수 있습니다. 가려놓은 꾸러미가 아니며(두번째 항목은 비워둠), 기본 슬롯(0)에 모두 설치합니다.

포티지 트리와 오버레이 꾸러미를 찾아보려면 로컬 옵션을 사용하십시오.

user $equery list -po vim
 * Searching for vim ...
[-P-] [  ] app-editors/vim-7.0.235 (0)
[-P-] [ ~] app-editors/vim-7.0.243 (0)
[-P-] [  ] app-editors/vim-7.1.123 (0)
[-P-] [ ~] app-editors/vim-7.1.330 (0)
[-P-] [  ] app-editors/vim-7.2 (0)
[-P-] [ ~] app-editors/vim-7.2.108 (0)
[IP-] [  ] app-editors/vim-7.2.182 (0)
[-P-] [ ~] app-editors/vim-7.2.238 (0)
[-P-] [ ~] app-editors/vim-7.2.264 (0)

여기서 7.2.182 버전을 설치했으며 이외의 버전은 오버레이에 없음을 볼 수 있습니다. 사용자는 두번째 필드에 ~ 키워드로 각 버전을 가려놓았음을 볼 수 있습니다.

meta (m) 옵션으로 꾸러미 메타데이터 살펴보기

포티지 트리의 각 꾸러미는 최소한 관리자가 누군지 등을 알아본 여러가지 정보가 담긴 메타데이터en가 있습니다. 대부분 도움이 되는 정보는 꾸러미 관리자가 어떻게 제공하기로 결정했는지에 달려있습니다. 별도의 옵션이 없으면, meta 옵션에서는 기본 유용 정보를 반환합니다.

user $equery meta gnucash
 * app-office/gnucash [gentoo]
 Maintainer:  tove@gentoo.org (Torsten Veller)
 Upstream:    None specified
 Location:    /usr/portage/app-office/gnucash
 Keywords:    2.2.9-r1:0: alpha amd64 ppc sparc x86
 Keywords:    2.2.9-r2:0:
 Keywords:    2.3.8:0:
 Keywords:    2.3.10:0: ~alpha ~amd64 ~ppc ~sparc ~x86

일부 관리자는 매우 쓸모있는 추가 꾸러미 정보를 제공하기도 합니다:

user $equery meta --description emacs
 * app-editors/emacs
  GNU Emacs is an extensible, customizable text editor - and more. At its core
  is an interpreter for Emacs Lisp, a dialect of the Lisp programming language
  with extensions to support text editing. The features of GNU Emacs include:
   * Content-sensitive editing modes, including syntax coloring, for a wide
     variety of file types including plain text, source code, and HTML.
   * Complete built-in documentation, including a tutorial for new users.
   * Support for many languages and their scripts, including all the European
     "Latin" scripts, Russian, Greek, Japanese, Chinese, Korean, Thai,
     Vietnamese, Lao, Ethiopian, and some Indian scripts.
   * Highly customizable, using Emacs Lisp code or a graphical customization
     interface.
   * A large number of extensions that add other functionality, including a
     project planner, mail and news reader, debugger interface, calendar, and
     more. Many of these extensions are distributed with GNU Emacs; others are
     available separately.

size (s) 옵션으로 꾸러미 크기 찾아보기

지정 꾸러미가 얼마나 많은 공가능ㄹ 차지하는지 궁금하지 않으셨습니까? 꾸러미는 여러 디렉터리에 걸쳐 수많은 파일을 가질 수 있기 때문에, 보통 du -hc 명령으로는 올바른 결과를 가져올 수 없습니다. 걱정하지 마시죠. equery가 구해드립니다!

user $equery size openoffice-bin
 * app-office/openoffice-bin-3.1.1
         Total files : 4624
         Total size  : 361.38 MiB

size 옵션을 사용하면 꾸러미에 있는 전체 파일의 목록과 사람이 알아볼 수 있는 단위로 전체 용량을 보여줍니다 바이트 단위로 총 용량을 출력하려면 --bytes 옵션을 사용하십시오.

uses (u) 옵션으로 꾸러미별 USE 플래그 보여주기

equeryuses 모듈은 지정 꾸러미에서 어떤 USE 플래그를 사용할 수 있고 어떤 USE 플래그를 활성화했는지에 대한 정보를 보여줄 수 있습니다.

user $equery uses gst-plugins-meta
 * Searching for gst-plugins-meta ...
[ Legend : U - flag is set in make.conf       ]
[        : I - package is installed with flag ]
[ Colors : set, unset                         ]
 * Found these USE flags for media-plugins/gst-plugins-meta-0.10-r2:
 U I
 + + X      : Adds support for X11
 - - a52    : Enables support for decoding ATSC A/52 streams used in DVD
 + + alsa   : Adds support for media-libs/alsa-lib (Advanced Linux Sound
              Architecture)
 - - dvb    : Adds support for DVB (Digital Video Broadcasting)
 + + dvd    : Adds support for DVDs
 + + esd    : Adds support for media-sound/esound (Enlightened Sound Daemon)
 + + ffmpeg : Enable ffmpeg-based audio/video codec support
 + + flac   : Adds support for FLAC: Free Lossless Audio Codec
 - - mad    : Adds support for mad (high-quality mp3 decoder library and cli
              frontend)
 + + mpeg   : Adds libmpeg3 support to various packages
 - - mythtv : Support for retrieval from media-tv/mythtv backend
 + + ogg    : Adds support for the Ogg container format (commonly used by
              Vorbis, Theora and flac)
 - - oss    : Adds support for OSS (Open Sound System)
 + + theora : Adds support for the Theora Video Compression Codec
 + + vorbis : Adds support for the OggVorbis audio codec
 - - xv     : Adds in optional support for the Xvideo extension (an X API for
              video playback)

여기 수많은 USE 플래그를 gstreamer 플러그인 메타 꾸러미에 대해 활성화했지만, 다른 USE 플래그도 사용할 수 있음을 볼 수 있습니다. 더 많은 USE 플래그 정보를 살펴보려면 젠투 핸드북USE 플래그 장을 살펴보십시오.

which (w) 옵션으로 ebuild 경로 찾아보기

which는 ebuild의 파일 경로를 간편하게 찾아주는 단순한 스크립트입니다. 꾸러미 이름에 버전을 붙이지 않고 입력할 경우 which 옵션이 설치 가능한 최신 ebuild 버전의 경로를 반환합니다. 다시 말해, emerge example/package를 입력했을 때 포티지에서 사용할 ebuild를 반환한다는 이야기입니다. which 옵션은 또한 ebuild의 경로를 가져올 버전을 붙인 꾸러미 문자열도 받아들입니다.

user $equery which gnome
/usr/portage/gnome-base/gnome/gnome-2.26.3.ebuild

마지막으로 equery의 기능에 대해 위에서 설명하지 않은 내용이 있다면 cat, less, grep 처럼 ebuild를 직접 검색할 때는 which 옵션을 사용하십시오:

user $grep HOMEPAGE $(equery which gentoolkit)
HOMEPAGE="http://www.gentoo.org/proj/en/portage/tools/index.xml"
경고
파이프로 equery가 현재 출력 형식을 보내면 바뀌는 점을 감안하십시오. 파이프 처리한 형식은 도구에서 처리하기 쉽게 했습니다만 --no-pipe 옵션을 쓰면 파이프 처리 기능을 끌 수 있습니다. equery 동작을 활용하는 스크립트를 작성한다면 이 동작에 유의하십시오.

추가 참조

  • Q applets - C로 작성한 작고 빠른 포티지 도우미 도구 모음입니다.
  • eix - 바이너리 캐시를 사용하여 로컬 포티지 트리와 오버레이를 검색하고 비교하는 유틸리티 모음입니다.
  • Gentoolkit - 젠투 시스템 관리를 용이하게 해주는 도구 모음입니다.