원본 출처: [[https://wiki.gentoo.org/wiki/Emerge|Emerge]] ====== emerge ====== ^ [[.:Portage|Portage - the heart of Gentoo]] ^ | [[.:emerge]] - [[.:configuration]] - [[.:ebuild repository]] - [[.:dispatch-conf]] | | [[.:world file]] - [[.:USE flags]] - [[.:ebuilds]] - [[.:profiles]] | | [[.:upgrades]] - [[.:using testing packages]] - [[.:binary packages]] | | [[.:tools]] - [[.:gentoolkit]] - [[.:eselect]] | | [[.:Portage FAQ]] - [[.:cheat sheet]] - [[.:FAQ]] | ------ **emerge**는 포티지에 대한 명령줄 인터페이스이며 대부분의 사용자가 포티지와 상호작용하는 방식입니다. 젠투에서 가장 중요한 명령어 중 하나입니다. ''emerge''는 젠투 리눅스에서 소프트웨어 패키지를 설치, 업데이트 및 유지 관리하는 데 사용됩니다. **팁** \\ **emerge** 명령에는 다양한 옵션이 있습니다. 자세한 설명서와 모든 옵션의 전체 목록은 **man emerge**를 참고하세요. **참고** emerge 명령 이외의 포티지 사용법은 [[.:Portage|포티지]] 문서를 참고하세요. ''emerge'' 명령에 대한 몇 가지 일반적인 질문은 [[.:FAQ]]와 [[.:Portage FAQ|포티지 FAQ]]에 답변이 나와 있습니다. ===== 사용법 ===== ==== 실행 ==== **emerge**는 변경될 내용에 대한 풍부한 출력을 제공할 수 있으며, 개별 패키지 또는 시스템에 대한 정보와 경고를 제공합니다. 기본적으로 emerge 명령은 요청된 작업을 즉시 수행합니다. ''--ask'', ''--pretend'' 및 ''--verbose'' 옵션은 포티지가 더 많은 정보를 표시하도록 하는 데 유용합니다. ''--help'' 옵션과 함께 emerge를 실행하면 명령줄 옵션에 대한 정보를 제공합니다: 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. 아래는 "package"를 설치하는 **emerge** 호출 예제입니다. 옵션(''-atv'')은 ''--ask'', ''--tree'' 및 ''--verbose''에 대한 짧은 옵션입니다. 이 옵션은 계속 진행하기 전에 묻고, 설치할 패키지의 종속성 트리를 표시하고, 출력에 대한 자세한 내용을 표시하도록 **emerge**를 트리거합니다: # emerge -atv package These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild U ] 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 R ] 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] U 기호는 업그레이드될 패키지를, D는 다운그레이드될 패키지를, R은 재설치할 패키지를, N은 새 패키지를 나타냅니다. 대괄호 안에는 이전에 설치된 패키지의 버전이 표시됩니다. 월드 파일에 있는 패키지는 굵게 표시되며, 이는 사용자가 설치한 패키지이고 다른 패키지는 종속성이거나 [[https://wiki.gentoo.org/wiki/System_set_(Portage)|시스템 세트]]에서 가져온 패키지입니다. **참고 항목** \\ //포티지 출력//을 읽는 방법에 대한 자세한 설명은 emerge 매뉴얼 페이지의 출력 섹션과 ''--pretend'' 옵션을 참조하세요. 포티지에서 "패키지"라는 용어는 "아톰"이라고도 하며, 이 용어는 서로 바꿔서 사용할 수 있습니다. [[https://wiki.gentoo.org/wiki/Version_specifier|버전 지정]]을 참조하십시오. ==== 패키지 설치하기 ==== ''--ask'' 및 ''--verbose'' 옵션으로 [[https://packages.gentoo.org/packages/net-proxy/tinyproxy|net-proxy/tinyproxy]] 패키지를 설치합니다: root #emerge --ask --verbose net-proxy/tinyproxy [[https://wiki.gentoo.org/wiki/Version_specifier|버전 지정자]]를 사용하여 설치할 패키지, 버전 및 슬롯, 그리고 어느 이빌드 리포지토리를 지정합니다. **팁** \\ ''--ask''(''-a'') 옵션은 매우 유용하며, 실제 적용을 시작하기 전에 이머지 작업을 검토할 수 있습니다. ''--verbose''(''-v'') 옵션은 포티지가 수행할 작업에 대한 자세한 정보를 표시하며, 종종 유용합니다. 원하는 경우 옵션을 기본값으로 설정할 수 있습니다. 명령줄에서 기본 옵션을 재정의할 수 있습니다(예: ''--ask=n''). **경고** \\ ''--ask'' 옵션을 제공하지 않으면 사용자에게 확인을 요청하지 않고 작업이 수행됩니다. ''--pretend'' 옵션도 사용할 수 있습니다. 패키지 기능은 설치 시 소프트웨어의 용도에 따라 설정하거나 설정 해제할 수 있는 [[.:USE flags|USE 플래그]]에 의해 관리됩니다. ==== 패키지 검색 ==== **참고** \\ 여기에 설명된 **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**보다 더 많은 결과를 표시할 때 약간의 혼란이 발생할 수 있습니다. **참고 항목** \\ 패키지를 검색하는 더 고급 방법은 [[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]]를 참조하세요. 이름에 프록시가 포함된 패키지를 검색합니다: user $emerge --search proxy 이름이나 설명에 프록시가 포함된 패키지를 검색합니다: user $emerge --searchdesc proxy 정규식을 사용하여 패키지를 검색합니다: user $emerge -s '%^python$' 카테고리의 모든 패키지를 나열합니다: user $emerge -s '@net-ftp' ==== 패키지 제거(제거) ==== 좀더 확실한 종속성 파악을 위해 ''--depclean''(''-c'') 옵션을 사용하여 [[https://packages.gentoo.org/packages/net-proxy/tinyproxy|net-proxy/tinyproxy]] 패키지를 제거합니다: root #emerge --ask --verbose --depclean net-proxy/tinyproxy 이 명령은 현재 설치된 패키지의 종속성으로 필요하지 않은 패키지만 제거합니다. 패키지를 제거할 때 ''--depclean''을 사용하는 대신 다음 섹션에 설명된 대로 **emerge --deselect**(또는 ''-W'' 옵션)를 사용한 다음 종속성이 없는 패키지를 정리하는 방법을 사용할 수 있습니다. **팁** \\ 소문자 -c 스위치는 ''--depclean''의 줄임말이며 안전하지만 시스템 손상의 위험이 있으므로 꼭 필요한 경우에만 사용해야 하는 대문자 ''-C'' 스위치와 혼동하지 마세요(아래 경고 참조). **경고** \\ ''--unmerge'' (''-C'') 옵션은 특별한 이유가 있는 경우가 아니라면 **사용하지 마세요**. 이 옵션을 사용하면 시스템이 작동하는 데 필요한 중요한 패키지가 경고 없이 제거됩니다. === 고아 패키지 정리하기 === **팁** \\ 사용하지 않을 가능성이 있는 패키지를 제거하기 위해 ''emerge --depclean''을 사용하는 방법에 대한 자세한 내용은 [[https://wiki.gentoo.org/wiki/Knowledge_Base:Remove_orphaned_packages|고아 패키지 제거하기]]를 참조하세요. [[.:Portage FAQ|포티지 FAQ]]도 참조하세요. ==== 패키지 업데이트 ==== 패키지를 업데이트하는 방법은 [[https://wiki.gentoo.org/wiki/Upgrading_Gentoo|젠투 업그레이드]]를 참고하세요. ==== 시스템 정보 얻기 ==== emerge는 문제 해결에 유용한 시스템 정보를 인쇄할 수 있습니다. 이 정보는 [[https://wiki.gentoo.org/wiki/Support|지원]]을 요청하거나 [[https://wiki.gentoo.org/wiki/Bugzilla/Bug_report_guide|버그]]를 제출할 때 게시해야 하는 경우가 많습니다. user $emerge --info 추가 정보는 ''--verbose'' 플래그를 사용하여 출력할 수 있습니다. ===== 팁 ===== ==== 배포 파일 확인 및 (재)다운로드하기 === 현재 설치된 모든 패키지에 대해 이전에 제거/손상된 배포 파일의 무결성을 다시 확인하고 다시 다운로드하려면 다음과 같이 실행하세요: root #emerge --ask --fetchonly --emptytree @world ==== 월드 파일에 종속성을 추가하지 마세요. ==== 종속성을 다시 설치해야 하는 경우 ''--oneshot'' 옵션을 사용하세요. ''emerge'' 패키지 명령으로 종속성을 설치하면 [[.:world file|월드 파일]]에 종속성이 추가되어 문제가 발생할 수 있습니다. 사용자 정의 소스 소프트웨어를 컴파일하기 위해 포티지를 사용하여 종속성을 설치하는 것도 좋지 않으므로 [[https://wiki.gentoo.org/wiki/Basic_guide_to_write_Gentoo_Ebuilds|이빌드를 작성]]하는 것이 좋습니다. **참고 자료** \\ 자세한 내용은 [[https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Maintaining_a_Gentoo_system#World_file_hygiene|사용자:샘/포티지 도움말/젠투_시스템 유지]]를 참고하세요. ==== 이머지 재개하기 === 여러 패키지의 이머지가 중단된 경우(예: ctrl+c, 크래시...) ''--resume'' 옵션을 사용하여 중단된 패키지에서 이머지를 재개할 수 있습니다. ''--keep-going'' 및 ''--skipfirst'' 옵션도 유용할 수 있습니다. 자세한 내용은 이머지 맨 페이지를 참조하세요. ==== 환경 변수를 통해 임시 구성을 포티지에 전달하기 ==== **경고** \\ 명령줄에서 환경 변수를 포티지에 전달하면 시스템이 일시적으로 변경될 뿐입니다. 이러한 변경 사항은 [[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]] 등과 같은 구성 파일을 통해 이루어집니다. 명령줄에 환경 변수를 선언하여 임시 구성 값을 전달하면 해당 호출에 대한 동작에만 영향을 줄 수 있습니다. 예를 들어, [[https://packages.gentoo.org/useflags/svg|svg]] [[.:USE flags|USE 플래그]]가 활성화된 [[https://packages.gentoo.org/packages/app-editors/emacs|app-editors/emacs]]을 병합하되 이 USE 플래그 설정을 영구적으로 만들지 않으려면 다음과 같이 하세요: root #USE='svg' emerge app-editors/emacs 또는 이빌드에서 ''econf'' 함수를 사용하는 패키지에 추가 구성 옵션을 전달할 수 있습니다: root #EXTRA_ECONF='--without-compress-install' emerge app-editors/emacs **참고** \\ [[https://wiki.gentoo.org/wiki/Sudo|sudo]]를 사용하여 emerge를 호출하는 경우, sudo는 일반적으로 실행되는 환경을 보존하지 않으므로 **sudo** //호출 후//에 환경 변수를 설정해야 할 수 있습니다: user $sudo USE='svg' emerge -av app-editors/emacs ==== 파일 이머지 ==== 파일을 직접 이머지하는 것이 유용한 경우가 있는데, 예를 들어 패키지에 /usr/lib/libunwind.a가 필요하지만 어떤 패키지가 이 파일을 제공하는지 알 수 없는 경우를 들 수 있습니다. user $emerge -p /usr/lib/libunwind.a 다음은 병합될 패키지의 순서입니다: 종속성 계산... 완료! 종속성 해결에는 2.76초가 걸렸습니다(백트래킹: 0/20). [ebuild R ] sys-libs/llvm-libunwind-17.0.6 ===== 문제 해결 ===== **참고 항목** \\ 포티지 문제에 대한 항목은 [[https://wiki.gentoo.org/wiki/User:Sam/Portage_help|사용자:샘/포티지 도움말]]을 참조하십시오. ==== '압축 풀기' 단계에서 이머징 패키지 실패 ==== 패키지를 압축 해제할 때 다음과 같은 메시지가 나타날 수 있습니다: * 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. * dev-libs/libinput-1.16.0 패키지에 대한 오류 메시지: * 이빌드 단계 '언팩'이 예기치 않게 종료되었습니다. 이러한 유형의 동작은 * 변수 할당 실패(버그 #190128) 또는 잘못된 치환 오류(버그 #200313) 등으로 인해 * 트리거되는 것으로 알려져 있습니다. 일반적으로 bash를 종료하기 전에 위의 * 오류 메시지가 표시되어야 합니다. bash가 위의 오류 메시지를 표시하지 않았다면, * 이빌드가 'exit'를 호출해야 할 때 'die'를 호출했을 가능성이 있습니다. * 이 동작은 손상된 bash 바이너리 또는 메모리 또는 CPU 오작동과 같은 * 하드웨어 문제로 인해 트리거될 수도 있습니다. 문제를 재현할 수 없거나 * 무작위로 발생하는 것처럼 보인다면 하드웨어 문제로 인해 트리거되었을 가능성이 높습니다. * 하드웨어 문제가 의심되는 경우 멤테스트와 같은 몇 가지 * 기본적인 하드웨어 진단을 시도해 보세요. 지속적으로 재현할 수 있고 * 배시 바이너리와 하드웨어가 제대로 작동하는 것이 확실하지 않은 경우에는 버그로 신고하지 마세요. 이 문제는 위의 출력에 나열된 이유 때문일 수도 있지만, 포티지가 이빌드의 소스 파일의 압축을 푸는 데 사용하는 경로의 디스크 공간이 부족해서 발생하는 경우가 많습니다. 이 위치는 //PORTAGE_TMPDIR// 변수를 통해 설정되며, 포티지를 쿼리하여 빠르게 찾을 수 있습니다: user $portageq envvar PORTAGE_TMPDIR /var/tmp [[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|포티지]] - 젠투의 공식 패키지 관리자 및 배포 시스템.