[2020.03.06] 今日再观,真不愧乃2018年的古董文章。以前提供的链接现在已经通通失效,JuiceSSH终究不再更新,Termux拥有了更高的可玩度,也有了许多其他的替代方案。因此将此文稍作修缮,或不再有其他额外改动了。

之前试过许多方法(也就几种),像什么Complete Linux Installer,Debian noroot,利用已有的Linux构造Bootstrap之类,要么就是复杂得要命(调了两天没有调出来),要么就是鸡肋,直到发现了一款叫做Linux Deploy的软件。

这款软件是需要root才能运行的,没有root的童鞋可以转向那些Termux的教程了。只是Termux没有Linux Deploy性能好,可定制程度稍低罢了。

看来这款软件的先置需求还是不多的,随随便便就能处理好是不是?

好吧,现在步入正题,开始安装Linux Deploy(欢迎花样作死)。


1.安装Linux Deploy

虽然有些应用商店里有Linux Deploy,网上也可以下得到,但是版本估计都很旧,所以推荐到Google Play商店里下载(没有链接提供哈)。

就像安装微信一样安装好它就行了。

然后打开......是这个样子的:

你看,上面都教你怎么安装了!(笑)

2.配置Linux Deploy

如果你想要安装多个系统,建议更改一下配置文件的名称。(哎呀,强迫症又犯了,你们忽略我吧)

先点击左上的“恒等于号”

点击配置文件

点一下那支笔

既然这次我们要安装的是Ubuntu,那就写上Ubuntu好了......

更改好后点击确定

如果不想你的Linux运行时CPU休眠导致卡成龟,最好让其保持唤醒

返回,点击设置

勾选“保持CPU唤醒”,顺便把“锁定Wi-Fi"也勾上吧,嘿嘿!

3.设置安装选项

在设置安装选项之前,需要看看手机的CPU架构和/data分区剩余空间

回到主页面,点击右上方的三个点

点击状态

然后就会滚出来很多行字

比如,我的手机CPU是armv8l的,/data分区还剩15.9GB,这些信息都要记住,后面要用到(不记住好像也没什么事)

现在可以正式开始设置安装选项了,点击右下方的一个鬼畜的按钮

容器类型不用管,直接从发行版开始

由于这回我们要安装Ubuntu,那就选Ubuntu好了(废话)

接下来就是架构了,根据我们之前在状态里看到的CPU架构选择合适的架构

一般有armv8字样的CPU是64位的,选择arm64或aarch64(看哪个有选哪个,这里是arm64,那就选arm64),其他的选armhf即可(除非你的手机老到炸裂,就只能选armel了,不过太老的手机是装不上Linux Deploy的),如果有些神机是i386或者x86_64(amd64)的,直接照着选就可以了(表示膜拜)

比如我的手机是armv8l,就选arm64好了

