如何在 OSX 上配置 RethinkDB 服务以使用某个配置文件?
How can I configure the RethinkDB service on OSX to use a certain configuration file?
我按照 the official instructions 通过自制程序在 OS X 上安装了 RethinkDB。但是,我需要 RethinkDB 守护进程使用特定的配置文件。
official RethinkDB docs 说要修改 homebrew 安装的 .plist 文件,以便使用 rethinkdb 守护程序的 --config-file
选项:
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/rethinkdb</string>
<string>--config-file</string>
<string>/etc/rethinkdb.conf</string>
</array>
然而,此方法的缺点是您的更改将在下次升级 RethinkDB 安装时被覆盖。
是否有一些安全的方法让 rethinkdb 守护进程使用配置文件,该文件在 RethinkDB 的升级过程中保持不变?
请注意,~/Library/LaunchAgent 中的 .plist 文件通常是指向自制系统 f.ex 中真实文件的符号链接。 /usr/local/Cellar/rethinkdb/2.1.5-2/homebrew.mxcl.rethinkdb.plist
。此外,.plist 文件很少更改。因此,我们可以安全地将原始 .plist 文件复制到某处,然后加载它。
因此,您可以手动将文件复制到 ~/Library/LaunchAgent,然后修改它,而不是符号链接。 Homebrew 不会更改 ~/Library/LaunchAgent
中的文件。升级时只会改变/usr/local/Cellar
.
下的文件
我可以想到两个不同的选项:
与其尝试对抗 homebrew
,不如使用它们的配置位置,默认为 /usr/local/etc/rethinkdb.conf
(取决于您的 home-brew
配置)。我认为他们不会在更新时更改配置文件,我的有限测试似乎支持了这一点。
不要使用 homebrew
启动的 plist,而是在 /Library/LaunchDaemons
中创建您自己的 plist。反正我不喜欢 homebrew
s,因为你最终将它从 ~/Library/LaunchAgents
进行符号链接,所以它只在你的用户登录时运行。这适用于单用户系统,但让我作为一个系统管理员有点生气。这个解决方案有点奇怪,因为你将 运行 一个用户拥有的二进制文件作为 root ......但是如果你为此使用 homebrew
你已经在类似的水域中了。
如果是我,我会完全跳过 homebrew
,而只使用网站上提供的 .pkg(完全公开:我在处理那个 .pkg)。您链接的文档包括如何为此设置 launchd
plist,并且由于 .pkg 不包含该内容,因此您不必担心这会弄乱您的配置。
我按照 the official instructions 通过自制程序在 OS X 上安装了 RethinkDB。但是,我需要 RethinkDB 守护进程使用特定的配置文件。
official RethinkDB docs 说要修改 homebrew 安装的 .plist 文件,以便使用 rethinkdb 守护程序的 --config-file
选项:
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/rethinkdb</string>
<string>--config-file</string>
<string>/etc/rethinkdb.conf</string>
</array>
然而,此方法的缺点是您的更改将在下次升级 RethinkDB 安装时被覆盖。
是否有一些安全的方法让 rethinkdb 守护进程使用配置文件,该文件在 RethinkDB 的升级过程中保持不变?
请注意,~/Library/LaunchAgent 中的 .plist 文件通常是指向自制系统 f.ex 中真实文件的符号链接。 /usr/local/Cellar/rethinkdb/2.1.5-2/homebrew.mxcl.rethinkdb.plist
。此外,.plist 文件很少更改。因此,我们可以安全地将原始 .plist 文件复制到某处,然后加载它。
因此,您可以手动将文件复制到 ~/Library/LaunchAgent,然后修改它,而不是符号链接。 Homebrew 不会更改 ~/Library/LaunchAgent
中的文件。升级时只会改变/usr/local/Cellar
.
我可以想到两个不同的选项:
与其尝试对抗
homebrew
,不如使用它们的配置位置,默认为/usr/local/etc/rethinkdb.conf
(取决于您的home-brew
配置)。我认为他们不会在更新时更改配置文件,我的有限测试似乎支持了这一点。不要使用
homebrew
启动的 plist,而是在/Library/LaunchDaemons
中创建您自己的 plist。反正我不喜欢homebrew
s,因为你最终将它从~/Library/LaunchAgents
进行符号链接,所以它只在你的用户登录时运行。这适用于单用户系统,但让我作为一个系统管理员有点生气。这个解决方案有点奇怪,因为你将 运行 一个用户拥有的二进制文件作为 root ......但是如果你为此使用homebrew
你已经在类似的水域中了。
如果是我,我会完全跳过 homebrew
,而只使用网站上提供的 .pkg(完全公开:我在处理那个 .pkg)。您链接的文档包括如何为此设置 launchd
plist,并且由于 .pkg 不包含该内容,因此您不必担心这会弄乱您的配置。