gentoo:learn_gentoo:emerge

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
gentoo:learn_gentoo:emerge [2024/05/08 11:00] – [emerge] baecygentoo:learn_gentoo:emerge [2024/05/08 16:07] (현재) – ['압축 풀기' 단계에서 이머징 패키지 실패] baecy
줄 1: 줄 1:
 원본 출처: [[https://wiki.gentoo.org/wiki/Emerge|Emerge]] 원본 출처: [[https://wiki.gentoo.org/wiki/Emerge|Emerge]]
 ====== emerge ====== ====== emerge ======
-^  Portage - the heart of Gentoo  ^+^  [[.:Portage|Portage - the heart of Gentoo]]  ^
 |  [[.:emerge]] - [[.:configuration]] - [[.:ebuild repository]] - [[.:dispatch-conf]]  | |  [[.:emerge]] - [[.:configuration]] - [[.:ebuild repository]] - [[.:dispatch-conf]]  |
 |  [[.:world file]] - [[.:USE flags]] - [[.:ebuilds]] - [[.:profiles]]  | |  [[.:world file]] - [[.:USE flags]] - [[.:ebuilds]] - [[.:profiles]]  |
줄 21: 줄 21:
  
 ''emerge'' 명령에 대한 몇 가지 일반적인 질문은 [[.:FAQ]]와 [[.:Portage FAQ|포티지 FAQ]]에 답변이 나와 있습니다.</WRAP> ''emerge'' 명령에 대한 몇 가지 일반적인 질문은 [[.:FAQ]]와 [[.:Portage FAQ|포티지 FAQ]]에 답변이 나와 있습니다.</WRAP>
 +===== 사용법 =====
 +==== 실행 ====
 +**emerge**는 변경될 내용에 대한 풍부한 출력을 제공할 수 있으며, 개별 패키지 또는 시스템에 대한 정보와 경고를 제공합니다. 기본적으로 emerge 명령은 요청된 작업을 즉시 수행합니다. ''--ask'', ''--pretend'' 및 ''--verbose'' 옵션은 포티지가 더 많은 정보를 표시하도록 하는 데 유용합니다.
 +
 +''--help'' 옵션과 함께 emerge를 실행하면 명령줄 옵션에 대한 정보를 제공합니다:
 +<code lang=bash>
 +user $emerge --help
 +emerge: command-line interface to the Portage system
 +Usage:
 +   emerge [ options ] [ action ] [ ebuild | tbz2 | file | @set | atom ] [ ... ]
 +   emerge [ options ] [ action ] < @system | @world >
 +   emerge < --sync | --metadata | --info >
 +   emerge --resume [ --pretend | --ask | --skipfirst ]
 +   emerge --help
 +Options: -[abBcCdDefgGhjkKlnNoOpPqrsStuUvVwW]
 +          [ --color < y | n >            ] [ --columns    ]
 +          [ --complete-graph             ] [ --deep       ]
 +          [ --jobs JOBS ] [ --keep-going ] [ --load-average LOAD            ]
 +          [ --newrepo   ] [ --newuse     ] [ --noconfmem  ] [ --nospinner   ]
 +          [ --oneshot   ] [ --onlydeps   ] [ --quiet-build [ y | n ]        ]
 +          [ --reinstall changed-use      ] [ --with-bdeps < y | n >         ]
 +Actions:  [ --depclean | --list-sets | --search | --sync | --version        ]
 + 
 + 
 +For more help consult the man page.</code>
 +
 +아래는 "package"를 설치하는 **emerge** 호출 예제입니다. 옵션(''-atv'')은 ''--ask'', ''--tree'' 및 ''--verbose''에 대한 짧은 옵션입니다. 이 옵션은 계속 진행하기 전에 묻고, 설치할 패키지의 종속성 트리를 표시하고, 출력에 대한 자세한 내용을 표시하도록 **emerge**를 트리거합니다:
 +<code>
 +# emerge -atv package
 +These are the packages that would be merged, in reverse order:
 +
 +Calculating dependencies... done!
 +[ebuild      ] category/package-3.0-r2 [2.0] USE="enabled -disabled toggled* new% (-unavailable)" MAKE_OPTIONS="-disabled" 777 kB
 +[ebuild     UD ]  category/package-2.0 [3.0] 777 kB
 +[ebuild      ]   category/package-1.0  777 kB
 +[ebuild  N      category/package-0.5  777 kB
 +
 +Total: 4 packages (1 new, 1 reinstall, 1 upgrade, 1 downgrade), Size of downloads: 3108 kB
 +
 +
 +Would you like to merge these packages? [Yes/No]
 +</code>
 +U 기호는 업그레이드될 패키지를, D는 다운그레이드될 패키지를, R은 재설치할 패키지를, N은 새 패키지를 나타냅니다. 대괄호 안에는 이전에 설치된 패키지의 버전이 표시됩니다. 월드 파일에 있는 패키지는 굵게 표시되며, 이는 사용자가 설치한 패키지이고 다른 패키지는 종속성이거나 [[https://wiki.gentoo.org/wiki/System_set_(Portage)|시스템 세트]]에서 가져온 패키지입니다.
 +<WRAP info center round 100%>
 +**참고 항목** \\
 +//포티지 출력//을 읽는 방법에 대한 자세한 설명은 emerge 매뉴얼 페이지의 출력 섹션과 ''--pretend'' 옵션을 참조하세요.
 +</WRAP>
 +
 +포티지에서 "패키지"라는 용어는 "아톰"이라고도 하며, 이 용어는 서로 바꿔서 사용할 수 있습니다. [[https://wiki.gentoo.org/wiki/Version_specifier|버전 지정]]을 참조하십시오.
 +
 +==== 패키지 설치하기 ====
 +''--ask'' 및 ''--verbose'' 옵션으로 [[https://packages.gentoo.org/packages/net-proxy/tinyproxy|net-proxy/tinyproxy]] 패키지를 설치합니다:
 +<code lang=bash>
 +root #emerge --ask --verbose net-proxy/tinyproxy
 +</code>
 +[[https://wiki.gentoo.org/wiki/Version_specifier|버전 지정자]]를 사용하여 설치할 패키지, 버전 및 슬롯, 그리고 어느 이빌드 리포지토리를 지정합니다.
 +<WRAP tip center round 100%>
 +**팁** \\
 +''--ask''(''-a'') 옵션은 매우 유용하며, 실제 적용을 시작하기 전에 이머지 작업을 검토할 수 있습니다. ''--verbose''(''-v'') 옵션은 포티지가 수행할 작업에 대한 자세한 정보를 표시하며, 종종 유용합니다. 원하는 경우 옵션을 기본값으로 설정할 수 있습니다. 명령줄에서 기본 옵션을 재정의할 수 있습니다(예: ''--ask=n'').
 +</WRAP>
 +<WRAP important center round 100%>
 +**경고** \\ 
 +''--ask'' 옵션을 제공하지 않으면 사용자에게 확인을 요청하지 않고 작업이 수행됩니다. ''--pretend'' 옵션도 사용할 수 있습니다.
 +</WRAP>
 +<WRAP info center round 100%
 +**참고** \\
 +종속성과 같은 일부 항목은 이 방법으로 설치하면 안 됩니다. [[https://wiki.gentoo.org/wiki/Emerge#Do_not_add_dependencies_to_the_world_file|월드 파일에 종속성 추가하지 않기]] 섹션을 참조하세요.
 +</WRAP>
 +패키지 기능은 설치 시 소프트웨어의 용도에 따라 설정하거나 설정 해제할 수 있는 [[.:USE flags|USE 플래그]]에 의해 관리됩니다.
 +
 +==== 패키지 검색 ====
 +<WRAP info round center 100%>
 +**참고** \\
 +여기에 설명된 **emerge** 명령의 기본 제공 검색 기능은 다른 도구에 비해 결과가 제한적으로 표시될 수 있습니다. //사용 가능한 최신 버전//은 (현재 [[.:profile]], [[https://wiki.gentoo.org/wiki//etc/portage/make.conf|make.conf]], [[https://wiki.gentoo.org/wiki//etc/portage/package.accept_keywords|package.accept_keywords]] 등에서 파생된) [[https://wiki.gentoo.org/wiki/ACCEPT_KEYWORDS|ACCEPT_KEYWORDS]]에 의해 제한됩니다. 또한 //사용 가능한 최신 버전//과 //설치된 최신 버전//은 슬롯을 인식하지 못하므로 슬롯별로 여러 버전을 표시하지 않습니다. 이로 인해 [[https://wiki.gentoo.org/wiki/Eix|eix]] 또는 [[https://wiki.gentoo.org/wiki/Gentoolkit#eshowkw|eshowkw]]와 같은 도구가 **emerge --search**보다 더 많은 결과를 표시할 때 약간의 혼란이 발생할 수 있습니다.
 +</WRAP>
 +<WRPA center round box 60%>
 +**참고 항목** \\
 +패키지를 검색하는 더 고급 방법은 [[https://wiki.gentoo.org/wiki/Eix|eix]], [[https://wiki.gentoo.org/wiki/Equery|equery]] 및 [[https://wiki.gentoo.org/wiki/Packages.gentoo.org|packages.gentoo.org]]를 참조하세요.
 +</WRAP>
 +이름에 프록시가 포함된 패키지를 검색합니다:
 +<code>user $emerge --search proxy</code>
 +이름이나 설명에 프록시가 포함된 패키지를 검색합니다:
 +<code>user $emerge --searchdesc proxy</code>
 +정규식을 사용하여 패키지를 검색합니다:
 +<code>user $emerge -s '%^python$'</code>
 +카테고리의 모든 패키지를 나열합니다:
 +<code>user $emerge -s '@net-ftp'</code>
 +==== 패키지 제거(제거) ====
 +좀더 확실한 종속성 파악을 위해 ''--depclean''(''-c'') 옵션을 사용하여 [[https://packages.gentoo.org/packages/net-proxy/tinyproxy|net-proxy/tinyproxy]] 패키지를 제거합니다:
 +<code>root #emerge --ask --verbose --depclean net-proxy/tinyproxy</code>
 +이 명령은 현재 설치된 패키지의 종속성으로 필요하지 않은 패키지만 제거합니다.
 +
 +패키지를 제거할 때 ''--depclean''을 사용하는 대신 다음 섹션에 설명된 대로 **emerge --deselect**(또는 ''-W'' 옵션)를 사용한 다음 종속성이 없는 패키지를 정리하는 방법을 사용할 수 있습니다.
 +<WRAP tip center rount 100%>
 +**팁** \\
 +소문자 -c 스위치는 ''--depclean''의 줄임말이며 안전하지만 시스템 손상의 위험이 있으므로 꼭 필요한 경우에만 사용해야 하는 대문자 ''-C'' 스위치와 혼동하지 마세요(아래 경고 참조).
 +</WRAP>
 +<WRAP important center round 100%>
 +**경고** \\
 +''--unmerge'' (''-C'') 옵션은 특별한 이유가 있는 경우가 아니라면 **사용하지 마세요**. 이 옵션을 사용하면 시스템이 작동하는 데 필요한 중요한 패키지가 경고 없이 제거됩니다.
 +</WRAP>
 +
 +=== 고아 패키지 정리하기 ===
 +<WRAP info center round 100%>
 +**팁** \\
 +사용하지 않을 가능성이 있는 패키지를 제거하기 위해 ''emerge --depclean''을 사용하는 방법에 대한 자세한 내용은 [[https://wiki.gentoo.org/wiki/Knowledge_Base:Remove_orphaned_packages|고아 패키지 제거하기]]를 참조하세요. [[.:Portage FAQ|포티지 FAQ]]도 참조하세요.
 +</WRAP>
 +
 +==== 패키지 업데이트 ====
 +패키지를 업데이트하는 방법은 [[https://wiki.gentoo.org/wiki/Upgrading_Gentoo|젠투 업그레이드]]를 참고하세요.
 +
 +==== 시스템 정보 얻기 ====
 +emerge는 문제 해결에 유용한 시스템 정보를 인쇄할 수 있습니다. 이 정보는 [[https://wiki.gentoo.org/wiki/Support|지원]]을 요청하거나 [[https://wiki.gentoo.org/wiki/Bugzilla/Bug_report_guide|버그]]를 제출할 때 게시해야 하는 경우가 많습니다.
 +<code>user $emerge --info</code>
 +추가 정보는 ''--verbose'' 플래그를 사용하여 출력할 수 있습니다.
 +
 +===== 팁 =====
 +==== 배포 파일 확인 및 (재)다운로드하기 ===
 +현재 설치된 모든 패키지에 대해 이전에 제거/손상된 배포 파일의 무결성을 다시 확인하고 다시 다운로드하려면 다음과 같이 실행하세요:
 +<code>root #emerge --ask --fetchonly --emptytree @world</code>
 +==== 월드 파일에 종속성을 추가하지 마세요. ====
 +종속성을 다시 설치해야 하는 경우 ''--oneshot'' 옵션을 사용하세요. ''emerge'' 패키지 명령으로 종속성을 설치하면 [[.:world file|월드 파일]]에 종속성이 추가되어 문제가 발생할 수 있습니다.
 +
 +사용자 정의 소스 소프트웨어를 컴파일하기 위해 포티지를 사용하여 종속성을 설치하는 것도 좋지 않으므로 [[https://wiki.gentoo.org/wiki/Basic_guide_to_write_Gentoo_Ebuilds|이빌드를 작성]]하는 것이 좋습니다.
 +
 +<WRAP info center round>
 +**참고 자료** \\
 +자세한 내용은 [[https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Maintaining_a_Gentoo_system#World_file_hygiene|사용자:샘/포티지 도움말/젠투_시스템 유지]]를 참고하세요.
 +</WRAP>
 +==== 이머지 재개하기 ===
 +여러 패키지의 이머지가 중단된 경우(예: ctrl+c, 크래시...) ''--resume'' 옵션을 사용하여 중단된 패키지에서 이머지를 재개할 수 있습니다. ''--keep-going'' 및 ''--skipfirst'' 옵션도 유용할 수 있습니다. 자세한 내용은 이머지 맨 페이지를 참조하세요.
 +
 +==== 환경 변수를 통해 임시 구성을 포티지에 전달하기 ====
 +<WRAP important center round 100%>
 +**경고** \\
 +명령줄에서 환경 변수를 포티지에 전달하면 시스템이 일시적으로 변경될 뿐입니다. 이러한 변경 사항은 [[https://wiki.gentoo.org/wiki/Upgrading_Gentoo시스템 업데이트]]를 통해 되돌릴 수 있습니다. 이 방법은 주로 ''--pretend'' 옵션과 함께 구성 변경의 효과를 미리 볼 때 유용합니다. 포티지 구성 변경은 일반적으로 [[.:make.conf|/etc/portage/make.conf]], [[https://wiki.gentoo.org/wiki//etc/portage/package.accept_keywords|/etc/portage/package.accept_keywords]], [[https://wiki.gentoo.org/wiki//etc/portage/package.use|/etc/portage/package.use]] 등과 같은 구성 파일을 통해 이루어집니다.
 +</WRAP>
 +명령줄에 환경 변수를 선언하여 임시 구성 값을 전달하면 해당 호출에 대한 동작에만 영향을 줄 수 있습니다. 예를 들어, [[https://packages.gentoo.org/useflags/svg|svg]] [[.:USE flags|USE 플래그]]가 활성화된 [[https://packages.gentoo.org/packages/app-editors/emacs|app-editors/emacs]]을 병합하되 이 USE 플래그 설정을 영구적으로 만들지 않으려면 다음과 같이 하세요:
 +<code>root #USE='svg' emerge app-editors/emacs</code>
 +또는 이빌드에서 ''econf'' 함수를 사용하는 패키지에 추가 구성 옵션을 전달할 수 있습니다:
 +<code>root #EXTRA_ECONF='--without-compress-install' emerge app-editors/emacs</code>
 +<WRAP info center round 100%>
 +**참고** \\
 +[[https://wiki.gentoo.org/wiki/Sudo|sudo]]를 사용하여 emerge를 호출하는 경우, sudo는 일반적으로 실행되는 환경을 보존하지 않으므로 **sudo** //호출 후//에 환경 변수를 설정해야 할 수 있습니다:
 +<code>user $sudo USE='svg' emerge -av app-editors/emacs</code>
 +</WRAP>
 +
 +==== 파일 이머지 ====
 +파일을 직접 이머지하는 것이 유용한 경우가 있는데, 예를 들어 패키지에 /usr/lib/libunwind.a가 필요하지만 어떤 패키지가 이 파일을 제공하는지 알 수 없는 경우를 들 수 있습니다.
 +<code>
 +user $emerge -p /usr/lib/libunwind.a
 +다음은 병합될 패키지의 순서입니다:
 +
 +종속성 계산... 완료!
 +종속성 해결에는 2.76초가 걸렸습니다(백트래킹: 0/20).
 +
 +[ebuild  R    ] sys-libs/llvm-libunwind-17.0.6
 +</code>
 +===== 문제 해결 =====
 +<WRAP center round 100%>
 +**참고 항목** \\
 +포티지 문제에 대한 항목은 [[https://wiki.gentoo.org/wiki/User:Sam/Portage_help|사용자:샘/포티지 도움말]]을 참조하십시오.
 +</WRAP>
 +
 +==== '압축 풀기' 단계에서 이머징 패키지 실패 ====
 +패키지를 압축 해제할 때 다음과 같은 메시지가 나타날 수 있습니다:
 +<code>
 + * Error messages for package dev-libs/libinput-1.16.0:
 + * The ebuild phase 'unpack' has exited unexpectedly. This type of behavior
 + * is known to be triggered by things such as failed variable assignments
 + * (bug #190128) or bad substitution errors (bug #200313). Normally, before
 + * exiting, bash should have displayed an error message above. If bash did
 + * not produce an error message above, it's possible that the ebuild has
 + * called `exit` when it should have called `die` instead. This behavior
 + * may also be triggered by a corrupt bash binary or a hardware problem
 + * such as memory or cpu malfunction. If the problem is not reproducible or
 + * it appears to occur randomly, then it is likely to be triggered by a
 + * hardware problem. If you suspect a hardware problem then you should try
 + * some basic hardware diagnostics such as memtest. Please do not report
 + * this as a bug unless it is consistently reproducible and you are sure
 + * that your bash binary and hardware are functioning properly.
 +</code>
 +<code>
 + * dev-libs/libinput-1.16.0 패키지에 대한 오류 메시지:
 + * 이빌드 단계 '언팩'이 예기치 않게 종료되었습니다. 이러한 유형의 동작은 
 + * 변수 할당 실패(버그 #190128) 또는 잘못된 치환 오류(버그 #200313) 등으로 인해 
 + * 트리거되는 것으로 알려져 있습니다. 일반적으로 bash를 종료하기 전에 위의 
 + * 오류 메시지가 표시되어야 합니다. bash가 위의 오류 메시지를 표시하지 않았다면, 
 + * 이빌드가 'exit'를 호출해야 할 때 'die'를 호출했을 가능성이 있습니다.
 + * 이 동작은 손상된 bash 바이너리 또는 메모리 또는 CPU 오작동과 같은 
 + * 하드웨어 문제로 인해 트리거될 수도 있습니다. 문제를 재현할 수 없거나 
 + * 무작위로 발생하는 것처럼 보인다면 하드웨어 문제로 인해 트리거되었을 가능성이 높습니다. 
 + * 하드웨어 문제가 의심되는 경우 멤테스트와 같은 몇 가지 
 + * 기본적인 하드웨어 진단을 시도해 보세요. 지속적으로 재현할 수 있고 
 + * 배시 바이너리와 하드웨어가 제대로 작동하는 것이 확실하지 않은 경우에는 버그로 신고하지 마세요.
 +</code>
 +이 문제는 위의 출력에 나열된 이유 때문일 수도 있지만, 포티지가 이빌드의 소스 파일의 압축을 푸는 데 사용하는 경로의 디스크 공간이 부족해서 발생하는 경우가 많습니다. 이 위치는 //PORTAGE_TMPDIR// 변수를 통해 설정되며, 포티지를 쿼리하여 빠르게 찾을 수 있습니다:
 +<code>
 +user $portageq envvar PORTAGE_TMPDIR
 +/var/tmp
 +</code>
 +[[https://wiki.gentoo.org/wiki/GNU_Coreutils#df|df]] 명령은 //PORTAGE_TMPDIR//이 마운트된 파티션(루트(/) 파티션일 가능성이 높습니다)의 사용 가능한 디스크 공간을 확인하는 데 사용할 수 있습니다. 디스크 공간을 확보하는 방법에 대한 자세한 내용은 [[https://wiki.gentoo.org/wiki/Knowledge_Base:Freeing_disk_space|디스크 공간 확보하기]]를 참조하세요.
 +
 +===== 참고 항목 =====
 +
 +[[.:dispatch-conf]] - 패키지 업데이트 후 구성 파일을 안전하고 편리하게 관리하는 데 사용되는 [[.:Portage|포티지]]에 포함된 유틸리티입니다.
 +
 +[[.:Portage|포티지]] - 젠투의 공식 패키지 관리자 및 배포 시스템.
  • gentoo/learn_gentoo/emerge.1715166005.txt.gz
  • 마지막으로 수정됨: 2024/05/08 11:00
  • 저자 baecy