如何确保一台机器上的轨道环境与另一台机器相同?



我有三台Mac。 我有一个rails应用程序,我可以在其中两个上运行。 在第三个上,我可以创建一个新的 rails 应用程序,它工作正常,其他机器上的其他一些 rails 应用程序工作正常,但是我需要在一台机器上工作的那个总是给我一条关于无法找到图像的消息:

/Users/woo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require': dlopen(/Users/woo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError)
Referenced from: /usr/local/opt/mysql/lib/libmysqlclient.21.dylib
Reason: image not found - /Users/woo/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle

我遵循了有关使用以下方法安装 mysql2 捆绑包的建议:

gem install mysql2 -v '0.5.3' -- --with-cflags="-I/usr/local/opt/openssl/include" --with-ldflags="-L/usr/local/opt/openssl/lib"

然后捆绑安装,它说一切都很好。 然而,"rails s"产生了无法找到图像的信息。

我使用 rbenv 来管理版本,在所有机器上,ruby 是 2.6.3,rails 是 5.2.4。

我需要检查应用程序配置的哪些其他方面以确保它们相同? 我有一个名为"笔记本电脑"的脚本,我使用以下方法获得:

cd ~
curl --remote-name https://raw.githubusercontent.com/monfresh/laptop/master/mac
curl --remote-name https://raw.githubusercontent.com/monfresh/laptop/master/Brewfile
/usr/bin/env bash mac 2>&1 | tee ~/laptop.log

当我设置安装或运行 rails 应用程序时,我会在每台机器上运行它。 在有问题的机器上,我确实收到如下消息:

ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>

在笔记本电脑运行期间,但最后它说所有模块都已正确安装。 我有一种感觉,这不是真的,可能是问题的一部分。 如果是这样,是什么原因造成的? 我在有问题的机器上运行OS X 10.14.6。

我还注意到 libssl.1.0.0.dylib 不在指定位置。 我如何安装它,此外,我如何确保所有这些部分都正确协调?

终于找到了! 谢谢:

https://rorguide.blogspot.com/2011/07/getting-error-library-not-loaded.html

我看了很多这些,并尝试制作软链接没有效果,但这是我第一次发现这个!

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

工作!

相关内容

最新更新