2016-10-19 1 views
1

나는 Linux/BSD/Mac/Windows에서 실행되는 bash 스크립트를 개발 중이다. termbox와 같은 안드로이드 터미널 에뮬레이터에서 실행되도록하기 위해 이들을 busybox 환경으로 이식하고 싶습니다.안드로이드/busybox/termux 테스트 환경

busybox/android의 테스트 환경을 얻는 가장 좋은 방법은 무엇입니까? docker busybox 이미지로 이동하려고했습니다. 또한 apt install rsync을 통해 android termux에서 작동하는 ssh 클라이언트 또는 rsync와 같은 도구를 추가 할 수 있어야하지만 분명한 이유로 도커 이미지에서는 작동하지 않습니다.

아이디어가 있으십니까? 감사합니다. .

답변

3

Busybox 자체는 실제로 여러 가지 도구처럼 동작 할 수있는 단일 멀티 콜 바이너리입니다. 순수한 비지 박스 환경에서는 필요로하는 애플릿 (예 : rsync)을 포함하도록 busybox를 컴파일해야 할 것입니다.

질문에, 당신은 apt install rsync 명령을 참조했습니다. Busybox에는 언급 한 것처럼 apt 명령이 없습니다. 요구에 따라 물건을 설치할 수있는 패키지 관리자를 설치할 수도 있습니다.

알파인 리눅스 배포판에는 apk이라는 매우 작은 패키지 관리자가 있으며, 또한 busybox를 사용할 수 있습니다. Docker Hub의 alpine 공식 이미지에는 본질적으로 busybox 및 apk가 있습니다. 패키지는 glibc 대신 libmusl을 기반으로합니다. 알프스 산맥을 확실히 볼 가치가 있습니다.

여기 고산에 rsync를 설치하는 방법은 다음과 같습니다

$ docker run --rm -it alpine sh 
/# which busybox 
/bin/busybox 
/# ls -lah `which mv` 
lrwxrwxrwx 1 root  root   12 Jun 23 19:37 /bin/mv -> /bin/busybox 
/# apk --no-cache add rsync 
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz 
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz 
(1/4) Installing libattr (2.4.47-r4) 
(2/4) Installing libacl (2.2.52-r2) 
(3/4) Installing popt (1.16-r6) 
(4/4) Installing rsync (3.1.2-r2) 
Executing busybox-1.24.2-r9.trigger 
OK: 5 MiB in 15 packages 
/# ls -lah `which rsync` 
-rwxr-xr-x 1 root  root  396.0K Apr 29 16:02 /usr/bin/rsync 
/# 

기타 소형 패키지 관리자뿐만 아니라 작동 할 수 있지만 나는 등 (그들이 옷을 벗었 비지 박스 루트에 설치되는 방법을 쉽게 잘 모르는 것 같아요 busybox 이미지). opkg 및 ipkg는 임베디드 패키지 관리자를 염두에두고 있습니다.

+0

좋아요! 매력처럼 작동하고 안드로이드 termux 환경에 충분히 가깝게 보인다. – deajan

+0

Termux가 Busybox를 사용합니까? Termux를 시작하면 BusyBox가 나타납니다. – Timo