밝히다

밝히다

busybox 및 DNS 조회를 사용하는 데 몇 가지 문제가 있습니다. 내가 찾은주장하다이것은 glibc 문제입니다. 저는 젠투에 있어요. 시스템에서 glibc를 교체하지 않고 uClibc에 대해 busybox를 컴파일하고 싶습니다.

밝히다

호스트 시스템

젠투 시스템, glibc용으로 제작된 패키지. 나는 glibc에 대해 정적으로 링크된 바이너리로 busybox를 설치했습니다.편집하다:아키텍처는 x86_64이며 multilib가 없습니다.

표적

호스트 시스템의 libc를 손상시키지 않고 busybox를 uClibc에 연결하고 싶습니다. 나는 이를 달성하기 위해 이머지와 같은 젠투의 기본 도구를 사용하는 것을 선호합니다. 그러나 일부 수동 스크립팅과 관련된 제안도 환영합니다. 대상 호스트의 아키텍처가 동일합니다.

시험을 마친

  1. 옵션을 사용하세요 emerge --root=/... 하지만 연결은 여전히 ​​glibc에 반대되는 것 같습니다./
  2. 사용젠투 접두사 프로젝트, 그러나 접두사 설치 경로에 또 다른 glibc 기반 3단계가 생겼습니다.
  3. 나는 가지고있다확립된옵션 gcc -Xlinker -rpath=/default/path/to/libraries -Xlinker -I/default/path/to/libraries/ld.so program.c. 하지만 젠투에서 어떻게 사용하는지 모르겠어요make.conf 또는busybox 와 같은 일반 빌드에서 make.

추가 시도:

  1. USE="-static동적으로 링크된 버전을 구축하려면 busybox를 설정하세요 . 그것을 찾으려면 라이브러리 종속성을 사용하십시오 ldd /bin/busybox. Stangly는 라이브러리를 ldd반환하지 않습니다 nss*.so. 그래서 수동으로 이미지를 복사했습니다. 그래도 오류 nslookupping example.com발생합니다.
  2. 다음에서 uClibc 스테이지를 다운로드하세요.https://www.gentoo.org/downloads/. chroot에서 busybox 바이너리를 구성하고 다시 빌드하세요. 이것은 작동하지만 +/- 1MB 비지박스 바이너리를 구축하기에는 확실히 과잉입니다(스테이지 3의 경우 144MB에 비해).

관련 정보