구레나룻

Termux 를 이용해 Dex 에서 개발하기 - 기본 설정 본문

DEX 활용기

Termux 를 이용해 Dex 에서 개발하기 - 기본 설정

GURENAREUT 2018. 4. 29. 01:46



Termux 앱은 안드로이드에서 터미널 에뮬레이션과 리눅스 패키지들을 제공합니다.

즉 Termux 를 통해 bash shell 을 띄워 pkg (우분투의 apt  와 비슷) 명령을 통해 nodejs 나 python, gcc(clang 패키지 설치) 를 사용할 수 있고,

JDK 를 설치하여 java 도 사용할고 있을 뿐만 아니라 make 나 gradle, git 도 사용 가능 합니다.


물론 휴대폰과 같은 작은 화면과 가상 키보드로는 정신건강에 매우 해로우니 태블릿에 블루투스 키보드를 연결하거나 dex 를 사용하는 것이 좋을 듯 합니다.

저의 경우 최근에 S9+ 를 구매 했고 덱스 스테이션을 매우 헐값에 중고 장터에서 구매하게 되어 dex 에서 Termux 를 사용하고 있습니다.

Termux 설치

Termux 설치는 다른 앱들과 마찬가지로 Google play 를 통해 간단히 설치 하면 됩니다.

Termux 를 실행하면 아래와 같이 익숙한 리눅스 쉘을 볼수 있을 겁니다.


패키지 설치

Termux 는 pkg install [package name] 명령을 통해 패키지 를 설치할 수 있습니다.

또한 ubuntu 의 apt 와 같이 의존성이 있는 패키지 들도 함께 설치 해 줍니다.

$ pkg install wget

 따라서 nodejs 나 python 같아 본인이 사용하고자 하는 패키지 들을 설치 하면 되겠습니다.

파일 접근 설정

외장메모리 접근을 위해 먼저 Termux 앱에 권한을 "설정 > 애플리케이션 > 애플리케이션 정보 > 권한 > 저장공간" 에서 부여 합니다.

그리고 termux-setup-storage 명령을 수행하면 home 디렉토리에 storage 디렉토리를 생성하고 여기에 아래와 같이 주요 위치에 대한 심볼릭 링크를 생성해 줍니다.



내장메모리의 경우 Termux 의 home 디렉토리가 내장메모리 영역인데 기본적으로 안드로이드는 특정 앱의 내부 파일에 다른 앱이 접근하는 것을 허용 하지 않습니다.

물론 외장메모리 영역에 프로젝트를 생성하면 Termux 와 다른 에디터 어플등이 함께 파일을 사용 할 수 있지만 요즘 안드로이드(아마 킷캣 이상 부터?)는 외장 메모리에 저장된 파일들의 권한 설정(chmod) 을 허용 하지 않습니다. 

따라서 다양한 문제가 발생하는데요 예를 들면 nodejs 프로젝트에 module 설치를 위해 npm install 명령을 수행하면 에러가 발생합니다.


그래서 저의 경우 프로젝트는 내장메모리에 생성하고 로컬 ftp 서버를 띄워 이를 통해 다른 앱들이 내부 파일에 접근 하도록 구성 했습니다.

FTP 서버 설정

ftp 서버는 busybox 에 포함된 ftpd 를 사용 했습니다.

.bashrc 에 아래 내용을 추가하고 termux 를 다시 띄우면 ftp 서버가 실행됩니다.

nohup tcpsvd -vE 0.0.0.0 7021 ftpd -vw ~/ &

이제 안드로이드에 설치된 ftp client 를 통해 서버에 접속 해 봅니다. 

  • host : 127.0.0.1/data/data/com.termux/files/home/

  • port : 7021

  • id : anonymous

  • password : 없음

위 정보에 따라 서버에 접속하면 Termux 의 home 디렉토리를 볼 수 있습니다.

코드 에디터

코드 에디터는 Dex 에서 잘 동작하고 ftp 를 지원하는 앱을 Google play 에서 찾아보면... 

AIDE 와 DroidEdit 는 탭키가 잘 동작 하지 않았고, Jota+ 는 ftp 접속 포트 변경이 불가능 했습니다.

그러나 QuickEdit 라는 앱의 경우 탭키와 ftp 접속 모두 잘 되고, 다양한 언어에 대한 Syntax highlighting 지원, 안정성 등에서 만족스러웠습니다.

맺으며

Termux 와 Dex 조합은 안드로이드 폰을 훌륭한 개발머신으로 변신시켜 줍니다.

다음에는 Termux 를 통한 Java 개발 환경 구축에 대해 포스팅 하겠습니다.






Comments