【问题标题】:ln: /usr/lib/libmysqlclient.18.dylib: File existsln: /usr/lib/libmysqlclient.18.dylib: 文件存在
【发布时间】:2013-08-25 16:20:14
【问题描述】:
rake aborted!
dlopen(/Users/ava/.rvm/gems/ruby-2.0.0-p247/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib
  Referenced from: /Users/ava/.rvm/gems/ruby-2.0.0-p247/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
  Reason: image not found - /Users/ava/.rvm/gems/ruby-2.0.0-p247/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle`

following解决:

$ sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib \
             /usr/lib/libmysqlclient.18.dylib
ln: /usr/lib/libmysqlclient.18.dylib: File exists

我的设置:

  • OSX 10.8.4
  • MySQL 5.1.71
  • libmysqlclient.16.dylib

    $ locate libmysqlclient.16.dylib
    /usr/lib/libmysqlclient.16.dylib
    /usr/local/Cellar/mysql51/5.1.71/lib/mysql/libmysqlclient.16.dylib
    
  • libmysqlclient.18.dylib

    $ locate libmysqlclient.18.dylib
    /usr/lib/libmysqlclient.18.dylib
    

.bash_profile,我有

export PATH="/usr/local/bin:$HOME/.rvm/bin:$HOME/bin:$PATH"
export DYLD_LIBRARY_PATH=/usr/local/bin/mysql

如何让这个 rake 运行?我也应该在/usr/local/Cellar/mysql51/5.1.71/lib/mysql 下有libmysqlclient.18.dylib 吗?如果是,我该如何创建它?

【问题讨论】:

  • 也许描述一下你是怎么到这里的?你所做的一切都在尖叫“不!”所以很难帮你。
  • brew install --use-llvm mysql51 然后mysql.server start
  • 在上面两个命令之后,运行 rake 得到了这个错误。我在某个地方搞砸了 mysql 安装,但无法弄清楚。

标签: mysql ruby macos rake osx-mountain-lion


【解决方案1】:

对不起,如果我弄错了;没有 Mac 可以查看详细信息。

错误信息明确指出,库mysql 想要的是:

/usr/local/lib/libmysqlclient.18.dylib

而你拥有的图书馆是:

/usr/lib/libmysqlclient.18.dylib

这绝对意味着,您的mysql 安装在某种程度上被破坏了,但对于快速补丁,我建议使用软链接:

$ sudo ln -s /usr/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib

您可能在第一次尝试解决方案时使用了错误的参数。

【讨论】:

  • 你能解释一下它在做什么吗?为什么locate libmysqlclient.18.dylib 不显示在/usr/local/lib/ 下?
  • 它完全按照您在解决方案中所做的尝试,除了一件单调的事情:它以 正确的 顺序声明 args。 locate libmysqlclient.18.dylib 显示它在哪里。在您的情况下,它位于/usr/lib,而不是预期的/usr/local/lib。对不起 libmysqlclient,对不起 Apple。
【解决方案2】:

如果您使用的是 Bash,请按如下方式指示 Mac OS X:

在你的~/.bash_profile:

export DYLD_LIBRARY_PATH=<location of mysqlclient.18.dylib>:$DYLD_LIBRARY_PATH

重启终端。

例如,我有以下内容:

$ ls -ld /usr/local/m*
lrwxr-xr-x   1 root  admin   27 May  5 14:28 /usr/local/mysql -> mysql-5.6.13-osx10.7-x86_64
drwxr-xr-x   3 root  wheel  102 May  5 13:13 /usr/local/mysql-5.5.29-osx10.6-x86
drwxr-xr-x  17 root  wheel  578 May  5 13:13 /usr/local/mysql-5.6.13-osx10.7-x86_64

$ head ~/.bash_profile
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

【讨论】:

    猜你喜欢
    • 2016-02-19
    • 2012-06-06
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 2011-09-29
    • 2020-08-22
    • 2016-02-12
    • 2017-04-15
    相关资源
    最近更新 更多