如何强制emerge安装更新版本的软件包?

如何强制emerge安装更新版本的软件包?

我正在使用 Gentoo 并需要安装更新版本的gcc,可在官方 Gentoo 软件包存储库

我想做相当于apt-get install gcc=8.0.3-r1但不知道如何做。它甚至不需要是版本 8 - 任何 4.8 或更高版本都可以。

我尝试过的:

emerge =sys-devel/gcc-8.0.3回报there are no ebuilds to satisfy "=sys-devel/gcc-8.0.3".

emerge-webrsync返回command not foundeix-sync似乎成功完成,但随后eix sys-devel/gcc仅返回 4.7 以下的版本。我希望其中之一相当于apt-get update但事实并非如此。

我究竟做错了什么?

答案1

问题

正如hoefling所说,我也相信你的portage被破坏了,emerge-webrsync后备命令也是如此。 gcc:6 以下的所有版本都被屏蔽或硬屏蔽,并且 multilib 现已更改。

解决方案

  1. 修复Portage。读项目:Portage/修复损坏的 portage < 项目:Portage。当前版本是2.3.66-r1,但是不要如注释所述,高于 2.2.13
  2. 屏蔽sys-kernel/gentoo-sources>= 您的内核版本的每个版本。作为个人观点,我们需要一个健全的编译器链来构建稳定的内核。
  3. 测试emerge --sync
  4. 如果步骤 3 完成,则运行emerge -1 portage。这将用树中的官方 portage 替换您在步骤 1 中构建的 portage。

选修的

  1. 重建整个系统:
    • emerge -e @system
    • emerge -e @world
  2. 揭开你的内核的面具。并更新它。

相关内容