Показаны сообщения с ярлыком emerge. Показать все сообщения
Показаны сообщения с ярлыком emerge. Показать все сообщения

суббота, 4 декабря 2010 г.

Обновлена документация для PHP на сайте gentoo.org

Как сообщает Ole Markus в своем блоге, обновилась документация для пакета dev-lang/php

С выходом версии 5.3 и его поддержкой в генту добавилось много изменений, незнание которых может вызвать ряд проблем при устновке php на gentoo. В частности, теперь возможна установка в генту нескольких версий php одновременно в так называемых "слотах", используя вспомогательный пакет app-admin/eselect-php

Как это сделать, теперь более внятно разъясняется в php-guide на сайте генту в секции Slotting используя специальную переменную PHP_TARGETS. И тем не менее полностью не удается избежать проблем. В частности, это касается пакета phpunit например. Утилита /usr/bin/phpunit содержит некорректный путь к интерпретатору php. Фрагмент "неправильного" кода из /usr/bin/phpunit :


#!/usr/lib/php5/bin/php


Воспользовавшись командой whereis php мы получаем следущий код:


whereis php
php: /usr/bin/php /etc/php /usr/lib/php5.3 /usr/share/php


соответственно, путь должен быть таким

#!/usr/lib/php5.3/bin/php
...



Возможно, переустановка пакета phpunit будет содержать правильный путь в /usr/bin/phpunit
Не пробовал. Использую собственную сборку phpunit в виде исполняемого phar-архива.

Кроме того, в документации упоминается о SAPI, поддерживаемых через USE-флаги.
Это флаги: cgi, cli, apache2, fpm (PHP FastCgi Process Manager), embed (встроенный embedded PHP client) Наиболее интересные флаги конечно это fpm и embed. Теретически Embed-флаг позволяет "встраивать" php в другие языки, например python, C

Затронута так-же в двух словах о переустановке pecl-расширений при слоттинге php-версий

