Linux学习 - 软件包管理
一、软件包分类
1 源码包
脚本安装包
优点:开源、可自由选择所需的功能、软件编译安装、卸载方便
缺点:安装步骤多、编译过程长、
2 二进制包(RPM包、系统默认包)
优点:包管理系统简单、安装速度快
缺点:不可看到源代码、功能选择不灵活、依赖性
二、RPM包管理——rpm命令管理
1 RPM包命名规则
httpd-2.2.15-15.e16.centos.1.i686.rpm | |
httpd | 软件包名 |
2.2.15 | 软件版本 |
15 | 软件发布次数 |
e16.centos | 适合的Linux平台 |
i686 | 适合的硬件平台 |
rpm | rpm包扩展名 |
2 RPM包依赖性
<1>树形依赖:a->b->c
<2>环形依赖:a->b->c->a
<3>模块依赖:查询网站 www.rpmfind.net
3 包全名与包名
包全名:当操作的包是没有安装的软件包时,使用包全名
包名:当操作依据安装的软件包时,使用包名( /var/lib/rpm/ )
4 RPM安装
rpm -ivh 包全名
-i 安装(install)
-v 显示详细信息(verbose)
-h 显示进度(hash)
--nodeps 不检测依赖性
5 RPM升级
rpm -Uvh 包全名
-U 升级
6 RPM卸载
rpm -e 包名
-e 卸载
7 RPM查询
rpm -q 包名
-q 查询
rpm -qa
-qa 查询所有已经安装的RPM包
rpm -qi 包名
rpm -qip 包全名
-qi 查询已安装的软件包信息(information)
-qip 查询未安装包信息(package)
rpm -ql 包名
rpm -qlp 包全名
-ql 查询已安装包文件安装位置
-qlp 查询未安装包文件打算安装的位置
rpm -qf 系统文件名
-qf 查询系统文件属于哪个RPM包(file)
rpm -qR 包名
rpm -qRp 包全名
-qR 查询已安装包的依赖性
-qRp 查询未安装包的依赖性
8 RPM校验
rpm -V 包名
-v 校验指定RPM包中的文件(verify)
校验显示:验证内容 文件类型 文件名
验证内容 | S | 文件大小修改 |
M | 文件类型、权限修改 | |
5 | MD5验证和(文件内容)修改 | |
D | 设备中代码修改 | |
L | 文件路径修改 | |
U | 文件所有者修改 | |
G | 文件所属组修改 | |
T | 文件修改时间修改 | |
. | 表示未修改 | |
文件类型 | c | 配置文件(config) |
d | 普通文件(documentation) | |
g | 鬼文件(ghost) | |
l | 授权文件(license) | |
r | 描述文件(read) |
9 RPM文件提取
rpm2cpio 包全名 | cpio -idv .文件绝对路径
rpm2cpio:将rpm包转换为cpio格式的命令
cpio:创建软件档案文件和从档案文件中提取文件
cpio [-idv] <[文件|设备]
-i coyp-in模式,还原
-d 还原时自动新建目录
-v 显示还原过程
举例:
当前目录为/root/
rpm -qf /bin/ls 查询ls命令属于哪个软件包
mv /bin/ls/tmp/ 实现ls命令误操作
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.e16.i686.rpm | cpio -idv ./bin/ls 提取RPM包中ls命令到当前目录的/bin/ls下
cp /root/bin/ls /bin/ 把ls命令复制到/bin/目录,修复丢失文件
三、RPM包管理——yum在线管理
1 IP地址配置
2 网络yum源
vi /etc/yum.repos.d/CentOS-Base.repo 打开网络yum源
[base] | 容器名称 |
name | 容器说明 |
mirrorlist | 镜像站点 |
baseurl | yum源服务器地址 |
enabled | 此容器是否生效,默认生效为1 |
gpgcheck | RPM的数字证书是否生效,1生效 |
gpgkey | 数字证书的公钥文件保存位置 |
3 yum命令
(1)yum list 查询所有可用软件包列表
(2)yum search 关键字 搜索服务器上所有和关键字相关的包
(3)yum -y install 包名 安装
例:yum -y install gcc(源码包时使用)
(4)yum -y update 包名 升级
注:如果未加包名,则升级所有的软件包,包括CentOS本身
(5)yum -y remove 包名 预卸
注:yum卸载会将其他软件关联的软件包一并卸载,所以尽量不要使用yum卸载
(6)yum grouplist 列出所有可用的软件组列表
(7)yum groupinstall 软件组名 安装指定软件组
(8)yum groupremove 软件组名 预卸指定软件组
4 光盘yum源搭建
(1)挂载光盘
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
(2)让网络yum源文件失效
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.bak
mv CentOS-Vault.repo CentOS-Vault.bak
注:Linux是根据yum文件的后缀名 .repo来识别yum源文件,故修改后缀名可实现yum源文件失效
(3)修改光盘yum源文件
vim CentOS-Media.repo
注:修改baseurl,注释后面两个file地址,使enabled=1