软件包管理

软件包分类

源码包 脚本安装包
二进制包 RPM包,系统默认包

rpm包管理

命名规则

  • 包名 操作已经安装的软件时,使用包名,是搜索/var/lib/rpm中的数据库
  • 包全名 操作的是没有安装的软件包时,要注意安装路径
    httpd-2.2.15-15.el6.centos.1.i686.rpm
    |名称|含义|
    |----|----|
    |httpd|软件包名|
    |2.2.15|软件版本|
    |15|软件发布次数|
    |el6.centos|适合的linux平台|
    |i686|适合的硬件平台|
    |noarch|全部硬件平台|
    |rpm|rmp包扩展名|
  • rpm包依赖性

树形依赖 a->b->c
环形依赖 a->c->c->a
模块依赖 模块依赖查询网站www.rpmfind.net

rpm命令管理

rpm

  • 安装
rpm [参数] 包全名	rpm软件安装
rpm -ivh 包全名
-i	install,安装
-v	verbose,显示详细信息
-h	hash,显示进度
-U	upgrade,升级
-e	erase,卸载
--nodeps	不检测依赖性
  • 升级
rpm [参数] 包全名	rpm软件升级
rpm -ivh 包全名
-v	verbose,显示详细信息
-h	hash,显示进度
-U	upgrade,升级
  • 卸载
rpm [参数] 包名		rpm软件卸载
-e	erase,卸载
--nodeps	不检测依赖性
  • 查询
rpm [参数] [包名]		查询软件是否安装
-q	query,查询[包名]是否已经安装
-a	all,查询所有已经安装的rpm包,此参数不需要指定包名
rpm -qa | grep httpd	查询跟httpd(apache)有关的所有包
-i	information,查询软件详细信息,-qi
-l	list,列表,查询安装位置, -ql
-p [包全名]	-qp,package,查询未安装包信息,此命令后接[包全名],此命令是查询软件仓库中存在的rpm安装包,但是未安装的
-qlp [包全名]	查询未安装的软件默认的安装路径
-f [系统文件名]	file,查询某个文件输入哪个rpm包,-qf,查询的文件名是需要通过rpm安装的
-R	requires,查询软件包的依赖性,-qR
  • rpm包校验
rpm [参数] 已安装的包名		查询软件是否安装
-V	verify,校验指定的rpm包中的文件
标志 意思
S 文件大小是否改变
M 文件的类型或文件的权限是否改变
5 文件的MD5值是否改变(可以理解成文件内容是否改变)
D 设备的中,从代码是否改变
L 文件的路径是否改变
U 文件的属主(所有者)是否改变
G 文件的数组是否改变
T 文件的修改时间是否改变
c 配置文件,config file
d 普通文档,documentation
g "鬼"文件,ghost file,很少见,该文件不应该被这个rpm包包含
l 授权文件,license file
r 描述文件,read me
  • rpm包中的文件提取

rpm2cpio 将rpm包转换为cpio格式的命令
cpio 是一个标准工具,用于创建软件档案文件和从档案中提取文件

rpm2cpio 包全名 | cpio -idv .文件绝对路径	.代表保存在当前路径下  文件绝对路径是文件在rpm包中的路径,-d会在当前目录下按照文件绝对路径的样子新建目录
cpio 选项 < [文件|设备]
-i	copy-in模式,还原
-d	还原时自动新建目录
-v	显示还原过程

yum

  • IP地址配置和网络yum源
    setup 配置网络
    |参数|作用|
    |----|----|
    |[base]|容器名称,一定要放在[]中|
    |name|容器说明,可以随便写|
    |mirrorlist|容器站点,可以注释掉|
    |baseurl|yum源服务器的地址|
    |enabled|此容器是否生效,默认=1,=1生效,=0不生效|
    |gpgcheck|如果是1是指rpm的数字证书生效,为0不生效|
    |gpgkey|数字证书的公钥文件保存位置|
  • yum命令
yum list		查询所有可用的软件包列表
yum search 关键字	搜索服务器上所有和关键字相关的包
yum [参数] 包名
install		安装
update		升级,不加包名的话会升级linux上的所有软件包,包括linux内核
remove		卸载,尽量不要用yum卸载,会自动卸载相关的支持库,曹成系统异常
-y		自动回答yes
grouplist	列出所有可用的软件组列表
groupinstall 软件组名	安装指定软件组,组名可以用grouplist查询出来
groupremove 软件组名	卸载指定软件组
  • 光盘yum源
mount /dev/cdrom /mnt/cdrom		挂载光盘
//让网络yum源失效
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak
vim CentOS-Media.repo
//地址修改为自己的光盘挂载地址
baseurl=file:///mnt/cdrom
enabled=1	把enabled改为1,让这个yum源生效
  • 源码包管理

区别:安装前,概念上的区别 安装后,安装位置不同

  • 源码包安装

/usr/local/sec 源代码保存位置
/usr/local 软件安装位置
卸载软件方法 直接删除软件安装目录即可
./configure 软件配置与检查
定义需要的功能选项
检测系统环境是否符合安装要求
把定义号的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑

yum -y install gcc	安装C语言编译器
./configure --prefix/usr/local/apache2	指定安装路径
make		编译
make clean		make如果报错,可使用此命令情况make命令编译产生的临时文件
make install		编译安装
  • 脚本安装方法
原文地址:https://www.cnblogs.com/mrhonest/p/11642546.html