我已经有两个星期没有使用这个Rails应用程序了。昨天我回到了它,首先打开.dev URL(我正在使用pow),它给出了以下错误消息:LoadError: dlopen([...]/vendor/bundle/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle, 9): Library not loaded: /usr/local/lib/libsqlite3.0.8.6.dylib
Referenced from: [...]/vendor/bundle/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle
Reason: image not found - [...]/vendor/bundle/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle
我检查了rbenv安装,一切似乎都很好。我试图考虑可能导致这种情况的最新变化,但我做不到。我很确定我丢失了一些东西,但是我尝试调试它是徒劳的。我不知道它是否相关,但是最近我切换到了zsh。
最佳答案
解决方案
卸载并重新安装sqlite:
~/d/w/r/my-app git:master ❯❯❯ gem uninstall sqlite3
Successfully uninstalled sqlite3-1.3.7
~/d/w/r/my-app git:master ❯❯❯ gem install sqlite3
Fetching: sqlite3-1.3.7.gem (100%)
Building native extensions. This could take a while...
Successfully installed sqlite3-1.3.7
1 gem installed
发生了什么
安装sqlite3 gem后,它将构建一个 native 组件,用于与 sqlite 进行对话,因此它链接到本地 sqlite3 库。这一切都是由gem处理的。发生这种情况时,它指定链接到的库的位置。
最近(一月),the homebrew formula for sqlite became keg-only。以前与 sqlite 相关联的所有内容均引用了自制软件版本。您可以使用
otool -L
进行检查:~/d/w/r/my-app git:master ❯❯❯ otool -L /path/to/earlier/gem/sqlite3-1.3.6/lib/sqlite3/sqlite3_native.bundle
/path/to/earlier/gem/sqlite3-1.3.6/lib/sqlite3/sqlite3_native.bundle:
/usr/local/lib/libsqlite3.0.8.6.dylib (compatibility version 9.0.0, current version 9.6.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
针对新版本运行
otool
,您可以看到它现在已与Apple提供的系统sqlite库链接在一起:~/d/w/r/a/new-config git:master ❯❯❯ otool -L /path/to/new/gem/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle
/path/to/new/gem/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle:
/usr/lib/libsqlite3.dylib (compatibility version 9.0.0, current version 9.6.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
关于ruby-on-rails - Rails,pow和Library未加载:/usr/local/lib/libsqlite3. 0.8.6.dylib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15730583/