Ruby on rails 未加载Rails、pow和库:/usr/local/lib/libsqlite3.0.8.6.dylib
我有几个星期没有使用这个rails应用程序了。昨天我回到它,首先打开.dev URL(我正在使用pow),它给出了以下错误消息:Ruby on rails 未加载Rails、pow和库:/usr/local/lib/libsqlite3.0.8.6.dylib,ruby-on-rails,ruby-on-rails-3,rack-pow,Ruby On Rails,Ruby On Rails 3,Rack Pow,我有几个星期没有使用这个rails应用程序了。昨天我回到它,首先打开.dev URL(我正在使用pow),它给出了以下错误消息: LoadError:dlopen([…]/vendor/bundle/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle,9):未加载库:/usr/local/lib/libsqlite3.0.8.6.dylib 引用自:[……]/vendor/bundle/gems/sqlite3-1.3.7/lib/sqlit
LoadError:dlopen([…]/vendor/bundle/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle,9):未加载库:/usr/local/lib/libsqlite3.0.8.6.dylib
引用自:[……]/vendor/bundle/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle
原因:未找到映像-[…]/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时,它会构建一个本机组件,用于与sqlite对话,因此它会链接本地sqlite3库。这一切都是由gem在幕后处理的。发生这种情况时,它将指定链接所针对的库的位置
最近(一月),。以前链接到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
,您可以看到它现在链接到苹果提供的系统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)