Snap Chrome浏览器及展示如何在snap中打入debian包

原创 2016年11月08日 09:50:32

Chrome浏览器是一个非常重要的应用.它甚至成为我们平时工作而不可以缺失的工具.在今天的教程中,我们来展示如何把Chrome浏览器打包为一个snap应用.


我们知道,每当我们在电脑上安装我们的Chrome浏览器时,我们可以在如下的地址来下载我们的Chrome deb安装包:

https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

当然这是针对64位的机器来说的.我们如何在我们的snapcraft如何安装这个debian包呢?答案是使用dump plugin.为此,我们的snapcraft.yaml的内容如下:

snapcraft.yaml


name: mychrome # you probably want to 'snapcraft register <name>'
version: '0.2' # just for humans, typically '1.2+git' or '1.3.2'
summary: Chrome for snap # 79 char long summary
description: |
  This is chrome app in snap format

grade: stable # must be 'stable' to release into candidate/stable channels
confinement: strict # use 'strict' once you have the right plugs and slots

apps: 
  mychrome:
    command: desktop-launch $SNAP/opt/google/chrome/chrome
    plugs: [unity7,home,x11,opengl,network,network-bind,browser-support,process-control,fuse-support]

parts:
  chrome:
    plugin: dump
    source: https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    stage-packages:
      - overlay-scrollbar-gtk2
      - libatk-adaptor
      - libgail-common
      - libcanberra-gtk-module
      - libnss3-tools
      - libglu1-mesa

      # language support
      - fonts-freefont-ttf
      - ttf-freefont
      - ttf-wqy-microhei
      - fonts-wqy-microhei

      # input method
      - fcitx
      - fcitx-frontend-gtk2 

    after: [desktop-gtk2]

在上面可以看出来,我们使用dump plugin来安装我们的google-chrome-stable_current_amd64.deb文件.
为了能够让我们的chrome正确运行,我们也同时把它所需要的其它的debian包一并打入到我们的snap包中.

    stage-packages:
      - overlay-scrollbar-gtk2
      - libatk-adaptor
      - libgail-common
      - libcanberra-gtk-module
      - libnss3-tools
      - libglu1-mesa

      # language support
      - fonts-freefont-ttf
      - ttf-freefont
      - ttf-wqy-microhei
      - fonts-wqy-microhei

      # input method
      - fcitx
      - fcitx-frontend-gtk2 

这些都是从Ubuntu Archive来的debian安装包,它们将最终被打入到我们的snap包中.也许有人问:为什么我们不可以用同样的方法(stage-packages)来打包我们的google-chrome-stable_current_amd64.deb?这里的原因就是它不来自于Ubuntu Archive,所以stage-packages不可以帮我们安装.在这里,我们由于在应用中需要中文的显示,所以我也把相应的语言字体包打入到我们的应用之中.对于其它语言的支持,开发者可以自己添加到语言的列表中.另外为了配合我们的输入法的输入,我也把相应的输入法的包打入到我们的最终的snap包中.

另外由于这个应用是一个gtk的应用,所有我们必须使用由desktop-gtk2所提供的desktop-launch来启动我们的应用.由于这个remote part必须是先于我们的chrome part,所有我们使用了after来调整在build过程中的先后顺序.

在这里值得注意的是我们使用两个非自动连接的plug/slot接口(interfaces):process-control及fuse-support.将来如果该应用发布到stable channel的话,并且我们不以--devmode的选项来安装,我们可以使用如下的命令来安装并需要做相应的手动连接:

$ sudo snap install mychrome
$ sudo snap connect mychrome:fuse-support ubuntu-core:fuse-support
$ sudo snap connect mychrome:fuse-support ubuntu-core:process-control

由于目前我的mychrom应用是发布到beta的channel里,并且还有个别的安全问题没有完全得到解决.我们可以使用--devmode来安装:

$ sudo snap install mychrome --beta --devmode

等安装完我们的chrome应用后,我们可以在我们的dash中找到相应的Chrome图标.我们可以直接使用这个图标来启动我们的应用:






我们项目的源码在:https://github.com/liu-xiao-guo/mychrome

在调试我们的应用时,我们可以在一个terminal中打入如下的命令:

