【问题标题】:Isolating Celery, RabbitMQ and Erlang from the system从系统中隔离 Celery、RabbitMQ 和 Erlang
【发布时间】:2012-05-02 21:11:28
【问题描述】:

我正在开发一种使用 Celery 的产品。由于该产品依赖于依赖于 Erlang 的 RabbitMQ。有没有办法隔离 RabbitMQ 和 Erlang,使它们只能由我的应用程序安装和使用?
我不想受到系统本身的影响并要求已经安装了 Erlang/RabbitMQ。我想控制我的依赖项。
我已经知道如何使用 py2exe 隔离 Python 解释器和依赖项,我想知道 py2exe 是否也可以用于捆绑 RabbitMQ 和 Erlang。

【问题讨论】:

  • This guy 创建了一个打包为 Mac OSX 应用程序的 repo RabbitMQ。也许你会在那里找到一些灵感。

标签: erlang dependencies rabbitmq dependency-management software-distribution


【解决方案1】:

没有适用于 Erlang 的 py2exe(只需阅读 FAQ :))。

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

希望这会有所帮助!

【讨论】:

  • 例如,我正在考虑一个 MSI 安装程序。事实上,Windows 是我主要关心的问题,因为您的方法是“安装一次且仅一次”。
  • 我可以问你一个问题吗?您的问题是关于分发还是安全?我的意思是,如果您的问题只是分发,您确实可以使用 MSI 打包您需要的 Erlang 模块和 Rabbit MQ 将它们放在您的程序可以访问的单个目录中(从这个角度来看,评论留给您Tilman 也不例外 -Mac OSX 应用程序 AFAIK,类似于 deb 和 rpm 包:存档 + 元数据-)。如果您的问题是关于配置 MSI 安装程序以管理目录权限,我担心您不在正确的论坛中,考虑到这不是编程问题;)
  • 我的问题不是安全,而是隔离。如果已经安装了 Erlang,我不想污染环境。全局 Erlang 应该用于其他一切,但 my Erlang 只会被我的软件使用。 TortoiseHg 与 python 的工作方式相同。它嵌入了自己的 python 2.6 解释器,并允许安装任何其他 python 版本而不影响系统。
  • 如果您将 Erlang RT 打包到您的软件中,我认为您的环境不会受到污染。我认为您的污染源是配置,例如 EPMD 守护端口。
猜你喜欢
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-24
  • 2020-02-13
  • 2011-07-18
  • 2011-07-17
相关资源
最近更新 更多