Doomed to Wordpress

Serious Reflections During the Life of Jeremy Fisher

   

Subscribe
Subscribe to a syndicated feed of my weblog, brought to you by the wonders of RSS.

Flavours
There's more than one way to view this weblog; try these flavours on for size.

  • index
  • circa 1993
  • RSS
  • Links
    These are a few links to my other sites.

  • Ставропигиальныя Пластинки
  • Анкылым
  • Русское Шрифтовое Зало
  • Gopher (Proxied)
  • More about Gopher
  •        

    2017/08/19 pearlbee

    Продолжаем разбор подводных камней при установке модных CMS на перл.

    PearlBee. Ставить надо версию 1.0, текущая версия с гитхаба представляет собой какой-то недоделанный переходный вариант от мускла к постгресу.

    cpanm --installdeps .
    

    Для Authen::Captcha нужен libgd-dev.

    Создаём базу:

    mysql -u root < db_patches/create_tables.sql
    

    Далее запускаем:

    plackup -R lib/ bin/app.pl
    

    Пытаемся зайти в админку (юзер admin, пароль password) по адресу http://localhost:5000/admin (именно так, без слэша: /admin/ не работает! вот как так?) и видим:

    Failed to render template: file error — /admin/posts/add.tt: not
    found
    

    И так на всех страницах админки. Оказалось, что в новых версиях Dancer не работают следующие конструкции в модулях админки (lib/PearlBee/Admin/*):

       template '/admin/posts/list',
    

    Нужно без начального слэша. Я сначала убрал слэши, но это довольно много автозамены во всех модулях админки. Потом подумал, когда выяснились ещё несовместимости, что лучше ставить старые версии Dancer и других внешних зависимостей, раз уж с этим столько проблем. (На самом деле это конечно не очень правильно и лучше было пропатчить модули, но как мы увидим далее, будут ещё проблемы с DBIC-плагином и его тоже надо будет ставить более ранней версии, которая наверняка зависит от соответственно более ранней версии Dancer.)

    Ставим версию 0.11, которая была на момент выпуска релиза PearlBee.

    Пока что не ставится. Доставляем модули:

    Crypt::URandom
    Math::Random::ISAAC::XS
    Scope::Upper
    URL::Encode::XS
    CGI::Deurl::XS
    JSON::XS
    

    Ошибка в следующем:

    t/charset_server.t ......................... Use of uninitialized value in socket at /home/rp/perl5/perlbrew/perls/perl-5.24.2/lib/site_perl/5.24.2/HTTP/Server/Simple.pm line 705.
    socket: Bad file descriptor at /home/rp/.cpanm/work/1503222303.8257/Dancer2-0.11/blib/lib/Dancer2/Core/Runner.pm line 154.
    cannot open port: 127.0.0.1:34612 at /home/rp/perl5/perlbrew/perls/perl-5.24.2/lib/site_perl/5.24.2/Test/TCP.pm line 53.
    

    И так далее, как я понимаю, во всех тестах, где надо создавать сокеты.

    Сил разбираться с этим нету. Ставим через --force.

    Dancer2::Plugin::REST нужно также поставить версии на момент релиза 1.0, иначе Dancer ругается на несоответствие версий.

    cpanm --force -v Dancer2::Plugin::REST@0.21
    

    (--force, потому что опять тесты из-за сокета не проходят.)

    И удивительное дело! Тут я собирался было писа́ть, что надо ставить старую версию Dancer2::Plugin::DBIC, ибо ранее с последней версией у меня не сохранялись статьи. Однако этого не потребовалось. Всё сохраняется.

    Перл v5.24.2 under perlbrew.

    Ещё такая особенность, что используются внешние скрипты с ajax.googleapis.com — без них часть функционала админки не работает.

    Тестов, кстати, по сути тоже нету.

    Возникает вопрос. Как современные программисты пишут и тестят всё это вообще? Про CiderCMS молчу, она не имеет релизов. Но тут? Релиз 1.0 — немногие перл-модули достигают такого. Куча хвалебных публикаций. Всё наимоднейше выглядит, дизайн на JS-фреймворке, Github, MVC: всё моднейшее и современнейшее, что̀ придумано на перл — всё пущено в дело. Аккуратнейший код, всё по правилам Modern Perl — и на̀ тебе, пытаешься ставить и ничего не работает. Это, конечно, вопрос также и к авторам модных фреймворков — они что̀, не в курсе, что их трудами пользуются люди и обратную совместимость нарушать не надо? Или так уже все погрязли в своём гетто что только для себя пишут?

    Вот кстати описание работающей системы, которой автор, кажется, доволен: http://perltricks.com/article/69/2014/2/17/Is-PearlBee-Perl-s-next-great-blogging-platform-/

    permanent link