Last active
September 4, 2018 03:11
-
-
Save dangpzanco/095fc938356c23ef36048156f4fb5795 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/data/data/com.termux/files/usr/bin/bash | |
folder=ubuntu-fs | |
if [ -d "$folder" ]; then | |
first=1 | |
echo "skipping downloading" | |
fi | |
tarball="ubuntu.tar.gz" | |
if [ "$first" != 1 ];then | |
if [ ! -f $tarball ]; then | |
echo "downloading ubuntu-image" | |
case `dpkg --print-architecture` in | |
aarch64) | |
archurl="arm64" ;; | |
arm) | |
archurl="armhf" ;; | |
amd64) | |
archurl="amd64" ;; | |
i*86) | |
archurl="i386" ;; | |
*) | |
echo "unknown architecture"; exit 1 ;; | |
esac | |
wget "https://partner-images.canonical.com/core/bionic/current/ubuntu-bionic-core-cloudimg-${archurl}-root.tar.gz" -O $tarball | |
fi | |
cur=`pwd` | |
mkdir -p "$folder" | |
cd "$folder" | |
echo "decompressing ubuntu image" | |
proot --link2symlink tar -xf ${cur}/${tarball} --exclude='dev'||: | |
echo "fixing nameserver, otherwise it can't connect to the internet" | |
echo "nameserver 1.1.1.1" > etc/resolv.conf | |
cd "$cur" | |
fi | |
mkdir -p binds | |
bin=start-ubuntu.sh | |
echo "writing launch script" | |
cat > $bin <<- EOM | |
#!/bin/bash | |
cd \$(dirname \$0) | |
## unset LD_PRELOAD in case termux-exec is installed | |
unset LD_PRELOAD | |
command="proot" | |
command+=" --link2symlink" | |
command+=" -0" | |
command+=" -r $folder" | |
if [ -n "\$(ls -A binds)" ]; then | |
for f in binds/* ;do | |
. \$f | |
done | |
fi | |
command+=" -b /dev" | |
command+=" -b /proc" | |
## uncomment the following line to have access to the home directory of termux | |
#command+=" -b /data/data/com.termux/files/home:/root" | |
# uncomment the following line to mount /sdcard directly to / | |
command+=" -b /sdcard" | |
command+=" -w /root" | |
command+=" /usr/bin/env -i" | |
command+=" HOME=/root" | |
command+=" PATH=/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/games:/usr/local/games" | |
command+=" TERM=\$TERM" | |
command+=" LANG=C.UTF-8" | |
command+=" /bin/bash --login" | |
com="\$@" | |
if [ -z "\$1" ];then | |
exec \$command | |
else | |
\$command -c "\$com" | |
fi | |
EOM | |
echo "fixing shebang of $bin" | |
termux-fix-shebang $bin | |
echo "making $bin executable" | |
chmod +x $bin | |
echo "You can now launch Ubuntu with the ./${bin} script" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://askubuntu.com/questions/86375/apt-get-autocomplete-package-name-is-broken | |
# https://askubuntu.com/questions/506158/unable-to-initialize-frontend-dialog-when-using-ssh | |
# https://askubuntu.com/questions/162247/why-does-ctrl-left-arrow-not-skip-words | |
# https://askubuntu.com/questions/517677/how-do-i-get-a-colored-bash | |
# fix pip | |
# https://askubuntu.com/questions/969463/python3-pip3-install-broken-on-ubuntu | |
# colors | |
PS1='\[\033[1;36m\]\u\[\033[1;31m\]@\[\033[1;32m\]\h:\[\033[1;35m\]\w\[\033[1;31m\]\$\[\033[0m\] ' | |
# ctrl + left/right | |
bind '"\e[1;5D" backward-word' | |
bind '"\e[1;5C" forward-word' | |
# avoid errors like "debconf: unable to initialize frontend: Dialog" | |
export DEBIAN_FRONTEND=noninteractive |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment