建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

长颈鹿@银河护卫队

发帖: 11粉丝: 2

级别 : 新手上路

发消息 + 关注

发表于2020年08月10日 21:52:10 208 2
直达本楼层的链接
楼主
显示全部楼层
[交流分享] dpkg包常用命令与驱动deb包制作示例


                                                                          dpkg包常用命令与驱动deb包制作示例

1、简介

如下介绍了dpkg的基本命令与做deb驱动包的方法,通过学习发现,相比redhat系,debian系做deb包可谓是简单不少,只需要用到基础命令dpkg就可以完成,安装包和redhat系统的SOURCES类似,DEBIAN下的控制文件没有spec那么复杂。

2、dpkg基本命令

安装deb

dpkg -i xxx.deb

 

卸载deb

dkpg -r xxx.deb

 

查看deb包内容(仅查看)

dpkg -c xxx.deb

image.png

 

dpkg -X xxx.deb ${des_dir}

解压deb所要安装的内容部分(解压到des_dir目录下)

image.png

 

dpkg -e xxx.deb ${des_dir}

解压deb包(解压到des_dir目录下),解压的是DEBIAN目录

 

dpkg -b ${dir_name}  xxx.deb

dir_name目录打包成xxx.deb

 

dpkg -l |grep xxx

查询是否安装某个包

 

dpkg -r xxx

删除deb包但不删除配置,若有配置残留,用dpkg -l查询deb包显示rc状态

image.png

 

dpkg -P xxx

删除deb包配置

 

 

3、deb包制作基础介绍

deb包打包与rpm打包有近似之处,又有不少不同

大概分两部分:DEBIAN目录(包含核心文件control(用于声明软件包的名称、版本打包人等),以及版权,安装前后执行的脚本)。

举例:

image.png

 

DEBIAN下文件介绍:

control:这个文件主要描述软件包的名称(Package),版本(Version),Installed-Size(大小),Maintainer(打包人和联系方式)以及描述(Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引。

字段

用途

例子/其他

Package

程序名称

中间不能有空格

Version

软件版本


Description

程序说明


Section

软件类别

utils, net, mail, text, x11

Priority

软件对于系统的重要程度

required, standard, optional, extra等;

Essential

是否是系统最基本的软件包

yes/no,若为yes,则不允许卸载(除非强制性卸载)

Architecture

软件所支持的平台架构

i386, amd64, m68k, sparc, alpha, powerpc

Source

软件包的源代码名称


Depends

软件所依赖的其他软件包和库文件

若依赖多个软件包和库文件,采用逗号隔开

Pre-Depends

软件安装前必须安装、
 
配置依赖性的软件包和库文件

常用于必须的预运行脚本需求

Recommends

推荐安装的其他软件包和库文件


Suggests

建议安装的其他软件包和库文件


 

preinst:软件安装前执行,类似脚本

postint:完成安装后执行,类似脚本

prerm:删除软件包前执行,类似脚本

postrm:删除软件包后执行,类似脚本

copyright:版权声明

changlog:修订记录

 

4、hifc驱动deb包制作

这里拿hifc驱动来测试

 

1)、先解压华为官网下载的ubuntu18.04.3hifc驱动deb包,观察结构

解压安装包

image.png

 

解压DEBIAN下的内容,可以看到官网发布的debian包包含controlcopyrightpostinstpostrm

image.png

 

control内容,看到里面声明的版本等

image.png

 

postinst内容,安装后做了更新依赖和内核的动作

image.png

 

postrm内容,卸载后做了更新依赖和内核的动作

image.png

 

copyright内容,声明版权和license

image.png

 

2)、从解压的情况我们大致了解了官网hifc驱动的deb包的情况,接下来在系统uos SP1上做包。

首先我们拿到源码,编译驱动hifc_sdk.kohifc.ko,根据官网deb包解压的情况,制作目录。安装包目录的内核目录命名需要与实际安装os的内核名相同。

image.png


 

control内容,根据源码版本写了版本,其余部分随意写。。

image.png

 

postinstpostrm与官网内容相同,安装和卸载驱动后做更新依赖和内核的动作

image.png

 

生成deb包,很普通。。。一点提示没有

image.png

 

安装

image.png

 

加载,由于postinst没有添加加载命令(和官网做成一致),需要modprobe手动加载

image.png

 

移植到另一台相同os和内核的机器

image.png

 

查看hifc卡的WWNNWWPN是否能识别?可以识别到,该功能正常

image.png

举报
分享

分享文章到朋友圈

分享文章到微博

五湖四海@银河护卫队

发帖: 118粉丝: 43

级别 : 版主

发消息 + 关注

发表于2020年08月13日 10:08:55
直达本楼层的链接
沙发
显示全部楼层

good~

点赞 评论 引用 举报

火灵

发帖: 141粉丝: 9

级别 : 外部版主

发消息 + 关注

发表于2020年08月19日 23:34:53
直达本楼层的链接
板凳
显示全部楼层

谢谢分享!

点赞 评论 引用 举报

游客

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