如何在 Fedora 上从源代码安装 ttyd?

如何在 Fedora 上从源代码安装 ttyd?

我正在尝试编译ttyd这需要libwebsockets在费多拉上。我的系统有一个过时的版本ttyd,我需要一个较新的版本才能运行录像带工具

这两个项目都使用 CMake,我能够编译并安装它们。

当我ttyd从构建目录运行时,它工作正常。但是当我从其他地方运行时,我遇到了这个错误:

ttyd: error while loading shared libraries: libwebsockets.so.19: cannot open shared object file: No such file or directory

当我将构建目录添加到我的PATH变量中时,我可以使用ttyd它,vhs但我希望正确安装ttyd它才能正常工作。我做错了什么?

请注意,我已经安装了它们ttydlibwebsockets但随后将其删除。

我可能可以关心共享库的符号链接,但这并不是问题的实际解决方案。如果我从源代码安装了这两个库,为什么共享库会丢失?

编辑

我以相同的方式安装了这两个软件包:

mkdir build
cd build
cmake ..
make
sudo make install

共享库已安装在/usr/local/lib/

答案1

这里的问题是它/usr/local/lib不包含在默认共享库搜索路径中。有三种方法可以解决这个问题:

  1. LD_LIBRARY_PATH运行前设置ttyd

    $ LD_LIBRARY_PATH=/usr/local/lib ttyd
    
  2. 更新默认库搜索路径:

    # echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
    # ldconfig
    
  3. 构建时将库路径编译到二进制文件中:

    $ cmake -DCMAKE_INSTALL_RPATH=/usr/local/lib ..
    

上述三个选项中的任何一个都将允许ttyd定位libwebsockets共享库。

相关内容