ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Разворачивание локального prometheus2.0
@ 2012-03-21 16:43 Igor Zubkov
  2012-04-09  0:50 ` Igor Zubkov
  0 siblings, 1 reply; 3+ messages in thread
From: Igor Zubkov @ 2012-03-21 16:43 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Hi,

По просьбе cas@ привожу маленькое руководство по заведению своего
маленького-локального prometheus.

Для начала нам потребуется rvm (https://rvm.beginrescueend.com/)
которым мы поставим нужный нам ruby 1.9.3p125. На сайте rvm достаточно
хорошо расписано как его поставить. Вместо rvm можно использовать
rbenv, но это уже вкусовщина. После чего нам потребуется следующее:

0) Поставить базовую систему для сборки (gcc/gcc-c++/make/etc).
Поставить libxml-devel и libxslt-devel. Поставить redis, postgresql,
memcached,  sphinx, gettext, node, git, nginx, coreutils. nginx нужен
только для production. coreutils у всех уже и так стоит. :) К
postgresql не забываем про его devel пакеты. Для gettext -- пакет
который содержит всякие msgmerge и etc. (Точных имён пакетов для
Sisyphus я сейчас сказать не могу, у меня сейчас osx только под
рукой.)

1) Поставить ruby 1.9.3p125:
  $ rvm install 1.9.3

2) Делаем его дефолтовым для shell:
  $ rvm --default 1.9.3

3) Ставим rubygems 1.8.19:
  $ rvm rubygems 1.8.19

4) Ставим bundler:
  $ gem install bundler

5) Клоним репозиторий:
  $ git clone git://github.com/biow0lf/prometheus2.0.git

6) Заходим шеллом в prometheus2.0 и подтверждаем что мы доверяем
.rvmrc (если этого не сделать то mc будет "зависать" при попытке зайти
в папку):
$ cd prometheus2.0/
==============================================================================
= NOTICE                                                                     =
==============================================================================
= RVM has encountered a new or modified .rvmrc file in the current directory =
= This is a shell script and therefore may contain any shell commands.       =
=                                                                            =
= Examine the contents of this file carefully to be sure the contents are    =
= safe before trusting it! ( Choose v[iew] below to view the contents )      =
==============================================================================
Do you wish to trust this .rvmrc file?
(/Users/biow0lf/tmp/prometheus/prometheus2.0/.rvmrc)
y[es], n[o], v[iew], c[ancel]> y
Using /Users/biow0lf/.rvm/gems/ruby-1.9.3-p125
$

7) Ставим все нужные джемы через bundler. Эта команда поставит все
нужные джемы для ruby (в том числе и бинарые, которые будут собраны
при установке из исходников). А так же сделает клоны git репозиториев
из которых используются джемы из master.
  $ bundle

8) Теперь надо настроить базы данных для сайта (production,
development и test). Скопируем config/database.yml.sample в
config/database.yml. И отредактируем его. Создаём базы в postgresql.

9) Теперь настроим redis. Для этого надо скопировать
config/redis.yml.sample в config/redis.yml.

10) Создадим базу и мигрирует на последнюю версию схемы данных:

$ bundle exec rake db:create db:schema:load

и для test окружения также:

$ RAILS_ENV=test bundle exec rake db:create db:schema:load

Если всё было сделано правильно, то теперь можно запустить тесты и
убедиться что они проходят.

$ bundle exec rake

Теперь о том как запустить локальную версию для разработки.
1) Запускаем в соседнем терминале redis-server (или сервис если такое
есть). Для тестов этого делать не надо т.к. в них используется
fakeredis gem.

2) Запускаем rails сервер:

$ bundle exec rails server

или более коротко:

$ bundle exec rails s

Всё классно, но у нас данных в базе нет. Для этого нам понадобится
срез Сизифа или любого другого бранча. Или даже все бранчи. Берём
rsync и вытягиваем например Сизиф.

1) Нам нужны начальные данные (бранчи, зеркала etc. лежат в db/seeds.rb):

$ bundle exec rake db:seed

2) Теперь сами пакеты. В начале надо исправить путь к бранчу. К
примеру, если бранч у нас Sisyphus, то надо исправить
lib/tasks/sisyphus.rake. Т.е. "/ALT/Sisyphus/" заменить на правильный
путь на файловой системе. Ну а дальше:

$ bundle exec rake sisyphus:srpms
$ bundle exec rake sisyphus:binary
$ bundle exec rake sisyphus:acls
$ bundle exec rake sisyphus:leaders (сломано в текущий момент, так что
этот пункт нужно сейчас пропускать)
$ bundle exec rake sisyphus:teams (сломано в текущий момент, так что
этот пункт нужно сейчас пропускать)
$ bundle exec rake sisyphus:bugs
$ bundle exec rake sisyphus:repocops
$ bundle exec rake sisyphus:repocop_patches
$ bundle exec rake gear:import
$ bundle exec rake perlwatch:update
$ bundle exec rake ftbfs:update

После этого у нас с базе лежат все данные из Сизифа.

3) Закешируем данные в redis:

$ bundle exec rake redis:cache

Теперь пара слов и поиске. Для того что поиск заработал локально нужно:
1) Создать конфиг для sphinx:

$ bundle exec rake thinking_sphinx:configure

2) Создать индекс:

$ bundle exec rake thinking_sphinx:index

3) Запустить сам sphinx:

$ bundle exec rake thinking_sphinx:start

4) Останаливать sphinx так:

$ bundle exec rake thinking_sphinx:stop

Эти все шаги описаны для development/test окружений. Для production
кое что изменится, но описывать это здесь смысла не имеет.

Исходники лежат на https://github.com/biow0lf/prometheus2.0 и там
действует правило: один хороший принятый коммит == доступ на коммит.
Ну что, кто хочет стать героем? :)

Удачи!

-- 
Igor Zubkov
http://hi.im/ice

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [devel] Разворачивание локального prometheus2.0
  2012-03-21 16:43 [devel] Разворачивание локального prometheus2.0 Igor Zubkov
@ 2012-04-09  0:50 ` Igor Zubkov
  2012-04-09  7:39   ` Igor Vlasenko
  0 siblings, 1 reply; 3+ messages in thread
From: Igor Zubkov @ 2012-04-09  0:50 UTC (permalink / raw)
  To: ALT Linux Team development discussions

2012/3/21 Igor Zubkov <igor.zubkov@gmail.com>:
> Hi,
>
> По просьбе cas@ привожу маленькое руководство по заведению своего
> маленького-локального prometheus.

Переложил на вики -- http://www.altlinux.org/Prometheus

-- 
Igor Zubkov
http://hi.im/ice

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [devel] Разворачивание локального prometheus2.0
  2012-04-09  0:50 ` Igor Zubkov
@ 2012-04-09  7:39   ` Igor Vlasenko
  0 siblings, 0 replies; 3+ messages in thread
From: Igor Vlasenko @ 2012-04-09  7:39 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Mon, Apr 09, 2012 at 03:50:21AM +0300, Igor Zubkov wrote:
> 2012/3/21 Igor Zubkov <igor.zubkov@gmail.com>:
> > Hi,
> >
> > По просьбе cas@ привожу маленькое руководство по заведению своего
> > маленького-локального prometheus.
> 
> Переложил на вики -- http://www.altlinux.org/Prometheus

Спасибо за работу!

-- 

Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-04-09  7:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-21 16:43 [devel] Разворачивание локального prometheus2.0 Igor Zubkov
2012-04-09  0:50 ` Igor Zubkov
2012-04-09  7:39   ` Igor Vlasenko

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git