The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Upgrade Instructions/1.3-release"
m (config file changes) |
|||
(21 intermediate revisions by 5 users not shown) | |||
Line 2: | Line 2: | ||
<translate> | <translate> | ||
<!--T:1--> | <!--T:1--> | ||
{{Warning|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.}} | |||
{{Important|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!}} | {{Important|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!}} | ||
=== | === Prior to 1.3 === <!--T:8--> | ||
<!--T:9--> | |||
Prior to upgrading to 1.3, you will need to perform an {{c|ego sync}} under 1.2. If you encounter errors with {{c|ego sync}} not completing successfully on {{c|xorg-kit}} or {{c|gnome-kit}}, perform the following steps to correct your tree. First, add the following to {{f|/etc/ego.conf}}: | |||
{{ | <!--T:10--> | ||
{{file|name=/etc/ego.conf|body= | |||
[global] | |||
<!--T:11--> | |||
kits_depth = 20 | |||
}} | |||
<!--T:12--> | |||
Then, run the following commands: | |||
<!--T:13--> | |||
{{console|body= | |||
# ##i##rm -rf /var/git/meta-repo | |||
# ##i##ego sync | |||
}} | |||
<!--T:14--> | |||
Now, make sure you have {{c|ego 2.7.2}} or later installed, as this will be required to start the upgrade process. | |||
=== Set Release and Sync === <!--T:15--> | |||
<!--T:16--> | |||
In {{f|/etc/ego.conf}}, set the release to 1.3: | In {{f|/etc/ego.conf}}, set the release to 1.3: | ||
<!--T:17--> | |||
{{file|name=/etc/ego.conf|body= | {{file|name=/etc/ego.conf|body= | ||
[global] | [global] | ||
<!--T:18--> | |||
release = 1.3 | release = 1.3 | ||
}} | }} | ||
<!--T:19--> | |||
Then, run {{c|ego sync}}: | Then, run {{c|ego sync}}: | ||
<!--T:2--> | |||
{{console|body= | {{console|body= | ||
# ##i##ego sync | # ##i##ego sync | ||
}} | }} | ||
=== Optionally Retarget Pure64 === <!--T:20--> | |||
<!--T: | |||
<!--T:21--> | |||
If you are running a {{c|pure64}} build of Funtoo Linux, you will need to run the following command to update your {{f|/etc/portage/make.profile/parent}} file to no longer reference the {{c|pure64}} arch profile, as it has been deprecated. | If you are running a {{c|pure64}} build of Funtoo Linux, you will need to run the following command to update your {{f|/etc/portage/make.profile/parent}} file to no longer reference the {{c|pure64}} arch profile, as it has been deprecated. | ||
Run the following command: | Run the following command: | ||
<!--T:22--> | |||
{{console|body= | {{console|body= | ||
# ##i##epro arch x86-64bit | # ##i##epro arch x86-64bit | ||
##y##WARNING: Previous value: x86-64bit -- typically, user should not change this. | \##y##WARNING: Previous value: x86-64bit -- typically, user should not change this. | ||
=== Enabled Profiles: === | === Enabled Profiles: === <!--T:23--> | ||
arch: ##c##x86-64bit | <!--T:24--> | ||
arch: ##c##x86-64bit | |||
build: ##c##current | build: ##c##current | ||
subarch: ##c##intel64-westmere | subarch: ##c##intel64-westmere | ||
Line 48: | Line 72: | ||
mix-ins: ##c##mediaformat-gfx-extra | mix-ins: ##c##mediaformat-gfx-extra | ||
<!--T:25--> | |||
>>> Set arch to x86-64bit. | >>> Set arch to x86-64bit. | ||
Updating profiles at /etc/portage/make.profile/parent... | Updating profiles at /etc/portage/make.profile/parent... | ||
}} | }} | ||
<!--T:3--> | |||
{{Note|You may also need to update {{c|subarch}} using a similar set of arguments to {{c|epro}}, e.g. from {{c|intel64-westmere-pure64}} to {{c|intel64-westmere}}.}} | |||
=== Optionally Remove Xorg-Server === <!--T:26--> | |||
<!--T:27--> | |||
1.3-release contains a completely reworked xorg-server, and as such, it is best to ''remove'' your old xorg-server prior to updating: | |||
{{console|body= | |||
# ##i##emerge -C xorg-server | |||
# ##i##emerge -aC $(qlist -IC x11-proto) | |||
# ##i##emerge --oneshot x11-base/xorg-proto | |||
}} | |||
=== Relax Deps and Rebuild === <!--T:4--> | |||
<!--T:28--> | |||
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 {{f|/var/db/pkg}}, as included in the instructions below, and specify the {{c|find}} commands below exactly -- best to copy and paste: | 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 {{f|/var/db/pkg}}, as included in the instructions below, and specify the {{c|find}} commands below exactly -- best to copy and paste: | ||
<!--T:29--> | |||
{{console|body= | {{console|body= | ||
# ##i##cd /var/db | # ##i##cd /var/db | ||
Line 64: | Line 104: | ||
}} | }} | ||
<!--T:30--> | |||
Any critical installed packages should no longer depend on ebuilds providing 32-bit ABIs. | Any critical installed packages should no longer depend on ebuilds providing 32-bit ABIs. | ||
Now, proceed to | <!--T:31--> | ||
Now, proceed to install the new gcc, remove the old one, and then upgrade glibc: | |||
<!--T:32--> | |||
{{console|body= | |||
# ##i##emerge -u1 gcc | |||
# ##i##emerge -C =sys-devel/gcc-7.3.1* | |||
# ##i##emerge -u1 glibc | |||
}} | |||
=== Perl Rebuild === <!--T:33--> | |||
With 1.3-release {{c|dev-lang/perl}} updated from 5.24 to 5.26 version. It is necessary to rebuild perl modules installed with such major version update, which can be done with: | |||
{{console|body= | |||
# ##i##emerge -v1 --nodeps dev-lang/perl | |||
# ##i##perl-cleaner --all | |||
}} | |||
<!--T:34--> | |||
{{Note|Some systems may require {{c|perl-cleaner --reallyall}}}} | |||
<!--T:35--> | |||
Now, you are ready to proceed with a full system and world update: | |||
<!--T:36--> | |||
{{console|body= | {{console|body= | ||
# ##i##emerge -auDN @system | # ##i##emerge -auDN @system --ignore-world | ||
# ##i##emerge -auDN @world | # ##i##emerge -auDN @world | ||
}} | |||
<!--T:37--> | |||
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: | |||
<!--T:38--> | |||
{{console|body= | |||
# ##i##emerge -av @preserved-rebuild | # ##i##emerge -av @preserved-rebuild | ||
}} | }} | ||
<!--T:5--> | |||
{{Important|It appears that {{c|dev-lang/go}} will keep rebuilding against a preserved 32-bit glibc, so to fully remove multilib on a system that has {{c|dev-lang/go}} installed, you will need to perform the following steps: {{c|emerge -C dev-lang/go; emerge dev-lang/go}}.}} | |||
<!--T:6--> | |||
Now, after update and rebuild you will want to either run {{c|etc-update}} or {{c|dispatch-conf}} to perform changes to the configuration files that may happen with ebuild updates: | |||
{{console|body= | {{console|body= | ||
# ##i##etc-update | # ##i##etc-update | ||
}} | }} | ||
=== Optionally Update Kernel === | === Optionally Update Kernel === <!--T:39--> | ||
<!--T:40--> | |||
If you were not using {{c|debian-sources-lts}} before, you may want to upgrade to this kernel. Do this as follows: | If you were not using {{c|debian-sources-lts}} before, you may want to upgrade to this kernel. Do this as follows: | ||
<!--T:41--> | |||
{{console|body= | {{console|body= | ||
# ##i##emerge -av debian-sources-lts | # ##i##emerge -av debian-sources-lts | ||
Line 89: | Line 164: | ||
}} | }} | ||
<!--T:42--> | |||
Depending on your {{f|/etc/boot.conf}} settings, you may need to tweak the file in order to have {{c|debian-sources-lts}} selected by default. | Depending on your {{f|/etc/boot.conf}} settings, you may need to tweak the file in order to have {{c|debian-sources-lts}} selected by default. | ||
Line 96: | Line 172: | ||
# ##i##emerge -av @module-rebuild --exclude debian-sources-lts | # ##i##emerge -av @module-rebuild --exclude debian-sources-lts | ||
}} | }} | ||
<!--T: | === Reboot === <!--T:7--> | ||
<!--T:43--> | |||
At this point, we recommend rebooting the system to ensure you are running in the new environment: | At this point, we recommend rebooting the system to ensure you are running in the new environment: | ||
<!--T:44--> | |||
{{console|body= | {{console|body= | ||
# ##i##reboot | # ##i##reboot |
Latest revision as of 22:26, July 19, 2019
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.
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!
Prior to 1.3
Prior to upgrading to 1.3, you will need to perform an ego sync
under 1.2. If you encounter errors with ego sync
not completing successfully on xorg-kit
or gnome-kit
, perform the following steps to correct your tree. First, add the following to /etc/ego.conf
:
/etc/ego.conf
[global]
kits_depth = 20
Then, run the following commands:
root # rm -rf /var/git/meta-repo root # ego sync
Now, make sure you have ego 2.7.2
or later installed, as this will be required to start the upgrade process.
Set Release and Sync
In /etc/ego.conf
, set the release to 1.3:
/etc/ego.conf
[global]
release = 1.3
Then, run ego sync
:
root # ego sync
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 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...
You may also need to update subarch
using a similar set of arguments to epro
, e.g. from intel64-westmere-pure64
to intel64-westmere
.
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 root # emerge -aC $(qlist -IC x11-proto) root # emerge --oneshot x11-base/xorg-proto
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 install the new gcc, remove the old one, and then upgrade glibc:
root # emerge -u1 gcc root # emerge -C =sys-devel/gcc-7.3.1* root # emerge -u1 glibc
Perl Rebuild
With 1.3-release dev-lang/perl
updated from 5.24 to 5.26 version. It is necessary to rebuild perl modules installed with such major version update, which can be done with:
root # emerge -v1 --nodeps dev-lang/perl root # perl-cleaner --all
Some systems may require perl-cleaner --reallyall
Now, you are ready to proceed with a full system and world update:
root # emerge -auDN @system --ignore-world root # emerge -auDN @world
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
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, after update and 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
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
Reboot
At this point, we recommend rebooting the system to ensure you are running in the new environment:
root # reboot