Gentooで長期間アップデートせずにEAPIが古くなってしまった場合の対処

長期間アップデートしていないGentooで久々にemerge -uDN @worldすると、EAPIが古すぎる!と、怒られてしまいます。

The current version of portage supports EAPI '6'. You must upgrade to a
newer version of portage before EAPI masked packages can be installed.
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook. 

で、基本的に、EAPI 6 から EAPI 7 への移行は、次のようなコマンドでアップデートするそうです。

emerge --sync
emerge -qv python
USE='-rsync-verify' emerge -qvO portage
emerge -qv portage

emerge --syncは出来るのですが、その次のpythonがemergeできません。

# emerge -qv python

!!! All ebuilds that could satisfy "python" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-lang/python-3.9.0_alpha6::gentoo (masked by: EAPI 7)
- dev-lang/python-3.8.3::gentoo (masked by: EAPI 7)
- dev-lang/python-3.8.2-r2::gentoo (masked by: EAPI 7)
- dev-lang/python-3.8.2-r1::gentoo (masked by: EAPI 7)
- dev-lang/python-3.7.7-r2::gentoo (masked by: EAPI 7)
- dev-lang/python-3.7.7-r1::gentoo (masked by: EAPI 7)
- dev-lang/python-3.6.10-r2::gentoo (masked by: EAPI 7)
- dev-lang/python-3.6.10-r1::gentoo (masked by: EAPI 7)
- dev-lang/python-2.7.18::gentoo (masked by: EAPI 7)
- dev-lang/python-2.7.17-r2::gentoo (masked by: EAPI 7)

で、次のUSE='-rsync-verify' emerge -qvO portageが詰まります。
エラーをコピペし忘れましたが、python3.7 comannd not foundでcall stackして止まりました。

# eselect python list
Available Python interpreters, in order of preference:
  [1]   python2.7
  [2]   python3.6
  [3]   python3.5 uninstalled

そりゃそうですよね。そもそもPython3.7がインストールされていません。python3.7は上記の通りEAPI 7にマスクされてインストールできません。
この元凶はmake.confのPYTHON_TARGETSを指定することで回避されます。

PYTHON_TARGETS="python2_7 python3_6"

これで、コンパイルは通るようになりましたが、インストールで躓きます。

 * This package will overwrite one or more files that may belong to other
 * packages (see list below).
 *
 * Detected file collision(s):
 *
 *      /usr/share/man/man1/glsa-check.1.bz2
 *      /usr/lib/python-exec/python3.6/glsa-check
 *      /usr/bin/glsa-check

本当はFEATURES='-collision-protect -rsync-verify' emerge -qvO portageとでもやれば良かったのかもしれませんが、コリジョンが発生した3ファイルを移動してみました。

# mv /usr/share/man/man1/glsa-check.1.bz2 /usr/share/man/man1/glsa-check.1.bz2.bak
# mv /usr/lib/python-exec/python3.6/glsa-check /usr/lib/python-exec/python3.6/glsa-check.bak
# mv /usr/bin/glsa-check /usr/bin/glsa-check.bak

これで、USE='-rsync-verify' emerge -qvO portageが通りました。
ようやく最後のemerge -qv portageを実施しようとするも、

# emerge -qv portage

 * IMPORTANT: 39 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


 * IMPORTANT: 2 config files in '/etc/portage' need updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.
[ebuild  N    ] app-crypt/openpgp-keys-gentoo-release-20191030  USE="-test"
(途中省略)
[ebuild   R   ] sys-apps/portage-2.3.99-r2  USE="(ipc) native-extensions rsync-verify* xattr -apidoc -build -doc -gen  too-dev (-selinux)" PYTHON_TARGETS="python3_6 (-pypy3) -python3_7 (-python3_8)"
[blocks B     ] <app-portage/gentoolkit-0.4.6 ("<app-portage/gentoolkit-0.4.6" is blocking sys-apps/portage-2.3.99-r2  )

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (app-portage/gentoolkit-0.4.2-r1:0/0::gentoo, installed) pulled in by
    app-portage/gentoolkit required by @selected

  (sys-apps/portage-2.3.99-r2:0/0::gentoo, ebuild scheduled for merge) pulled in by
    sys-apps/portage required by @selected
    >=sys-apps/portage-2.1.6 required by (app-admin/python-updater-0.14:0/0::gentoo, installed) USE="" ABI_X86="(64)"
    sys-apps/portage required by (app-admin/perl-cleaner-2.25:0/0::gentoo, installed) USE="" ABI_X86="(64)"
    sys-apps/portage required by (virtual/package-manager-1:0/0::gentoo, installed) USE="" ABI_X86="(64)"
    portage

先にgentoolkitをアップデートします。

sh

# emerge -u gentoolkit
|