前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux Deploy:部署图形界面环境

Linux Deploy:部署图形界面环境

作者头像
美丽应用
发布2018-07-20 14:03:15
11.4K0
发布2018-07-20 14:03:15
举报
文章被收录于专栏:美丽应用美丽应用美丽应用

文章更新:

  20170410 初次成文

问题提出:

  其实这篇文章构思很久了,拖到现在才写...原因就在于在Linux Deploy上部署图形环境是一件坑多活累的工作:一来是因为兼容性原因,部署好的图形界面环境存在数量可观的Bug,并且小苏也无力解决这些Bug。二来是因为基础的Linux环境才是图形界面环境部署的前提,而最近由于各种原因,使用原始的部署方法已经越来越难部署成功基础的Linux环境了。

  但这样看来,第一点倒不是什么大问题:毕竟手机不是为运行专业的Linux发行版而生,所以存在Bug是难免的,只要图形界面能部署成功并且大家可以正常进入图形界面,小苏的任务就完成了。问题就在于第二点:由于国内网络运营商的DNS污染与镜像源站的同步原因,基础的Linux环境能否正常部署成功都是个问题,更别说图形界面的部署了。

解决方案:

  所以在这篇文章中,小苏将直接使用上一篇文章中提到的的方法,在此基础上部署图形环境:

https://cloud.tencent.com/developer/article/1159975

  因为作者的Repository中包含了基础的Linux环境组件,我们可以将作者的Repository导入镜像来直接部署好Linux基础环境,再在此环境之上部署图形界面。这么一来,基础的Linux环境是否部署成功就不是我们担心的问题了。

  所以在这里,小苏默认你已经阅读完上一篇文章的内容,并且根据上一篇文章的方法成功部署了基础的Linux环境。

  进入Linux Deploy,点击右下角的"下载"图标进入配置界面,保持其他选项不变,修改以下配置项:

  INIT:

  打勾:启用自定义脚本执行

  (INIT的其他配置保持不变)

  图形界面:

  打勾:允许图形界面启动

  图形子系统:VNC

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

  桌面环境:按需选择,小苏这里选择的是Xfce

  (实际上小苏也推荐大家选择Xfce,原因在于XTerm太过简陋,LXDE桌面环境倒是好一些,但是"ubuntu-lxde_arm"这个Repository是免费的,可以直接导入作者为我们部署好的ubuntu+ssh+lxde+vnc环境,而Mate桌面环境需要下载更多的软件包和依赖组件,且Bug数量更为可观)

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

  配置完毕后,点击底部的"停止"按钮停止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"按钮提交:

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

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

可能遇到的问题:

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

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

rm -rf /tmp/.X1-9-lock rm -rf /tmp/.X11-unix/X1-9

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

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

  编辑完成后,保存即可,进行这步操作后,在启动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画面缩小到最小):

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

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

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

alias vncserver='vncserver -geometry 1280x720' 

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

资源下载(VNC Viewer):

Google Play:

https://play.google.com/store/apps/details?id=com.realvnc.viewer.android

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章更新:
  • 问题提出:
  • 解决方案:
  • 进入图形界面:
  • 可能遇到的问题:
  • 资源下载(VNC Viewer):
      • Google Play:
      相关产品与服务
      云桌面
      云桌面(Cloud Virtual Desktop,CVD),为您提供随需快捷交付的虚拟远程桌面服务。云桌面可以帮助您轻松构建安全的数字化工作空间,满足移动办公、安全开发、教育实训、在线设计等场景需求,提升业务访问的安全性和连续性。通过自适应传输协议,终端用户可以获得优质的云桌面访问体验。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档