软件包管理 
RPM(RedHat Package Manager),它是RedHat软件包管理工具
1. RPM查询命令(rpm -qa) 
基本语法: rpm -qa (功能描述:查询所安装的所有rpm软件包)
提示
由于软件包比较多,一般都会采取过滤结果。rpm -qa | grep rpm软件包
## 查询net相关软件安装情况
[root@hadoop100 ~]# rpm -qa | grep net
libnetfilter_conntrack-1.0.6-1.el7_3.x86_64
libnfnetlink-1.0.1-4.el7.x86_64
net-tools-2.0-0.25.20131004git.el7.x86_64
dracut-network-033-572.el7.x86_642. RPM卸载命令(rpm -e) 
基本语法
 (1) rpm -e RPM软件包
 (2) rpm -e --nodeps 软件包
| 选项 | 功能 | 
|---|---|
| -e | 卸载软件包 | 
| --nodeps | 卸载软件时,不检查依赖。这样的话, 那些使用该软件包的软件在此之后可能就不能正常工作了。 | 
[root@hadoop100 ~]# rpm -e --nodeps firefox3. RPM安装命令(rpm -ivh) 
基本语法:rpm -ivh RPM 包全名
| 选项 | 功能 | 
|---|---|
| -i | install,安装 | 
| -v | --verbose,显示详细信息 | 
| -h | --hash,进度条 | 
| --nodeps | 安装前不检查依赖 | 
4. YUM的常用命令 
YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包, 并且安装可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
提示
YUM类似于我们java开发中的maven工具,可以从镜像网站上下载应用程序,并直接安装。
基本语法:yum [选项] [参数] 选项: -y对所有提问都回答"yes"
 参数说明
| 参数 | 功能 | 
|---|---|
| install | 安装rpm软件包 | 
| update | 更新rpm软件包 | 
| check-update | 检查是否有可用的更新rpm软件包 | 
| remove | 删除指定的rpm软件包 | 
| list | 显示软件包信息 | 
| clean | 清理yum过期的缓存 | 
| deplist | 显示yum软件包的所有依赖关系 | 
| --downloadonly | 不安装只下载。 yum install --downloadonly --downloaddir=/path <package-name> | 
5. 修改网络YUM源 
默认的系统YUM源,需要连接国外apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜像的网站,比如网易163,aliyun等
- 安装wget, wget用来从指定的URL下载文件
[root@hadoop100 ~]# yum install -y wget
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * extras: ftp.sjtu.edu.cn
 * updates: mirrors.ustc.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 wget.x86_64.0.1.14-18.el7_6.1 将被 安装
--> 解决依赖关系完成
依赖关系解决
====================================================================================================================================================
 Package                         架构                              版本                                       源                               大小
====================================================================================================================================================
正在安装:
 wget                            x86_64                            1.14-18.el7_6.1                            base                            547 k
事务概要
====================================================================================================================================================
安装  1 软件包
总下载量:547 k
安装大小:2.0 M
Downloading packages:
wget-1.14-18.el7_6.1.x86_64.rpm                                                                                              | 547 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : wget-1.14-18.el7_6.1.x86_64                                                                                                     1/1 
  验证中      : wget-1.14-18.el7_6.1.x86_64                                                                                                     1/1 
已安装:
  wget.x86_64 0:1.14-18.el7_6.1                                                                                                                     
