Skip to content

软件包管理

RPM(RedHat Package Manager),它是RedHat软件包管理工具

1. RPM查询命令(rpm -qa)

基本语法: rpm -qa (功能描述:查询所安装的所有rpm软件包)

提示

由于软件包比较多,一般都会采取过滤结果。rpm -qa | grep rpm软件包

sh
## 查询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_64

2. RPM 卸载命令(rpm -e)

基本语法
(1) rpm -e RPM软件包
(2) rpm -e --nodeps 软件包

选项功能
-e卸载软件包
--nodeps卸载软件时,不检查依赖。这样的话,
那些使用该软件包的软件在此之后可能就不能正常工作了。
sh
[root@hadoop100 ~]# rpm -e --nodeps firefox

3. RPM 安装命令(rpm -ivh)

基本语法:rpm -ivh RPM 包全名

选项功能
-iinstall,安装
-v--verbose,显示详细信息
-h--hash,进度条
--nodeps安装前不检查依赖

4. YUM的常用命令

YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包, 并且安装可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

提示

YUM类似于我们iava开发中的maven工具,可以从镜像网站上下载应用程序,并直接安装。

基本语法:
yum [选项] [参数] 选项: -y 对所有提问都回答"yes"
参数说明

参数功能
install安装 rpm 软件包
update更新 rpm 软件包
check-update检查是否有可用的更新 rpm 软件包
remove删除指定的 rpm 软件包
list显示软件包信息
clean清理 yum 过期的缓存
deplist显示 yum 软件包的所有依赖关系

5. 修改网络YUM源

默认的系统YUM源,需要连接国外apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜像的网站,比如网易163,aliyun等

  1. 安装wget, wget用来从指定的URL下载文件
sh
[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                                                                                                                     
完毕!
  1. 在/etc/yum.repos.d/目录下,备份默认的repos文件
sh
[root@hadoop100 ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  1. 下载网易163或者是aliyun的repos文件,任选其一
sh
[root@hadoop100 ~]# wget https://mirrors.aliyun.com/repo/Centos-7.repo
  1. 使用下载好的repos文件替换默认的repos文件
sh
[root@hadoop100 yum.repos.d]# mv Centos-7.repo CentOS-Base.repo
  1. 清理旧缓存数据,缓存新数据
sh
[root@hadoop100 yum.repos.d]# yum clean all
[root@hadoop100 yum.repos.d]# yum makecache

7. 搭建本地yum源

提供yum包有两种方式,第一种搭建http服务地址,第二种通过指定绝对文件路径方式。
第一种方式可以方便其他服务器使用yum包,第二种方式可以方便自己本身服务器使用yum包。他们都可以使用系统iso文件作为yum源。

7.1 方式1使用Apache

下面通过自己手动上传yum包,并生成yum能够识别的目录元数据来搭建yum仓库:

7.1.1 安装并启动Apache

sh
# 安装Apache http
yum install -y httpd
# 启动Apache http
systemctl start httpd
# 设置自启动Apache http
systemctl enable httpd

7.1.2 创建安装文件http根目录

sh
mkdir -p /var/www/html/cm7/yum/RPMS/x86_64/

上传RPM安装文件到/var/www/html/cm7/yum/RPMS/x86_64/

sh
[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.rpm

7.1.3 生成yum仓库meta文件

sh
cd /var/www/html/cm7/yum
yum install -y createrepo
createrepo .

createrepo命令会将指定文件夹内容打包为yum仓库meta文件,即repodata。

sh
## 查看执行结果
[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 RPMS

7.2 方式2使用本地路径

下面使用Centos对应系统版本的镜像文件作为yum安装包:

  1. 首先下载iso文件 Alt text
  2. 上传到/opt/software上
sh
mkdir /mnt/centos7
## CentOS-7-x86_64-Everything-2207-02.iso上传到/mnt/centos7上
  1. 挂载iso镜像文件
sh
cd /opt/software
mount -o loop CentOS-7-x86_64-Everything-2207-02.iso  /mnt/centos7

7.3 配置yum仓库文件

登录客户端linux服务器(也就是要用到yum源的服务器)

sh
## 在/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-md

7.4 更新仓库信息,确认本地yum源已被添加

sh
yum clean all
yum makecache

查看yum源列表:

sh
yum repolist