Ubuntu Kylin技术论坛

 找回密码
查看: 340|回复: 1

在优麒麟/Ubuntu上构建麒麟影音snap包

[复制链接]
  • TA的每日心情
    慵懒
    2018-5-28 10:52
  • 签到天数: 227 天

    [LV.7]常住居民III

    发表于 2018-6-25 20:59:57 | 显示全部楼层 |阅读模式

    Snaps是易于创建和安装的容器化软件包,它们可以自动更新并且安全运行。同时由于它们捆绑了本身所需的依赖,snaps 应用可以不加修改的运行在大部分Linux系统上。


    麒麟影音是优麒麟默认的视频播放器,它使用MPV和MPlayer作为后端引擎,支持大多数音频和视频格式,并且同时支持x86和ARM平台。


    接下来,我们将展示如何在优麒麟/Ubuntu 16.04(官方推荐的版本是16.04,其他版本可能存在问题)上构建麒麟影音的snap包。


    首先,我们从github上获取麒麟影音的源码:


    1. $ git clone https://github.com/ukui/kylin-video.git
    复制代码


    然后安装命令行工具 snapcraft 和编译工具链:


    1. $ sudo apt update
    2. $ sudo apt install snapcraft build-essential
    复制代码


    使用snapcraft生成模板文件snapcraft.yaml,这个文件描述了此snap的整个构建过程:


    1. $ cd kylin-video
    2. $ snapcraft init

    3. name: my-snap-name # you probably want to 'snapcraft register '
    4. version: '0.1' # just for humans, typically '1.2+git' or '1.3.2'
    5. summary: Single-line elevator pitch for your amazing snap # 79 char long summary
    6. description: |
    7.   This is my-snap's description. You have a paragraph or two to tell the
    8.   most important story about your snap. Keep it under 100 words though,
    9.   we live in tweetspace and your description wants to look good in the snap
    10.   store.

    11. grade: devel # must be 'stable' to release into candidate/stable channels
    12. confinement: devmode # use 'strict' once you have the right plugs and slots
    13. parts:
    14.   my-part:
    15.     # See 'snapcraft plugins'
    16. plugin: nil
    复制代码


    根据实际情况填入软件名、版本号、摘要和描述:


    1. name: kylin-video
    2. version: "1.1.6"
    3. summary: Kylin Video
    4. description: |
    5.   Qt5 Mplayer and MPV front-end, with basic features like playing
    6.   videos and audios to more advanced features. It supports both x86
    7.   and ARM platform, and supports most of the audio and video formats.
    复制代码


    我们先把grade和confinement设置为开发模式,以便测试,待软件测试没问题后,再分别修改为”stable”和”strict”后,上传发布。


    1. grade: devel
    2. confinement: devmode
    复制代码


    “apps”将应用程序暴露给主机系统,同时声明程序需要的权限和运行限制。


    1. apps:
    2.   kylin-video:
    3.     command: desktop-launch kylin-video
    4. plugs: [home, unity7, network, network-binding, desktop, pulseaudio, x11]
    复制代码


    在这里,我们有一个名为kylin-video的app,并且通过”desktop-launch”来启动它。所有的GUI程序都需要使用”desktop-launch”,以保证获取到访问桌面的必要权限。


    “plugs”代表程序需要访问的系统接口,比如:“home”表示程序可以访问用户家目录下的非隐藏文件和用户拥有的通过gvfs挂载的目录。“network”表示程序可以访问网络等等。更详细的说明,可以参考:https://docs.snapcraft.io/core/interfaces.


    ”parts”部分描述了在打包阶段将要引入的软件:


    1. parts:
    2.   kylin-video:
    3.     plugin: qmake
    4.     source: .
    5.     qt-version: qt5
    6.     build-packages:
    7.       - g++
    8.       - qtbase5-dev
    9.       - qt5-qmake
    10.       - qtscript5-dev
    11.       - qttools5-dev-tools
    12.       - zlib1g-dev
    13.     stage-packages:
    14.       - libc6
    15.       - libgcc1
    16.       - libqt5core5a
    17.       - libqt5gui5
    18.       - libqt5network5
    19.       - libqt5widgets5
    20.       - libstdc++6
    21.       - zlib1g
    22.       - mplayer
    23.       - mpv
    24.       - mesa-vdpau-drivers
    25.       - libxcb1
    26.       - libglu1-mesa
    27.       - freeglut3
    28.       - libgpm2
    29.       - qttranslations5-l10n
    30. after: [desktop-qt5]
    复制代码


    plugin:告诉snapcraft如何编译麒麟音影。


    source:指向源码目录,可以是本地的,也可以是网络上的(bzr, git, tar)。


    build-packages:指示在编译前需要安装的包列表,即编译依赖。


    stage-packages:定义需要打入到snap包中的包列表。


    after: 表明“kylin-video”需要在“desktop-qt5”编译完成之后才进行编译。”desktop-qt5”是所有基于Qt的程序所必须的部分。


    现在,你可以在项目主目录下运行如下命令来构建snap包了:


    1. $ snapcraft
    复制代码


    然后通过以下命令安装在当前目录生成的snap包:


    1. $ sudo snap install kylin-video_1.1.6_amd64.snap --devmode
    复制代码


    还可以通过以下命令获取关于此包更详细的信息:


    1. $ snap info kylin-video
    2. name:      kylin-video
    3. summary:   Kylin Video
    4. publisher:
    5. license:   unknown
    6. description: |
    7.   Qt5 Mplayer and MPV front-end, with basic features like playing
    8.   videos and audios to more advanced features. It supports both x86
    9.   and ARM platform, and supports most of the audio and video formats.
    10. commands:
    11.   - kylin-video
    12. refresh-date: yesterday at 20:03 CST
    13. installed:    1.1.6 (x2) 149MB -
    复制代码


    接着,你就可以启动它了:


    1. $ kylin-video
    复制代码


    恭喜,你已经成功构建了一个snap应用!你可以在snapcraft.io获取关于snap更多更详细的信息。



    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-5 13:58
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2018-7-1 17:17:01 | 显示全部楼层
      现实表明,体积太大,不方便使用!

    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|Ubuntu Kylin    

    GMT+8, 2018-7-23 11:54 , Processed in 0.017297 second(s), 9 queries , File On.

    Copyright ©2013-2018 Ubuntu Kylin. All Rights Reserved .

    ICP No. 15002470-2 Tianjin

    快速回复 返回顶部 返回列表