Kestrel命令抛出无法加载libuv.确保已安装libuv并以libuv.so.1的形式提供

pom*_*ber 1 mono centos libuv kestrel-http-server asp.net-core

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

我按照文档中的所有步骤操作,但我无法使其工作.

我正在运行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
Run Code Online (Sandbox Code Playgroud)

libuv.so.1.0.0/usr/local/lib

[/usr/local/lib]$ ls
libuv.a  libuv.la  libuv.so  libuv.so.1  libuv.so.1.0.0  pkgconfig
Run Code Online (Sandbox Code Playgroud)

我还为libuv.so.1in /usr/lib和添加了符号链接/usr/lib64

我甚至检查了kestrel的源代码,但我找不到问题所在.

我错过了什么?

Sus*_*ver 5

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

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
dnx . kestrel
Run Code Online (Sandbox Code Playgroud)

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)....
Run Code Online (Sandbox Code Playgroud)