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:

2017-04-08_4_36_14_下午.jpg

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

2017-04-08_4_37_54_下午.jpg

  我们观察这项配置:

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

  
2017-04-08_4_48_17_下午.jpg

2017-04-08_4_50_19_下午.jpg

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

  于是,在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"的其他项保持默认设置)

2017-04-08_7_10_07_下午.jpg

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

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

2017-04-08_7_20_02_下午.jpg

2017-04-08_7_20_53_下午.jpg

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

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

  Linux Deploy:部署图形界面环境
  
  
  资源下载:
  如果上面的官方Repository下载太慢或者无法下载的话,可以试试小苏离线到PCloud中的Repository:

  PCloud:
  https://my.pcloud.com/publink/show?code=kZVAOIZuQvQ3cdywbVO1WUMpW135Rfy1MjV
  (但在网络通畅的情况下小苏还是首推官方的Repository,毕竟PCloud免费账户每月只有50G的下载流量/doge脸)

已有 4 条评论
  1. 萌新

    感谢教程~

  2. SmallShell

    su认证失败
    sudo passwd root权限不够
    请问楼主该怎么解决?

  3. JJJ

    感谢,但是失败了。。。。
    按照上述步骤,下载了ubuntu-lxde_arm.tgz,并保存到/storage/emulated/0/Download/ubuntu-lxde_arm.tgz,安装失败,import fail,提示:
    Importing rootfs from tar.gz archibe ... fail
    请问是哪里出了问题呢?

添加新评论