在優麒麟/Ubuntu上構建麒麟影音snap包

發布時間:2018-06-25 19:45:02 點擊次數:1269

Snaps是易于創建和安裝的容器化軟件包,它們可以自動更新并且安全運行。同時由于它們捆綁了本身所需的依賴,snaps?應用可以不加修改的運行在大部分Linux系統上。 麒麟影音是優麒麟默認的視頻播放器,它使用MPV和MPlayer作為后端引擎,支持大多數音頻和視頻格式,并且同時支持x86和ARM平臺。 接下來,我們將展示如何在優麒麟/Ubuntu?16.04(官方推薦的版本是1

Snaps是易于創建和安裝的容器化軟件包,它們可以自動更新并且安全運行。同時由于它們捆綁了本身所需的依賴,snaps 應用可以不加修改的運行在大部分Linux系統上。

麒麟影音是優麒麟默認的視頻播放器,它使用MPV和MPlayer作為后端引擎,支持大多數音頻和視頻格式,并且同時支持x86和ARM平臺。

接下來,我們將展示如何在優麒麟/Ubuntu 16.04(官方推薦的版本是16.04,其他版本可能存在問題)上構建麒麟影音的snap包。

首先,我們從github上獲取麒麟影音的源碼:

$ git clone https://github.com/ukui/kylin-video.git

然后安裝命令行工具 snapcraft 和編譯工具鏈:

$ sudo apt update

$ sudo apt install snapcraft build-essential

使用snapcraft生成模板文件snapcraft.yaml,這個文件描述了此snap的整個構建過程:

$ cd kylin-video

$ snapcraft init

name: my-snap-name # you probably want to 'snapcraft register '

version: '0.1' # just for humans, typically '1.2+git' or '1.3.2'

summary: Single-line elevator pitch for your amazing snap # 79 char long summary

description: |

  This is my-snap's description. You have a paragraph or two to tell the

  most important story about your snap. Keep it under 100 words though,

  we live in tweetspace and your description wants to look good in the snap

  store.

grade: devel # must be 'stable' to release into candidate/stable channels

confinement: devmode # use 'strict' once you have the right plugs and slots

 parts:

  my-part:

    # See 'snapcraft plugins'

plugin: nil

根據實際情況填入軟件名、版本號、摘要和描述:

name: kylin-video

version: "1.1.6"

summary: Kylin Video

description: |

  Qt5 Mplayer and MPV front-end, with basic features like playing

  videos and audios to more advanced features. It supports both x86

  and ARM platform, and supports most of the audio and video formats.

我們先把grade和confinement設置為開發模式,以便測試,待軟件測試沒問題后,再分別修改為”stable”和”strict”后,上傳發布。

grade: devel

confinement: devmode

“apps”將應用程序暴露給主機系統,同時聲明程序需要的權限和運行限制。

apps:

  kylin-video:

    command: desktop-launch kylin-video

plugs: [home, unity7, network, network-binding, desktop, pulseaudio, x11]

在這里,我們有一個名為kylin-video的app,并且通過”desktop-launch”來啟動它。所有的GUI程序都需要使用”desktop-launch”,以保證獲取到訪問桌面的必要權限。

“plugs”代表程序需要訪問的系統接口,比如:“home”表示程序可以訪問用戶家目錄下的非隱藏文件和用戶擁有的通過gvfs掛載的目錄?!皀etwork”表示程序可以訪問網絡等等。更詳細的說明,可以參考:https://docs.snapcraft.io/core/interfaces.

”parts”部分描述了在打包階段將要引入的軟件:

parts:

  kylin-video:

    plugin: qmake

    source: .

    qt-version: qt5

    build-packages:

      - g++

      - qtbase5-dev

      - qt5-qmake

      - qtscript5-dev

      - qttools5-dev-tools

      - zlib1g-dev

    stage-packages:

      - libc6

      - libgcc1

      - libqt5core5a

      - libqt5gui5

      - libqt5network5

      - libqt5widgets5

      - libstdc++6

      - zlib1g

      - mplayer

      - mpv

      - mesa-vdpau-drivers

      - libxcb1

      - libglu1-mesa

      - freeglut3

      - libgpm2

      - qttranslations5-l10n

after: [desktop-qt5]

plugin:告訴snapcraft如何編譯麒麟音影。

source:指向源碼目錄,可以是本地的,也可以是網絡上的(bzr, git, tar)。

build-packages:指示在編譯前需要安裝的包列表,即編譯依賴。

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

after: 表明“kylin-video”需要在“desktop-qt5”編譯完成之后才進行編譯?!眃esktop-qt5”是所有基于Qt的程序所必須的部分。

現在,你可以在項目主目錄下運行如下命令來構建snap包了:

$ snapcraft

然后通過以下命令安裝在當前目錄生成的snap包:

$ sudo snap install kylin-video_1.1.6_amd64.snap --devmode

還可以通過以下命令獲取關于此包更詳細的信息:

$ snap info kylin-video

name:      kylin-video

summary:   Kylin Video

publisher: 

license:   unknown

description: |

  Qt5 Mplayer and MPV front-end, with basic features like playing

  videos and audios to more advanced features. It supports both x86

  and ARM platform, and supports most of the audio and video formats.

commands:

  - kylin-video

refresh-date: yesterday at 20:03 CST

installed:    1.1.6 (x2) 149MB -

接著,你就可以啟動它了:

$ kylin-video

恭喜,你已經成功構建了一個snap應用!你可以在snapcraft.io獲取關于snap更多更詳細的信息。

170彩票平台3b