1

origen 文档中,它说 gem 安装在用户的主目录中。这可以由每个用户配置吗?

  • 编辑 *

我在应用程序的根目录中放置了 origen_site_config.yml 文件的副本,并启用了以下行:

# Define where a typical user's home directory will be, with a hidden directory for Origen.
home_dir: /users/thisuser/origen

我希望这可以工作并开始在 /users/thisuser/origen/.origen 安装,但它没有。我删除了 .bundle 和 lbin 目录,安装目录也没有变化。

谢谢

4

3 回答 3

1

这个问题提示了一个 PR 和一些关于如何在 Origen 中更改 gems 安装目录的新文档。

于 2017-12-01T12:12:32.523 回答
0

我从未尝试过,但您应该能够使用site_config覆盖安装。

于 2017-11-29T22:43:08.780 回答
0

默认情况下,Ruby/Bundler 会将 gem 安装到 Ruby 安装目录中。

然而,由于在企业工程计算环境中,用户共享一个他们没有写入权限的通用 Ruby 安装是很常见的,所以 Origen 提供了一个默认的 Bundler 配置,它会将 gems 安装到用户的主目录。

此安装位置由Origen Site Configgem_install_dir的属性定义。

这可以在主站点配置中的公司级别上被覆盖,但是这(目前至少)是一个静态变量,因此使其特定于用户的唯一方法是引用$HOME或在给定环境中使用的一些类似的 Linux 级变量.

可以让所有用户共享一个 gem 安装目录,但是这样做的缺点是所有用户都需要对其具有写访问权限,因此一个用户可能对 gem 源进行 hack 最终可能会引入一个非常难以检测影响整个公司的错误。

如果你不喜欢用 gem 文件填充你的主目录,那么更好的是基于每个用户覆盖。

以下是执行此操作的各种方法:

1)任何站点配置变量都可以通过设置一个名为的环境变量来覆盖ORIGEN_<uppercased variable name>,所以ORIGEN_GEM_INSTALL_DIR在这种情况下。

2)符号链接$HOME/.origen到其他地方。

3) 用户可以使用自己的站点配置文件。有关更多详细信息,请参阅指南,但 Origen 将在多个位置搜索配置,并且在最接近应用程序所在位置的配置中定义的参数将覆盖更远的默认值。例如,假设用户将他们所有的 Origen 工作空间保存在 中/my_projects/origen//my_projects/origen/my_app那么在中定义的任何配置属性都/my_projects/origen/origen_site_config.yml将覆盖在公司级别设置的那些。

Bundler 将在每个工作空间的基础上缓存此配置,因此无论何时您对此类配置进行更改,建议从新工作空间开始,或运行fix_my_workspace脚本。

于 2017-11-30T09:46:16.677 回答