termux利用工作proot-distro安装linux

termux神器新的工具proot-distro,是一个Bash脚本,用于在Termux中管理与安装proot下Linux发行版。

目前,它支持安装以下发行版:
  1. Alpine Linux
  2. Arch Linux
  3. Kali Nethunter (rootless)
  4. Ubuntu (18.04 / 20.04)
一. 安装如下:
1
$ pkg install proot-distro
二. 然后利和其安装与运行ubuntu的例子如下:
1
2
proot-distro install ubuntu-20.04  # 安装ubuntu20.04或ubuntu-18.04
proot-distro login ubuntu-20.04 # 运行ubnuntu
本人新测安装动行ubtuntu, net-tools vim己安装,/storage目录下是外置sdcard的文件,/sdcard下的目录是内置存储器的文件。
安装位置在 /data/data/com.termux/files/usr/var/lib/proot-distro
三. 进入本ubuntu20.04后,安装软件报错,比如上面的xfe,出错信怎如下:
dpkg: error processing package xxx (--configure)

并且也无法升级 apt update出错。
如何解决呢?

1
2
3
4
5
6
mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
mkdir /var/lib/dpkg/info/
apt-get update
apt-get -f install
cp /var/lib/dpkg/info_old/* /var/lib/dpkg/info/
rm -rf /var/lib/dpkg/info_old

然后就能正常安装了。
以上在升级为termux0.99版后,不会出错,所以不用以上(第三)步骤了。

最好先建立sudo客户,并以sudo客户登录后,再执行以下步骤

四.中文语言设置
1
2
3
4
5
6
$ apt install language-pack-zh-hans* 安装中文包
$ apt install language-pack-gnome-zh-hans* 安装中文包
$ apt install fonts-wqy-*
# $ apt install fonts-wqy-microhei 安装中文字体
# $ apt install fronts-wqy-zenhei 另一个中文字体
$ vim /etc/default/locale

更改内容如下:
LANG=”zh_CN.UTF-8”
LANGUAGE=”zh_CN:en_US:en”
LC_NUMERIC=”zh_CN.UTF-8”
LC_TIME=”zh_CN.UTF-8”
LC_MONETARY=”zh_CN.UTF-8”
LC_PAPER=”zh_CN.UTF-8”
LC_IDENTIFICATION=”zh_CN.UTF-8”
LC_NAME=”zh_CN.UTF-8”
LC_ADDRESS=”zh_CN.UTF-8”
LC_TELEPHONE=”zh_CN.UTF-8”
LC_MEASUREMENT=”zh_CN.UTF-8”

保存后执行

1
$ fc-cache -fv  #最好进行这一步后再安装fcitx,否则有可能输入法不起做用。

则控制台终端己经会出现中文了

五. 然后可安装xfce4桌面

==记得更改阿里源再安装,不然真的是时间太长了。==

1
2
3
4
5
6
7
8
9
$ apt install dbus
$ apt install python3
$ apt install xfce4 xfce4-terminal # 真是花了好长时间
$ apt install tightvncserver # vncserver软件
$ apt install xfe # 一个优秀的文件管理器,带文件查找功能
$ export DISPLAY=127.0.0.1:0
$ export PULSE_SERVER=tcp:127.0.0.1:4713
打开xdsl的APP,然后回到termux下的linux
$ startxfce4
六. 安装过程中发现一些缺失的东东
1
2
$ apt install dialog
$ apt install apt-utils
七. 关于中文输入法
1
2
3
$ apt install fcitx
$ apt install fcitx-config-*
$ apt install fcitx-table-wbpy # 五笔拼音

*** 然面通过VNC或别的XDSL进入XFCE,有fcitx图标,也能看到拼音,五笔输入法,但是却输入不了中文 ***
vim ~/.profile,在结尾加入

#fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=”@im=fcitx”
然后退出图形界面后,重启动。中文输入法可用了。

如果要一进入桌面就有fcitx,则可
1
$ cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/

采用VNC时,五笔可以用,可是采用xdsl却无法切换中文输入。后来发现是xdsl把Ctrl/Alt/Shift三个键占用了。进系统把中文输入法切换键换为F12可解决

进入桌面后,浏览器浏览国内网站好慢,一直不知道神马原因,开始还以为是手机CPU太差了,后来无意中想到可能是DNS的问题
1
2
$ vim /etc/resolv.conf 
增加一行 nameserver=114.114.114.114

Arm64 版的ubuntu 镜像下载地址

https://partner-images.canonical.com/core/
注意这个地址是有许多版本的linux的,比如ubuntu20.10没有,可是我们想装咋办呢?因为proot-distro当前是装不了的。

  1. 先下载 ubuntu20.10的镜像,https://partner-images.canonical.com/core/groovy/current/ubuntu-groovy-core-cloudimg-arm64-root.tar.gz
  2. 进入termux的 /data/data/com.termux/files/usr/etc/proot-distro目录。
  3. cp ubuntu-20.04.sh ubuntu-20.10.sh
  4. vim ubuntu-20.10.sh,把对应的 bonic改为groovy就行了。
  5. 执行 proot-distro install ubuntu-20.10来安装
  6. ubuntu-20.10.sh的内容如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    ##
    ## Plug-in for installing Ubuntu groovy.
    ##

    DISTRO_NAME="Ubuntu 20.10"

    # Returns download URL.
    get_download_url() {
    case "$(uname -m)" in
    aarch64)
    echo "https://partner-images.canonical.com/core/groovy/current/ubuntu-groovy-core-cloudimg-arm64-root.tar.gz"
    ;;
    armv7l|armv8l)
    echo "https://partner-images.canonical.com/core/groovy/current/ubuntu-groovy-core-cloudimg-armhf-root.tar.gz"
    ;;
    i686)
    # Ubuntu groovy does not provide tarballs for x86 32bit.
    ;;
    x86_64)
    echo "https://partner-images.canonical.com/core/groovy/current/ubuntu-groovy-core-cloudimg-amd64-root.tar.gz"
    ;;
    esac
    }

    # Define here additional steps which should be executed
    # for configuration.
    distro_setup() {
    # Hint: $PWD is the distribution rootfs directory.
    #echo "hello world" > ./etc/motd

    # Run command within proot'ed environment with
    # run_proot_cmd function.
    # Uncomment this to do system upgrade during installation.
    #run_proot_cmd apt update
    #run_proot_cmd apt upgrade -yq
    :
    }