如何利用make plugin来安装我们的debian文件
2016-12-21 16:45
656 查看
在我们先前的文章"Snap Chrome浏览器及展示如何在snap中打入debian包",我们介绍了如何利用dump plugin来安装我们的debian package.那个方法虽好,但是刚才有个开发者问我,如果他有很多的这种debian包的话,那么那样的写法将会使得我们的snapcraft.yaml非常难看,因为我们需要写很多个part来完成这样的工作.在今天的这篇文章中,我们来重点介绍如何使用make
plugin来完成我们的debian包的安装.当然我们可以如法炮制,利用make plugin可以做我们很多想要做的事情.在这里我们就抛砖引玉.
就想我在chrome那篇文章中介绍的那样,我们可以重新改写我们的snapcraft.yaml文件.
首先在这里,我们可以看到我已经把dump plugin换成make plugin了.当然有了make plugin,我们最重要的一点是需要有一个Makefile在我们source所指定的目录:
在这里,我们通过wget命令来下载我们的debian包,然后,我们通过dpkg -x命令来展开我们的debian包.在安装的时候,我们把我们所需要的usr及opt两个目录考入到我们所需要安装的目录之中.当然,如果我们有更多的debian包的话,我们只需要在上面的Makefile之中再加入它们即可.这样就好像一个批处理文件.否则如果我们在snapcraft.yaml中利用dump plugin的话,我们会对每一个debian文件都要写一个相应的part,那么就显得非常凌乱.
重新打包我们的应用,我们会发现它和原来的包是一样的.我们把我们的debian包里的内容成功打入到我们的snap包中.
plugin来完成我们的debian包的安装.当然我们可以如法炮制,利用make plugin可以做我们很多想要做的事情.在这里我们就抛砖引玉.
就想我在chrome那篇文章中介绍的那样,我们可以重新改写我们的snapcraft.yaml文件.
snapcraft.yaml
name: mychrome # you probably want to 'snapcraft register <name>' version: '0.3' # 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,camera,gsettings,pulseaudio] parts: chrome: plugin: make source: ./ 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换成make plugin了.当然有了make plugin,我们最重要的一点是需要有一个Makefile在我们source所指定的目录:
Makefile
all: wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb dpkg -x google-chrome-stable_current_amd64.deb . install: cp -a usr $(DESTDIR) cp -a opt $(DESTDIR)
在这里,我们通过wget命令来下载我们的debian包,然后,我们通过dpkg -x命令来展开我们的debian包.在安装的时候,我们把我们所需要的usr及opt两个目录考入到我们所需要安装的目录之中.当然,如果我们有更多的debian包的话,我们只需要在上面的Makefile之中再加入它们即可.这样就好像一个批处理文件.否则如果我们在snapcraft.yaml中利用dump plugin的话,我们会对每一个debian文件都要写一个相应的part,那么就显得非常凌乱.
重新打包我们的应用,我们会发现它和原来的包是一样的.我们把我们的debian包里的内容成功打入到我们的snap包中.
liuxg@liuxg:~/snappy/desktop/chrome_makefile/prime$ tree -L 2 . ├── bin │ └── desktop-launch ├── command-mychrome.wrapper ├── etc │ ├── apparmor.d │ ├── drirc │ ├── fonts │ ├── gss │ ├── gtk-2.0 │ ├── gtk-3.0 │ ├── pki │ ├── presage.xml │ ├── ucf.conf │ └── X11 ├── flavor-select ├── lib │ └── x86_64-linux-gnu ├── meta │ ├── gui │ └── snap.yaml ├── opt │ └── google ├── usr │ ├── bin │ ├── lib │ ├── sbin │ └── share └── var └── lib
相关文章推荐
- 【Linux_Fedora_应用系列】_5_如何安装XZ Utils 解压缩工具以及利用 xz工具来解压缩.xz文件
- 【Linux_Fedora_应用系列】_5_如何安装XZ Utils 解压缩工具以及利用 xz工具来解压缩.xz文件
- 如何利用IMG格式的文件安装ROS系统
- Debian下如何配置apt-get源以在线安装文件
- Debian下如何配置apt-get源以在线安装文件
- 如何利用Python2.7、py2exe、PyInstaller-2.1将*.py打包成*.exe,再利用Inno Setup Compiler封装成windows安装文件
- 如何将.net framework环境和MDAC一起打包进安装文件里
- 利用.iso 文件直接通过网络的 http 方式安装RedHat Linux 10.0
- 如何用DOS的批处理文件安装程序中所需数据库表的问题
- 创建一个强名称密钥文件+ 如何在 Visual C# .NET 中将程序集安装到全局程序集缓存中
- 如何根据驱动程序及其安装文件来访问该设备呢(Visual C++ or C++ Builder均可以) 选择自 kingcaiyao 的 Blog
- 如何利用代码从网站上获取一个文件的大小,并且下载时不出现保存提示框
- 如何编写自动安装注册的CAB文件
- 如何将.net framework环境和MDAC一起打包进安装文件里
- Visual C# 2005 - 如何利用程序代码动态存取设定文件
- 利用Autoconf和Automake制作Makefile文件时,如何连接进MYSQL的库和头文件?
- 安装文件如何打包SQL数据库?
- 木马病毒是如何利用文件关联和设置名感染的
- 如何安装卸载 .tar.gz 格式的文件
- [Config]如何利用ConfigurationSettings.AppSettings.GetValues读取配置文件中多个同Key的value