我正在尝试编译较低版本的 php (5.2),因为 gentoo 选择的是 5.3,而我在新版本中遇到了一些编码问题
纳米/etc/portage/package.use
=dev-lang/php-5.2.14 ~amd64
当我出现 emerge -av php 时仍然
仍然选择默认版本 5.3
我还能怎样强制 emerge 选择我想要的版本
ls /usr/portage/dev-lang/php/ 变更日志 php-5.2.14.ebuild php-5.3.4.ebuild 清单 php-5.2.16.ebuild php-5.3.5.ebuild 文件/ php-5.2.17.ebuild 元数据.xml php-5.3.3-r1.ebuild
答案1
您应该找到旧的 ebuild 包,它应该在 portage 目录中。
然后,如果我没记错的话,要运行的命令是“ebuild old-package.ebuild”并且它会编译它。
答案2
没有立即出现错误通知?关键字规范应该进入 /etc/portage/package.keywords。
@评论:
emerge -av =php-5.2.17
如果其中任何一个是关键字,那么:
echo "=dev-lang/php-5.2.17 ~amd64" >> /etc/portage/package.keywords
答案3
首先,php 5.2.17amd64
在其关键字中已经有了,所以~amd64
不会执行任何操作。
其次,尝试混合~amd64
和几乎从来都不是一个好主意,amd64
这就是为什么您要在中设置ACCEPT_KEYWORDS=~amd64
(或amd64
)/etc/make.conf
。它是一个每个主机变量。
第三,你应该/etc/portage/package.mask
像这样使用:
>dev-lang/php-5.2.17
这将阻止所有版本高于 5.2.17 的 ebuild 被屏蔽。
然后运行emerge -upv --deep --newuse php
。
答案4
PHP 版本现已插入 Gentoo,因此您可以轻松地在系统上安装任一版本,甚至同时安装两个版本,并使用 eselect 在它们之间切换。完整指南在 Gentoo 主页上了解如何正确迁移到插槽 PHP 版本。