1、RPM管理
RPM
1.事先将要源码的软件编译好,相关文件打包放在rpm后缀的文件中,rpm命令管理
centos:rpm管理rpm包文件
ubuntu:dpkg管理deb包文件
2.rpm文件:二进制可执行文件,库文件,配置文件,帮助文档等
3.httpd-2.4.6-97.el7.centos.5.x86_64.rpm
httpd:软件名称
2.4.6:软件版本
97:编译次数
el7:基于RHEL7版本
x86_64:适用的硬件平台
rpm:拓展名
4.软件包的分类:
devel:软件的开发包
maunul:软件的帮助文档
tools:软件包的工具
5.适用的硬件平台:
i386:i指的是inter兼容的cpu,386是cpu的等级
i586:针对586等级的cpu进行优化编译
i686:针对686等级的cpu进行优化编译
x86_64:针对64位的cpu进行优化编译
noarch:没有cpu等级限制,通常是文档文件,没有二进制文件存在
rpm 的安装、卸载、升级、查询、校验、数据库维护等
1.语法格式:
rpm 功能模式选择(iUF) [可选的通用选项] [可选的子选项] 软件包文件名
rpm 功能模式选择(eqV) [可选的通用选项] [可选的子选项] 软件名称
软件包文件名:RPM包文件的路径
软件名称:软件名,例tree
2.常用选项:
-i 安装软件
-U 安装或升级软件(有旧软件就升级)
-F 升级软件(没有旧软件就不升级)
-e 卸载软件
-q 查询模式
-V 验证模式
3.通用选项:
-v/-vv 显示附加信息
-h 显示执行进度
4.常用子选项
--force 强行安装、升级、卸载
--nosignature 不检查来源合法性
--nodeps 忽略依赖关系
--test 测试但不真执行,可用来查看是否有依赖的软件包关系
--scripts 软件包安装时的执行脚本
--whatrequires 文件被哪些软件依赖
--whatprovides 功能被哪个软件提供
适用查询模式的子选项-q:
-a 列出所有通过rpm或yum安装在本机的软件名称
-i 列出已经安装在本机的指定软件的详细信息
-l 列出指定软件包安装后生成的所有文件
-f 文件名 列出该文件来自哪个已经安装的软件包
-p 针对未安装的软件包文件做查询操作,后跟软件包文件名
-R 显示软件包的依赖关系
适用验证模式的子选项-V:
-a 列出系统中所有在安装后修改过的文件
-f 列出某个文件所属的包文件包含的哪些文件,在安装后被修改过
-p 列出指定rpm软件包文件包含哪些文件被修改过
5.rpm相关数据库
配置文件:/var/lib/rpm
例1:查询
[root@szb szb]# rpm -q tree
tree-1.6.0-10.el7.x86_64
例2:安装,支持升级多个rpm软件包
[root@szb szb]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
例3:查询文件来自哪个软件包
[root@szb szb]# rpm -qf /etc/passwd
setup-2.8.71-11.el7.noarch
例4:提取rpm软件包指定的文件
[root@szb szb]# rpm -qpl wget-1.14-18.el7_6.1.x86_64
[root@szb szb]# rpm2cpio wget-1.14-18.el7_6.1.x86_64.rpm | cpio -ivd ./etc/wgetrc
2、YUM管理
yum
1.rpm不能解决包依赖性的问题,yum可以解决
2.yum基于c/s架构,rpm包yum元数据的集合称为仓库(repository)
3.配置文件:
/etc/yum.conf 主配置文件
/etc/yum.repos.d/目录下以.repo为后缀的文件
/var/log/yum.log 安装包的日志
4.cat /etc/yum.repos.d/CentOS-Base.repo
[extras] # 仓库ID,保持唯一性
gpgcheck=1 # 1表示安装包时,做gpg检查
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7 # 指定gpg检查时的公钥
enabled=1 # 1表示启用该仓库,0禁用
baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/ # 仓库地址
name=Qcloud centos extras - $basearch # 仓库说明, 描述信息
5.yum参数
参数:
-q 不显示安装过程
-y 安装提示一律yes
6.yum命令
yum repolist all # 显示所有仓库
yum repolist enabled # 显示所有可用仓库
yum install gcc # 安装包
yum reinstall gcc # 重新安装包
yum remove gcc # 卸载包
yum info gcc # 查看包信息
yum history # 管理历史
yum history info 12 # 查看ID为12的事件
yum history undo 12 # 利用历史卸载gcc相关依赖包
yum list httpd* # 查询包列表
yum search httpd # 搜索包名或包含有httpd的包信息
yum provides /etc/mime.types # 查询指定文件来自哪个包
yum deplist httpd # 查询指定所依赖的文件和所属包
yum groups list # 查看包组列表
yum groups info "Development Tools" # 查看包组的信息
*****************************************************
yum clean all # 清理yum缓存
yum makecache # 重新构建缓存
7.DNF:新一代rpm软件包管理器,rhel8.0已经取代YUM
createrepo /data/dnf # 创建dnf仓库相关的元数据
3、软件环境
软件的运行环境
库文件
ldd /bin/ls 查看程序所调用的函数库
4、源码编译安装软件
1.gcc编译程序四过程:
预处理
编译
汇编
链接
2.源码编译三步:
1)./configure
2) make
3) make install
3.功能:
configure:检查源码编译过程中的依赖包关系;指定安装相关文件的路径;指定编译的软件的功能特性;会生成Makefile文件
make :根据Makefile信息,调用编译工具,对源码进行编译为可执行文件
make install :将上述编译后的文件复制到指定位置
4.缺啥包,包名后加devel组成的包即可
yum -y -q install apr-devel
lscpu 查看cpu核数
make -j 2 # -j指定多任务进行编译,加快编译过程
链接:启动程序路径添加到PATH中
echo 'PATH=/apps/httpd/bin:$PATH' > /etc/profile/httpd.sh