deb软件包构建
发布时间
阅读量:
阅读量
deb软件包构建
- 8. Deb 软件包构建
- 8.1 Linux 软件包构建
-
8.2 Deb 包与 dpkg 工具箱
- 8.2.1 Deb 包
- Rpm 包
- Dpkg 工具箱
- Deb 包文件结构分析
- 构建 Deb 包的方法
- 8.2.1 Deb 包
-
8.3 apt 命令 和 apt-get 命令
-
- 小实验:创建 build_deb.sh
-
- 8.1 Linux 软件包构建
8. deb 软件包构建
8.1 Linux 软件包
| Debian 派系 | Redhat 派系 | |
|---|---|---|
| 源码包 | ||
| 二进制包后缀 | deb | rpm |
| 底层工具 | dpkg | rpm |
| 用户工具 | apt | yum |
| 文件类型 | 保存目录 |
|---|---|
| 普通程序 | /usr/bin |
| root 权限程序 | /usr/sbin |
| 各种各样 程序配置文件 | /etc |
| 日志文件 | /var/log |
| 文档文件 | /usr/share/doc |
软件包:由开发者遵循特定的编码规范和结构编写的一组代码集合。计算机仅能识别二进制文件(机器语言)。在安装过程中需要使用编译器将这些代码转换成可执行文件。
优点:
* 开源免费
* 自由裁剪功能
* 修改源代码,添加自己想要的功能
缺点:
* 安装步骤繁琐
* 编译时间长:30分钟以上????
* 新手无法解决编译问题
二进制包
优点:
* 简单易用
* 安装速度快
缺点:
* 无法阅读修改代码
* 无法裁剪功能
* 依赖性强
8.2 deb 包与 dpkg 工具
deb 包
概念 :Debian、Ubuntu、Deepin 等 Linux 发行版的软件安装包。
rpm 包
概念 :RedHat、Fedora、Centos等 Linux 发行版的软件安装包。
dpkg 工具
概念:基础层的软件包管理工具;负责处理已下载到本地以及已经安装的 deb 包。
常用命令 :
dpkg -i xxx.deb # 安装软件
dpkg -L xxxx # 查看安装目录
dpkg -l xxxx # 显示版本
dpkg -s xxxx # 详细信息
dpkg -c xxx.deb # 罗列内容
dpkg -r xxxx # 卸载软件
deb包文件结构分析
DEBIAN 目录:
-
configuration 文件:
-
Package: 软件名称
-
Version: 版本号
-
Section: 软件分类
-
Priority: 对系统的重要度
-
Architecture: 支持的硬件兼容性要求
-
Maintainer: 软件包维护人
-
Description: 软件详细说明
-
安装前(可选):执行的 shell 脚本
- 安装后(可选):执行的 Shell 脚本
- 卸载前(可选):执行的 Shell 脚本
- 卸载后(可选):执行的 Shell 脚本
- 版权声明(可选):版权声明
- 版本更新日志(可选):修改记录
软件具体安装目录:
视需求而定
构建 deb 包的方法
dpkg -b
dpkg-buildpackage
checkinstall
……
8.3 apt 命令 和 apt-get 命令
- 软件更新计划官方软件包系统级管理工具
- 优化了apt-get命令的分散性问题
- 软件更新计划默认配置对用户友好性(直观的信息显示包括进度条和提示升级包数量)
- 软件更新计划apt-get命令仍然支持但大多数情况下建议使用正确的appt命令
小实验:创建 build_deb.sh
#!/bin/bash
version="0.1.2"
author="fzx"
package_name="$2"
package_dir="$1"
mkdir -p ./$package_dir/DEBIAN/
# cat << EOF > 文件 内容 EOF:将“内容”追加到文件中
cat << EOF > ./$package_dir/DEBIAN/changelog
AUTHOR:$author
VERSION:$version
DATE:$(date -R)
EOF
cat << EOF > ./$package_dir/DEBIAN/copyright
**************************************************************** * @attention
* 实验平台:i.MX6Q
* 作者:fzx
****************************************************************
EOF
cat << EOF > ./$package_dir/DEBIAN/control
Source: fzx
Package: ${package_name%.*}
Version: $version
Section: debug
Priority: optional
Architecture:amd64
Maintainer:$author
Description:fzx tools
EOF
# 安装成功后,打印log信息
cat << EOF > ./$package_dir/DEBIAN/postinst
#!/bin/sh
echo "*******************************************************"
echo "welcome to use $package_name"
echo "*******************************************************"
EOF
# 权限最高到775
sudo chmod 775 ./$package_dir/DEBIAN/postinst
# dpkg -b 构建deb包
dpkg -b $package_dir $package_name

#!/bin/bash
echo "hello, world!!!"
sudo ./build_deb.sh helloworld helloworld.deb # 构建deb包
sudo dpkg -i helloworld.deb # 安装deb包
sudo dpkg -r helloworld # 卸载deb包

全部评论 (0)
还没有任何评论哟~
