유제https://unix.stackexchange.com/questions/235795/use-dpkg-in-busybox
안녕하세요! 나는 dpkg가 최신 버전의 busybox와 함께 제공된다는 사실을 알고 기뻐서 패키지 설치를 시작했습니다. apt의 모든 종속성을 수집하고 실행했습니다.
dpkg -i *.deb
불행히도 오류가 발생했습니다!
dpkg: Unable to open /var/lib/dpkg/status: no such file or directory
좋아, /var/lib/dpkg 디렉토리를 생성한 다음 빈 파일 /var/lib/dpkg/status를 생성하여 문제를 해결했습니다. 그런 다음 다시 시도했습니다.
dpkg -i *.deb dpkg: package libtasn1-6 pre-depends on multiarch-support, which is not installed or flagged to be installed
그래서 multiarch-support를 설치하려고 했지만 libc6에 의존하고 libc6은 libgcc에 의존하며 libgcc는 다시 multiarch-support에 의존합니다. 또한 동일한 줄에 모두 설치하려고 시도했지만 동일한 종속성 오류가 발생했습니다.
그래서 libgcc 를 사용하여 libgcc 설치를 시도했지만 --force-depends
이제 /var/lib/dpkg/info/libgcc1.md5sums가 없다고 불평하므로 info 디렉터리를 만들고 조금 더 진행합니다.
sh: /var/lib/dpkg/info/libgcc1.postinst: No such file or directory dpkg: postinst failed, error code 256
내가 무엇을 놓치고 있나요? 실제로 패키지를 설치할 수 있도록 busybox의 dpkg를 설정하는 방법이 있습니까?
답변1
dpkg
유틸리티를 실행하는 것과 배포판을 설치하는 것은 또 다른 것입니다. 배포판을 실행하려면 여러 패키지를 설치하고 가장 기본적인 유틸리티를 사용하면 거의 모든 것이 작동하는 다른 모든 것에 달려 있다는 사실을 처리해야 합니다. 그것은가이드질문.
다행히도 이를 수행하는 앱이 있습니다!부팅 방지 프로그램이 목적을 위해 설계되었습니다. BusyBox가 있는 시스템에서 Deboostrap을 실행할 수 있다고 생각합니다. 하지만 2단계 모드를 사용하는 것이 더 간단할 수도 있습니다.
debootstrap(물론 Debian뿐만 아니라 다른 여러 배포판에서도 패키지로 사용 가능)을 다운로드하고 Linux PC에서 실행하여 디렉터리 트리를 준비하세요.
debootstrap --arch=armhf --foreign jessie debian
BusyBox를 사용하여 디렉터리 트리를 장치에 복사하고 파일 속성을 유지하세요.
tar
디렉터리를 보관하고 대상 장치에 추출하는 데 사용됩니다 .대상 장치에서 아카이브가 추출된 위치로 chroot하여 실행합니다.
/debootstrap/debootstrap --second-stage