I am developing a product which uses Celery. Due to that the product depends on RabbitMQ which depends on Erlang. Is there a way to isolate RabbitMQ and Erlang in such a way that they will be installed and used only by my application?
I don't want to be affected by the system itself and require Erlang/RabbitMQ to be already installed. I'd like to have control over my dependencies.
I already know how to isolate the Python interpreter and dependencies using py2exe and I am wondering if py2exe can be used to also bundle RabbitMQ and Erlang.
Asked
Active
Viewed 509 times
0

the_drow
- 18,571
- 25
- 126
- 193
-
[This guy](https://github.com/videlalvaro/tamedrabbit) created a repo RabbitMQ packaged as a Mac OSX app. Maybe you find some inspiration there. – Tilman May 03 '12 at 06:19
1 Answers
1
There's no py2exe for Erlang (just read the FAQ :) ).
If I understand correctly and your concern is about segregation of files, you can simply give read access to the dir containing Erlang and RabbitMQ exclusively to the user starting Celery. (Although in this way you have to think about a script install - you can use escript for example if you wanna stick with Erlang - to avoid your users to manage directories)
Hope this helps!

Vincenzo Maggio
- 3,787
- 26
- 42
-
I'm thinking about an MSI installer for example. In fact Windows is my main concern since you the approach is 'install once and only once'. – the_drow May 03 '12 at 14:12
-
Can I ask you a question? Your problem is about distribution or security? I mean, if your problem is simply distribution you could indeed use MSI packing also Erlang modules you need and Rabbit MQ to put them in a single directory that will be accessed by your program (by this point of view, the comment left to you by Tilman is no different -Mac OSX app AFAIK, are similar to deb and rpm packages: archive + metadata-). If your problem is about configuring MSI installer to manage directory permissions, I have fear you're not in the right forum, considering that is not a programming problem ;) – Vincenzo Maggio May 04 '12 at 15:03
-
My problem is not security but isolation. I don't want to contaminant the environment in case Erlang is already installed. The global Erlang should be used for everything else but *my* Erlang will only be used by my software. Same way the TortoiseHg works with python. It embeds it's own python 2.6 interpeter and allows any other python version to be installed without affecting the system. – the_drow May 29 '12 at 17:54
-
I don't think your environment would be contaminated if you pack the Erlang RT in your software. I think your source of contamination is configuration, like EPMD deamon port. – Vincenzo Maggio Jun 11 '12 at 07:11