一.软件模糊概述
1.ABI
2.API
应用程序开发接口
3.开发语言
系统级:汇编,C,C++
应用级:java,python,go,php,perl,delphi,basic,ruby,bash
4.静态、动态链接
静态:
程序对应依赖库复制一份到包
生成模块文件libxxx.a
嵌入程序包
升级难,需重新编译
占用空间多,迁移容易
动态:
只把依赖加做一个动态链接
生成模块文件libxxx.so
连接指向
占用空间少,升级方便
5.C语言程序实现过程
6.Java程序编译运行过程
重要7.模块(库)文件
各语言都有自己的库,没了库,对应语言开发的程序就无法正常运行
查看二进制程序所依赖的库文件:
ldd /PATH/TOBINARY_FILE
管理及查看本机装载的库文件:
ldconfig #加载配置文件中指定的库文件
/sbin/ldconfig -p #显示本机已经缓存的所有可用库文件名及文件路径映射关系
二.软件包和包管理器
光盘自动挂载:
rpm -q autofs || yum -y install autofs
systmctl enable --now autofs
cpio工具查看包文件列表(不常用):
rpm2cpio 包文件| cpio -itv #预览包内文件
rpm2cpio 包文件| cpio -id "*.conf" #释放包内文件
1.包命名方式
2.分类和拆包
3.包依赖
软件包之间可能存在依赖关系,甚至循环依赖.
解决依赖工具:
yum:rpm包管理工具
dnf: Fedora 18+ 的rpm包管理工具
apt: Debian包管理工具
zypper: suse上包管理工具
4.包文件相关
①包组成:包内文件,元数据,卸载脚本
②数据库(公共): /var/lib/rpm ,这里面存有程序包名称及版本,依赖关系,功能说明,包安装后生成的个文件路径及校验码信息
二.rpm包管理器
功能:安装,卸载,升级,查询,校验,数据库维护
1.安装
格式: rpm {-i|--install} [install-option] pakage_file
选项:
-v 安装详情
-vv
-h 安装进度显示
常用格式组合: rpm -ivh package_file...
install-option:
--force 单个文件破坏导致安装失败时使用,强行安装
2.查询
[query-options]
--chagelog 查询rpm包的changelog
-c 查询程序的配置文件
-i information
-l 查看指定的程序包安装后生成的所有文件
--scripts 程序包自带的脚本
依赖相关查询:
常用用法:
3.卸载
格式: rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] package_name
注:当包卸载时,对应的配置文件不会删除,以filename.rpmsave形式保留
4.升级
rpm包升级
rpm {-U|--upgrade} [install-options] package_file...
rpm {-F|--fresh} [install-options] package_file...
对应选项:
upgrade:安装有旧版程序包,则升级,若无旧版则安装
fresh:安装有旧版程序包,则升级,若无旧版则不执行操作
--oldpackage 降级
--force 强制安装
常用组合
rpm -Uvh package_file...
rpm -Fvh package_file...
5.校验
格式: rpm -k|--checksig rpmfile
注:检查包来源和完整性前需要导入公钥,例:
检查文件与初安装时有没有变化:
提示符说明:
6.数据库
rpm数据库: /var/lib/rpm
重建数据库:
注:库清空后重新生成是空的,作用不大
三.yum和dnf
1.工作原理
基于C/S模式(client,server)
服务器存放rpm包和相关包的元数据库
客户端访问yum服务器进行安装或查询等
2.客户端配置
配置文件:
/etc/yum.conf #为所有仓库提供公共配置
/etc/yum.repos.d/*.repo #为每个仓库提供配置文件
注:yum仓库指向路径必须是repodata目录所在目录
3.基本命令
格式: yum [options] [command] [package...]
选项:
4.清空,构建缓存
yum clean all
yum makecache
5.yum事务历史
日志文件: /var/log/yum.log(centos7前)
/var/log/dnf.log(centos8)
日志命令: yum histroy [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
6.实用命令
yum provides xxxxx :查询
yum checkupdate :查询包更新
yum update :更新
yum repolist :已启用的yum源
yum repolist all :所有yum源
yum list xxx :列出xxx源
7.内核更新
去elrepo源在centos直接在线安装新版内核
注意使用稳定内核,即LT版
注:安装新内核,旧内核同时存在