Difference between revisions of "Upgrade Instructions/1.3-release"

From Funtoo
Jump to navigation Jump to search
Line 71: Line 71:
# ##i##emerge -u1 gcc
# ##i##emerge -u1 gcc
# ##i##emerge -u1 glibc
# ##i##emerge -u1 glibc
# ##i##emerge -auDN @system
# ##i##emerge -auDN @system --ignore-world
# ##i##emerge -auDN @world
# ##i##emerge -auDN @world

Revision as of 01:12, December 5, 2018

Other languages:
English • ‎español • ‎中文(中国大陆)‎

The goal of these instructions is to provide Funtoo Linux users with a reliable, consistent set of instructions for upgrading Funtoo Linux from 1.2 to 1.3. Please assist in ensuring that these instructions are complete and guide users through any potential complications. Since this is a wiki, make changes to the page that are needed to make these instructions 100% reliable. Thank you!

Set Release and Sync


Make sure you have ego 2.6.3 or later installed!

In /etc/ego.conf, set the release to 1.3:


release = 1.3

Then, run ego sync:

root # ego sync

Optionally Remove Xorg-Server

1.3-release contains a completely reworked xorg-server, and as such, it is best to remove your old xorg-server prior to updating:

root # emerge -C xorg-server

Optionally Retarget Pure64

If you are running a pure64 build of Funtoo Linux, you will need to run the following command to update your /etc/portage/make.profile/parent file to no longer reference the pure64 arch profile, as it has been deprecated. Run the following command:

root # epro arch x86-64bit
root ##y##WARNING: Previous value: x86-64bit -- typically, user should not change this.

=== Enabled Profiles: ===

        arch: x86-64bit
       build: current
     subarch: intel64-westmere
      flavor: core
     mix-ins: mediaformat-gfx-common
     mix-ins: mediaformat-gfx-extra

>>> Set arch to x86-64bit.
Updating profiles at /etc/portage/make.profile/parent...

Relax Deps and Rebuild

Before upgrading, it is a good idea to perform the following commands to relax any existing 32-bit ABI deps so that installed packages don't block necessary updates. Be sure to back up /var/db/pkg, as included in the instructions below, and specify the find commands below exactly -- best to copy and paste:

root # cd /var/db
root # cp -a pkg /var/tmp/pkg.bak
root # cd pkg
root # find -iname RDEPEND -exec sed -i -e 's/\[abi_x86_32(-),abi_x86_64(-)]//g' {} \;
root # find -iname RDEPEND -exec sed -i -e 's/,abi_x86_32(-),abi_x86_64(-)]/]/g' {} \;

Any critical installed packages should no longer depend on ebuilds providing 32-bit ABIs.

Now, proceed to perform a system upgrade followed by a world upgrade:

root # emerge -u1 gcc
root # emerge -u1 glibc
root # emerge -auDN @system --ignore-world
root # emerge -auDN @world

It appears that dev-lang/go will keep rebuilding against a preserved 32-bit glibc, so to fully remove multilib on a system that has dev-lang/go installed, you will need to perform the following steps: emerge -C dev-lang/go; emerge dev-lang/go.

Now, it should be possible to rebuild any necessary packages to get rid of preserved libraries, paying particular attention to any old versions of glibc:

root # emerge -av @preserved-rebuild

You will want to either run etc-update or dispatch-conf to perform changes to the configuration files that may happen with ebuild updates:

root # etc-update

Upgrading to 1.3 will remove any 32-bit compatibility on your system, as we have deprecated multilib support! Please be aware of this before starting the upgrade process.

Optionally Update Kernel

If you were not using debian-sources-lts before, you may want to upgrade to this kernel. Do this as follows:

root # emerge -av debian-sources-lts
root # ego boot update

Depending on your /etc/boot.conf settings, you may need to tweak the file in order to have debian-sources-lts selected by default.


Remember to rebuild any necessary kernel modules!

This can be achieved with:

root # emerge -av @module-rebuild --exclude debian-sources-lts


At this point, we recommend rebooting the system to ensure you are running in the new environment:

root # reboot