专栏首页美丽应用Linux Deploy:使用Repository部署Linux系统

Linux Deploy:使用Repository部署Linux系统

文章更新   20170408 初次成文

问题提出:   在之前的文章中,小苏为大家介绍过使用常规方式和使用镜像方式部署Linux系统的方法,但是这两种方法各有利弊:

  使用常规方式部署时,镜像大小可以灵活调节,但这种方法需要设备在连接网络的情况下下载大量数据,由于运营商的DNS污染或者由于镜像源站同步的原因,即使更换软件源为国内镜像源,部署时也总会出现部署失败的提示。使用镜像方式部署Linux系统时,虽然可以免去部署时下载大量数据的麻烦,但是使用别人部署好的镜像,初始实现的功能依别人部署好的镜像而定,不能个性化定制系统,也不能调整镜像大小。

  所以,有没有一种部署成功率比较高,又不需要从软件源站下载大量数据,且可以灵活调整镜像大小的部署方式呢?

  答案当然是肯定的。那就是先在Linux Deploy中部署和安装所需要的环境和软件包,然后使用Linux Deploy的导出功能,将Rootfs打包为tar.gz文件,之后,我们只需要将此tar.gz文件导入Linux Deploy,就可以完整还原打包时的Linux系统了。

解决方案:   贴心的作者为我们做好了一些基础的Rootfs以方便我们部署Linux系统,这些Rootfs放置在Linux Deploy的"Repository"中,有些遗憾的是,这些Repository大多是需要到Play商店购买后才能被导入进Linux Deploy中的,但是小苏注意到,有一些Repository似乎可以无需购买,直接导入,比如debian_arm这个Repository:

  导入此Repository后,回到Linux Deploy主界面,点击右下角的"下载"图标进入配置界面,我们可以看到"源地址"已经被配置为一个远程服务器上的tgz(tar.gz)文件:

  我们观察这项配置:

http://hub.meefik.ru/rootfs/debian_arm.tgz

  似乎就是http://hub.meefik.ru/rootfs/加上Linux Deploy中各"Repository"的名称。

  我们拿一个需要付费的的Repository试一下:

http://hub.meefik.ru/rootfs/archlinux_arm.tgz

  似乎还真的是可用的...   所以...看起来这是个彩蛋(喵喵脸)...

  于是,在Linux Deploy中,各Repository的真实地址如下:

开始配置:   我们可以根据这些Repository下的提示,修改配置文件,由于各Repository的发行版,架构和版本都已经在说明中指定了,比如ubuntu_arm这个Repository:

ubuntu_arm
Ubuntu 16.04 LTS (Xenial Xerus) ARM base system.)

  在描述中指定了此Repository对应的发行版是Ubuntu,版本是Xenial,架构为ARM(armhf)。这也意味着,我们必须在配置界面填写与选择的Repository相同的信息。比如我们选定ubuntu_arm这个Repository来部署Linux系统,那么我们只需要进行以下几步操作:   1.下载此tar.gz文件:

http://hub.meefik.ru/rootfs/ubuntu_arm.tgz

  并且记好此文件的路径,下面以下路径为例: /storage/emulated/0/Download/ubuntu_arm.tgz

  2.新建一个配置文件,进入配置界面,做以下配置(未提到的项请保持默认设置):

  Containerization method:chroot   发行版:Ubuntu   架构:armhf   发行版版本:xenial   源地址:/storage/emulated/0/Download/ubuntu_arm.tgz   (即刚刚下载的tgz文件存放的路径)   安装类型:文件   (即使用"镜像"方式部署Linux系统)   安装路径:自定   (安装路径代表镜像文件存放的路径,下图以/storage/emulated/0/Linux/ubuntu_arm.img为例)   镜像大小:自定   (即部署完成后,Linux系统的"本地磁盘"大小,下图以1024m为例,不建议超过4096m)   用户名:android   (即部署完成后,系统默认的普通用户)   密码:自定   (此普通用户的密码,下图以sun12345为例)   Privileged user:root messagebus   (这一项照着填就好)   本地化:zh_CN.UTF8   (即部署完成后,Linux系统的语言环境,zh_CN.UTF8指语言环境为中文,如果喜欢英文语言环境,选择en_US.UTF8即可)   SSH:   打勾:允许SSH服务器启动("SSH"的其他项保持默认设置)

  3.配置完成后,我们就可以开始部署Linux系统了。在部署之前,小苏强烈建议大家挂国外进行部署。因为在Repository中,作者使用各发行版的官方软件源作为软件源,这样一来,一是服务器节点远离中国,软件包下载速度一般都很慢,二是在我国ipv6还未普及,使用官方软件源在部署过程中有一定几率解析到ipv6地址,出现无法连接到服务器的情况并造成部署失败的情况。

  挂好后,我们回到Linux Deploy的主界面,按下菜单键,选择"安装"开始部署:

  我们可以看到,从开始部署(19:15:19)到完成部署(19:17:05),仅仅用了1分44秒的时间就可部署完毕。并且整个过程中只需要下载附加组件(本次部署只启用了SSH连接,所以在部署过程中只下载了SSH有关的软件包,如果你启用了图形界面,在这个过程中还会下载图形环境和VNC等组件)。

  如果你想部署图形界面,请看这篇文章:

https://mlapp.cn/337.html 资源下载:   在网络通畅的情况下小苏还是首推官方的Repository

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 安卓Chrome使用技巧合辑

    美丽应用
  • 小折腾:修改蓝牙耳机按键映射

    美丽应用
  • Volumio升级失败的解决方案

    美丽应用
  • MessagePack Java 0.6.X List, Map 对象的序列化和反序列化

    为了序列化原生的容器对象例如  List 和 Map 对象,你必须使用 Template。

    HoneyMoose
  • MessagePack Java 0.6.X List, Map 对象的序列化和反序列化

    为了序列化原生的容器对象例如  List 和 Map 对象,你必须使用 Template。

    HoneyMoose
  • (3) - Scala case class那些你不知道的知识

    除了在模式匹配中使用之外,unapply 方法可以让你结构 case class 来提取它的字段,如:

    codingforfun
  • 六大机器视觉趋势,有没有你关注的内容?

    机器视觉趋势经常被讨论,那么可能影响工业自动化中机器视觉的这些技术的选择和实施有哪些实用的信息?

    小白学视觉
  • 聊聊腾讯云TStack上云Oracle的应用

    能否利用TStack的计算、网络和存储能力,将Oracle运行在X86服务器,IP网络,云存储的“云化”架构上,去掉IOE架构中的I和E呢?

    腾讯云TStack
  • 来,教你从 Java 8 升级到 Java 11

    Unicode 10(version 10.0 of the Unicode Standard),Unicode是一个不断在演进的行业标准,Java一直在与它保...

    Java技术栈
  • 老表:Java8尽管很香,你想过升级到Java11吗?会踩那些坑?

    Unicode 10(version 10.0 of the Unicode Standard),Unicode是一个不断在演进的行业标准,Java一直在与它保...

    黄泽杰

扫码关注云+社区

领取腾讯云代金券