데비안 프로그램은 일반적으로 공유 라이브러리/종속성에 뒤처지기 때문에 자격을 갖춘 공유 라이브러리와 함께 사용하면 작동해야 합니다. 즉, Arch 프로그램/패키지와 같이 OS 롤링/빠른 업데이트를 기반으로 한 동일한 최신 업데이트를 사용하면 됩니다.
그러니 모든 패키지 파일을 데비안 OS 자체로 복사하세요. 예를 들어 프로그램은 다음과 같습니다.광밍닷컴, 그 부서. 에게 복사/usr/local/lib
그러나 이를 요구하는 동반 공유 라이브러리가 이런 방식으로 실패하는 이유는 무엇입니까?
$ LD_LIBRARY_PATH=/usr/local/lib xbright =5
xbright: relocation error: /usr/local/lib/libc.so.6: symbol _dl_audit_symbind_alt version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
좋은 정보로 클리어, 실패
$ xbright =5
xbright: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by xbright)
도와주세요. 예상대로 작동하게 하려면 어떻게 해야 합니까?
답변1
동적 링커도 C 라이브러리의 일부이므로 복사해야 합니다. /lib64/ld-linux-x86-64.so.2
Arch가 가리키는 위치를 확인 하고 복사한 /usr/local/lib
다음 다음을 실행하여 제대로 작동하는지 확인합니다.
LD_LIBRARY_PATH=/usr/local/lib /usr/local/lib/ld-2.34.so xbright =5
( ld-2.34.so
적절한 이름으로 바꾸십시오).
다음을 사용하여 기본적으로 이 인터프리터를 사용하도록 바이너리를 설정할 수 있습니다 patchelf
.
patchelf --set-interpreter /usr/local/lib/ld-2.34.so /usr/local/bin/xbright
항상 설정할 필요가 없도록 지정하도록 RPATH
설정할 수도 있습니다 .xbright
/usr/local/lib
LD_LIBRARY_PATH
patchelf --set-rpath /usr/local/lib /usr/local/bin/xbright