The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Ports-2012-to-kits-migration-guide"
m (Some rewording) |
|||
Line 1: | Line 1: | ||
== Intro == | == Intro == | ||
In this guide we | In this guide we try to cover the migration from an older Funtoo portage tree, known as <code>ports-2012</code>, to a new kits based tree, called <code>meta-repo</code>. | ||
=== Current builds migration === | === Current builds migration === | ||
For current builds | For current builds, aka "unstable keyworded" boxes, it is as easy as explained in meta-repo's README: | ||
https://github.com/funtoo/meta-repo/blob/master/README.rst | https://github.com/funtoo/meta-repo/blob/master/README.rst | ||
Notice, | |||
Notice, after <code>emerge -auDN @world</code> you may see a various ebuilds updates and downgrades. This is expected. With update, a newer version of <code>ego</code> provided. It includes a new module called "sync" which performs updates of the meta-repo. Because of meta-repo's unique structure, portage has no ability to sync with the usual <code>emerge --sync</code>. It may provide support for this in the future. To update just run: | |||
{{console|body= | {{console|body= | ||
# ##i##ego sync | # ##i##ego sync | ||
Line 10: | Line 12: | ||
===Stable build migration=== | ===Stable build migration=== | ||
As you may notice, funtoo-stable | As you may notice, ''funtoo-stable'' builds are now retired -- see http://www.funtoo.org/News:Funtoo-Stable_Going_Away. It is recommended to upgrade to ''current'' builds. If feel that doing so is not an option, or your boxes do not allow to receive such an update, like if they are in production, you may skip this step as the funtoo stable profile is still working. However, you may notice various emerge warnings or dependency problems. | ||
====Updating build==== | ====Updating build==== | ||
This is one line command | This is a one-line command performed by <code>epro</code> | ||
{{console|body= | {{console|body= | ||
# ##i## epro build current | # ##i## epro build current | ||
}} | }} | ||
====Upgrade==== | ====Upgrade==== | ||
This can be a tricky part as updating from stable to unstable keywords may result in various portage conflicts. Hopefully, it will be smooth. | This can be a tricky part as updating from stable to unstable keywords may result in various portage conflicts. Hopefully, it will be smooth. | ||
Line 21: | Line 25: | ||
# ##i## emerge -auND @world | # ##i## emerge -auND @world | ||
}} | }} | ||
if you | if you get slots conflicts similar to the ones shown below: | ||
{{console|body= | {{console|body= | ||
!!! Multiple package instances within a single package slot have been pulled | !!! Multiple package instances within a single package slot have been pulled | ||
Line 34: | Line 38: | ||
^^^^^ | ^^^^^ | ||
}} | }} | ||
try using more advance update command: | try using a more advance update command, for example: | ||
{{console|body= | {{console|body= | ||
# ##i## emerge -auDN @world --with-bdeps=y --verbose-conflicts --backtrack=30 | # ##i## emerge -auDN @world --with-bdeps=y --verbose-conflicts --backtrack=30 | ||
}} | }} | ||
===== Important core packages updates===== | ===== Important core packages updates===== | ||
There will be at least 2 important ebuilds updates which | There will be at least 2 important ebuilds updates which required the user's attention, <code>sys-libs/ncurses-6*</code> and <code>dev-lang/perl-5.24*</code>. After update as shown in the above command, it is necessary to rebuild many ebuilds. That is so because ncurses-6 is incompatible with ncurses-5. During the update, portage will rebuild most of the ebuilds. To complete the update, perform the following check: | ||
{{console|body= | {{console|body= | ||
# ##i## oleg / # revdep-rebuild --library 'libncurses' -- -pv --exclude ncurses | # ##i## oleg / # revdep-rebuild --library 'libncurses' -- -pv --exclude ncurses | ||
}} | }} | ||
This command will print | This command will print a list of ebuilds to be rebuilt. Examine it and if it is ok, let portage rebuild the listed ebuilds: | ||
{{console|body= | {{console|body= | ||
# ##i## revdep-rebuild --library 'libncurses' -- --exclude ncurses | # ##i## revdep-rebuild --library 'libncurses' -- --exclude ncurses | ||
}} | }} | ||
Upon perl-5.24 update, it is required to run special tool | Upon perl-5.24 update, it is required to run a special tool called <code>perl-cleaner</code>. This will rebuild many perl-related modules, etc. | ||
{{console|body= | {{console|body= | ||
# ##i## perl-cleaner --all | # ##i## perl-cleaner --all | ||
}} | }} |
Revision as of 19:05, August 12, 2017
Intro
In this guide we try to cover the migration from an older Funtoo portage tree, known as ports-2012
, to a new kits based tree, called meta-repo
.
Current builds migration
For current builds, aka "unstable keyworded" boxes, it is as easy as explained in meta-repo's README: https://github.com/funtoo/meta-repo/blob/master/README.rst
Notice, after emerge -auDN @world
you may see a various ebuilds updates and downgrades. This is expected. With update, a newer version of ego
provided. It includes a new module called "sync" which performs updates of the meta-repo. Because of meta-repo's unique structure, portage has no ability to sync with the usual emerge --sync
. It may provide support for this in the future. To update just run:
root # ego sync
Stable build migration
As you may notice, funtoo-stable builds are now retired -- see http://www.funtoo.org/News:Funtoo-Stable_Going_Away. It is recommended to upgrade to current builds. If feel that doing so is not an option, or your boxes do not allow to receive such an update, like if they are in production, you may skip this step as the funtoo stable profile is still working. However, you may notice various emerge warnings or dependency problems.
Updating build
This is a one-line command performed by epro
root # epro build current
Upgrade
This can be a tricky part as updating from stable to unstable keywords may result in various portage conflicts. Hopefully, it will be smooth.
root # emerge -auND @world
if you get slots conflicts similar to the ones shown below:
!!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: sys-libs/ncurses:0 (sys-libs/ncurses-6.0-r1:0/6::gentoo, ebuild scheduled for merge) pulled in by (no parents that aren't satisfied by other packages in this slot) (sys-libs/ncurses-5.9-r5:0/5::gentoo, installed) pulled in by >=sys-libs/ncurses-5.2-r2:0/5= required by (app-editors/vim-8.0.0606:0/0::gentoo, installed) ^^^^^
try using a more advance update command, for example:
root # emerge -auDN @world --with-bdeps=y --verbose-conflicts --backtrack=30
Important core packages updates
There will be at least 2 important ebuilds updates which required the user's attention, sys-libs/ncurses-6*
and dev-lang/perl-5.24*
. After update as shown in the above command, it is necessary to rebuild many ebuilds. That is so because ncurses-6 is incompatible with ncurses-5. During the update, portage will rebuild most of the ebuilds. To complete the update, perform the following check:
root # oleg / # revdep-rebuild --library 'libncurses' -- -pv --exclude ncurses
This command will print a list of ebuilds to be rebuilt. Examine it and if it is ok, let portage rebuild the listed ebuilds:
root # revdep-rebuild --library 'libncurses' -- --exclude ncurses
Upon perl-5.24 update, it is required to run a special tool called perl-cleaner
. This will rebuild many perl-related modules, etc.
root # perl-cleaner --all