Как поставить php 5.2.X
fer39 15 июня, 2013 - 21:08
Есть старая версия движка для сайта, нужна версия php 5.2.X, переделать не могу так как не силен в php.
А все старые ебильды уже исключены из портажей.
»
- Для комментирования войдите или зарегистрируйтесь
Простого способа нет, нужен
Простого способа нет, нужен либо срез дерева, где есть 5.2, либо решить те проблемы из-за которых 5.2 был исключен
Да нет никаких проблем с
Да нет никаких проблем с версией, её удалили т.к. она старая.
Отсюда можно скачать http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-lang/php/?hideattic=0 удалённый ebuild`ы.
У меня вот такое выдает при
У меня вот такое выдает при попытке поставить старую версию.
WWW ~ # emerge -vp /usr/portage/dev-lang/php/php-5.2.9.ebuild
!!! Invalid PORTDIR_OVERLAY (not a dir): '/var/lib/layman/underlay'
*** emerging by path is broken and may not always work!!!
These are the packages that would be merged, in order:
Calculating dependencies \ * Missing digest for '/usr/portage/dev-lang/php/php-5.2.9.ebuild'
*** You are emerging a masked package. It is MUCH better to use
*** /etc/portage/package.* to accomplish this. See portage(5) man
*** page for details.
>>> Waiting 10 seconds before starting...
>>> (Control-C to abort)...
Continuing... in: 10 9 8 7 6 5 4 3 2 1 ... done!
Traceback (most recent call last):
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 5306, in _pkg
metadata = zip(db_keys, db.aux_get(cpv, db_keys, myrepo=myrepo))
File "/usr/lib64/portage/pym/portage/dbapi/porttree.py", line 467, in aux_get
raise KeyError(mycpv)
KeyError: 'dev-lang/php-5.2.9'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/emerge", line 51, in
retval = emerge_main()
File "/usr/lib64/portage/pym/_emerge/main.py", line 1044, in emerge_main
gc_locals=locals().clear)
File "/usr/lib64/portage/pym/_emerge/actions.py", line 3928, in run_action
myopts, myaction, myfiles, spinner)
File "/usr/lib64/portage/pym/_emerge/actions.py", line 317, in action_build
settings, trees, myopts, myparams, myaction, myfiles, spinner)
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 7825, in backtrack_depgraph
myaction, myfiles, spinner)
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 7857, in _backtrack_depgraph
success, favorites = mydepgraph.select_files(myfiles)
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 2642, in select_files
return self._select_files(args)
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 2737, in _select_files
os.path.dirname(os.path.dirname(os.path.dirname(ebuild_path)))))
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 5308, in _pkg
raise portage.exception.PackageNotFound(cpv)
portage.exception.PackageNotFound: dev-lang/php-5.2.9
ebuild, отсутствующий в
ebuild, отсутствующий в основном дереве portage нужно помещать в локальный оверлей, подключается локальный overlay в make.conf так:
В локальном оверлее нужно создать правильную структуру директорий, в данном случае такую:
Помещаете в неё ebuild, затем нужно создать файл Manifest, с контрольными суммами ebuild`а и необходимых для сборки пакета файлов:
Не забудьте посмотреть так же файлы в директории files, в ней обычно лежат патчи и прочие файлы, которые нужны для сборки пакета.
UPD:
Почему не пробуете php-5.2.17.ebuild ?
Попробовал собрать
Попробовал собрать так:
emerge layman
layman -a underlay
emerge dev-lang/php:5.2
при компиляции вылезает ошибка
p-5.2.17/ext/dom/node.c -o ext/dom/node.lo
/var/tmp/portage/dev-lang/php-5.2.17/work/php-5.2.17/ext/dom/node.c: In function 'dom_canonicalization':
/var/tmp/portage/dev-lang/php-5.2.17/work/php-5.2.17/ext/dom/node.c:1953:21: error: dereferencing pointer to incomplete type
/var/tmp/portage/dev-lang/php-5.2.17/work/php-5.2.17/ext/dom/node.c:1955:5: error: dereferencing pointer to incomplete type
make: *** [ext/dom/node.lo] Error 1
emake failed
* ERROR: dev-lang/php-5.2.17 failed (compile phase):
* emake failed
Ну уж с этой ошибкой к тем,
Ну уж с этой ошибкой к тем, кто пишет ebuild`ы в оверлей underlay .
Ну а с ebuild`ом, удалённым из основного дерева как дела ?
Попробовал php-5.2.17.ebuild
Попробовал php-5.2.17.ebuild ? и локальный оверлей
та-же ошибка при компиляции.
ude -O2 -pipe -D_GNU_SOURCE -c /var/tmp/portage/dev-lang/php-5.2.17/work/sapis-build/cli/ext/dom/node.c -o ext/dom/node.lo
/var/tmp/portage/dev-lang/php-5.2.17/work/sapis-build/cli/ext/dom/node.c: In function 'dom_canonicalization':
/var/tmp/portage/dev-lang/php-5.2.17/work/sapis-build/cli/ext/dom/node.c:1953:21: error: dereferencing pointer to incomplete type
/var/tmp/portage/dev-lang/php-5.2.17/work/sapis-build/cli/ext/dom/node.c:1955:5: error: dereferencing pointer to incomplete type
make: *** [ext/dom/node.lo] Error 1
emake failed
* ERROR: dev-lang/php-5.2.17 failed (compile phase):
* emake failed
*
* Call stack:
* ebuild.sh, line 93: Called src_compile
* environment, line 4725: Called eblit-run 'src_compile' 'v1'
* environment, line 1734: Called eblit-php-src_compile
* src_compile-v1.eblit, line 15: Called php_sapi_build 'cli'
* src_compile-v1.eblit, line 24: Called die
* The specific snippet of code:
* emake || die "emake failed"
*
* If you need support, post the output of `emerge --info '=dev-lang/php-5.2.17'`,
* the complete build log and the output of `emerge -pqv '=dev-lang/php-5.2.17'`.
* This ebuild is from an overlay named 'x-portage': '/usr/local/portage/'
* The complete build log is located at '/var/tmp/portage/dev-lang/php-5.2.17/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/dev-lang/php-5.2.17/temp/environment'.
* Working directory: '/var/tmp/portage/dev-lang/php-5.2.17/work/sapis-build/cli'
* S: '/var/tmp/portage/dev-lang/php-5.2.17/work/php-5.2.17'
>>> Failed to emerge dev-lang/php-5.2.17, Log file:
>>> '/var/tmp/portage/dev-lang/php-5.2.17/temp/build.log'
* Messages for package dev-lang/php-5.2.17:
* ERROR: dev-lang/php-5.2.17 failed (compile phase):
* emake failed
*
* Call stack:
* ebuild.sh, line 93: Called src_compile
* environment, line 4725: Called eblit-run 'src_compile' 'v1'
* environment, line 1734: Called eblit-php-src_compile
* src_compile-v1.eblit, line 15: Called php_sapi_build 'cli'
* src_compile-v1.eblit, line 24: Called die
* The specific snippet of code:
* emake || die "emake failed"
*
Часть кода node.c эти строки 1951-1956
} else {
if (mode == 0) {
ret = buf->buffer->use;
if (ret > 0) {
RETVAL_STRINGL((char *) buf->buffer->content, ret, 1);
} else {
.
Играл в эти квесты.
Ебилд в публичном оверлее не соответствует текущим реалиям.
Тебе же полезно начать с определения перечня необходимой функциональности (ибо в полноценное прохождение квеста я упираться не стал).
:wq
--
Live free or die
Вам ебилд или работать ?
Вам ебилд или работать ? шашечки или ехать ?
Если 2-е, то опенвз, центось 5.9 ( и нжинкс, если все плохо с айпишками) позволяют решить проблему за пол-часа.
Если все плохо настолько, что у вас "десктоп на элитгроуп" - то есть lxc ( вопрос "как правильно любить лхц" не ко мне, т.к в нынешнем виде оно мне безинтересно)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
fer39 написал(а): Есть старая
знаком с темой - правильней и, в итоге, это будет проще - поправить движок.
хелп ми , плиз - поправь мне
хелп ми , плиз - поправь мне все клиентские сайты :)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Я когдато делал ебилд для php
Я когдато делал ебилд для php 5.2.17 с fpm sapi патчами (тогда они шли отдельно), сейчас вот переделал.
+ добавил патчи с проекта php52-backports и патч для pcre >=8.30 (иначе нельзя было собрать пакет)
https://yadi.sk/d/N-w3XaiFc55PX
Спасибо тебе, добрый человек!
Спасибо тебе, добрый человек!