Нужно ли заново создавать и переустанавливать couchdb каждый раз, когда я хочу проверить изменения в источнике? - PullRequest
5 голосов
/ 04 июля 2011

Я пытаюсь внести свой вклад с помощью кода couchdb, но я действительно не представляю, как это сделать правильно.

Я клонировал исходный код из хранилища apache git и собрал его с

./configure
make && sudo make install

Тогда я хотел изменить файл из источника с именем couch_httpd_show.erl

Нужно ли мне запускать make && sudo make install снова для каждого изменения, которое я делаю в исходном коде, и хочу посмотреть, как оно себя ведет?

Я уверен, что есть более практичный способ сделать это, потому что такой подход требует немного времени и терпения, верно? :)

Любая помощь будет очень признательна

Спасибо

Ответы [ 3 ]

5 голосов
/ 05 июля 2011

Да, есть ярлык.

./configure
make dev
./utils/run

Это создает и запускает CouchDB полностью в текущем каталоге. Вместо запуска в качестве фонового демона, CouchDB будет работать на переднем плане и выводить сообщения журнала в терминал. Он использует некоторые локальные каталоги для хранения вещей: ./tmp/log для журналов, ./tmp/lib для баз данных и (если я правильно помню) ./etc/couch/local_dev.ini для конфигурации.

Если вы запустите это вместо:

./utils/run -i

тогда у вас также будет интерактивная подсказка Erlang, которую вы можете использовать для отладки.

Когда я работаю на CouchDB, я запускаю это в оболочке:

make dev && ./utils/run -i

После того, как я изменил какой-то код, я нажимаю ^C, стрелка вверх, возврат.

Когда я присоединился к Couchio, я отвечал за развертывание производственных CouchDB. Я попросил у Криса Андерсона совета о чем-то, и он сказал: «Извините, спросите у Яна. Я просто использовал utils / run в течение многих лет!»

2 голосов
/ 04 июля 2011

Вы можете перестроить этот один файл, оставить выходной луч на месте и перезапустить.

0 голосов
/ 05 июля 2011
erlc <file.erl>

и затем скопируйте файл .beam на место.Для перезапуска couchdb используйте либо init: restart ().в оболочке erlang или POST / _restart to CouchDB.

Хотя вы можете рассмотреть возможность использования набора тестов командной строки erlang & javascript, чтобы убедиться, что вы ничего не сломали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...