Upgrading 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
all articles
이 문서에서는 새 젠투 릴리즈가 기존의 설치에 어떤 영향을 주는지 설명합니다.
It is important to keep Gentoo up to date. In addition to the need to have the latest security patches, Gentoo installations can get too out of sync with the current version and sometimes become complex to update.
Update Gentoo Linux between daily and weekly to keep a Gentoo Linux installation running smoothly with the latest security updates. Waiting more than a few weeks to update may make things a little more complicated when the update is attempted. Please don't synchronize more than once daily, to avoid strain on the servers.
Any instructions that only affect ten or more year old systems will not be retained here. See page history for previous versions.
About Gentoo architecture and upgrades
Gentoo differs from most other Linux distributions when it comes to updates. Most distributions have regular releases, every few months or years, which can be anticipated events for some distributions.
Gentoo, by contrast, is a rolling release distribution. There is no need to wait for a release to come out in order to get the latest version of packages - software can be installed as soon as it becomes stable. Gentoo was designed from the beginning around this concept of fast, incremental updates, and there are frequent updates to Gentoo software, with new and updated packages most days. Further information on Gentoo specifics can be found in the FAQ, about releases and Gentoo and what makes Gentoo different.
이상적으로 시스템을 어떻게 최신으로 유지하는지 설명하는 젠투 핸드북의 포티지 소개편의 절차를 따라 프로그램 설치를 해봤고 릴리즈에 시달리진 않았습니다. 이게 보통 하던 방식대로긴 하지만 가끔은 직접 핵심 시스템을 업데이트해야 할 때가 있습니다.
In rare cases, changes made to the core system, to certain packages, profile changes, or certain updates of Portage, may require manual intervention during or after an update. A news item will be published in such critical cases and/or will be signaled after a Gentoo repository synchronization. Always read and follow the news items and Portage messages.
Profiles are central to a Gentoo system because they can define core system functionality, and new profiles are made available when there are fundamental changes to the way Gentoo works. A profile is selected at install time, according to the intended use of the system and is usually only changed if necessary, or for an update.
Updating packages
The Handbook has detailed information on updating the Gentoo repository and on updating the system. See man emerge for more detailed information. See repository synchronization for complete information on how to use emaint to synchronize repositories.
It is important to read and follow any and all news items that may be listed after performing a repository sync.
To update all installed packages to the latest available versions, first update the Gentoo repository with emaint:
root #
emaint --auto sync
Or, for short:
root #
emaint -a sync
This may output messages that should be read and followed, notably the news items previously mentioned. If config file updates are pending from a previous update, it may remind to update the config files.
Run emerge to update the whole system, with dependencies:
root #
emerge --ask --verbose --update --deep --newuse @world
Or, with short options:
root #
emerge -avuDN @world
--changed-use
may be used in place of --newuse
, but only if you do not build binary packages. --changed-use
will not trigger reinstallation when disabled USE flags are added or removed from a package. See the Binary package guide.
--with-bdeps=y
can be used to update build time dependencies also.
Pay attention to any information provided by Portage at the end of the update. Some of this information may be available in the Portage log.
If Portage reports dependency issues, sometimes using the --backtrack=30
(or an even higher number) can help. By default, Portage has a relatively low limit on how far it tries to resolve dependencies (for performance reasons), occasionally it is not enough.
Any configuration file changes should be addressed, this can be managed by dispatch-conf:
root #
dispatch-conf
Cleaning up after an update
After the update, Portage recommends running emerge --depclean. Be very careful running emerge --depclean, it can remove important packages (e.g. kernel sources or virtual package optional dependencies when an alternative gets merged).
See remove orphaned packages for information on how to use emerge --depclean to remove potentially unused packages safely. See also the Portage FAQ.
프로파일 업데이트 절차
프로파일을 바꾸기 전에 포티지를 업데이트 했는지 확인하십시오.
Make sure the main Gentoo repository (the Portage tree) has been synced before performing any profile changes.
When a new profile is available, Portage will inform the user with a news item (recent news items are listed on the website).
If a system is too old, it may be non trivial to get the system up to date, it may even be easier to start from scratch.
보통 이런 옮기는 과정은 강요하지 않으며, 젠투 핸드북에서 설명한대로 계속해서 시스템에서 오래된 프로파일을 사용하며 꾸러미 업데이트를 할 수 있습니다.
프로파일 이전이 분명하다면, 업그레이드를 직접 실행해야 합니다. 릴리즈 단위로의 업데이트 방식은 상당히 다양하며, 새 프로파일에 도입한 수정사항이 얼마나 많느냐에 따라 달라집니다.
Exactly what is required to migrate to a new profile is detailed in the relevant news item.
일반 절차
This is a generic outline of what is done to update a profile. As stated previously, specific instructions will be provided in a news item, for each new profile. A profile update often requires manual intervention, beyond just switching the profile version.
대부분 아키텍처에 Desktop과 Server 하위 프로파일이 있습니다. 엄청나게 작은 기본 프로파일보다 여러분이 원하는 만큼 꾸러미를 제공하는지 프로파일을 조심스레 살펴보십시오.
developer 하위 프로파일은 젠투 리눅스 개발 작업에 특화되어 있습니다. 보통 개발 환경을 설정하는데 도움이 됨을 의미하는 것은 아닙니다.
Switch profiles with eselect
Make sure warnings in parent section have been read.
먼저 emerge eselect를 실행하십시오. eselect유틸리티를 통해 별도로 심볼릭 링크를 만들거나 제거하지 않고도 프로파일을 쉽게 보고 선택할 수 있습니다.
root #
eselect profile list
root #
eselect profile set <number>
Switch profiles manually
Make sure warnings in parent section have been read.
직접 프로파일을 바꾸는 방식도 지원합니다:
root #
rm /etc/portage/make.profile
root #
cd /etc/portage
root #
ln -s ../../usr/portage/profiles/<selected profile> make.profile
Updating to 17.1 profile
See the appropriate news item. At this point all installations should already be using the 17.1 profile, and migration could be difficult.
Updating to 17.0 profile
See the appropriate news item. At this point all installations should be using the 17.1 profile, and migration could be difficult.
오래된 시스템 업데이트
Sometimes, systems are too old to easily upgrade. It may be possible to manually update a very old system, but it may be better to start from scratch and copy system configuration an files from the old system to the new one.
Here is a rough guide to updating an old system. Another method can be found here.
업데이트 개념
이 업그레이드 접근 개념은 최근 스테이지 3을 풀어놓은 빌드 과정 chroot를 만드는 것입니다. 그 후에 스테이지 3 chroot 환경에 있는 도구를 사용하여 실제 동작중인 시스템의 꾸러미를 업그레이드 합니다.
아래 언급한 명령은 작업 절차보단 안내서로서 제공하는 내용이며 완성되지 않았습니다. 접근 방식이 확실하지 않으면 중요한 파일을 백업하고 젠투를 다시 설치하는게 더 빠릅니다.
빌드 과정 chroot 준비
/mnt/build라고 하는 빌드 과정 chroot를 먼저 만들고, 최신 스테이지 3를 여기에 풀으십시오.
root #
mkdir -p /mnt/build
root #
tar -xf /path/to/stage3-somearch-somedate.tar.bz2 -C /mnt/build
root #
mount --rbind /dev /mnt/build/dev
root #
mount --rbind /proc /mnt/build/proc
root #
mount --rbind /sys /mnt/build/sys
다음에는, 여기 chroot 환경에 마운트 지점을 만들고, 여기에다가 동작중인 이전 환경의 마운트를 바인딩하십시오.
root #
mkdir -p /mnt/build/mnt/host
root #
mount --rbind / /mnt/build/mnt/host
이제 /mnt/build/mnt/host에서 (이전의) 동작중인 시스템에 접근할 수 있습니다. 또한 빌드 과정 chroot 내부로 chroot 하면 꾸러미를 업데이트 할 수 있습니다.
네트워크 연결, chroot, 업데이트
새로 설치할 때는 네트워크에 접근해서 관련 정보를 네트워크에서 복사해와야 합니다:
root #
cp -L /etc/resolv.conf /mnt/build/etc/
빌드 위치 매개로 루트를 전환하고, 라이브 시스템 자체에서 업데이트 할 수 있는만큼 (루트로 전환한 빌드 매게에서보다는) 라이브 시스템에서 동작하는 꾸러미의 업데이트를 시작하십시오:
root #
chroot /mnt/build
root #
source /etc/profile
root #
export PS1="(chroot) ${PS1}"
(chroot) root #
emerge --sync
It may be a good idea to check that the profile and Portage configuration are compatible between the (old) live system and the chroot.
이제 (이전) 라이브 시스템으로 꾸러미 빌드를 시작하십시오. 포티지가 오래됐거나 빠졌다면 다음 명령으로 시작하시는게 좋습니다:
(chroot) root #
emerge --root=/mnt/host --config-root=/mnt/host --verbose --oneshot sys-apps/portage
루트를 전환한 세션을 열린 채로 두고, (이전) 라이브 시스템의 업데이트를 시도하십시오. 문제가 발생했다면 루트를 전환한 세션을 활용하여 루트 전환한 빌드 매개에서 사용할 수 있는 빌드 도구를 활용하여 꾸러미를 업데이트하십시오(sys-libs/glibc, sys-devel/gcc 등을 포함). 이 도구는 chroot 빌드에 필요하므로 추가할 수 있습니다.
chroot 환경에서 emerge 명령을 실행할 때마다 잊지 말고
--root=/mnt/host --config-root=/mnt/host
옵션을 추가하십시오. 그렇지 않으면, (이전)라이브 시스템이 아닌 chroot 자체를 업데이트합니다일부 설치 과정에서 새 프로그램을 설치할 때 설정 파일을 업데이트해야 할 수도 있습니다. chroot 환경에서 설정을 바꾸십시오.
루트 계정에서 빠져나가기 전에 시스템을 완전한 최신의 상태로 두려면 (이전) 라이브 시스템에 @world
세트(모든 꾸러미)를 빌드하십시오:
(chroot) root #
emerge --root=/mnt/host --config-root=/mnt/host --update --newuse --deep --ask @world
과정이 끝나면 최신 시스템이 됩니다!
See also
- Updating old Gentoo installations
- Can I upgrade Gentoo from one release to another without reinstalling?
- Cheat Sheet on updates
- Handbook on updates
- Installation — an overview of the principles and practices of installing Gentoo on a running system.
External resources
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Gregorio Guidi, Chris Gianelloni, Joshua Saddler
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.