Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未加载Rails、pow和库:/usr/local/lib/libsqlite3.0.8.6.dylib_Ruby On Rails_Ruby On Rails 3_Rack Pow - Fatal编程技术网

Ruby on rails 未加载Rails、pow和库:/usr/local/lib/libsqlite3.0.8.6.dylib

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

我有几个星期没有使用这个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/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)