uos打包——公网deb包转uos的deb包
这篇文章主要介绍公网上的deb包如何转化为符合uos规范的deb包
一,获取deb包
1. 本文档使用eog包进行演示从旧规则的包改成新规则的包的过程示例.2. 使用apt download eog或者其他方式来下载一个旧规则的eog包uos@uos-PC:~/Desktop$ mkdir eog uos@uos-PC:~/Desktop$ cd eog/uos@uos-PC:~/Desktop/eog$ apt download eoguos@uos-PC:~/Desktop/eog$ lseog_3.28.4-2+b1_amd64.deb3. 使用dpkg-deb -R pkg.deb test 将包名为pkg的deb包解压到test目录下uos@uos-PC:~/Desktop/eog$ dpkg-deb -R eog_3.28.4-2+b1_amd64.deb testuos@uos-PC:~/Desktop/eog$ lseog_3.28.4-2+b1_amd64.deb test
二,改包名
1. 按照新规则,我们要使用倒置域名规则来命令包名,并且要升级一下版本号修改test目录下的DEBIAN目录下的control文件,具体为修改Package字段和Version字段2. 修改前:Package: eogVersion: 3.28.4-2+b1修改后:Package: org.gnome.eogVersion: 3.28.4-3+b1版本号由软件版本号和打包版本号组成,由`-`分割,左边是软件版本号,右边是打包版本号,我们升级版本号只修改打包版本号,其他的不需要改变
三,创建UOS规范包结构
1,UOS包结构基本目录 ,entries下的文件夹,只需把有的移动过来就行
└── org.gnome.eog #此目录以包名命名├── entries│ ├── applications #放desktop文件│ ├── autostart #放自启动入口文件│ ├── icons #应用的图标文件,根据大小放进不同的目录下的apps/目录下,svg格式的放在scalable/apps/目录下│ │ └── hicolor│ │ ├── 128x128│ │ │ └── apps│ │ ├── 16x16│ │ │ └── apps│ │ ├── 24x24│ │ │ └── apps│ │ ├── 256x256│ │ │ └── apps│ │ ├── 32x32│ │ │ └── apps│ │ ├── 48x48│ │ │ └── apps│ │ ├── 512x512│ │ │ └── apps│ │ ├── 64x64│ │ │ └── apps│ │ └── scalable│ │ └── apps│ ├── plugins #插件的目录│ └── services #dbus服务目录│ └── glib-2.0 #schema文件│ └── GConf #gseetings文件│ └── locale #语言包文件├── files #其他文件└── info #应用的一些信息
2,参考脚本,entries下的文件夹来自/usr/share/, 没有的文件夹可以注释掉。
#!/bin/bash# 包名
pkg="org.gnome.eog"mkdir -p $(pwd)/test/opt/apps/${pkg}/files
mkdir -p $(pwd)/test/opt/apps/${pkg}/entriesmv $(pwd)/test/usr/bin $(pwd)/test/opt/apps/${pkg}/files/
mv $(pwd)/test/usr/lib $(pwd)/test/opt/apps/${pkg}/files/mv $(pwd)/test/usr/share/applications $(pwd)/test/opt/apps/${pkg}/entries/
mv $(pwd)/test/usr/share/icons $(pwd)/test/opt/apps/${pkg}/entries/
mv $(pwd)/test/usr/share/GConf $(pwd)/test/opt/apps/${pkg}/entries/
mv $(pwd)/test/usr/share/glib-2.0 $(pwd)/test/opt/apps/${pkg}/entries/
mv $(pwd)/test/usr/share/locale $(pwd)/test/opt/apps/${pkg}/entries/mv $(pwd)/test/usr/share $(pwd)/test/opt/apps/${pkg}/files/rm -r $(pwd)/test/usr
3,将脚本放到与test同级的目录,执行脚本
uos@uos-PC:~/Desktop/eog$ ls
chdir.sh eog_3.28.4-2+b1_amd64.deb test
uos@uos-PC:~/Desktop/eog$ chmod +x chdir.sh
uos@uos-PC:~/Desktop/eog$ ./chdir.sh
uos@uos-PC:~/Desktop/eog$ ls
chdir.sh eog_3.28.4-2+b1_amd64.deb test
uos@uos-PC:~/Desktop/eog$ cd test/
uos@uos-PC:~/Desktop/eog/test$ ls
DEBIAN opt
uos@uos-PC:~/Desktop/eog/test$
四,编辑info文件
1,info文件是应用的描述文件,使用json格式,info文件内容如下:
{"appid": "org.gnome.eog", # 包名"name": "eog", # 程序名"version": "3.28.4", # 程序版本号"arch": ["amd64","arm64","mips64el"], # 支持架构"permissions": { # 暂时没使用"autostart": false,"notification": false,"trayicon": false,"clipboard": false,"account": false,"bluetooth": false,"camera": false,"audio_record": false,"installed_apps": false}}
2,将编辑好的文件放到 与files文件的同级目录
uos@uos-PC:~/Desktop/eog/test/opt/apps/org.gnome.eog$ ls
entries files info
uos@uos-PC:~/Desktop/eog/test/opt/apps/org.gnome.eog$
五,创建启动脚本用来导入依赖库路径
1,某些包带有自己的运行依赖库,旧规则都是安装在/usr/lib/
目录下,在系统启动时可以找到需要的运行库,新规则不允许安装在/usr/lib/
下,所以我们写一个启动脚本,先使用LD_LIBRARY_PATH
环境变量来导出运行依赖库的路径,再去执行可执行文件
2,files文件夹下有lib文件夹的需要导库脚本,没有的可以直接执行可执行文件,导库脚本如下:
- 脚本中的路径都需要是绝对路径
- c/c++导入库路径脚本参考
#!/bin/shexport LD_LIBRARY_PATH="/opt/apps/org.gnome.eog/files/lib/x86_64-linux-gnu/eog:LD_LIBRARY_PATH"
/opt/apps/org.gnome.eog/files/bin/eog
- python导入库路径脚本参考
#!/bin/bashexport PYTHONPATH="/opt/apps/io.readthedocs.quodlibet/files/lib/python3.7/site-packages":$PYTHONPATH
python3 /opt/apps/io.readthedocs.quodlibet/files/bin/quodlibet
- perl导入库路径脚本参考
#!/bin/bashexport PERL5LIB=/opt/apps/net.sourceforge.gscan2pdf/files/share/perl5:$PERL5LIB
perl /opt/apps/net.sourceforge.gscan2pdf/files/bin/gscan2pdf
3, 将写好的启动脚本放到bin目录下,新创建的脚本没有可执行权限,需要先添加可执行权限
uos@uos-PC:~/Desktop/eog/test/opt/apps/org.gnome.eog/files/bin$ chmod +x eog.sh
uos@uos-PC:~/Desktop/eog/test/opt/apps/org.gnome.eog/files/bin$ ls
eog eog.sh
uos@uos-PC:~/Desktop/eog/test/opt/apps/org.gnome.eog/files/bin$
六,编辑desktop文件
1,uos规范的deb包会将程序安装到/opt/apps/包名/的目录下,desktop文件位于entries/applications目录下
2,修改Exec字段,将Exec字段改为程序安装后可执行文件的目录/opt/apps/org.gnome.eog/files/bin/eog.sh
3,修改Icon字段,将Icon字段改为程序安装后图标的目录/opt/apps/org.gnome.eog/entries/icons/hicolor/256x256/apps/eog.png
4,修改完这两个字段就可以进行下一步了,如果出现启动器不显示,可以参考第四步,该例子中设计语言的字段太多,导致最后启动器没有显示,把一些和语言有关的字段删除后,启动器可以正常显示
[Desktop Entry]
Name=Image Viewer
Comment=Browse and rotate images
Exec=/opt/apps/org.gnome.eog/files/bin/eog.sh %U
Icon=/opt/apps/org.gnome.eog/entries/icons/hicolor/256x256/apps/eog.png
StartupNotify=true
Terminal=false
Type=Application
Categories=GNOME;GTK;Graphics;2DGraphics;RasterGraphics;Viewer;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=EOG
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=3.28.4
X-GNOME-DocPath=eog/eog.xml
MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjpeg;image/png;image/tiff;image/x-bmp;image/x-gray;image/x-icb;image/x-ico;image/x-png;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/x-pcx;image/svg+xml;image/svg+xml-compressed;image/vnd.wap.wbmp;image/x-icns;
Keywords=Picture;Slideshow;Graphics;
七,删除钩子脚本
1,如果解压后的包在DEBIAN目录下有preinst, postinst, prerm, postrm文件,确定没有用的话,将其删除,不删除会导致deb包安装失败
2,之前在打包wireshark的过程中需要用到这些钩子脚本,但是极少数,大部分都是没有用的,具体可以群里交流
八,压包和安装
1,使用dpkg-deb -b test/ 输出目录 ,将按照新规则放置好的目录压入deb包内
uos@uos-PC:~/Desktop/eog$ ls
chdir.sh eog_3.28.4-2+b1_amd64.deb test
uos@uos-PC:~/Desktop/eog$ dpkg-deb -b test/ .
dpkg-deb: 正在 './org.gnome.eog_3.28.4-2+b1_amd64.deb' 中构建软件包 'org.gnome.eog'。
uos@uos-PC:~/Desktop/eog$ ls
chdir.sh eog_3.28.4-2+b1_amd64.deb org.gnome.eog_3.28.4-2+b1_amd64.deb test
uos@uos-PC:~/Desktop/eog$
2,使用dpkg -i 安装或者双击deb包安装,检查启动器是否有改程序且能正常使用和卸载,如果正常,打包完成。
3,启动器中程序名和desktop文件的Name字段对应
3,打包过程中遇到的问题,随时可以在QQ群交流。QQ群号:942418736
九,Q/A
uos打包——公网deb包转uos的deb包相关推荐
- uos打包——appimage包转uos的deb包
这篇文章主要介绍appimage包如何转化为符合uos规范的deb包 ***已做快速打包工具 *** upTool 一,获取appimage包并解压 1,本文档使用obsidian程序进行演示从app ...
- 统信uos系统考试题_统信 UOS 桌面操作系统 V20 专业版(1021)发布
IT之家 8 月 12 日消息 今日,统信官方宣布,统信桌面操作系统 V20 专业版(1021)发布. IT之家了解到,与上一版本相比,此版本实现功能更新 4 项,修复缺陷 200 余项.在此版本,统 ...
- 【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )
文章目录 一.扩展方法示例 二.实例扩展方法配置 三.编译实例扩展类 四.打包静态扩展类字节码到 jar 包中 五.测试使用 Thread 实例扩展方法 一.扩展方法示例 为 Thread 扩展 he ...
- 【Groovy】Groovy 扩展方法 ( 静态扩展方法配置 | 扩展方法示例 | 编译静态扩展类 | 打包静态扩展类字节码到 jar 包中 | 测试使用 Thread 静态扩展类 )
文章目录 一.扩展方法示例 二.静态扩展方法配置 三.编译静态扩展类 四.打包静态扩展类字节码到 jar 包中 五.测试使用 Thread 静态扩展类 一.扩展方法示例 为 Thread 扩展 hel ...
- jar打包 剔除第三方依赖以及它的依赖_maven打包成第三方jar包且把pom依赖包打入进来的方法...
添加此PLUGIN到项目的POM.XML中 maven-assembly-plugin com.allen.capturewebdata.Main jar-with-dependencies 如果出现 ...
- Eclipse安装低版本4.3并安装FatJar打包插件来打包引用第三方jar包的项目成jar包
场景 Eclipse中打包引用了第三方jar包的Java Application项目,除了添加MANIFESE.MF文件,还可以使用 Fat Jar插件打成jar包. 但是Eclipse的版本在4.3 ...
- deb 安装_本地安装DEB包的3种命令行工具(适合Ubuntu和Deepin )
请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 在本教程中,我们将学习如何使用三种不同的命令行工具(d ...
- linux程序打包安装,制作Linux下程序安裝包——使用腳本打包bin、run等安裝包
制作簡單的安裝包的時候可以簡單的用cat命令連接兩個文件,然后頭部是腳本文件,執行的時候把下面的文件分解出來就行了.一般這個后部分的文件是個壓縮包,那樣,就能夠打包很多文件了,在腳本中解壓出來即可.這 ...
- linux 软件 tar deb rmp,专业编剧软件Fade In Linux版提供deb、rpm、tar.gz包下载
Fade In是一款专业编剧软件,支持Windows.Mac.Linux.iPhone/iPad和Android平台.它是专业人士使用的最先进的软件,可用于电影.电视.视频游戏.舞台.广播等.它具有对 ...
- 安卓rom包解包linux,Android rom解包打包工具
eMMC主要是针对手机和平板电脑等产品的内嵌式存储器,由于其在封装中集成了一个控制器,且提供标准接口并管理闪存等优势,越来越受到Android手机厂商的青睐,以eMMC为存储设备的android手机, ...
最新文章
- 全面理解目标检测中的anchor
- 七大科技巨头的最新人工智能布局
- LVS TUN模式搭建
- 邮件被暴力破解邮件网关如何解决
- OpenMP的一点使用经验
- java邮件发送代码_用Java实现最简单的邮件发送代码
- Linux内存释放脚本
- 使用tab键分割的文章能快速转换成表格。( )_EXCEL的163种使用技巧集锦-42~62
- 探果(简称tamguo)是基于java开发的在线题库系统
- visio画图中怎么添加①
- devops 三十六计_DevOps从业人员应遵循的16个博客和新闻通讯
- 常用概率论矩阵论公式
- iwconfig的使用
- c语言如何答应出数所在数组的下标_零基础学C语言——数组
- 11.求二元查找树的镜像[MirrorOfBST]
- 生产者消费者之爸爸妈妈儿子女儿苹果橘子编程实现
- 常用排序算法:直接插入排序
- android webview 之 AgentWeb的使用
- 06_因果图法、判定表法、场景法
- 【英语音节输入软件】模仿汉语拼音
热门文章
- PHP:A mono-alphabetic cipher 单字母密码加解密算法(附完整源码)
- OpenCV入门学习笔记之常用的图像处理操作
- intern() 方法
- 2022电大国家开放大学网上形考任务-普通心理学非免费(非答案)
- 微信公众号开发详细笔记
- 海恩法则和费曼学习法
- Intelligent Reference Curation for Visual Place Recognition via Bayesian Selective Fusion 论文阅读及注解
- 【转载】MongoDB 极简实践入门
- 云邦互联免费空间(免备案,无广告)
- 怎么测试网站访问速度?