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사용할 수 있지만 작동하려면 올바르게 설치되기를 원합니다 . 내가 뭘 잘못했나요?ttydvhsttyd

설치한 ttyd다음 libwebsockets제거했습니다.

아마도 공유 라이브러리에 대한 심볼릭 링크에 관심이 있을 수 있지만 이는 문제에 대한 실제 해결책은 아닙니다. 소스에서 이 두 라이브러리를 설치한 경우 공유 라이브러리가 누락되는 이유는 무엇입니까?

편집하다:

두 패키지를 모두 같은 방식으로 설치했습니다.

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

관련 정보