Я пытаюсь скомпилировать более низкую версию php (5.2), так как gentoo выбирает 5.3, и у меня возникают некоторые проблемы с кодированием в новой версии
нано /etc/portage/package.use
= dev-lang / php-5.2.14 ~ amd64
все еще, когда я выхожу, появляются -av php
все еще выбирает версию 5.3, которая по умолчанию
как еще я могу заставить emerge выбрать нужную мне версию
ls / usr / portage / dev-lang / php / ChangeLog php-5.2.14.ebuild php-5.3.4.ebuild Манифест php-5.2.16.ebuild php-5.3.5.ebuild files / php-5.2.17. ebuild metadata.xml php-5.3.3-r1.ebuild
Вы должны найти старый пакет ebuild, он должен находиться в каталоге portage.
Тогда, если я правильно помню, команда для запуска была "ebuild old-package.ebuild", и она скомпилирует ее.
Во-первых, в php 5.2.17 уже есть amd64
в его ключевых словах так ~amd64
ничего бы не сделал.
Во-вторых, почти никогда не стоит пытаться смешивать ~amd64
и amd64
Вот почему вы устанавливаете ACCEPT_KEYWORDS=~amd64
(или amd64
) в /etc/make.conf
. Это переменная для каждого хоста.
В-третьих, вы должны использовать /etc/portage/package.mask
вот так:
>dev-lang/php-5.2.17
Это предотвратит маскировку всех ебилдов с версией выше 5.2.17.
Тогда беги emerge -upv --deep --newuse php
.
не появилось сообщение об ошибке сразу? спецификации ключевых слов должны входить в /etc/portage/package.keywords.
@комментарий:
emerge -av =php-5.2.17
если любой из них состоит из ключевых слов, то:
echo "=dev-lang/php-5.2.17 ~amd64" >> /etc/portage/package.keywords
Версии PHP теперь размещены в Gentoo, поэтому вы можете легко иметь любую версию или даже обе одновременно в системе и переключаться между ними с помощью eselect. Eсть полное руководство на домашней странице Gentoo о том, как правильно перейти на версии PHP со слотами.