라는 이름의 각 파일에 대한 심볼릭 링크를 만드는 데 *.so.0.*
사용하려는 라이브러리( )로 가득 찬 디렉터리가 있습니다 .find
*.so.0
(비효과적인) 시도는 다음과 같습니다.
find $HOME/.local/lib64/ -name "lib*.so.0.*" -execdir ln -s {} $(echo {} | cut -d . -f 1-4) \;
하지만 왜 작동하지 않는지 찾을 수 없습니다.
을 사용하여 라이브러리 하나만 사용해 보았지만 ln -s ./libfoo.so.0.12.0. $(echo ./libfoo.so.0.12.0. | cut -d . -f 1-4)
결과는 입니다 ./libfoo.so.0
.
답변1
애플리케이션을 실행하기 위해 대체 ELF 라이브러리 세트를 설정하려고 하므로 심볼릭 링크를 수동으로 생성하는 대신 문제의 의도한 애플리케이션으로 직접 이동하십시오. ldconfig $HOME/.local/lib64/
디렉터리의 모든 심볼릭 링크가 업데이트되어야 합니다.
항상 그런 것은 아니며 .so.0
ELF 라이브러리의 SOVERSION 데이터에 따라 달라집니다.