snapd 套件探索

下載套件

下載「snapd」這個套件。

$ apt download snapd

解開套件

解開「snapd_2.0.2_amd64.deb」

$ dpkg -x snapd_2.0.2_amd64.deb snapd

觀看資料夾結構

執行

$ tree snapd

顯示

snapd
├── etc
│   ├── ld.so.conf.d
│   │   └── snappy.conf
│   ├── profile.d
│   │   └── apps-bin-path.sh
│   └── X11
│       └── Xsession.d
│           └── 65snappy
├── lib
│   └── systemd
│       └── system
│           ├── snapd.frameworks-pre.target
│           ├── snapd.frameworks.target
│           ├── snapd.service
│           ├── snapd.socket
│           ├── snappy-autopilot.service
│           └── snappy-autopilot.timer
├── snap
├── usr
│   ├── bin
│   │   └── snap
│   ├── lib
│   │   └── snapd
│   │       └── snapd
│   └── share
│       ├── bash-completion
│       │   └── completions
│       │       └── snappy
│       ├── doc
│       │   └── snapd
│       │       ├── changelog.gz
│       │       └── copyright
│       └── man
│           └── man1
│               └── snap.1.gz
└── var
    ├── lib
    │   └── snapd
    │       ├── apparmor
    │       │   └── additional
    │       ├── lib
    │       │   └── gl
    │       └── snaps
    └── snap

29 directories, 15 files

若有安裝這個套件的話,可執行

$ dpkg -L snapd

顯示

/.
/etc
/etc/profile.d
/etc/profile.d/apps-bin-path.sh
/etc/X11
/etc/X11/Xsession.d
/etc/X11/Xsession.d/65snappy
/etc/ld.so.conf.d
/etc/ld.so.conf.d/snappy.conf
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/snapd.service
/lib/systemd/system/snappy-autopilot.timer
/lib/systemd/system/snapd.frameworks.target
/lib/systemd/system/snappy-autopilot.service
/lib/systemd/system/snapd.socket
/lib/systemd/system/snapd.frameworks-pre.target
/var
/var/lib
/var/lib/snapd
/var/lib/snapd/lib
/var/lib/snapd/lib/gl
/var/lib/snapd/snaps
/var/lib/snapd/apparmor
/var/lib/snapd/apparmor/additional
/var/snap
/snap
/usr
/usr/bin
/usr/bin/snap
/usr/lib
/usr/lib/snapd
/usr/lib/snapd/snapd
/usr/share
/usr/share/bash-completion
/usr/share/bash-completion/completions
/usr/share/bash-completion/completions/snappy
/usr/share/doc
/usr/share/doc/snapd
/usr/share/doc/snapd/changelog.gz
/usr/share/doc/snapd/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/snap.1.gz

manpage

顯示

$ dpkg -L snapd | grep '/man/man.*/'
/usr/share/man/man1/snap.1.gz
  • $ man 1 snap

探索 /etc/profile.d/apps-bin-path.sh

執行

$ cat /etc/profile.d/apps-bin-path.sh

顯示

# Expand the $PATH to include /snaps/bin which is what snappy applications
# use
PATH=$PATH:/snap/bin

探索 /etc/X11/Xsession.d/65snappy

執行

$ cat /etc/X11/Xsession.d/65snappy

顯示

# This file is sourced by Xsession(5), not executed.
# Add additionnal the additonal snappy desktop path

XDG_DATA_DIRS=$XDG_DATA_DIRS:/var/lib/snapd/desktop
export XDG_DATA_DIRS

探索 /etc/ld.so.conf.d/snappy.conf

執行

$ cat /etc/ld.so.conf.d/snappy.conf

顯示

# snappy looks for additional gl drivers here
/var/lib/snapd/lib/gl

探索 /lib/systemd/system/snapd.service

執行

$ cat /lib/systemd/system/snapd.service

顯示

[Unit]
Description=Snappy daemon
#FIXME: snappy on ubuntu does not have a snapd.firstboot snap installed
#After=snapd.firstboot.service
Before=snapd.frameworks-pre.target
Requires=snapd.socket

[Service]
ExecStart=/usr/lib/snapd/snapd

執行

$ ps aux | grep snapd

顯示

root      6497  0.0  0.1 453508  5996 ?        Ssl  Apr25   0:02 /usr/lib/snapd/snapd
...略...

執行

$ systemctl status snapd.service

顯示

● snapd.service - Snappy daemon
   Loaded: loaded (/lib/systemd/system/snapd.service; static; vendor preset: enabled)
   Active: active (running) since Mon 2016-04-25 22:28:40 CST; 3h 32min ago
 Main PID: 6497 (snapd)
    Tasks: 12 (limit: 512)
   CGroup: /system.slice/snapd.service
           └─6497 /usr/lib/snapd/snapd

...略...

下載 Source Package

執行

$ apt source snapd

會下載「snapd」這個「Source Package」

套件資訊

網址: http://packages.ubuntu.com/xenial/snapd

執行

$ apt show snapd

顯示

