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. Не защищен. Не рекомендуется. и т.д .. Но это работает.