Ссылки:
  • Документация по апгрейду PHP


  • Блог Ole Markus


  • Ссылка на статью об обновлении документации PHP
  • воскресенье, 31 октября 2010 г.

    Поведение php-5.3.3 и sqlite, sqlite2, sqlite3, pdo в gentoo

    Есть статья посвященная этой теме. Смысл в том, что надо использовать USE-флаг sqlite3 для предотвращения возможных проблем со старыми драйверами pdo-sqlite. Новый PDO работает теперь только с sqlite3.

    Просто сделайте USE="-sqlite sqlite3" emerge -v php. После, чтобы увидеть эффект этого, просто выполните emerge --depclean -av и увидите, что sqlite2 будет выкинут из системы. Если вы установите php без корректировки USE-флагов sqlite sqlite3, то получите обе работающих библиотеки. В дальнейшем такая конфигурация будет сопровождаться генерацией нотиса в php при работе приложения.

    На мой взгляд имеет смысл отказаться заблаговременно от использования старых версий sqlite. И по возможности использовать только sqlite3. Но реально воспользоваться этой возможностью можно только перейдя на php53.

    Новый sqlite3 поддерживает юникод (UTF-8), что отражается на корректной сортировке данных. Версии sqlite ниже <3 br="">
    В общем для решения этих проблем просто установите генту с последними версиями sqlite и пхп...

    ;)

    ключевые слова:
    драйвер, сортировка, юникод, установка, генту, sql, sqlite, sqlite3, data, php, php53, php5.3, portage, gentoo, ebuild, emerge, pdo, unicode, utf

    upd 2013:
    warning: this article actual for old gentoo versions - latest builds may work not such

    внимание: данная статья актуальна для очень старых сборок - последние версии gentoo могут иметь другое поведение с этими флагами. Наблюдалось не очень логичное поведение portage - пришлось несколько раз пересобирать, возможно это просто мешали старые флаги или не поддерживаемые пакеты. 

    upd 2013:
    warning for advertisers: if you want place backlink here or something other please contact me or/and use donate button.

    воскресенье, 20 сентября 2009 г.

    Установка PHP 5.3 на Gentoo Linux

    ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ!
    статья устарела и может быть полезна только в познавательных целях или для очень давно не обновляемых серверов с генту.
    Сейчас 53 достаточно стабилен и установка достаточно тривиальна.
    Смотрите руководства по установке/обновлению php на сайте gentoo.org
    Статьи на сайтах gentoo-wiki также выглядят устаревшими. Лично мое мнение: надо использовать в полный рост PHP 5.4 и готовиться к PHP 5.5+
    ===============================================


    Сабж, собственно практически ничем не отличается от установок предыдущих версий ниже 5.3 Хотя, безусловно есть нюансы. Возможно, в других дистрибутивах линукса это не так, но в Генту все довольно круто :)

    Я не случайно делаю оговорку по этому поводу и конечно не призываю Вас выбросить Ваш любимый дистр и сломя голову перейти на Генту... Мне весьма понятна эта тема, так как когда-то давно выбрался именно Генту, прекрасно осознавая, что наиболее свежий софт более-менее будет доступен из репозитариев этого дистра. Итак, хватит лирики приступим:

    Подготовка


    Для установки Вам потребуется:


    • убежденность, что свежий PHP 5.3 это есть гут :)

    • терпение и внимательность

    • ebuild PHP 5.3 Если, Вы никогда не устанавливали ebuild(s), то советую Вам почитать соответствующие мануалы. Иначе ничего не получится. Все дело в том, что это неофициальный ebuild т.е. он "нормальный" :), но его еще пока нет в официальном дереве портов Генту. Вы не можете сделать просто:
      emerge --sync && emerge -avDuN php

      Тем не менее, это не значит, что этот ебилд нельзя использовать. Просто он находится в фазе активного тестирования в рамках всевозможного софта, зависимостей пакетов и библиотек, платформ и т.д. На моих машинах данный ебилд работает прекрасно. Взять его можно будет по этому урлу: PHP 5.3 ebuild Внимательно и вдумчиво копируем и устанавливаем ебилды, вдохновляясь вкусностями новой версии...

    • будьте готовы к тому, что после обновления, Ваши скрипты с вызовами вида:
      doMyFunc(& $args);
      будут приводить к предупреждениям интерпретатора. Для совместимости можно отключить эти сообщения в конфигах php.ini Некоторые приложения будут несомненно глючить или вообще не будут работать. Для справки: достаточно свежий phpbb прекрасно справился с 5.3, но бекапы в основном к БД сделать предварительно не помешает

    • Перед установкой рекомендуется обновить pear, pecl и удалить лишние расширения. Для чистоты установки лучше предварительно деинсталлировать все pecl-расширения. Некоторые из-них не будут нормально работать или вообще откажут в сборке. Про другие, Генту уведомит ненавязчиво... Возможный список проблемных расширений: python, xdebug, APC...

      Насчет последнего - отдельная тема... Он устанавливается из последних версий бета, и даже работает, но пока миграция не закончена, лучше отключить нафиг... С xdebug примерно тоже самое.


    О настройках ключей компиляции


    (необязательно, но рекомендуется):
    sudo nano -w /etc/portage/package.use


    и добавить или обновить строчку (привожу мои ключи):
    dev-lang/php sharedext pcntl apache2 pdo postgres tidy bzip2 tokenizer ctype curl memcache oci8-instant-client hash sqlite

    Сборка пакета


    Если все сделали правильно, то по команде
    emerge -vDuNp php
    увидим готовность Генту установить PHP 5.3. Еще раз проверяем все и "емерджим" новый PHP...

    Завершение


    -по завершении установки не забываем про новые конфиги:
    dispatch-conf
    Очень внимательно и самое главное честно прописываем timezone в конфигах иначе возможны пляски с бубном... Делаем apache2 restart и наконец приступаем радостно к работе с новой версией.

    Продолжение следует...


    В ближайших постах расскажу о новых возможностях 5.3 в плане быстрой и удобной автозагрузки модулей классов и реального применения пхп-пэкэджей с нейм-спейсами, SPL и многое другое... Хотя некоторые возможности есть и у ветки 5.2, но по настоящему с ними работать приятнее конечно в новой версии. Всем удачи!

    Полезные ссылки


    Установка и разработка ebuild
    О ebuild на русском
    Зачем нужен eclass