小记一下这两天更新服务器版本遇到的各种问题。
服务器系统: Gentoo
第一天
其实本来不打算更新系统的,因为最近想试试免费的SSL证书,于是自然而然搜到了letsencrypt,跟着他们的流程需要安装
$ sudo emerge -av app-crypt/certbot app-crypt/certbot-nginx
运行了下,结果给出的错误是:
!!! The following installed packages are masked: - sys-devel/gcc-4.4.5::gentoo (masked by: package.mask) /usr/portage/profiles/package.mask: # Michał Górny <mgorny@gentoo.org>, Andreas K. Hüttel <dilfridge@gentoo.org>, # Matthias Maier <tamiko@gentoo.org> (21 May 2017 and later updates) # These old versions of toolchain packages (binutils, gcc, glibc) are no # longer officially supported and are not suitable for general use. Using # these packages can result in build failures (and possible breakage) for # many packages, and may leave your system vulnerable to known security # exploits. # If you still use one of these old toolchain packages, please upgrade (and # switch the compiler / the binutils) ASAP. If you need them for a specific # (isolated) use case, feel free to unmask them on your system. - sys-libs/glibc-2.23-r3::gentoo (masked by: package.mask) - dev-perl/DBD-mysql-4.41.0::gentoo (masked by: package.mask) /usr/portage/profiles/package.mask: # Kent Fredric <kentnl@gentoo.org> (27 May 2018) # Subject to Man-in-the-middle security bypass vulnerability. # Retained in tree only for users who need older versions # for compatibility reasons. # Bug: #623942 - sys-devel/gcc-4.5.4::gentoo (masked by: package.mask) - sys-devel/binutils-2.26.1::gentoo (masked by: package.mask) For more information, see the MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook.
看到这个错误我还是懵的状态,不懂什么意思,然后网上一通乱搜之后,糊里糊涂的觉得是不是应该更新一下portage树,于是运行如下命令:
$ sudo emerge --sync $ sudo emerge --depclean $ sudo emerge --update --newuse --deep --with-bdeps=y @world
肯定是没成功的,但是的错误信息跟之前的类似,意思就是要我去更新Protage版本。
第二天
又开始来折腾了,我这不达目的不罢休的精神也是可嘉。
网上开始搜索如何更新portage
$ sudo emerge -1v portage
打开man emerge, -l 的选项意思如下
--changelog (-l)
Use this in conjunction with the --pretend option. This will show the
ChangeLog entries for all the packages that will be upgraded.
上面命令的结果还是关于 EAPI
!!! Repository 'x-portage' is missing masters attribute in '/usr/local/portage/metadata/layout.conf' !!! Set 'masters = gentoo' in this file for future compatibility * IMPORTANT: 5 news items need reading for repository 'gentoo'. * Use eselect news read to view new items. These are the packages that would be merged, in order: Calculating dependencies... done! !!! All ebuilds that could satisfy "app-eselect/eselect-pinentry" have been masked. !!! One of the following masked packages is required to complete your request: - app-eselect/eselect-pinentry-0.7::gentoo (masked by: EAPI 7) The current version of portage supports EAPI '6'. You must upgrade to a newer version of portage before EAPI masked packages can be installed. (dependency required by "app-crypt/pinentry-1.1.0-r2::gentoo" [ebuild]) (dependency required by "app-crypt/gnupg-2.2.10::gentoo" [ebuild]) (dependency required by "sys-apps/portage-2.3.51-r1::gentoo[-build,rsync-verify]" [ebuild]) (dependency required by "portage" [argument]) For more information, see the MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook.
参考了https://forums.gentoo.org/viewtopic-t-1087032.html?sid=fc9d72cb8cbb9deac2142bfa542cc06f,照着运行了下面四个命令
sudo emerge --sync sudo emerge -qav python sudo USE='-rsync-verify' emerge -qavO portage sudo emerge -qav portage
$ sudo emerge -qav python
这一步虽然有warning消息提示我有几个package被masked了,但是最终python还是安装成功了,结果如下:
Password: !!! Repository 'x-portage' is missing masters attribute in '/usr/local/portage/metadata/layout.conf' !!! Set 'masters = gentoo' in this file for future compatibility * IMPORTANT: 5 news items need reading for repository 'gentoo'. * Use eselect news read to view new items. [ebuild U ] sys-devel/automake-1.15.1-r2 [1.15] USE="{-test%}" [ebuild NS ] dev-lang/python-3.6.5 [2.7.14-r1, 3.1.3-r1, 3.4.5-r1] USE="gdbm ipv6 ncurses readline sqlite ssl (threads) xml -build -examples -hardened -libressl {-test} -tk -wininst" !!! The following installed packages are masked: - sys-devel/gcc-4.8.5::gentoo (masked by: package.mask) /usr/portage/profiles/releases/17.0/package.mask: # Andreas K. Huettel <dilfridge@gentoo.org> (27 May 2017) # In the 17.0 profiles we assume that our system compiler uses C++14 # or later as default language setting. This means it has to be at # least GCC 6. If you need an older compiler for specific purposes, # feel free to unmask it, however, using it for normal emerging of # packages is neither recommended nor supported in any way. - sys-devel/binutils-2.29.1-r1::gentoo (masked by: package.mask) /usr/portage/profiles/package.mask: # Michał Górny <mgorny@gentoo.org>, Andreas K. Hüttel <dilfridge@gentoo.org>, # Matthias Maier <tamiko@gentoo.org> (21 May 2017 and later updates) # These old versions of toolchain packages (binutils, gcc, glibc) are no # longer officially supported and are not suitable for general use. Using # these packages can result in build failures (and possible breakage) for # many packages, and may leave your system vulnerable to known security # exploits. # If you still use one of these old toolchain packages, please upgrade (and # switch the compiler / the binutils) ASAP. If you need them for a specific # (isolated) use case, feel free to unmask them on your system. - sys-devel/gcc-4.5.4::gentoo (masked by: package.mask) - sys-libs/glibc-2.25-r10::gentoo (masked by: package.mask) For more information, see the MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. Would you like to merge these packages? [Yes/No] yes >>> Recording dev-lang/python in "world" favorites file... >>> Verifying ebuild manifests >>> Emerging (1 of 2) sys-devel/automake-1.15.1-r2::gentoo >>> Installing (1 of 2) sys-devel/automake-1.15.1-r2::gentoo >>> Emerging (2 of 2) dev-lang/python-3.6.5::gentoo >>> Installing (2 of 2) dev-lang/python-3.6.5::gentoo >>> Jobs: 2 of 2 complete Load avg: 2.01, 1.30, 0.63 * Messages for package dev-lang/python-3.6.5: * You have just upgraded from an older version of Python. * * Please adjust PYTHON_TARGETS (if so desired), and run emerge with the --newuse or --changed-use option to rebuild packages installing python modules. !!! existing preserved libs found * IMPORTANT: 5 news items need reading for repository 'gentoo'. * Use eselect news read to view new items.