7.4 KiB
Termux
Install
- Get Termux from F-Droid.
- 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
.\The following command is from proot-distro, but you can also use Andronix. After Debian is installed the
~ $
will change toroot@localhost
.
- Run
pkg update -y && pkg install proot-distro -y && proot-distro install debian && proot-distro login debian
- Run the following commands to setup Debian:
apt update && apt upgrade -y && apt-get install sudo vim git -y
-
Install NVM by following the install guide in the README, just a curl/wget command.
-
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.
- 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 of the file. Make sure to replace$HOME
with/root
on the first line. - Now run
exit
- Start Debian again
proot-distro login debian
-
After following the instructions and setting up NVM you can now install the required node version by running:
nvm install v<major_version_here>
- To install
code-server
run the following: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
curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
curl -fsSL https://code-server.dev/install.sh | sh
- You can now start code server by simply running
code-server
.
Consider using a new user instead of root, read here why using root is not recommended.
Learn how to add a user here.
Upgrade
- Remove all previous installs
rm -rf ~/.local/lib/code-server-*
- Run the install script again
curl -fsSL https://code-server.dev/install.sh | sh
Known Issues
Git won't work in /sdcard
Issue : Using git in the /sdcard
directory will fail during cloning/commit/staging/etc...
Fix : None
Potential Workaround :
- Create a soft-link from the debian-fs to your folder in
/sdcard
- Use git from termux (preferred)
Extra
Create a new user
To create a new user follow these simple steps -
- Create a new user by running
useradd <username> -m
. - Change the password by running
passwd <username>
. - Give your new user sudo access by running
visudo
, scroll down toUser privilege specification
and add the following line after rootusername ALL=(ALL:ALL) ALL
. - 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
. - Now switch users by running
su - <username>
- Remember the
-
betweeensu
and username is required to execute/etc/profile
,
since/etc/profile
may have some necessary things to be executed you should always add a-
.
Install Go
- Go to https://golang.org/dl/ and copy the download link for
linux arm
and run the following:
wget download_link
- Extract the downloaded archive. (This step will erase all previous GO installs, make sure to create a backup if you have previously installed GO)
rm -rf /usr/local/go && tar -C /usr/local -xzf archive_name
- Run
nano /etc/profile
and add the following lineexport PATH=$PATH:/usr/local/go/bin
. - Now run
exit
(depending on if you have switched users or not, you may have to runexit
multiple times to get to normal termux shell) and start Debian again. - Check if your install was successful by running
go version
Install Python
Run these commands as root
- Run the following commands to install required packages to build python:
sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
- Install pyenv from pyenv-installer by running:
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
- Run
nano /etc/profile
and add the following:
export PYENV_ROOT="/root/.pyenv"
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
- Exit and start Debian again.
- Run
pyenv versions
to list all installable versions. - 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).
- Run
touch /root/.pyenv/version && echo "your_version_here" > /root/.pyenv/version
- (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
.
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
Accessing the Debian PRoot distro/Starting code-server
- Run the following command to access the Debian PRoot distro, from the termux shell:
proot-distro login debian
- Run the following command to start code-server directly in the Debian PRoot distro, from the termux shell:
proot-distro login debian -- code-server
- If you created a new user, you'll need to insert the
--user <username>
option betweenlogin
anddebian
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.