$ sudo snap install snappy-debug
$ sudo snap connect snappy-debug:log-observe ubuntu-core:log-observe
$ sudo /snap/bin/snappy-debug.security scanlog mychrome

在另外一个terminal或在dash中直接启动我们的应用mychome,我们可以在上面的terminal中查看我们缺失的plugs或错误信息.通过这种方法可以帮助我们来调试我们的应用.

版权声明:本文为博主原创文章,未经博主允许不得转载。

如何使用QEMU来编译打包armhf/arm64的snap包

在今天的文章中,我们来介绍一下如何利用QEMU来编译打包我们的Ubuntu Core armhf格式的Snap应用.这里的armhf格式的snap包可以被安装到我们的ARM板子上,比如树莓派或高通的S...
  • UbuntuTouch
  • UbuntuTouch
  • 2016年12月06日 08:15
  • 1565

如何打包electronic-wechat(微信)为snap包

在这篇文章中,我们介绍了两种snap electronic-wechat(微信的方法).我们可以在Ubunut Desktop上安装这个应用,并使用微信和朋友们聊天....
  • UbuntuTouch
  • UbuntuTouch
  • 2017年02月03日 16:12
  • 1868

如果把MySQL及Tomcat打包到snap包中去

我们知道MySQL及Tomcat是在Java服务器端常用的技术.那么我们怎么来把它打包到我们的snap应用中去呢?本文章介绍了如何在snap中打包tomcat及MySQL....
  • UbuntuTouch
  • UbuntuTouch
  • 2016年08月16日 10:57
  • 1381

如果把MySQL及Tomcat打包到snap包中去

我们知道MySQL及Tomcat是在Java服务器端常用的技术.那么我们怎么来把它打包到我们的snap应用中去呢?本文章介绍了如何在snap中打包tomcat及MySQL....
  • UbuntuTouch
  • UbuntuTouch
  • 2016年08月16日 10:57
  • 1381

如何打包electronic-wechat(微信)为snap包

在这篇文章中,我们介绍了两种snap electronic-wechat(微信的方法).我们可以在Ubunut Desktop上安装这个应用,并使用微信和朋友们聊天....
  • UbuntuTouch
  • UbuntuTouch
  • 2017年02月03日 16:12
  • 1868

如何使用QEMU来编译打包armhf/arm64的snap包

在今天的文章中,我们来介绍一下如何利用QEMU来编译打包我们的Ubuntu Core armhf格式的Snap应用.这里的armhf格式的snap包可以被安装到我们的ARM板子上,比如树莓派或高通的S...
  • UbuntuTouch
  • UbuntuTouch
  • 2016年12月06日 08:15
  • 1565

在Ubuntu/Debian Linux系统中安装Chrome浏览器

在Linux系统领域里,使用IE浏览器的用户非常的少,只主要源于IE浏览器并不支持Linux系统,不过还是有方法在Linux系统上安装IE7。由于Firefox对Linux的支持,使得其拥有大量的浏览...
  • stardtx
  • stardtx
  • 2012年04月13日 10:55
  • 844

Snap svg:路径变换和相交计算

Snap.svg对原生的svg进行了封装,为svg的创建、操作提供了便捷的方法,但是官网的文档对一些概念没有解释,难免会造成困扰。比如说路径的旋转,就存在变换后得不到路径交点的问题。...
  • ruangong1203
  • ruangong1203
  • 2016年12月27日 12:04
  • 928

运用snapcraft 2.25+提供的hooks来实现对snap的设置

本文章介绍使用最新的snapcraft 2.25来为我们的snap应用提供一个hook.这个hook可以在安装或在为应用设置的时候被调用....
  • UbuntuTouch
  • UbuntuTouch
  • 2017年01月20日 14:05
  • 555

如何把一个CMake的Ubuntu手机应用打包为一个snap应用

在先前的文章"如何把一个qmake的Ubuntu手机应用打包为一个snap应用"中,我们介绍了如何把一个qmake的一个Ubuntu手机应用打包为一个snap的桌面应用.在今天的教程中,我们将展示如何...
  • UbuntuTouch
  • UbuntuTouch
  • 2016年07月15日 14:20
  • 812
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Snap Chrome浏览器及展示如何在snap中打入debian包
举报原因:
原因补充:

(最多只允许输入30个字)