Темой для топика послужила ситуация, в которую я попал, пытаясь установить SilkJS на OS Centos. Официально SilkJS может быть установлен на OSX и Ubuntu (& forks). Для OS Centos инсталлятор находится в стадии разработки, хотя makefile для Centos присутствует в пакете.
Итак, что такое SilkJS?
SilkJS — это командный процессор и супер-быстрый http-сервер, являющийся надстройкой над JavaScript-движком v8 разработанным компанией Google. Он оптимизирован для запуска server-side приложений, консольных приложений и сетевых серверов. Очевидный конкурент такому продукту, как NodeJS.
Вкратце, его особенности:
- поддерживает выполнение сценариев JavaScript на стороне сервера
- идеально подходит для RIA
- предоставляет «легкое» API для доступа к системным функциям OS Linux и OSX
- реализует Ajax-запросы как RPC
- etc.
Установка.
Все действия производим от пользователя root:
[bash]# sudo su -
Проверяем версию OS:
[bash]# cat /etc/redhat-release
CentOS release 6.3 (Final)
Проверяем архитектуру:
[bash]# getconf LONG_BIT
64
Создаем папку src и переходим в нее и
[bash]# mkdir src
[bash]# cd src
Устанавливаем, если не установлены программы subversion и git
[bash]# yum install subversion git
Получаем копию git-репозитория программы:
[bash]# git clone https://github.com/mschwartz/SilkJS.git SilkJS
Переходим в папку SilkJS
[bash]# cd SilkJS
До сего момента процесс установки идет строго по инструкции размещенной на сайте разработчика.
Открываем и редактируем файл src/SilkJS/Makefile (здесь используется тектовой редактор Vim)
[bash]# vim src/SilkJS/Makefile
комментируем строки 5 — 12 в которых идет определение переменной MAKEFILE, в строке 3 присваиваем переменной MAKEFILE значение Makefile.centos
Далее открываем Makefile.centos
[bash]# vim src/SilkJS/src/Makefile.centos
и добавляем в строку 8 поддержку mysql (почему-то она отсутствовала для Centos)
Смотрим какие пакеты требуются для установки
-lmysqlclient -lmm -lgd -lncurses -lssl -lpthread -lsqlite3 -lcurl -lssh2 -lmemcached -lcairo
После чего устанавливаем пакеты, необходимые для работы программы
[bash]# yum groupinstall "Development Tools"
[bash]# yum install openssl-devel.x86_64 gd-devel.x86_64 ncurses-devel.x86_64 libcurl-devel.x86_64 libssh2-devel.x86_64 cairo-devel.x86_64 sqlite-devel.x86_64 expat-devel.x86_64
Для установки libmemcached-devel нужно отключить (если подключен) репозиторий remi:
yum --disablerepo=remi libmemcached-devel
Если PHP использует libmemcached и был установлен из репозитория remi, то надо переустановить php-pecl-memcached:
[bash]# yum erase php-pecl-memcached libmemcached
[bash]# yum --disablerepo=remi php-pecl-memcached libmemcached
Далее устанавливаем пакет libmm, которого нет в стандартных репозиториях yum:
[bash]# wget ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/linux/releases/13/Everything/x86_64/os/Packages/mm-1.4.2-6.fc12.x86_64.rpm
[bash]# yum localinstall mm-1.4.2-6.fc12.x86_64.rpm
Отдельно надо сказать про поддержку MySQL.
У меня на машине установлена MariaDB, поэтому устанавливаем
[bash]#yum install MariaDB-devel.x86_64
Если же установлена MySQL, то следует установить еще пакет mysql-devel
[bash]#yum install mysql-devel.x86_64
На этом процес установки зависимостей закончен.
Далее переходим в папку ~/src/SilkJS и запускаем компиляцию
[bash]# cd ~/src/SilkJS
[bash]# make
[bash]# make install
Если процесс установки завершился удачно, можно попробовать запустить SilkJS:
[bash]# ./silkjs httpd/main.js &
Набираем в броузере
http://localhost:9090
и радуемся!
Автор: ignatoffCD