Linux deploy

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동

개요[편집 | 원본 편집]

안드로이드 폰에서 리눅스를 설치하기 위해 개발된 어플.

안드로이드 폰을 서버로 사용할 예정이라면 이만한 게 또 없다.

필요[편집 | 원본 편집]

  1. 루트권한이 필요하다.
    루팅을 통해 루트권한을 얻어도 안드로이드 자체적으로 앱 내에서의 루트권한 사용을 막을 수 있다. 때문에 커스텀롬 설치가..필수가 된다. 커스텀롬 설치 후 루트권한을 얻자.
  2. 커스텀롬이 필요하다.
    루트권한을 얻어 linux를 설치해도 실 사용에서 root권한이 안드로이드에 의해 막히는 경우가 있다. 때문에 커스텀롬이 필요하다.
    커스텀롬에 대한 내용은 안드로이드:커스텀롬 문서 참고.

사용법[편집 | 원본 편집]

  1. 구글 플레이스토어에서 Linux deploy를 다운받는다.
  2. 프로파일 생성.
    기존 프로파일과 구분하기 위해 프로파일을 생성한다.
    - 좌측 상단의 메뉴버튼 선택 > Profiles 선택 > 필요에 따라 만든다. > 프로파일을 해당 프로파일로 전환.
  3. 설정.
    만지면 좋을 설정들은 다음과 같다.
    1. 배포판 고르기.
      기본 화면의 우측 하단 버튼에서 설치할 배포판을 고르고 필요 옵션을 선택한다.
    2. installation type
      어떤 방식으로 설치할지 선택하게 한다.
      File : 해당 경로에 디스크 이미지를 만들어 구동한다.
      Directory : 안드로이드에 마운트하여 휴대폰의 모든 용량을 사용한다. 기 경로가 ${EXTERNAL_STORAGE}/linux로 되어있는데, 이렇게 하면 에러가 난다. 기본경로를 ${ENV_DIR} 하위로 바꾸어주면 된다.( 내부저장소 하위에 저장하는 방법도 알고 싶지만.. 모르겠다; USB연결로 접근할 수 없다는 건 상당히 치명적인 단점이다;)
      Partition : 성공 못해봄.
    3. User name, User password
      필요한 것으로 설정한다.
    4. INIT
      OS부팅 시 apache, sql 같은 것들을 자동 실행하기 위해 체크해야 할 설정이다.
    5. SSH
      원격으로 조정하기 위해 필수적이다. 체크하자.
    6. GUI
      일반적으로 서버를 돌릴 줄 알 정도라면 CUI로 다룰 수 있기에 잘 쓰지 않는 설정이다.

기타[편집 | 원본 편집]

21.10.25기준 플레이스토어에서 받은 linux deploy는 img 불러오기가 안되는데, https://github.com/meefik/linuxdeploy/releases/tag/1.5.3을 설치하면 img파일을 받아오기가 가능하다.

근데... 이미지를 어플에서 여는 것도 방법이지만.. 그냥 프로파일에서 경로만 새로 지정해준다음 start 하면 될 듯하다.

기초설정[편집 | 원본 편집]

보통 SSH로 원격조작을 진행한다. 프롬프트에서 bash를 입력하면 bash 쉘 사용이 가능하니 참고.

이후 sudo apt update 등 초기 과정을 진행하고 사용하면 된다.

과정 방법
저장소 업데이트 sudo apt update
각종 패키지 업그레이드 sudo apt upgrade -y
루트 패스워드 지정 sudo passwd

이후 설정[편집 | 원본 편집]

앱 설정[편집 | 원본 편집]

linux deploy앱의 설정에서 Wake lock을 켜주자. 화면이 꺼져도 정상 작동하게끔 돕는다. +화면잠금 설정도 체크해주자.

init. 자동실행.[편집 | 원본 편집]

부팅 때마다 일일이 이것저것 켜주는 것은 너무 불편하다.

https://3-24.github.io/linux/linux-android-startup/

각종 패키지 설치[편집 | 원본 편집]

기본적인 패키지 없이 쌩몸이기 때문에 특정 명령어에서 bash: wget: command not found과 같은 메시지가 뜬다.

의도 설명 방법
패키지 설치 최소한의 것들만 설치되어 있어 없는 게 많다. sudo apt-get install wget

계속 에러가 뜨면 root로 로그인해 진행하면 되더라...

mysql sudo apt-get install mysql-server mysql-client

그냥 설치하면 에러가 뜬다.

nano /etc/mysql/mysql.conf.d/mysqld.cnf 등으로 bind-address=127.0.0.1을 주석처리한다.

그 아래에 skip-networking를 추가한다. 이후 다시 설치를 진행한다.

mysql 실행하면 나는 에러. 원인 모를 에러다. 서버를 실행하면 뜬다. No directory, logging in with HOME=/ sudo service mysql stop

sudo usermod -d /var/lib/mysql/ mysql

sudo service mysql start

저장소 추가 저장소를 추가하려면 sudo add-apt-repository ppa:ondrej/php 따위를 사용하는데, 아래와 같은 에러가 뜬다.

Error sudo: add-apt-repository: command not found 이는 기본적인 패키지도 없기 때문이다...

sudo apt install software-properties-common

위 이후에 저장소 추가가 가능해진다.

sudo add-apt-repository ppa:ondrej/php

지원하지 않는 패키지 설치.. 이건 여기가 아니라...나중에 따로 옮겨야겠다. 우분투 관련 문서로. sudo add-apt-repository ppa:ondrej/php 등의 방법으로 저장소를 추가해

sudo apt update로 적용한 후

sudo install 패키지명으로 진행하면 된다.

apache2 도메인이름 설정 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message

라는 에러가 뜬다. 서버에 이름이 없기 때문인데.. 방치해도 되지만.. 다른 에러가 뜨려나...?

curl 문제 해결 이것저것 하다 보면 Error contacting the Parsoid/RESTBase server: (curl error: 6) Couldn't resolve host name 이 얻어진다. sudo dhclient 을 하라고 하는데,

chroot 환경에선 Running in chroot, ignoring request: try-reload-or-restart 라는 에러가 뜬다.[미해결]