在安卓手机上运行 Perl 6

准备工作

  • 一只 Root 过的安卓智能手机(例如 Smartisan T1), 非 root 的可以使用 Termux

  • 下载并安装 busybox.apk 、 Linux Deploy.apk 和 JuiceSSH.apk

安装 Linux

下面以在我的锤子手机上安装 Debian 为例, 说明如何在手机上运行 Linux:

设置 Linux Deploy

打开手机上的 Linux Deploy.apk:

《在安卓手机上运行 Perl 6》 Linux Deploy

在下面工具栏「启动」->「停止」-> 「下载」 tab 中找到那个类似下载图标的按钮点击, 进入属性设置, 其中属性设置如下所示:

《在安卓手机上运行 Perl 6》 发行版至安装类型
《在安卓手机上运行 Perl 6》 安装路径至选择组件
《在安卓手机上运行 Perl 6》 Chroot目录至挂载点

其中,

选项说 明
发行版Debian根据自己需要的系统选择
发行版本jsssie选择稳定版
架构armhf软件会自省判断 CPU 架构类型
镜像地址http://debian.bjtu.edu.cn/debian/http://ftp.cn.debian.org/debian/
镜像大小不用填写默认就行
选择组件只保留 SSH 服务器手机上用什么桌面环境
图形界面取消勾选手机上不需要 GUI
自定义挂载勾选在挂载点那里选择 sdcard0

设置完成后回到最上面的 Intall(安装 GNU/Linux), 就会开始下载镜像文件了:

《在安卓手机上运行 Perl 6》 开始下载

注意, 如果中间出现 E, 表示有错误发生, 某些文件下载失败, 需要停掉(Stop)重新开始:

《在安卓手机上运行 Perl 6》 Error

成功安装不会耗费太多时间, 如果网速够好的情况下, 我是连续下载了好几次都失败, 曾一度放弃不搞了, 可能是因为网络不稳定的原因, 这次选择在夜深人静的12点之后进行, 经过若干次(n>=2, n<=4)后最终下载成功:

《在安卓手机上运行 Perl 6》 Success

这个时候, 说明手机中的 Debian 系统已经成功启动了。但是我们怎么进去呢?还记得我们之前安装的 JuiceSSH 吗? 用这个软件进行连接。首先打开这个软件, 点击「连接」一栏, 进行 SSH 配置:

《在安卓手机上运行 Perl 6》 连接

然后点击右下角的加号按钮, 新建一个连接:

《在安卓手机上运行 Perl 6》 点击右下角的加号

在弹出的「新建连接」窗口中, 在地址栏中填入 127.0.0.1

《在安卓手机上运行 Perl 6》 新建连接

然后选中「认证」一栏, 在下拉列表中选择「新建」:

《在安卓手机上运行 Perl 6》 新建认证

填入用户名 android, 密码 changeme, 然后点击对号按钮完成设置:

《在安卓手机上运行 Perl 6》 JuiceSSH设置完成

这样设置就完成了, 如要进入 Linux 命令行界面, 就点击 JuiceSSH 中的连接 「127.0.0.1」或者你自己设置的昵称, 进入 Debian 8:

《在安卓手机上运行 Perl 6》 进入 Debian

这样还没完, 你会发现输入不了中文, 没有 vim 编辑器, git。。。

中文环境的配置

进入终端后用 ls查看含有中文名的文件时显示 ?????.txt 的乱码。然后终端里面也输入不了中文。解决方法的步骤如下:

重新配置 locales

在终端中输入:

dpkg-reconfigure locales

使用空格键选中需要安装的本地化的语言, zh_CN.UTF-8en_US.UTF-8

在终端里设置本地化为 zh_CN.UTF-8

《在安卓手机上运行 Perl 6》 服务器端命令

安装中文字体

首先安装 vim 编辑器:

sudo apt-get install vim

/etc/default/locale 文件里写入:

LANG=en_US.utf8
LC_CTYPE=en_US.utf8
LC_NUMERIC=en_US.utf8
LC_TIME=en_US.utf8
LC_COLLATE=en_US.utf8
LC_MONETARY=en_US.utf8
LC_MESSAGES=en_US.utf8
LC_PAPER=en_US.utf8
LC_NAME=en_US.utf8
LC_ADDRESS=en_US.utf8
LC_TELEPHONE=en_US.utf8
LC_MEASUREMENT=en_US.utf8
LC_IDENTIFICATION=en_US.utf8
LC_ALL=

/etc/environment 里面写入:

LANGUAGE="en_US:en"
LANG=en_US.utf8
LC_CTYPE="zh_CN.utf8"   
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"

然后在 deploy linux 这个软件中重启 Debian 系统, 就是先 Stop,再 Start,重新使用 JuiceSSH 进入 Debian 命令行界面, 再次输入中文就可以了:

《在安卓手机上运行 Perl 6》 哈哈哈

安装 Rakudo Perl 6

在手机上输入一系列命令不太方便, 所以在 Windows/Linux/Mac 下使用 ssh 工具可以连接到手机上, 直接在电脑上操作手机中的终端, 下面以 Windows 为例, 使用 ssh 工具(注意你必须已经安装了它)连接 Debian, 打开 Windows 上的命令行提示符, 输入:

ssh android@192.168.1.101

或者使用一个批处理文件:

@echo off
echo -^> Start login
cmd /k ssh android@192.168.1.101

然后会提示你输入密码 changeme, 之后就连接成功了:

《在安卓手机上运行 Perl 6》 succ.png

然后安装 Rakudo:

准备

apt-get install build-essential git

从源代码安装

git clone git://github.com/rakudo/rakudo.git
cd rakudo
perl Configure.pl --gen-moar --gen-nqp --backends=moar
make
make install

安装完成后要注意环境变量的设置, 否则会提示 command not found:

echo "export PATH=\$PATH:$HOME/rakudo/install/bin" >> ~/.bashrc
source ~/.bashrc

然后退出终端, 再次打开终端输入 perl6 --version 就可以使用 perl6了。

《在安卓手机上运行 Perl 6》 perl6

安装 panda

git clone --recursive git://github.com/tadzik/panda.git
cd panda
perl6 bootstrap.pl

然后根据提示:

==> Please make sure that /home/android/.perl6/bin is in your PATH

把 panda 也加到 PATH 变量中:

echo "export PATH=\$PATH:$HOME/.perl6/bin" >> ~/.bashrc
source ~/.bashrc

或者编辑 vim ~/.bash_profile 文件:

PATH=$PATH:/home/android/rakudo/install/bin:/home/android/.perl6/bin/
export PATH

安装 Linenoise 模块

panda install Linenoise

总结

比较容易失败的地方的是系统镜像的下载和中文环境的配置。注意这两点, 就抓住重点确保安装顺利进行了。安装完你可以干什么? 我先运行个 Python, 微信机器人,Mojo-Webqq, Mojo-Weixin, 写写 jekyll 博客,使用 Perl 6, 都能如你所愿, 因为它既使用 Wifi 也可以使用 3g/4g 蜂窝网络, 随时随地写东西。Once Build, Write Anywhere。

最后, Just For fun!

更新:你可以把下载后的 linux.img 拷贝下来, 下次更新系统/刷机 后再拷贝到根目录重新下载 Linux Deploy 和 Busy Box 重新配置就能重新使用了,里面的数据也不会丢失。

    原文作者:焉知非鱼
    原文地址: https://www.jianshu.com/p/54edb4213771
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