【问题标题】:Do I need to re-make and re-install couchdb everytime I want to test a change to the source?每次我想测试对源的更改时,是否需要重新制作和重新安装 couchdb?
【发布时间】:2011-09-28 08:36:24
【问题描述】:

我正在尝试使用 couchdb 代码做出更多贡献,但我真的不知道它是如何以正确的方式完成的。

我已经从 apache git 存储库中克隆了源代码并使用它构建了它

./configure
make && sudo make install

然后我想从名为couch_httpd_show.erl的源中更改一个文件

对于我对源代码所做的每一次更改,我是否需要再次运行 make && sudo make install 并想看看它的行为?

我确信有一种更实用的方法可以做到,因为这种方法有点费时间和耐心,对吧?

【问题讨论】:

  • 呵呵 manojlds,你在我有机会之前 20 秒就删除了 git 标签 :)

标签: erlang couchdb


【解决方案1】:
erlc <file.erl>

& 然后将 .beam 文件复制到位。要重新启动 couchdb,请使用 init:restart()。在 erlang shell 中或 POST /_restart 到 CouchDB。

虽然您可能还想考虑使用命令行 erlang 和 javascript 测试套件,以确保您没有破坏任何东西。

【讨论】:

    【解决方案2】:

    是的,有一条捷径。

    ./configure
    make dev
    ./utils/run
    

    这将完全在当前目录中构建和运行 CouchDB。 CouchDB 不会作为后台守护程序运行,而是在前台运行并将日志消息输出到终端。它使用一些本地目录来存储内容:./tmp/log 用于日志,./tmp/lib 用于数据库,以及(如果我没记错的话)./etc/couch/local_dev.ini 用于配置。

    如果你改为运行它:

    ./utils/run -i
    

    那么您还将有一个交互式 Erlang 提示符,您可以使用它来帮助调试。

    当我在 CouchDB 上工作时,我在 shell 中运行它:

    make dev && ./utils/run -i
    

    更改一些代码后,我按^C,向上箭头,返回。

    当我加入 Couchio 时,我负责生产 CouchDB 部署。我向 Chris Anderson 征求意见,他说:“抱歉,请教 Jan。我已经使用 utils/run 多年了!”

    【讨论】:

    • 这真的很方便@jhs,非常感谢,它真的很有帮助。太棒了,您甚至不必安装它。欢呼
    【解决方案3】:

    您可以重建该文件并将输出光束放置到位并重新启动。

    【讨论】:

    • 谢谢达斯汀,你介意描述一下怎么做吗?我对此真的很陌生,很抱歉我缺乏知识。再次感谢:)
    • 我听说有人基本上使用这种技术来升级生产中的 couchdb。
    猜你喜欢
    • 2021-02-07
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    相关资源
    最近更新 更多