Package: snapd
Version: 2.0.2
Built-Using: golang-1.6 (= 1.6.1-0ubuntu1), golang-check.v1 (= 0.0+git20150729.11d3bc7-2), golang-defaults (= 2:1.6-1ubuntu4), golang-github-coreos-go-systemd (= 3-2), golang-github-gorilla-mux (= 0.0~git20150814.0.f7b6aaa-1), golang-github-gosexy-gettext (= 0~git20130221-0ubuntu6), golang-github-mvo5-goconfigparser (= 0.2.1-0ubuntu1), golang-github-mvo5-uboot-go (= 0~3.git69978a3-0ubuntu5), golang-github-peterh-liner (= 0.0~git20151118.0.4d47685-1), golang-go-flags (= 0.0~git20160302-0ubuntu1), golang-go.crypto (= 1:0.0~git20151201.0.7b85b09-2), golang-gopkg-tomb.v2 (= 0.0~git20140626.14b3d72-1), golang-pb (= 0.0~git20131219-1), golang-pty (= 0.0~git20150511.1.5cf931e-1ubuntu1), golang-websocket (= 0.0~git20150811.0.b6ab76f-1), golang-yaml.v2 (= 0.0+git20160301.0.a83829b-1)
Priority: optional
Section: devel
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 19.0 MB
Depends: init-system-helpers (>= 1.18~), libc6 (>= 2.4), adduser, lsb-release, squashfs-tools, ubuntu-core-launcher (>= 1.0.23)
Conflicts: snap (<< 2013-11-29-1ubuntu1), snappy
Breaks: ubuntu-snappy (<< 1.9), ubuntu-snappy-cli (<< 1.9)
Replaces: ubuntu-snappy (<< 1.9), ubuntu-snappy-cli (<< 1.9)
Homepage: https://github.com/ubuntu-core/snappy
Task: ubuntu-core, ubuntu-desktop, ubuntu-usb, cloud-image, server, kubuntu-desktop, ubuntu-core, edubuntu-desktop, edubuntu-usb, xubuntu-core, xubuntu-desktop, mythbuntu-desktop, lubuntu-core, ubuntustudio-desktop-core, ubuntustudio-desktop, ubuntu-gnome-desktop, ubuntukylin-desktop, ubuntu-mate-core, ubuntu-mate-desktop, ubuntu-mate-cloudtop
Supported: 5y
Download-Size: 4,011 kB
APT-Manual-Installed: yes
APT-Sources: http://tw.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
Description: Tool to interact with Ubuntu Core Snappy.
 Manage an Ubuntu system with snappy.

源碼套件資訊

網址: http://packages.ubuntu.com/source/xenial/snapd

執行

$ apt showsrc snapd

顯示

Package: snapd
Binary: golang-github-ubuntu-core-snappy-dev, snapd, ubuntu-core-snapd-units, ubuntu-snappy, ubuntu-snappy-cli
Version: 2.0.2
Priority: optional
Section: devel
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Build-Depends: bash-completion, debhelper (>= 9), dh-golang, dh-systemd, fakeroot, gettext, golang-check.v1-dev, golang-go, golang-go-flags-dev, golang-go.crypto-dev, golang-github-coreos-go-systemd-dev, golang-github-gorilla-mux-dev, golang-github-gosexy-gettext-dev, golang-github-mvo5-goconfigparser-dev, golang-github-peterh-liner-dev, golang-pb-dev, golang-pty-dev, golang-github-mvo5-uboot-go-dev, golang-yaml.v2-dev, golang-gopkg-tomb.v2-dev, golang-websocket-dev, lsb-release, python3, python3-markdown, squashfs-tools
Architecture: any all
Standards-Version: 3.9.7
Format: 3.0 (native)
Directory: pool/main/s/snapd
Files:
 d60c2874af681a6831163d2d87c65381 2370 snapd_2.0.2.dsc
 36f4ddeeffd919e28011147ffb93f3fd 338240 snapd_2.0.2.tar.xz
Homepage: https://github.com/ubuntu-core/snappy
Vcs-Browser: https://github.com/ubuntu-core/snappy
Vcs-Git: https://github.com/ubuntu-core/snappy.git
Testsuite: autopkgtest
Package-List:
 golang-github-ubuntu-core-snappy-dev deb devel optional arch=all
 snapd deb devel optional arch=any
 ubuntu-core-snapd-units deb devel optional arch=any
 ubuntu-snappy deb oldlibs optional arch=all
 ubuntu-snappy-cli deb oldlibs optional arch=all
Checksums-Sha1:
 6fc4d0f8983091f23e426c14522f5503416a252c 2370 snapd_2.0.2.dsc
 dd3e399389e927415d4c9ace4ad055e3eab6834a 338240 snapd_2.0.2.tar.xz
Checksums-Sha256:
 092d09614cabcd2ea68c02e6f075d37c05014a702c53d275c6e6befc65f27f49 2370 snapd_2.0.2.dsc
 8725ec5331ace71d1aeb2d9b2ebc2105ff29e9db6dd9890c94ccb7b2382b63c9 338240 snapd_2.0.2.tar.xz