我试图编译一个较低版本的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什么也不做。
其次,尝试混合~amd64和amd64几乎不是一个好主意这就是为什么在/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版本的完整指南 。