至于发行版版本嘛,你自己选好了。由于我是更新狂,所以我选了最新的bionic(Ubuntu 18.04)(唉,强迫症又犯了,你们无视我吧 _

这四个版本代号分别对应着Ubuntu12.04,Ubuntu14.04,Ubuntu16.04和Ubuntu18.04(应该没人会去用Ubuntu12.04了吧)

现在到了设置源地址的时候了。由于官方的源在国外,所以你若不想调两天还调不好的话,还是不要用官方源吧。这里使用中科大镜像站:http://mirrors.ustc.edu.cn/ubuntu-ports(貌似中科大和清华的镜像站越来越不稳定了)

嗯,现在可以选择安装类型了。如果你之前看到的/data分区大于等于4G,建议选择目录,这样大概是选择镜像文件的运行速度的两至六倍。假如你的手机/data分区真的没空间了,但是你有一张存储卡,可以选择镜像文件,或者分区。

不过需要注意的是,由于你的存储卡一般是fat32格式的,所以无法存储大于4G的文件,所以镜像文件的大小不能超过4G。若选择分区的话,就不会出现这种问题,但是选择分区的最大问题就是你的卡里的文件会被清空,且无法在Windows上访问你的存储卡,因为它需要被格式化成ext3或ext4格式(具体选ext3还是ext4,取决于你的手机是否支持ext4,可以通过状态查看,看那个Supported FS有没有ext4即可,若连ext3都没有,那就只能选ext2了,不过这种手机实在太古老了,我保证连Linux Deploy都装不上......)。

还有,如果你选择了分区,一定要弄清你要安装到哪个分区,在状态最底部有一个Available partitions,会显示你的存储卡的位置,一般是/dev/block/mmcblkXpY(X和Y根据情况填写),注意核对分区大小和你的存储卡大小是否匹配,若你选错了分区,你就杯具了......

至于RAM选项,这是安装到内存里,虽然速度快,但是没有3到6个G内存不要选,而且一重启就没了(所以别选RAM了吧),还有,请忽视Custom那个选项,因为那个一点用都没有๑乛◡乛๑

由于我们选的发行版是Ubuntu,所以强迫症再次发作,手动分类改名设置安装路径QwQ

为了不出现因忘记其默认生成的超难记密码而连不上ssh的尴尬局面,强烈建议修改用户密码(用户名改不改随意)

你看,这个密码多好记?!

特权用户和DNS一般不用改,不过本地化是要改的(除非你喜欢全英文)

改成zh_CN.UTF-8即可

初始化和挂载都跳过,把SSH启用打上勾,否则连不上这个Ubuntu就尬了!

下面那个VNC先不要管(虽然我知道你很可能需要它),直接点左上角那个小箭头回到主页面

这个设置安装选项貌似很复杂,但是实际上还是很简单的,大约半分钟就可以配置好

4.开始安装系统

回到主页,点击安装

肯定选择确定啦

然后就开始安装了......

根据手机性能的高低和网速的大小,安装时间4至30分钟不等

嘿嘿,我六分半就装完了(˘▾˘)

哦,对了,出现下面这种情况(就是那个W:Couldn‘t什么的)赶紧按停止键重新安装,以免浪费时间(反正过了一段时间后快要安装完时它会报错让你重装)

建议安装完后重启一波再食用

请忽视时间的问题(逃)

5.使用SSH连接容器

在Android上使用人数最多的SSH软件恐怕就是JuiceSSH了......

我在想这个软件的图标为什么那么像Lemon

这个软件打开之后是这个样子的:(请忽视一切诡异的东西吧)

先点击“连接”

点击那个有趣的加号(因为你点开JuiceSSH时是什么连接记录都没有滴,需要手动添加)

昵称随便填,比如我填了个Linux(为什么不填个NOILinux呢)

地址填127.0.0.1或localhost(反正都是代表本机)

然后点击认证那个倒三角——新建认证

昵称随便填,比如我填了个Linux......

用户名是之前配置时那个用户名,我没有改,所以是android

密码就是那个好记的xxxxxx

填好之后是这个样子

私钥不用管,千万别点左上那个返回键,而是应该点右上的那个勾(否则就重来一遍吧)

然后就会返回到填写“新建连接”的页面,再点一下右上那个勾,回到主页面,在连接那儿点击刚刚保存的连接

然后是类似这个样子



不要管,点确定,然后是这个样子

点接受即可

接着就连接上啦,可以愉快地打命令啦啦啦

按音量-可以缩小字体

按音量+可以放大字体

皮皮真开心!

来,打个gcc

什么?居然没有gcc?

那就安装一个吧!

先sudo su一波

然后apt install gcc g++

点个y然后回车

然后就刷刷刷得跑起来了!

安装好了......

输入一个gcc -v,哈,gcc已经有了!

输入一个g++ -v,哈,g++也已经有了!

这下就可以编译了!

不过只能编译,不能编辑文件是什么鬼?那就安装一个vim吧!

哈,现在vim也可以用了!

6.为容器启用图形化界面

有的童鞋并不满足于终端,还希望像普通的Ubuntu一样有图形化界面。这很简单,只需要将我们之前忽略的VNC打开就可以了!

桌面选择轻量的LXDE,一是安装快,二是运行快,三是丑陋

现在返回到主页面,点击右上方的三个小点点,然后点击“配置”......

仍然建议重启一波哦QvQ

7.配置并使用图形化界面

要用VNC连接这个毒瘤Ubuntu,需要一款名曰VNCViewer的软件,作者已经贴心地帮忙准备好了QvQ:https://wendster.win/pan/index.php?share/file&user=1&sid=5BzEJ8FY

打开之后是这个燕子的......

然后点击右下角那个加号

地址填127.0.0.1或localhost,Name就随便啦

然后点击CREATE,然后在主页面点击你创建的连接

会出现下面这个东西

记得把它的勾去掉,否则每次都会弹出这个拥有着令人做噩梦的颜色的邪恶的提示

然后就要输密码,可以把Remember passwd勾上,下次就不用输入密码了

emmmm,密码就是那个好记的xxxxxx

然后,就进去了,这个软件会弹出一个使用教程,可以看也可以跳过,反正是全英文的教程

真正连上后的样子:

哎呀,下面的任务栏太小了!原来是VNC的分辨率调的太高了,调低一点就好了

先返回到配置系统界面,然后点击图形化界面设置

哎呀,颜色深度怎么只有16位呢?还是换成24位全彩色以获得更好的视觉体验吧

好啦,回到正题。可以看到,分辨率调的非常高,高达1920x1080,要那么高分辨率干嘛?调低一点多好?就像这个样子,对于我的手机来说调到960x540比较好,那就调这么多呗

现在再次重启容器,连上VNC。嗯,现在好多了!

点一下启动器

谒!怎么中文都乱码了?原来是忘记安装中文字体了......

赶紧用SSH连上终端,敲上这么一打命令

apt update
apt install font-wqy-microhei -y

这样中文乱码这种奇异的事件就不会再有了

为了让界面稍微好看一点,并且修复一下图标的问题,再打一波命令

apt install lubuntu-default-session lubuntu-default-settings lubuntu-extra-sessions lubuntu-icon-theme -y

然后再次重启容器......

然后再次连上VNC......

好了,现在没有乱码了(咦,我的图怎么找不着了)

滑动屏幕操控鼠标点击左下角的飞鸟图案,然后点击首选项——自定义外观和体验

然后就会出现下面的界面

左边菜单选择Lubuntu-default,然后点击Apply

点击上方的图标主题,选择Lubuntu,然后点击Apply

点击上方的窗口边框,选择Lubuntu-default,然后点击Apply



现在回到窗体,点击右下方的字体,左边往下翻,翻到文泉驿微米黑,点击OK

关掉自定义外观和体验,打开终端,顺便把字体也配置一下



先sudo su一下来安装一个小软件......

安装一个Vim用于编辑文件......

哦,忘了已经安装过Vim了!

现在就可以愉快地编程啦!如果有蓝牙键盘,码起代码来会更爽呢!


教程到这里就结束啦!更多高级玩法还期待你们去挖掘(坑)呢!(欢迎花样作死)

在你的Android手机上运行Linux的更多相关文章

  1. android 手机上运行图像算法

    在pc上调试好的图像处理算法想要在android手机上跑一下看看速度需要一下几个步骤 1.建立一个android application,通过ndk调用你写好的图像算法的c/c++ code 2. 然 ...

  2. 在Android手机上安装linux系统

    在anroid手机中安装fedora系统.记住不只是教你安装fedora系统. 需要的备注与软件 1.一个已经root的Android手机,记住是root后的,root后的,root后的.(重要的事情 ...

  3. 利用Termux在Android手机上运行PHP

    从 阮一峰 博客看到 [Termux 入门教程:架设手机 Server 下载文件] 想测试下,在可以跑PHP吗?经测试PHP完美运行,并且可用使用PHP内置WEB服务器,搭建网站访问:因为对linux ...

  4. 在 Android 手机上运行 Python 程序

  5. Android 手机上安装并运行 Ubuntu 12.04

    ubuntu.sh脚本的原地址变动了,导致下载不了,现在更新了网盘地址.小技巧:遇到一些下载失效的时候可以试一试p2p下载工具(如 easyMule.迅雷等)试一试,说不定有人分享过~* —————— ...

  6. 在安卓(手机)上运行 Ubuntu (Linux)

    在安卓(手机)上运行 Ubuntu (Linux) 由于x86 和 arm 是跨平台的,所使用的编译器自然也不同.如果要在电脑上编译安卓手机上的程序,则需在电脑端建立ARM交叉编译环境,这个过程是在耗 ...

  7. 安卓手机上运行 PC-E500 程序

    目录 第1章安卓手机上运行 PC-E500 程序    1 1 PockEmul    1 2 下载    1 3 打包BASIC程序    2 4 配置PC-E500模拟器    5 5 载入e50 ...

  8. 如何在 Android 手机上实现抓包?

    如何在 Android 手机上实现抓包? http://www.zhihu.com/question/20467503 我想知道某个应用究竟在数据提交到哪里,提交了什么.网上的教程太复杂,不想麻烦.有 ...

  9. delphi xe5 android 手机上使用sqlite

    本篇我们介绍一下在android手机上怎样使用sqlite数据库,这里用Navigator实现 增删改查. 1.新建firemonkey mobile application 2.选择blank ap ...

随机推荐

  1. Extjs 3 TreePanel相关操作

    这里说的选中是指鼠标点击一个节点后,节点那一行出现浅蓝色背景的选中,而非checkbox的勾选 方法 Ext.tree.TreePanel.getSelectionModel().getSelecte ...

  2. MySQL ERROR Got an error reading communication packets

    200 ? "200px" : this.width)!important;} --> 介绍 经常会在错误日志中看到这个报错,首先我们可以从show GLOBAL statu ...

  3. bzoj 4784: [Zjoi2017]仙人掌【tarjan+树形dp】

    其实挺简单的但是没想出来---- 首先判断无解情况,即,一开始的图就不是仙人掌,使用tarjan判断如果一个点dfs下去有超过一个点比他早,则说明存在非简单环. 然后考虑dp,显然原图中已经属于某个简 ...

  4. P3755 [CQOI2017]老C的任务

    传送门 可以离线,把询问拆成四个,然后把所有的按\(x\)坐标排序,这样就只要考虑\(y\)坐标了.然后把\(y\)坐标离散化,用树状数组统计即可 记得开longlong //minamoto #in ...

  5. 设置Google搜索在新的标签页打开

    Google搜索的结果,默认情况下点击进入是在本标签页打开的,这样就很麻烦, 可以在搜索结果的页面中进行设置,让它在新的标签页显示 搜索结果设置->搜索设置->新的标签页打开

  6. Vue的响应式原理

    Vue的响应式原理 一.响应式的底层实现 1.Vue与MVVM Vue是一个 MVVM框架,其各层的对应关系如下 View层:在Vue中是绑定dom对象的HTML ViewModel层:在Vue中是实 ...

  7. 在代码里更新autolayout布局

    //遍历view约束(高,宽) NSArray* constrains = self.View.constraints; for (NSLayoutConstraint* constraint in ...

  8. Spring + MyBaits 日志初始化两遍的问题

    偶然发现一个问题,记录一下以备查询. 问题:系统启动时发现日志初始化了两次 14:28:04.798 [main] DEBUG org.apache.ibatis.logging.LogFactory ...

  9. [转]Getting Started with ASP.NET Web API 2 (C#)

    http://www.asp.net/web-api 本文转自:http://www.asp.net/web-api/overview/getting-started-with-aspnet-web- ...

  10. jsp中非空判断

    function中uname要和id的值相匹配,但是这样不专业,要显示我的专业性,我将使用document获得name的值来判断是否为空,应为这样是专业的写法,我要时刻记住我是专业的 <scri ...