一、rpm包命名规则
httpd-2.2.15-15.e16.centos.1.i686.rpm
httpd | 软件包名 |
2.2.15 | 版本 |
15 | 软件发布的次数 |
e16.centos | 软件发行商 |
- el6/centos:软件发行商。el6是RedHat公司发布,适合RHEL6.x(Red Hat Enterprise Linux)和CentOS6.x下使用。(el6指的就是RHEL6.x平台)
- i686:适合的硬件平台。RPM包可以在不同的硬件平台安装,选择适合不同CPU的软件版本,可以最大化的发挥CPU性能,所以出现了所谓的i386(386以上计算机都可以安装)、i586(586以上的计算机都可以安装)、i686(奔腾II以上计算机都可以安装,目前所有的CPU都是奔腾II以上,所以这个软件版本居多)、x86_64(64位CPU可以安装)和noarch(没有硬件限制)等文件名。
- rpm:rpm包的扩展名
- 包全名:如果操作的是未安装软件包,则使用包全名,而且需要注意使用绝对路径(一般会进入到软件包目录进行安装)。
- 包名:如果操作的是已经安装的软件包,则使用包名即可。系统会生成RPM包的数据库(/var/lib/rpm/),只要安装过的软件包,就会出现在这个数据库中。而且可以在任意路径下操作(因为是从数据库中查找)。
提示:/var/lib/rpm/这里边的文件都是二进制的,不能用vim来查看。
PM软件升级与卸载
Rpm -Uvh 包全名
-U upgrade 升级
rpm –evh 报名
-e (erase) 卸载
v verbose 显示详细信息
h hash 显示进度
--nodeps不检查依赖性
rpm默认安装路径位置 | |
/etc | 配置文件安装目录 |
/usr/bin | 可执行命令安装目录 |
/usr/lib/ | 程序使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
RPM包查询
rpm –q 包名 查询包是否安装
rpm –qa 查询所有安装的包
rpm –i 查询软件信息
-l:列出软件包中所有的文件列表和软件所安装的目录(list)
-f:查询文件属于那个包
-R:查询软件包依赖的包
函数库依赖又称为模块依赖
root@Redhat7 Packages]# rpm -ivh mysql-connector-odbc-5.2.5-6.el7.x86_64.rpm
警告:mysql-connector-odbc-5.2.5-6.el7.x86_64.r
错误:依赖检测失败:
libodbc.so.2()(64bit) 被 mysql-connector-odbc-5.2.5-6.el7.x86_64 需要
libodbcinst.so.2()(64bit) 被 mysql-connector-odbc-5.2.5-6.el7.x86_64 需要
发现报错,需要安装“libodbc.so.2”函数库文件,这时会发现在光盘中根本找不到这个文件。那是因为这个函数库没有单独成包,是包含在某一个软件包中的。而如果要知道该文件在哪个软件包中,需要查询网站http://www.rpmfind.net/
(很方便),如图:
rpm包在线安装(yum安装)
1.yum源文件解析
yum 的配置文件分为两部分:main 和repository
repository 定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中
repository(yum 源配置文件)保存在/etc/yum.repos.d/目录(这个目录要背下来)中,文件的扩展名一定是“.repo”。也就是说,yum 源配置文件只要扩展名是“.repo”就会生效。(无论是Base还是Media的repo文件都可以生效)
这个目录(centos7,腾讯云主机)中有 4个 yum 源配置文件,默认情况下 CentOS-Base.repo 文件生效。
阿里云 centos7 有12个yum源配置文件,默认情况下 CentOS-Base.repo 文件生效。
yum repolist #显示已配置的存储库
腾讯主机换阿里云yum源
(1)备份CentOS原始的基础仓库文件,将 CentOS-Base.repo
备份为CentOS-Base.repo.backup
命令:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
默认的腾讯云CentOS-Base.repo为下图:
serverid:[os]:容器名称,一定要放在[]中,是用于区别各个不同的repository,必须有一个独一 无二的名称,例如:OS;
name:是对repository 的描述,支持像$releaseverre,$basearch这样的变量;
mirrorlist:镜像站点列表地址,多个获取更新的地址集合,系统会自动选择合适的地址进行更新;
baseurl:我们的 yum 源服务器的基本地址。默认是 CentOS 官方的 yum 源服务器,CentOS8默 认是关闭的,默认开启mirrorlist;镜像地址mirrorlist和基本地址baseurl只能有一个生 效!另一个需要注释掉。
gpgcheck:有0和1两个值,与main中相同,即是否需要对获取的软件包进行GPG校验;如果为 1 则表示 RPM 的数字证书生效;如果为 0 则表示 RPM 的数字证书不生效。gpgcheck 一定要为1,让它生效!!
enabled:此容器是否生效,如果不写或写成 enabled=1 则表示此容器生效,默认为1,设置为0 时该配置无效;
gpgkey:用于校验的gpg密钥,数字证书的公钥文件保存位置
(2)下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/。修改指定的yum源为默认yum源:下载新的centos7: http://mirrors.aliyun.com/repo/Centos-7.repo
,并命名为CentOS-Base.repo:
命令:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
centos8:修改yum源为https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
命令:wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
如果wget命令不生效,说明还没有安装wget工具,输入yum -y install wget 回车进行安装
新配好的阿里云yum源:
(3)清除旧的缓存,再生成新缓存
yum clean all # 清除系统所有的yum缓存
yum makecache # 生成yum缓存
yum 全局配置
- main 定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。
yum.conf 文件一般位于/etc目录下,一般其中只包含main部分的配置选项。
使用 cat 命令查看 /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever # yum缓存的目录,下载安装软件包时存放的目录
keepcache=0 #安装完成后是否保留软件包 0:不保留,1:保留
debuglevel=2
logfile=/var/log/yum.log # yum日志文件,查询过去所做的更新更改
exactarch=1
obsoletes=1
gpgcheck=1 #是否是否进行gpg(GNU Private Guard)校验
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
yum命令,用到的都是包名。yum命令不区分包名和包全名了
查询 yum 源服务器上所有可安装的软件包列表yum list
yum list packag(包名) 显示指定程序包安装情况package(包名)
yum list | grep http 查找含有http关键字的文件包
search搜索服务器上所有和关键字相关的包:yum search 关键字
yum info 包名 查询指定软件包的信息。与rpm -qi 效果一样
yum安装和更新update rpm包命令
Yum –y install 包名 :安装软件, -y 自动回复yes
yum update :本机软件包全部更新
yum update 包名package :更新指定程序包package
yum remove 包名 :删除卸载软件包,从服务器稳定运动角度一般不推荐使用
yum grouplist :查询软件组
yum groupinstall 软件组名 : 安装软件组
yum groupremove 软件组名 :卸载软件组