Статьи

Установка Holla — Ruby HTTP Campfire Clone

Campfire — это действительно довольно привлекательная система чата на основе HTTP с 37 сигналами.

Я нашел приложение типа клона, написанное @maccman для Github , под названием Holla .  

Я собираюсь попробовать установить его на Ubuntu 10.04. Требуется Ruby 1.9.2, который по умолчанию не установлен, так что это первое препятствие. 

Мне нужно собрать его из источника, наверное. 

Похоже, нет никакого бэкпорта для Люсид. Так что, да .. Источник это так. :(. Я мог бы попробовать обернуть это с FPM позже. 

Вот учебник для 1.9.2 на 10.04. Примечание: я сделал это только как root, потому что это логин по умолчанию для этого образа виртуальной машины, который я использовал. Обычно я делаю это, как я, но ме. Осложнения.

root@holla:~# apt-get install zlib1g zlib1g-dev build-essential libcurl4-openssl-dev
...

вещи случаются ….

Мы собираемся получить рекомендованный стабильный снимок 1.9.3 с www.ruby-lang.org/en/downloads (в частности, этот снимок ) и надеемся на лучшее. Я предполагаю, что 1.9.3 сработает, если будет рекомендован 1.9.2. Это может быть моей гибелью. Мы увидим.

Я знаю, что мог бы использовать RVM, но, поскольку это сервер, я бы предпочел иметь собственные пакеты или, по крайней мере, исходные сборки. 

root@holla:~# mkdir sources
root@holla:~# cd sources/
root@holla:~/sources# wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz

root@holla:~/sources# tar xzvf ruby-1.9.3-p125.tar.gz 

root@holla:~/sources# cd ruby-1.9.3-p125
root@holla:~/sources/ruby-1.9.3-p125# ./configure

… Много вещей …

root@holla:~/sources/ruby-1.9.3-p125# make

… Этот бит занял целую вечность …

root@holla:~/sources/ruby-1.9.3-p125# make test

… Этот бит тоже занял много лет …

root@holla:~/sources/ruby-1.9.3-p125# make install
root@holla:~/sources/ruby-1.9.3-p125# ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux]

Woot.

Верно .. Следующий бит.

Предпосылки

Ruby 1.9.2 [*] — Готово

Bundler []

Redis []

root@holla:~/sources# gem install bundler 
/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
^CERROR:  Interrupted
root@holla:~/sources# gem install psych
/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
Fetching: psych-1.2.2.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing psych:
	ERROR: Failed to build gem native extension.
        /usr/local/bin/ruby extconf.rb
extconf.rb:7: Use RbConfig instead of obsolete and deprecated Config.
checking for yaml.h... no
yaml.h is missing. Try 'port install libyaml +universal' or 'yum install libyaml-devel'
...
root@holla:~/sources# apt-get install libyaml-dev
root@holla:~/sources# gem install psych
...
Successfully installed psych-1.2.2
root@holla:~/sources# gem install bundler
Fetching: bundler-1.0.22.gem (100%)
Successfully installed bundler-1.0.22
1 gem installed

Bundler [*]

Redis []

Мы установим Redis как этот , возможно. 

Я нашел приличную суть Github и разветвил ее, чтобы немного изменить, чтобы она работала.

Мне только нужно было добавить `useradd` redis, чтобы это работало .. 

Он даже использует Upstart! <3 Гист содержит хороший файл redis-server.conf для upstart.

root@holla:/etc/init# vim redis-server.conf
root@holla:/etc/init# start redis-server
redis-server start/running, process 8388
root@holla:/etc/init# status redis-server
redis-server start/running, process 8388

Woot.

Redis [*]

Правильно. В блоге также говорится, что для этого требуется Juggernaut, сервер приложений node.js, так что давайте продолжим и выясним node.js для Ubunu 10.04, пока мы здесь.

Вот кто-то еще постит блог  на эту тему. 

Я тихо испуган тем, что эти поиски «Установка в Ubuntu 10.04» не возвращают автоматически чей-то PPA или публичный репозиторий apt. — Похоже, он доступен для Oneiric и Precise из PPA панели запуска, но не для Lucid. 

Итак, еще раз .. Источник это? ?

root@holla:/etc/init# apt-get install g++ curl libssl-dev apache2-utils
root@holla:/etc/init# apt-get install git-core
root@holla:~/sources# git clone git://github.com/ry/node.git

Черт возьми. Это огромная.

root@holla:~/sources# wget http://nodejs.org/dist/v0.6.11/node-v0.6.11.tar.gz

./configure, make, make install .. и так далее.

 

Видимо, это необходимо.

gem install juggernaut
npm install -g juggernaut
root@holla:~/sources# cd ..
root@holla:~# mkdir app
root@holla:~# cd app
root@holla:~/app# git clone https://github.com/maccman/holla.git
root@holla:~/app# cd holla/

Теперь зависимости .. libxml2 и libxslt и libsqlite3-dev

root@holla:~/app/holla# apt-get install libxml2 libxml2-dev libxslt1-dev libxslt1.1 libsqlite3-dev
root@holla:~/app/holla# bundle install

 

… Материал случается …

Этот бит занял целую вечность для меня.

Он пытался установить какой-нибудь Bundle / debug shite, поэтому я убил его и отредактировал Gemfile, чтобы удалить строки Debug.

root@holla:~/app/holla# start redis-server
root@holla:~/app/holla# rake db:migrate
root@holla:~/app/holla# rails server thin
root@holla:~/app/holla# gem install rails
root@holla:~/app/holla#  rails server thin

Правильно. Теперь есть экземпляр Holla, работающий на порту 3000 на 0.0.0.0. Превосходно.

Если вы направляетесь на свой сервер holla (мой просто http: // holla: 3000 / благодаря тому, что DNS — туз)

и View Source, вы увидите, что что-то ожидается на порту 8080 «localhost». Это связано с тем, что есть несколько неудачных настроек, которые на самом деле а) не задокументированы или б) не показаны для производственного использования.

Я положил клон Holla git в / srv / holla.

Перейдите туда, и вам нужно найти строку, содержащую «localhost», как там, где живет конфиг, для этого бреда.

grep localhost -R .
./config/initializers/juggernaut.rb:ActionView::Helpers::AssetTagHelper.register_javascript_expansion :juggernaut => ["http://localhost:8080/application.js"]

Ах, ха!

Просто нужно изменить «localhost» на имя хоста вашего сервера Holla, сохранить его и перезапустить приложение rails.

Хорошая вещь.

На данный момент это работает для меня, за исключением того, что Джаггернаут (push-сервер) не работает .. 

В / etc / init (каталог конфигурации upstart) я сделал пару файлов «holla-app.conf» и «holla-push.conf»

оклик-push.conf

description "holla push server"
start on runlevel [2345]
stop on shutdown
exec /usr/local/bin/juggernaut --port 8080 
respawn

и

оклик-app.conf

description "holla push server"
start on runlevel [2345]
stop on shutdown
chdir /srv/holla
exec /usr/local/bin/rails server thin
respawn
root@holla:~# start holla-app
root@holla:~# start holla-push

И сервер работает на 0.0.0.0:3000, с поддержкой push-сообщений.

Превосходно.

Я попытался после этого запустить его с Passenger и mod_rails. Это не было особенно успешным, поэтому я отказался от него и вместо этого изменил строку

exec /usr/local/bin/rails server thin

в /etc/init/holla-app.conf

в

exec /usr/local/bin/rails server thin -p 80

Так что он работает на порту 80. Не защищен. Не рекомендуется. и т.д .. Но это работает.