完毕!- 在/etc/yum.repos.d/目录下,备份默认的repos文件
[root@hadoop100 ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup- 下载网易163或者是aliyun的repos文件,任选其一
[root@hadoop100 ~]# wget https://mirrors.aliyun.com/repo/Centos-7.repo- 使用下载好的repos文件替换默认的repos文件
[root@hadoop100 yum.repos.d]# mv Centos-7.repo CentOS-Base.repo- 清理旧缓存数据,缓存新数据
[root@hadoop100 yum.repos.d]# yum clean all
[root@hadoop100 yum.repos.d]# yum makecache7. 搭建本地yum源 
提供yum包有两种方式,第一种搭建http服务地址,第二种通过指定绝对文件路径方式。
 第一种方式可以方便其他服务器使用yum包,第二种方式可以方便自己本身服务器使用yum包。他们都可以使用系统iso文件作为yum源。
7.1 方式1使用Apache 
下面通过自己手动上传yum包,并生成yum能够识别的目录元数据来搭建yum仓库:
7.1.1 安装并启动Apache 
# 安装Apache http
yum install -y httpd
# 启动Apache http
systemctl start httpd
# 设置自启动Apache http
systemctl enable httpd7.1.2 创建安装文件http根目录 
mkdir -p /var/www/html/cm7/yum/RPMS/x86_64/上传RPM安装文件到/var/www/html/cm7/yum/RPMS/x86_64/
[root@node00 x86_64]# ll
总用量 1852532
-rw-r--r--. 1 root root   30321448 7月   7 23:14 cloudera-manager-agent-7.4.4-15850731.el7.x86_64.rpm
-rw-r--r--. 1 root root 1762171388 7月   7 23:14 cloudera-manager-daemons-7.4.4-15850731.el7.x86_64.rpm
-rw-r--r--. 1 root root      13272 7月   7 23:14 cloudera-manager-server-7.4.4-15850731.el7.x86_64.rpm
-rw-r--r--. 1 root root      10984 7月   7 23:14 cloudera-manager-server-db-2-7.4.4-15850731.el7.x86_64.rpm
-rw-r--r--. 1 root root  104465559 7月   7 23:14 openjdk8-8.0+232_9-cloudera.x86_64.rpm7.1.3 生成yum仓库meta文件 
cd /var/www/html/cm7/yum
yum install -y createrepo
createrepo .createrepo命令会将指定文件夹内容打包为yum仓库meta文件,即repodata。
## 查看执行结果
[root@node00 yum]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 7月   7 23:16 repodata
drwxr-xr-x. 3 root root   20 7月   7 23:13 RPMS7.2 方式2使用本地路径 
下面使用Centos对应系统版本的镜像文件作为yum安装包:
- 首先下载iso文件  
- 上传到/opt/software上
mkdir /mnt/centos7
## CentOS-7-x86_64-Everything-2207-02.iso上传到/mnt/centos7上- 挂载iso镜像文件
cd /opt/software
mount -o loop CentOS-7-x86_64-Everything-2207-02.iso  /mnt/centos77.3 配置yum仓库文件 
登录客户端linux服务器(也就是要用到yum源的服务器)
## 在/etc/yum.repos.d创建bak文件夹
mkdir /etc/yum.repos.d/bak
## 移动/etc/yum.repos.d到bak文件夹中
mv /etc/yum.repos.d/* bak
vim /etc/yum.repos.d/cloudera-manager.repo
## 添加如下内容
[cloudera-manager]
name=Cloudera Manager 7.4.4
## 如果是http方式
baseurl=http://node00/cm7/yum/
## 如果是file地址方式
baseurl=file:///mnt/centos7
gpgcheck=0
enabled=1
autorefresh=0
type=rpm-md7.4 更新仓库信息,确认本地yum源已被添加 
yum clean all
yum makecache查看yum源列表:
yum repolist8. yumdownloader命令使用 
yumdownloader是一个用于从Yum仓库下载RPM包而不安装的实用工具。
 常用选项:
| 选项 | 作用 | 
|---|---|
| --destdir=/path | 指定下载目录(默认当前目录)。 示例: yumdownloader --destdir=/tmp nginx | 
| --resolve | 下载包及其所有依赖(递归下载)。 | 
| --urls | 仅显示RPM包的下载URL,不实际下载。 | 
| --source | 下载源码包( .src.rpm)。 | 
| --archlist=x86_64 | 指定架构(如 x86_64,i386)。 | 
| --enablerepo=epel | 临时启用特定仓库(如EPEL)。 | 
8.1 安装yumdownloader 
yum install yum-utils8.2 下载单个包 
## 下载nginx
yumdownloader nginx8.3 下载包及其依赖 
## 下载nginx及其所有依赖
yumdownloader --resolve nginx8.4 从特定仓库下载特定版本 
yumdownloader --enablerepo=epel httpd-2.4.6-90.el7