patchelf

ld-linux.so를 사용하여 프로그램을 실행하고 patchelf를 사용하여 인터프리터를 변경할 때 다른 결과가 나타나는 이유는 무엇입니까?
patchelf

ld-linux.so를 사용하여 프로그램을 실행하고 patchelf를 사용하여 인터프리터를 변경할 때 다른 결과가 나타나는 이유는 무엇입니까?

ld + --library-path를 사용하여 프로그램을 실행하는 것과 patchelf를 사용하여 로더를 변경하는 것의 차이점은 무엇입니까? 이를 설명하기 위해 다음은 있는 그대로 실행되지 않는 바이너리입니다. 아마도 최신 버전의 라이브러리가 없기 때문일 것입니다. $ ~/DOWNLOADS/APPS/magick /tmp/.mount_magickXiWzgy/usr/bin/magick: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (...

Admin

auto-patchelf는 종속성 libQt5SerialPort.so.5를 충족할 수 없습니다.
patchelf

auto-patchelf는 종속성 libQt5SerialPort.so.5를 충족할 수 없습니다.

NixOS에서 Qt Design Studio 2.3.1 Community를 실행하려고 합니다. 내 nix 파생 코드: flake.nix: { description = "Qt Design Studio"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake...

Admin

편집하다
patchelf

편집하다

다른 유사한 질문이 있는 것을 보았지만 거기에 대한 답변은 나에게 적합하지 않았습니다. 제가 다운받은거 사용중인데Julia 1.9.2(Linux, x86-64, glibc) 사전 빌드된 바이너리바이너리를 실행하려고 시도했지만 다음 오류가 발생했습니다. bash: ./julia: cannot execute: required file not found 내 컴퓨터에서 다른 모든 바이너리를 실행할 수 있습니다. 내 이해는 bash가 파일을 실행하는 데 필요한 인터프리터를 찾을 수 없기 때문이라는 것입니다. ...

Admin

objcopy/elfedit를 사용하여 elf 파일의 기호(버전)를 패치하세요.
patchelf

objcopy/elfedit를 사용하여 elf 파일의 기호(버전)를 패치하세요.

컨텍스트는 다음과 같습니다. 내 OS에서 (이미)liba.so.v2함수의 기호 버전으로 문자열 "symbol_version-2"를 포함하는 "liba"입니다.functionX@version-2(내 경우에는 예를 들어@NCURSES6_5.0.19991023 새로 고침 존재하다objdump -T /readelf산출). 이거 새거 있어요바이너리_a다운로드해서 실행해보고 싶었습니다. 그러나 이는 이전 버전의 라이브러리에 의존하므로liba.so.v1, "symbol_version-1"과 같은 다양한 기호 버...

Admin

Nix - addAutoPatchelfSearchPath를 올바르게 사용하는 방법은 무엇입니까?
patchelf

Nix - addAutoPatchelfSearchPath를 올바르게 사용하는 방법은 무엇입니까?

addAutoPatchelfSearchPath일부 기본 공유 개체가 포함된 도구를 패키징하고 있으며 이러한 개체를 rpath에 추가하는 올바른 방법은 내 Nix 표현식의 함수를 사용하는 것이라고 생각했지만 예상대로 라이브러리를 가져오지 installPhase못했습니다 . .so검색 경로를 명시적으로, 상대 경로 등으로 설정해 보았습니다. 올바른 사용법은 무엇입니까? installPhase = '' mkdir -p $out addAutoPatchelfSearchPath $(pwd) ...

Admin

ldconfig는 patchelf를 사용하여 라이브러리를 패치한 후 이상한 이름의 링크를 생성합니까?
patchelf

ldconfig는 patchelf를 사용하여 라이브러리를 패치한 후 이상한 이름의 링크를 생성합니까?

이 도구를 사용하여 원치 않는 종속성을 제거하기 위해 개발 서버에서 여러 라이브러리를 패치하고 있습니다 patchelf. RPM으로 패키지되어 런타임 시스템에 설치됩니다. 설치 후 ldconfig호출되며 이상한 링크가 생성됩니다. 런타임 시스템에서 패치된 라이브러리의 위치는 /usr1/blah/lib여러 하위 폴더처럼 보입니다. 하위 폴더의 위치와 위치는 /etc/ld.so.conf내 파일에 지정됩니다. 실행하면 ldconfig다음과 같이 이상한 이름을 가진 링크가 많이 생성됩니다. ?N -&gt...

Admin

다시 덮다
patchelf

다시 덮다

다시 덮다 현재 NixOs의 Nix 패키지 관리자를 사용하여 dot-net-core-sdk 2.0을 설치하려고 합니다. 저는 NixOs, Nix, bash 스크립팅, ELF 같은 것에 익숙하지 않습니다. 하지만 dot-net-core-sdk 2.0에 대한 유효한 Nix 패키지 설명을 성공적으로 만든 것 같습니다. 그러나 새 프로젝트를 생성하려고 하면 console콘솔 템플릿을 찾을 수 없다는 메시지가 나타납니다. No templates matched the input template name:...

Admin

patchelf 0.6 및 0.8을 사용하여 ld-linux-x86-64.so.2에서 RUNPATH를 설정한 후 bash를 chroot할 수 없습니다.
patchelf

patchelf 0.6 및 0.8을 사용하여 ld-linux-x86-64.so.2에서 RUNPATH를 설정한 후 bash를 chroot할 수 없습니다.

RUNPATH동적 연결이 변수와 어떻게 작동하는지 테스트 하고 bash최소한의 chroot디렉터리에서 실행하려고 합니다. $ find dir_chroot/ -type f dir_chroot/bin/bash dir_chroot/lib/x86_64-linux-gnu/libc.so.6 dir_chroot/lib/x86_64-linux-gnu/libdl.so.2 dir_chroot/lib/x86_64-linux-gnu/libtinfo.so.5 dir_chroot/lib64/ld-linux-x86-64.so...

Admin

대체 libc 및 ld-linux.so 해킹을 사용하시겠습니까?
patchelf

대체 libc 및 ld-linux.so 해킹을 사용하시겠습니까?

저는 많은 테스트/검증 작업 없이는 업그레이드할 수 없는 매우 오래된 glibc가 포함된 레거시 시스템을 가지고 있습니다. 이제 이 시스템에서 최신 프로그램(예: Java 1.7)을 여러 번 실행해야 합니다. 저는 필요한 모든 라이브러리를 패키지하고 chroot에서 서비스를 실행하는 chroot 솔루션을 선택했습니다. 그러나 chroot는 매우 제한적이므로 문제를 해결하려면 LD_LIBRARY_PATH를 사용하는 것이 좋습니다. 불행히도 libc.so.6: cannot handle TLS data...

Admin

바이너리 실행 중: 파일을 찾을 수 없습니다.
patchelf

바이너리 실행 중: 파일을 찾을 수 없습니다.

비슷한 질문이 있다는 것을 알고 있지만 해결책이나 정확한 사례를 찾지 못했습니다. 이 바이너리는 Arch Linux용 GCC 4.7을 사용하여 빌드되었습니다. 이 패키지는 빌드 시스템에서 제대로 작동합니다. 다음 명령은 다음에서 실행됩니다. Linux vbox-ubuntu 3.2.0-29-generic #46-Ubuntu SMP 금요일 7월 27일 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux 문제의 파일은 다음 위치에 있습니다.여기. Linux 6...

Admin

Linux: CentOS의 MAC용 install_name_tool 대체
patchelf

Linux: CentOS의 MAC용 install_name_tool 대체

CentOS에서 MAC용 install_name_tool의 대체품을 찾고 있습니다. 기본 위치가 아닌 위치에 MySQL을 구축하고 싶습니다. 또한 mysql 바이너리의 공유 라이브러리는 기본 위치가 아닌 위치에 있어야 하며 올바르게 연결되어야 합니다. 공유 라이브러리 libssl 및 libcrypto를 mysqld 바이너리에 연결할 수 없습니다. [user@localhost mysql]$ ldd /usr/local/mysql/bin/mysqld linux-gate.so.1 =>...

Admin