如何出现不同的版本,PHP的ebuilds

我试图编译一个较低版本的PHP(5.2)作为gentooselect5.3,我有一些与新版本的编码问题

nano /etc/portage/package.use

= dev-lang / php-5.2.14〜amd64

仍然当我出现emerge -av php

是stilselect版本5.3这是默认情况下

我怎么能强制select我想要的版本

ls / usr / portage / dev-lang / php / ChangeLog php-5.2.14.ebuild php-5.3.4.ebuild Manifest php-5.2.16.ebuild php-5.3.5.ebuild文件/ php-5.2.17。 ebuild metadata.xml php-5.3.3-r1.ebuild

你应该find旧的ebuild包,它应该在portage目录下。

然后,如果我没有记错,运行的命令是“ebuild old-package.ebuild”,它会编译它。

没有出现立即吐出错误通知? 关键字规范应该是/etc/portage/package.keywords。

@评论:

emerge -av =php-5.2.17 

如果它们中的任何一个被键入密码,则:

 echo "=dev-lang/php-5.2.17 ~amd64" >> /etc/portage/package.keywords 

首先,php 5.2.17在关键字中已经有了amd64 ,所以~amd64什么也不做。

其次,尝试混合~amd64amd64几乎不是一个好主意这就是为什么在/etc/make.conf设置ACCEPT_KEYWORDS=~amd64 (或amd64 )的原因。 它是一个每个主机variables。

第三,你应该像这样使用/etc/portage/package.mask

 >dev-lang/php-5.2.17 

这将防止版本大于5.2.17的所有ebuild被屏蔽。

然后运行emerge -upv --deep --newuse php

PHP版本现在在Gentoo中插入,所以你可以很容易地在系统上同时使用版本,甚至两个版本,并用eselect在它们之间切换。 Gentoo主页上提供了一个关于如何正确迁移到开槽PHP版本的完整指南 。