Archived
1
0

docs: simplify termux installation process (#5078)

* Update termux.md

1) Updated information to use PRoot (simpler than Andronix and the way supported by Termux) to create and access the Debian distro.
2) Added helpful information on using PRoot with your dev environment.
3) Cleaned up spelling, grammar, and made documentation more consistent between sections.

* docs: Termux correct packages to install

Updated some erroneously missing packages (vim and sudo) necessary for multi-user setup.

* docs: cleaned up verbiage

Co-authored-by: Joe Previte <jjprevite@gmail.com>

* docs: corrected punctuation

Co-authored-by: Joe Previte <jjprevite@gmail.com>

* docs: correct punctuation

Co-authored-by: Joe Previte <jjprevite@gmail.com>

* docs: clarify pkg command shorthand

* Ran yarn fmt on docs

Co-authored-by: Joe Previte <jjprevite@gmail.com>
This commit is contained in:
Joseph Reiter 2022-04-12 18:42:22 -04:00 committed by GitHub
parent f4569f0b48
commit 3bf470f19c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,40 +10,45 @@
- [Create a new user](#create-a-new-user) - [Create a new user](#create-a-new-user)
- [Install Go](#install-go) - [Install Go](#install-go)
- [Install Python](#install-python) - [Install Python](#install-python)
- [Working with PRoot](#working-with-proot)
<!-- END doctoc generated TOC please keep comment here to allow auto update --> <!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Install ## Install
1. Get [Termux](https://f-droid.org/en/packages/com.termux/) from **F-Droid**. 1. Get [Termux](https://f-droid.org/en/packages/com.termux/) from **F-Droid**.
2. Install Debian by running the following. 2. Install Debian by running the following:
- Run `termux-setup-storage` to allow storage access, or else code-server won't be able to read from `/sdcard`.\ - Run `termux-setup-storage` to allow storage access, or else code-server won't be able to read from `/sdcard`.\
If you used the Andronix command then you may have to edit the `start-debian.sh` script to mount `/sdcard` just as simple as uncommenting the `command+=" -b /sdcard"` line. > The following command is from [proot-distro](https://github.com/termux/proot-distro), but you can also use [Andronix](https://andronix.app/).
> The following command was extracted from [Andronix](https://andronix.app/) you can also use [proot-distro](https://github.com/termux/proot-distro).
> After Debian is installed the `~ $` will change to `root@localhost`. > After Debian is installed the `~ $` will change to `root@localhost`.
```bash ```bash
pkg update -y && pkg install wget curl proot tar -y && wget https://raw.githubusercontent.com/AndronixApp/AndronixOrigin/master/Installer/Debian/debian.sh -O debian.sh && chmod +x debian.sh && bash debian.sh pkg update -y && pkg install proot-distro -y && proot-distro install debian && proot-distro login debian
``` ```
3. Run the following commands to setup Debian. 3. Run the following commands to setup Debian:
```bash ```bash
apt update apt update && apt upgrade -y && apt-get install sudo vim git -y
apt upgrade -y
apt-get install nano vim sudo curl wget git -y
``` ```
4. Install [NVM](https://github.com/nvm-sh/nvm) by following the install guide in the README, just a curl/wget command. 4. Install [NVM](https://github.com/nvm-sh/nvm#install--update-script) by following the install guide in the README, just a curl/wget command.
5. Set up NVM for multi-user. After installing NVM it automatically adds the necessary commands for it to work, but it will only work if you are logged in as root;
5. Set up NVM for multi-user. After installing NVM it automatically adds the necessary commands for it to work, but it will only work if you are logged in as root:
- Copy the lines NVM asks you to run after running the install script. - Copy the lines NVM asks you to run after running the install script.
- Run `nano /root/.bashrc` and comment out those lines by adding a `#` at the start. - Run `nano /root/.bashrc` and comment out those lines by adding a `#` at the start.
- Run `nano /etc/profile` and paste those lines at the end and make sure to replace `$HOME` with `/root` - Run `nano /etc/profile` and paste those lines at the end of the file. Make sure to replace `$HOME` with `/root` on the first line.
- Now run `exit` and start Debain again. - Now run `exit`
- Start Debian again `proot-distro login debian`
6. After following the instructions and setting up NVM you can now install the [required node version](https://coder.com/docs/code-server/latest/npm#nodejs-version) using `nvm install version_here`. 6. After following the instructions and setting up NVM you can now install the [required node version](https://coder.com/docs/code-server/latest/npm#nodejs-version) by running:
7. To install `code-server` run the following.
```bash
nvm install v<major_version_here>
```
7. To install `code-server` run the following:
> To check the install process (Will not actually install code-server) > To check the install process (Will not actually install code-server)
> If it all looks good, you can install code-server by running the second command > If it all looks good, you can install code-server by running the second command
@ -82,11 +87,11 @@ Potential Workaround :
To create a new user follow these simple steps - To create a new user follow these simple steps -
1. Create a new user by running `useradd username -m`. 1. Create a new user by running `useradd <username> -m`.
2. Change the password by running `passwd username`. 2. Change the password by running `passwd <username>`.
3. Give your new user sudo access by runnning `visudo`, scroll down to `User privilege specification` and add the following line after root `username ALL=(ALL:ALL) ALL`. 3. Give your new user sudo access by running `visudo`, scroll down to `User privilege specification` and add the following line after root `username ALL=(ALL:ALL) ALL`.
4. Now edit the `/etc/passwd` file with your commadline editor of choice and at the end of the line that specifies your user change `/bin/sh` to `/bin/bash`. 4. Now edit the `/etc/passwd` file with your command line editor of choice and at the end of the line that specifies your user change `/bin/sh` to `/bin/bash`.
5. Now switch users, by running `su - username` 5. Now switch users by running `su - <username>`
- Remember the `-` betweeen `su` and username is required to execute `/etc/profile`,\ - Remember the `-` betweeen `su` and username is required to execute `/etc/profile`,\
since `/etc/profile` may have some necessary things to be executed you should always add a `-`. since `/etc/profile` may have some necessary things to be executed you should always add a `-`.
@ -95,7 +100,7 @@ To create a new user follow these simple steps -
> From https://golang.org/doc/install > From https://golang.org/doc/install
1. Go to https://golang.org/dl/ and copy the download link for `linux arm` and run the following. 1. Go to https://golang.org/dl/ and copy the download link for `linux arm` and run the following:
```bash ```bash
wget download_link wget download_link
@ -115,7 +120,7 @@ rm -rf /usr/local/go && tar -C /usr/local -xzf archive_name
> Run these commands as root > Run these commands as root
1. Run the following command to install required packages to build python. 1. Run the following commands to install required packages to build python:
```bash ```bash
sudo apt-get update sudo apt-get update
@ -124,13 +129,13 @@ sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
``` ```
2. Install [pyenv](https://github.com/pyenv/pyenv/) from [pyenv-installer](https://github.com/pyenv/pyenv-installer) by running. 2. Install [pyenv](https://github.com/pyenv/pyenv/) from [pyenv-installer](https://github.com/pyenv/pyenv-installer) by running:
```bash ```bash
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
``` ```
3. Run `nano /etc/profile` and add the following 3. Run `nano /etc/profile` and add the following:
```bash ```bash
export PYENV_ROOT="/root/.pyenv" export PYENV_ROOT="/root/.pyenv"
@ -139,10 +144,42 @@ eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)" eval "$(pyenv virtualenv-init -)"
``` ```
4. Exit start Debian again. 4. Exit and start Debian again.
5. Run `pyenv versions` to list all installable versions. 5. Run `pyenv versions` to list all installable versions.
6. Run `pyenv install version` to install the desired python version. 6. Run `pyenv install version` to install the desired python version.
> The build process may take some time (an hour or 2 depending on your device). > The build process may take some time (an hour or 2 depending on your device).
7. Run `touch /root/.pyenv/version && echo "your_version_here" > /root/.pyenv/version` 7. Run `touch /root/.pyenv/version && echo "your_version_here" > /root/.pyenv/version`
8. (You may have to start Debian again) Run `python3 -V` to verify if PATH works or not. 8. (You may have to start Debian again) Run `python3 -V` to verify if PATH works or not.
> If `python3` doesn't work but pyenv says that the install was successful in step 6 then try running `$PYENV_ROOT/versions/your_version/bin/python3`. > If `python3` doesn't work but pyenv says that the install was successful in step 6 then try running `$PYENV_ROOT/versions/your_version/bin/python3`.
### Working with PRoot
Debian PRoot Distro Dev Environment
- Since Node and code-server are installed in the Debian PRoot distro, your `~/.ssh/` configuration, `~/.bashrc`, git, npm packages, etc. should be setup in PRoot as well.
- The terminal accessible in code-server will bring up the filesystem and `~/.bashrc` in the Debian PRoot distro.
Accessing files in the Debian PRoot Distro
- The `/data/data/com.termux/files/home` directory in PRoot accesses the termux home directory (`~`)
- The `/sdcard` directory in PRoot accesses the Android storage directory, though there are [known issues with git and files in the `/sdcard` path](#git-wont-work-in-sdcard)
Accessing the Debian PRoot distro/Starting code-server
- Run the following command to access the Debian PRoot distro, from the termux shell:
```bash
proot-distro login debian
```
- Run the following command to start code-server directly in the Debian PRoot distro, from the termux shell:
```bash
proot-distro login debian -- code-server
```
- If you [created a new user](#create-a-new-user), you'll need to insert the `--user <username>` option between `login` and `debian` in the commands above to run as the user instead of root in PRoot.
Additional information on PRoot and Termux
- Additional information on using your Debian PRoot Distro can be [found here](https://github.com/termux/proot-distro#functionality-overview).