0

0

linux deploy有什么用

青灯夜游

青灯夜游

发布时间:2023-04-12 16:40:30

|

2476人浏览过

|

来源于php中文网

原创

linux deploy用于在Android设备上部署Linux环境,其原理大概是在Android的Linux层跑一个chroot或者proot容器,然后再在容器中运行我们准备好的另外一个Linux系统。在使用Linux Deploy前,必须需要获取手机的Root权限。

linux deploy有什么用

本教程操作环境:linux7.3系统、Dell G3电脑。

Linux Deploy是一款可以在Android设备上部署Linux环境的应用,其原理大概是在Android的Linux层跑一个chroot或者proot容器,然后再在容器中运行我们准备好的另外一个Linux系统。值得注意的是,这与我们熟知的虚拟机技术不同,新的Linux系统将和Android系统平行运行(非专业解释不要深究)。

在使用Linux Deploy之前,我们需要获取手机的Root权限(必须),获取Root权限后,由于原机自带的Linux命令集不完整,我们需要安装Busybox来扩充Linux命令集(不安装也可以)

Linux Deploy需要在谷歌商店安装,其他安卓应用商店没有,以下提到的软件都只能在谷歌商店安装,文章下方也提供下载地址
1.png

安装完成后,我们将使用Linux Deploy在Android设备上部署Ubuntu系统:

  点击界面最右下方的"下载"图标进入配置文件的设置界面进行如下设置(我也不知道开发者为什么会用这么一个"下载"图标作为配置文件设置界面的图标):

  Containerization method:"chroot"

  发行版:"Ubuntu"

  架构:保持默认值

  发行版版本:"yakkety"(即Ubuntu 16.10)

  源地址:mirror.tuna.tsinghua.edu.cn(这里我们采用默认方式部署,即在软件源中下载Linux组件和必要的软件包的方式部署,因为默认源速度不佳,为了不下载一天一夜,我们这里使用的是清华大学的开源镜像源,如果你采用Repository方式部署(之后的文章会讲到),这里的"源地址"应该填写Repository文件(后缀为tgz/tar.gz)文件的本地或远程路径)

  安装类型:这一选项的话有两种建议,"目录"和"文件",如果对Linux不太熟悉并且/data分区剩余空间≥2g的话,建议使用"目录"的安装方式,如果对Linux比较熟悉或者/data分区剩余空间<2g的话,建议使用"文件"的安装方式。在这里,为了操作方便,使用"目录"的安装方式,但在实际使用中,为了不占用/data分区空间,建议大家采用"文件(镜像)"的安装方式。

  安装路径:"安装路径"选择"目录"时,这个选项将定义系统安装在哪个路径中,默认路径为${ENV_DIR}/rootfs/linux,即安装在/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux目录下。"安装类型"选择"文件"时,这个选项将定义Linux系统安装在哪个镜像文件中,默认值为外置存储/linux.img

  镜像大小(MB)(安装类型"选择"文件"时可用):这个选项将定义系统所在镜像文件的大小。系统安装之前将在安装目录创建一个大小为设置的镜像大小的空文件用来存放系统文件和数据(相当于新Linux系统的总磁盘空间)。建议不要用默认值,填写2048m足够了。

  文件系统(安装类型"选择"文件"时可用):选择"自动"。

  用户名:这个选项为登录系统时的用户名,默认为"android",可以随意更改。

  用户密码:这个选项为Ubuntu系统中用户的密码,可以根据自己的习惯填写。

  Privileged Users:保持默认值

  DNS服务器:可以保持默认值,也可自定义填写DNS服务器地址(如114.114.114.114等)

  本地化:建议保持默认值POSIX,如果有其他需求,比如需要让ssh返回结果为中文或者让图形界面的显示语言为中文时,选择"zh_CN.UTF8"

  INIT/MOUNTS项:若有需求时可以设置,无需求可以忽略。

  允许SSH服务器启动:打开此选项

  SSH设置:保持默认

  允许图形界面启动:若有需求可以设置,这里暂时不打开这个选项(之后的文章将会为大家介绍如何部署图形界面)。

2.png

  设置完成后,按返回键返回到应用主界面,按下菜单键,选择"安装"开始Linux系统的安装,安装过程中需要一直保持网络连接(建议在WIFI下安装,大概需要几百兆流量)。

  当看到终端输出">>>deploy"时,代表安装已开始:

3.png

  当看到终端输出"<<<deploy"时,代表安装已完成:

4.png

  点击主界面下方的"启动"按钮可以启动新安装的系统,点击"停止"可以停止系统。

5.png

  至此,系统部署部分描述完毕。

  部署完毕后,我们需要用到lJuiceSSH/ConnectBot之类的SSH工具来登录系统(这里以JuiceSSH为例)。

  成功启动系统后我们打开JuiceSSH,依次点击 "连接" - 右下角"+"按钮 进入新建连接界面:

  昵称:可随意填写,我们以"Localhost - Android"为例   类型:SSH   地址:127.0.0.1

6.png

  认证:选择"新建"跳转到"新建认证"界面:   昵称:同样可以随意填写,我们同样以"Localhost - Android"为例   用户名:填写"配置文件设置"界面的"用户名",默认为android   密码:填写"配置文件设置"界面的设置的"用户密码"

7.jpg

  点击右上角的"√"图标保存并返回到"新建连接"界面,再次点击"√"图标保存,在"连接列表"中点击刚刚新建的这个项目连接到我们刚刚部署好的系统,连接成功后界面如下:

8.jpg

  因为我们是通过普通用户android登陆系统的,接下来我们需要设置超级用户(root)的密码并且以超级用户的身份登陆系统:

  在终端中键入:

sudo passwd root

  终端将会提示用户输入root用户的密码并且再次输入一次以确认(输入密码时密码将不可见,连*都不会显示),设置完毕后,在终端键入命令su并输入刚刚设置好的root用户密码即可切换到root用户。

  文件的管理:   如果你是通过"目录"方式部署的Linux系统,那么你可以直接使用R.E.管理器访问/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux即可管理新系统中的文件,如果你是通过"文件"方式部署的Linux系统,管理文件等操作就得依靠SFTP了(当然使用SSH方式也没问题,但是还是觉得SFTP更方便些)。当我们使用普通用户身份登录SFTP时,由于权限原因,我们无权操作大多数文件。所以我们需要以超级用户身份登录SFTP。但默认配置是不允许root用户登录SSH和SFTP的,所以我们需要进行如下设置:

  在Linux Deploy中启动部署好的系统,以android用户登录到SSH,在终端中执行:

sudo apt-get install -y vim        #安装vim编辑器

  当然啦,使用系统自带的vi编辑器也是可以的,如果你对vi编辑器比较熟悉也可以使用vi编辑器编辑文件。vim编辑器安装完成后我们继续在终端执行:

vim /etc/ssh/sshd_config        #使用vim编辑器打开/etc/ssh/sshd_config这个文件

  打开文件后,键入i进入编辑模式,点击终端任意空白位置可以弹出特殊键键盘,使用上下光标滚动浏览文件,在文件的#Authentication部分找到PermitRootLogin这一项,将其改为yes,改动完成后点击特殊键键盘中的"ESC"键退出编辑模式,键盘键入:wq!保存并强制退出文件完成对文件的编辑操作。

9.png

  打开Linux Deploy,停止后再启动Linux系统。打开"Turbo客户端" - 侧边栏 - 创建一个新账户 - SFTP 来新建一个SFTP连接(部分文件管理器,比如ES文件浏览器(ESFileExplorer),SE文件管理器(SolidExplorer)也带有SFTP功能,如果不想安装TurboFTP的话,可以用它们来代替):

10.png

  其中:

  用户名为:root   密码为刚刚设置好的root用户的密码   主机名为:127.0.0.1

  其他项保持默认,点击右上角的"保存"图标保存配置,在侧边栏的连接列表中我们将以root用户连接到SFTP并管理文件:

11.png

  当然,修改完sshd_config文件,停止并启动Linux系统后,你也可以直接以root用户连接到SSH了。       介绍完安装,介绍一下卸载吧~你可以通过以下方法完全卸载Linux Deploy:

  1.如果你使用"目录"的方式部署的Linux系统,那么在Linux Deploy内"停止"Linux系统,接着直接卸载Linux Deploy并重启手机即可完全卸载;   2.如果你使用"文件(镜像)"方式部署的Linux系统,你需要先"停止"Linux系统,然后删除放置在内置存储下的镜像文件,镜像文件路径就是上文在部署Linux系统之前提到的"安装路径"这一项,如果此项未经修改,则镜像路径为外置存储/linux.img,接着卸载Linux Deploy并重启手机即可完全卸载。

安装图形环境

修改以下配置项:

  INIT:   打勾:启用自定义脚本执行   (INIT的其他配置保持不变)

  图形界面:

  打勾:允许图形界面启动

  图形子系统:VNC

  图形化界面设定:保持默认配置

  桌面环境:按需选择,这里选择的是LXDE 

12.png
13.png
14.png

  配置完毕后,回到主界面,按下"菜单键",选择"配置"让我们刚才的的设置生效:

15.png
16.png

  配置完毕后,点击底部的"停止"按钮停止Linux系统,再点击"启动"按钮启动Linux系统,接着我们登入SSH,在终端中执行:

sudo apt-get install ttf-wqy-zenhei    #安装中文字库

  中文字库安装完毕后,执行以下命令启动VNC:

vncserver

  终端会返回以下结果:

New 'X' desktop is localhost:1  Starting applications specified in /home/android/.vnc/xstartup Log file is /home/android/.vnc/localhost:1.log
复制

  证明vncserver已启动成功。

  (注意,在某些时候,第一次执行vncserver命令时系统将要求你设定一个小于8位数的VNC密码,你需要输入两次密码之后提交,VNC密码设定完成之后还会有一个提示,不用理会,键入n提交即可)

进入图形界面:

  接着我们使用VncViewer来连接到我们刚刚部署好的的图形界面:

  打开VncViewer,点击右下角的"+"按钮添加VNC会话:

  Address:   127.0.0.1:5901   Name:   Localhost - Ubuntu@Xfce

  其中,"Address"项为VNC服务器所在的地址。由于我们需要连接本机的VNC服务器,所以填写127.0.0.1即可,此外我们还需要在地址后指定VNC端口,因为刚刚终端返回的信息:New 'X' desktop is localhost:1指定了此次桌面会话号为1,所以端口就为5900+1=5901。如果我们开启了多个虚拟桌面,它们的会话号为2,3,4...,那么各自的端口即为5902,5903,5904...依次类推。并且,服务器地址与端口之间需要用英文冒号隔开。"Name"项为用户为此VNC会话指定的地址,我们为了区别其他会话,填写的是Localhost - Ubuntu@Xfce,实际上随便填写什么都可以。

  这些信息填写完毕后,点击"CREATE"按钮提交:

17.png
18.jpg

  确认信息无误后,点击下面绿色的"CONNECT"按钮开始连接VNC会话(如果你之前没有设定过VNC密码,但在连接VNC连接过程中仍然需要你输入密码时,那么你可以输入android用户的密码试试):

19.png
20.png

  好了...图形界面的部署过程到此为止,剩下的你们自己折腾吧(/doge脸)~

可能遇到的问题:

  1. 当你开启了一个VNC会话,停止Linux系统再启动Linux系统后,再次执行vncserver命令,系统可能会报出以下错误:

21.png

  这时候,你可以执行以下两条命令:

rm -rf /tmp/.X[1-9]-lock
rm -rf /tmp/.X11-unix/X[1-9]

  执行完毕后,再执行vncserver,会话号就会被重置为1了。为了防止每次停止再启动Linux系统后带来的这个问题,我们可以编辑/etc/rc.local文件,在此文件的exit 0之前插入这两条命令:

sudo vim /etc/rc.local    #编辑/etc/rc.local
22.png

  编辑完成后,保存即可,进行这步操作后,在启动Linux系统后和停止Linux系统之前,Linux Deploy都会替我们执行这两条命令,这样一来之后就不会再报错了~

  2. vncserver默认的分辨率是1024×768,但市面上的大部分手机屏幕的分辨率都是720P(1280×720),1080P(1920×1080),甚至2K(2560×1440),vncserver默认的1024×768分辨率可能会造成VNC画面不能填充满屏幕的情况,这时候,我们有必要修改VNC分辨率以适应屏幕,经过测试,拿1080P屏幕来说,将分辨率设为为720P可使VNC图像充满屏幕且不影响显示效果。调节方法就是在每次执行vncserver命令时在后面加上-geometry参数,例如我需要把VNC分辨率调为720P(1280×720),那么在启动vncserver时,执行:

vncserver -geometry 1280x720

  即可将新开启的VNC虚拟会话屏幕分辨率设为1280×720。值得注意的是,命令中的1280x720里的x是小写字母x,而不是数学中的乘号×

  下面是1280×720分辨率和1024×768分辨率的对比(将VNC Viewer画面缩小到最小):

23.png
24.png

  很明显,1080P屏幕上,将VNC分辨率设为1280×720可使图像填充满屏幕且视觉效果更佳。

  如果你觉得每次启动vncserver时输这么一长串命令有点儿麻烦,那么可以编辑~/.bashrc文件,在下图所示的位置增加一行alias定义:

vim ~/.bashrc    #编辑~/.bashrc

alias vncserver='vncserver -geometry 1280x720'
复制

25.png

  之后,每次执行vncserver命令后,新开启的VNC会话的分辨率都会被设为1280×720。

升级ubuntu

会发现ubuntu只能安装到18.04

升级的方法就是安裝Ubuntu后再直接升级。

用VNC登入桌面後,用終端機安裝更新器

sudo apt install update-manager-core

更新全部套件至最新版

sudo apt update && sudo apt upgrade
sudo do-release-upgrade

如果出現authenticate 'focal.tar.gz' against 'focal.tar.gz.gpg' Authentication failed錯誤,先安裝gnupg並執行以下指令:

sudo apt install gnupg gnupg1 gnupg2
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C

再次执行sudo do-release-upgrade,输入y開始更新系统,按照终端的指示更新。

如果提示Please Install All Available Updates Before Upgrading

apt clean 
apt autoclean
sudo apt update 
sudo apt upgrade -y 
sudo apt dist-upgrade

再次执行sudo do-release-upgrade,输入y開始更新系统,按照终端的指示更新。

不出意外的话,系统正常升级完了。

升级完之后还需要回到linux deploy的配置项中把用户名改成root,密码可以保持不变,原因是升级后,原来的android这个用户名就没有root权限了

修改用户名之后一定要点linux deploy的配置选项重新配置

# 2023.3.8更新   如果你遇到“The required dependency 'apt (>= 2.0.4)' is not installed.”需要修改/etc/apt/source.list文件

## /etc/apt/source.list
deb http://ports.ubuntu.com/ focal multiverse main universe
deb-src http://ports.ubuntu.com/ focal multiverse main universe
deb http://ports.ubuntu.com/ focal-updates main universe multiverse
deb-src http://ports.ubuntu.com/ focal-updates main universe multiverse
deb http://ports.ubuntu.com/ focal-security main universe multiverse
deb-src http://ports.ubuntu.com/ focal-security main universe multiverse

相关推荐:《Linux视频教程

AssemblyAI
AssemblyAI

转录和理解语音的AI模型

下载

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

89

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

276

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

59

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

99

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

105

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

230

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

619

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

173

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.7万人学习

Git 教程
Git 教程

共21课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号