0

我正在开发一种使用芹菜的产品。由于该产品取决于依赖于Erlang的RabbitMQ。有没有一种方法可以将RabbitMQ和Erlang分离出来,以便它们只能被我的应用程序安装和使用?
我不希望受到系统本身的影响,并且需要安装Erlang/RabbitMQ。我想控制我的依赖关系。
我已经知道如何使用py2exe隔离Python解释器和依赖关系,我想知道是否可以使用py2exe来捆绑RabbitMQ和Erlang。从系统中分离芹菜,RabbitMQ和Erlang

+0

[这家伙](https://github.com/videlalvaro/tamedrabbit)创建了一个作为Mac OSX应用程序打包的回购RabbitMQ。也许你会在那里找到一些灵感。 – Tilman

回答

1

Erlang没有py2exe(只读FAQ :))。

如果我理解正确,并且您关心的是文件隔离问题,那么您可以简单地向启动Celery的用户授予对包含Erlang和RabbitMQ的dir的读访问权限。 (虽然通过这种方式,你必须考虑脚本安装 - 例如,如果你想坚持使用Erlang,可以使用escript来避免用户管理目录)

希望这有助于!

+0

我正在考虑一个MSI安装程序的例子。事实上,Windows是我的主要关注点,因为您的方法是“只安装一次”。 –

+0

我可以问你一个问题吗?你的问题是关于分配或安全?我的意思是,如果你的问题只是发布,你确实可以使用MSI打包,你需要的Erlang模块和Rabbit MQ将它们放在一个单独的目录中,这个目录将被你的程序访问(通过这个观点,评论留给你Tilman也不例外--Mac OSX应用程序AFAIK与deb和rpm软件包类似:archive + metadata-)。如果你的问题是关于配置MSI安装程序来管理目录权限,我担心你不在合适的论坛,考虑到这不是一个编程问题;) –

+0

我的问题不是安全性,而是孤立性。如果Erlang已经安装,我不想污染环境。全局Erlang应该用于其他任何事情,但是我的* Erlang只能被我的软件使用。 TortoiseHg和python一样。它嵌入了它自己的python 2.6 interpeter,并允许安装任何其他python版本而不影响系统。 –