【问题标题】:Kestrel command throws Unable to load libuv. Make sure libuv is installed and available as libuv.so.1Kestrel 命令抛出无法加载 libuv。确保 libuv 已安装并可作为 libuv.so.1 使用
【发布时间】:2015-08-12 22:52:56
【问题描述】:

我正在尝试从https://github.com/aspnet/home 运行样本

我按照documentation 中的所有步骤进行操作,但无法正常工作。

我正在运行dnx . kestrel(在 CentOS 上),错误是:

System.InvalidOperationException: Unable to load libuv. Make sure libuv is installed and available as libuv.so.1
  at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.Load (System.String dllToLoad) [0x00000] in <filename unknown>:0
  at Microsoft.AspNet.Server.Kestrel.KestrelEngine..ctor (ILibraryManager libraryManager, IApplicationShutdown appShutdownService) [0x00000] in <filename unknown>:0
  at Kestrel.ServerFactory.Start (IServerInformation serverInformation, System.Func`2 application) [0x00000] in <filename unknown>:0
  at Microsoft.AspNet.Hosting.Internal.HostingEngine.Start () [0x00000] in <filename unknown>:0

我在/usr/local/lib 中有libuv.so.1.0.0

[/usr/local/lib]$ ls
libuv.a  libuv.la  libuv.so  libuv.so.1  libuv.so.1.0.0  pkgconfig

我还在/usr/lib/usr/lib64 中添加了libuv.so.1 的符号链接

我什至检查了kestrel's source code,但我找不到问题所在。

我错过了什么?

【问题讨论】:

    标签: mono centos asp.net-core libuv kestrel-http-server


    【解决方案1】:

    设置库加载器路径以包含您的本地库目录,Libuv.cs 中的 LoadLibrary 应该可以找到它:

    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    dnx . kestrel
    

    man dlopen了解更多详情:

    Linux Shared Library Search Path
    From the dlopen(3) man page, the necessary shared libraries needed by the program are searched for in the following order:
    
    1) A colon-separated list of directories in the user’s LD_LIBRARY_PATH environment variable.
    2)....
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 2012-11-30
      • 2013-08-10
      • 2022-09-30
      • 1970-01-01
      相关资源
      最近更新 更多