Hi,
I'd like to update a system that is about 1 year old. I have python3.7
and python 3.8 installed, 3.7 is the default. After updating the repo,
it was suggested to update portage first (probably useful to support
new EAPI versions).
I read about updating to python 3.9, so I created
---
~ # cat /etc/portage/package.use/py
*/* PYTHON_TARGETS: -* python3_9 python3_8
*/* PYTHON_SINGLE_TARGET: -* python3_9
---
---
~ # cat /etc/portage/package.use/py
*/* PYTHON_TARGETS: -* python3_9 python3_8
*/* PYTHON_SINGLE_TARGET: -* python3_9
---
You should probably not mess with these variables until after your
system is 100% updated and consistent. And even then, probably not.
With our package manager written in python, you often need old python
stuff to build the new python stuff, and disabling the old python
stuff will throw a wrench into that. Even in situations where
technically some upgrade path exists, the complexity of the python dependencies often means that the package manager will give up before
it finds the solution unless the solution is obvious. By tweaking
those variables, you make the solution less obvious to it.
Well, this was the suggested way to go, see https://www.gentoo.org/support/news-items/2021-05-05-python3-9.html
But also when trying "emerge -1vUD @world" (be it with or without the package.use settings), I get stuck in conflicts (mostly on perl and setuptools). perl issues would probably resolve once I have EAPI8
support, i.e. get new portage.
Well, this was the suggested way to go, see https://www.gentoo.org/support/news-items/2021-05-05-python3-9.html
But also when trying "emerge -1vUD @world" (be it with or without the package.use settings), I get stuck in conflicts (mostly on perl and setuptools). perl issues would probably resolve once I have EAPI8
support, i.e. get new portage.
cu
Gerrit
This looks like portage is blocked by itself... so how to solve this
one?
(sys-apps/portage-3.0.4-r1-3:0/0::gentoo, installed) USE="(ipc)
native-extensions rsync-verify xattr -apidoc -build -doc -gentoo-dev
(-selinux) -test" ABI_X86="(64)" PYTHON_TARGETS="python3_7 (-pypy3)
-python3_6 -python3_8 -python3_9" pulled in by
sys-apps/portage[python_targets_python3_7(-),-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-),-python_single_target_python3_8(-)]
required by (app-portage/gentoolkit-0.5.0:0/0::gentoo, installed)
USE="-test" ABI_X86="(64)" PYTHON_TARGETS="python3_7 (-pypy3)
-python3_6 -python3_8"
---
This looks like portage is blocked by itself... so how to solve this
one?
With a year old system you should question if reinstalling your
system after a back up of configuration and data files would be a
smarter approach. If you *must* upgrade your current installation
for learning or as an experiment, then this is something which has
been done before.
Personally, I'd back up /home /etc and world file, plus any databases
or websites if stored under /var/, then untar the latest stage 3
tarball and update @system and @world.
Overall it should be a *much*
faster approach to allow you to bring your installation up to date.
This is because your gentoolkit installed version has no support for
python 3.9.
You might be able to include gentoolkit in your emerge
command, or you might need to build portage with python 3.8 support as
well as 3.9. This type of problem might crop up for several other
packages as you try to get python updated.
Well, this was the suggested way to go, see https://www.gentoo.org/support/news-items/2021-05-05-python3-9.html
It was only suggested for a period of about three weeks:
On Mon, 20 Sep 2021 15:29:30 +0100
Michael <confabulate@kintzios.com> wrote:
Personally, I'd back up /home /etc and world file, plus any databases
or websites if stored under /var/, then untar the latest stage 3
tarball and update @system and @world.
Just extracting stage3 over everything that is already there?
Overall it should be a *much*
faster approach to allow you to bring your installation up to date.
Well, yeah, your mileage may vary.
~ # cat /etc/portage/package.use/py
*/* PYTHON_TARGETS: -* python3_9 python3_8
*/* PYTHON_SINGLE_TARGET: -* python3_9
---
You should probably not mess with these variables until after your
system is 100% updated and consistent. And even then, probably not.
With our package manager written in python, you often need old python
stuff to build the new python stuff, and disabling the old python
stuff will throw a wrench into that. Even in situations where
technically some upgrade path exists, the complexity of the python dependencies often means that the package manager will give up before
it finds the solution unless the solution is obvious. By tweaking
those variables, you make the solution less obvious to it.
Well, this was the suggested way to go, see https://www.gentoo.org/support/news-items/2021-05-05-python3-9.html
Well, yeah, your mileage may vary.
Quite, if you can get your existing installation to only run a
minimal number of rebuilds to arrive at an upgraded toolchain, then
the benefit of reinstalling wouldn't be there. This could have been
the case on an average year, when python deprecations didn't
accelerate and EAPI didn't change. If however you end up tying up
yourself in knots with subsequent python upgrades and difficult to
resolve conflicts, then the pain Vs gain calculus changes.
Well, this was the suggested way to go, see https://www.gentoo.org/support/news-items/2021-05-05-python3-9.html
That news item is about going from 3.8 to 3.9, you are on 3.7.
I'd try
removing the -* items are trying again.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 376 |
Nodes: | 16 (2 / 14) |
Uptime: | 25:16:13 |
Calls: | 8,035 |
Calls today: | 5 |
Files: | 13,034 |
Messages: | 5,829,274 |