
大家好接下来的一段时间我将开始学习野火的Linux系统课程并将学习到的干货逐步更新到我的CSDN博客中。没时间刷课的同学可以把我的博客喂给AI 突击一下。目录1、Linux软件包1.两大类软件包源码包.tar.gz 压缩源码二进制包deb、rpm2.deb 软件包目录规范FHS 标准2、deb包与dpkg工具3、构建一个helloworld的deb包4、apt工具apt 包管理器常用 apt 命令dpkg vs apt1、Linux软件包1.两大类软件包源码包.tar.gz压缩源码优点开源免费可以看到源代码可以自由裁剪功能编译时开启 / 关闭模块可以修改源代码二次开发缺点安装步骤繁琐./configure→make→make install需要本地编译编译耗时久依赖库多编译报错新手很难排查解决本质拿到 C/C 源码自己在本机编译生成可执行程序。二进制包deb、rpm已经在别的机器编译完成直接拿来安装不需要本机编译。优点安装简单一条命令即可安装速度快不用编译缺点看不到源代码不能修改源码编译时已经固定功能无法自由裁剪模块依赖问题需要包管理器处理2.deb 软件包目录规范FHS 标准文件类型保存目录说明普通程序/usr/bin普通用户可执行的二进制程序所有用户都能调用root 权限程序/usr/sbin仅 root / 管理员使用的工具程序普通用户一般不执行程序配置文件/etc系统级配置全局配置文件软件安装后修改这里会影响全部用户日志文件/var/log运行产生的日志可变数据会不断增长文档文件/usr/share/doc软件说明文档、README、版权信息等补充/usr是只读的系统目录存放软件本体安装时写入运行时不会修改。/var是可变目录日志、缓存、运行数据程序运行过程会持续读写修改。/etc配置区分全局与用户配置/etc/xxx.conf全局配置所有用户生效~/.xxxrc用户私有配置只对当前用户生效。区分/bin和/usr/bin/bin系统启动必备命令单用户模式也要用/usr/bin普通应用软件deb 包的程序一般放这里。2、deb包与dpkg工具两种二进制包包格式适用发行版包管理器debDebian、Ubuntu、Deepindpkg/aptrpmRedHat、CentOS、Fedorarpm/yum/dnf注意deb 和 rpm不能互相通用Ubuntu 不能直接装 rpm 包,因此我们主要用deb。dpkgdeb 底层工具dpkg本地包管理工具只处理本地已经下载好的 deb 文件不会自动解决依赖。 apt 是上层工具会联网自动处理依赖底层依然调用 dpkg。dpkg 常用命令命令作用dpkg -i xxx.deb安装 deb 包本地文件dpkg -L 软件名查看该软件安装到系统哪些目录文件列表dpkg -l 软件名查看软件版本、安装状态dpkg -s 软件名查看软件详细信息版本、状态、依赖dpkg -c xxx.deb查看deb 包内部包含哪些文件还没安装只是下载了deb包dpkg -r 软件名卸载软件保留配置文件dpkg -P 软件名彻底卸载删除配置文件总结deb 包用于 Ubuntu/Debian 系rpm 用于 CentOS/RHEL 系。dpkg是底层工具处理本地 deb不解决依赖apt 负责联网 依赖。-L看已安装文件-c看 deb 包内部文件。-r卸载保留配置-P彻底卸载。3、构建一个helloworld的deb包4、apt工具apt 包管理器旧版apt‑get、apt‑cache命令分散apt 是新版整合工具底层调用 dpkg。优点自带进度条、显示升级包数量交互友好重要apt 可以联网自动解决依赖dpkg 不行常用 apt 命令apt install 软件名 #联网安装自动解决依赖 apt remove 软件名 #卸载保留配置文件 apt purge 软件名 #彻底卸载删除配置 apt show 软件名 #查看软件信息dpkg vs apt工具特点依赖处理dpkg底层工具操作本地 deb 包不自动处理依赖apt上层管理工具联网自动处理依赖