Linux软件管理-yum工具

Linux软件管理-yum工具

文章目录

  • Linux软件管理-yum工具
    • yum基本概述
    • yum源的配置
    • yum实战案例
    • 制作本地yum仓库
    • 制作企业级yum仓库
    • 用Nginx做镜像仓库

yum基本概述

什么是yum

yum是RedHat以及CentOS中的软件包管理器,能够通过互联网下载以rpm结尾的包,并且安装,并可以自动处理依赖性关系,无需繁琐的一次次下载安装。

1.联网获取软件
2.基于RPM管理
3.自动解决依赖
4.命令简单好记
5.生产最佳实践

什么是yum源

要成功的使用yum工具安装软件包,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称之为yum源或者yum 仓库这个源可以是本地的也可以是网络的。

yum源的配置

安装完系统后,必须要有的两个仓库:

基础仓库:base

扩展仓库:epel

仓库的配置文件

位置:/etc/yum.repos.d/
名字:全部都是以repo结尾的文件
配置:
## 阿里Base源配置的两种方法:
wget -O /etc/yum.repos.d/zls_base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/zls_base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

## 阿里epel源配置的两种方法:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

各大镜像源:
阿里云:https://opsx.alibaba.com/mirror
清华源:https://mirrors.tuna.tsinghua.edu.cn/
163源:http://mirrors.163.com/
华为源:https://mirrors.huaweicloud.com/
科大源:http://mirrors.ustc.edu.cn/

yum实战案例

yum仓库内软件包的查询

## 查看当前系统所有可用仓库里面的安装包
yum list

## 查看仓库里指定包的详细信息(未安装的也可以查)
例如:yum info tree 

## 查询ifconfig命令属于哪个包
yum provides */ifconfig

yum仓库查询

## 查看当前yum的可用仓库都有哪些
yum repolist

## 查看yum的所有仓库有哪些
yum repolist all

## 使用命令开启或者关闭仓库(yum install -y yum-utils)
yum-config-manager --disable base
yum-config-manager --enable base

yum安装软件包

## 安装
yum install -y 包名

## 本地安装,并且解决依赖关系(依赖的包必须在仓库里有)
yum localinstall

## 网络资源安装
yum install -y https://mirrors.ustc.edu.cn/centos/7.9.2009/os/x86_64/Packages/vsftpd- 3.0.2-28.el7.x86_64.rpm

yum重装软件

## 如果误删除软件的配置文件,或者相关目录,可以使用reinstall
yum reinstall nginx -y

yum更新软件

## 检查当前系统中的软件,与yum仓库中的软件对比,需要更新的软件
yum check-update

## 更新软件
yum update -y 包名

## 全部更新(非常危险)
yum update -y

yum删除软件包

## remove和erase都会删除相关的依赖
yum remove -y tree
yum erase -y tree

yum缓存相关命令

## 清除所有的缓存
yum clean all 

## 加载缓存(把仓库中的所有软件包名加载到内存中)
yum makecache

yum包组相关命令

## 查看包组(列出已经安装和所有可使用的软件组)
yum groups list

## 安装包组(安装Development tools这个组的软件)
yum groups install Development tools

## 删除包组(删除Development tools这个包组)
yum groups remove -y Development tools

yum历史命令

## 查看历史执行的命令
yum history

## 查看指定的历史yum命令的详细信息 25:ID
yum history info 25

## 撤销历史命令
yum history undo 35

yum只下载不安装选项

yum install -y wget --downloadonly --downloaddir=/tmp
--downloadonly 只下载不安装
--downloaddir=/路径

yum的配置文件

yum的配置一般有两种方式:
1.全局配置文件/etc/yum.conf/
2.子配置文件/etc/yum.repos.d/目录下的所有.repo文件

vim /etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever   //缓存目录
keepcache=0     //缓存软件包, 1启动 0 关闭
debuglevel=2    //调试级别
logfile=/var/log/yum.log    //日志记录位置
exactarch=1     //检查平台是否兼容
obsoletes=1     //检查包是否废弃
gpgcheck=1      //检查来源是否合法,需要有制作者的公钥信息
plugins=1       //是否启用查询
installonly_limit=5
bugtracker_url
# metadata_expire=90m //每小时手动检查元数据
# in /etc/yum.repos.d   //包含repos.d目录

制作本地yum仓库

yum仓库的配置文件

## 仓库的名字
[base]

## 对仓库的描述信息,可以自定义
name=CentOS-$releasever - Base - mirrors.aliyun.com

## 仓库的地址
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ 

## 是否检查公钥私钥        
gpgcheck=1

## 公钥的位置
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

## 开启yum仓库
enabled=1

http://		超文本传输协议
https://	超文本传输加密协议
ftp://		文件传输协议
file://		本地文件协议

制作仓库

# 1.压缩所有的yum仓库文件
[root@oldboy ~]# gzip -r /etc/yum.repos.d/

# 2.创建本地仓库目录
[root@oldboy ~]# mkdir /yum_cangku

# 3.镜像挂载在该目录下
[root@oldboy ~]# mount /dev/cdrom /yum_cangku/

# 4.手写仓库配置文件
[root@oldboy ~]# vim /etc/yum.repos.d/bendi.repo
[base]
name=This is local repository
baseurl=file:///yum_cangku/
gpgcheck=0
enable=1

# 5.加载缓存
yum makecache

制作企业级yum仓库

本地光盘提供基础软件包Base
yum缓存提供update软件包
yum缓存提供常用软件包: nginx, zabbix, docker, saltstack

准备环境

IP 角色
10.0.0.10 yum仓库server
10.0.0.100 普通服务器client

**目标:**任意一台虚拟机,修改yum源为10.0.0.10这台机器都可以使用yum安装

10.0.0.10制作成yum仓库

# 1.安装vsftpd服务,让该机器变成网络服务
[root@localhost ~]# yum install -y vsftpd

# 2.启动服务 
[root@localhost ~]# systemctl start vsftpd

# 3.关闭selinux
## 查看selinux是否开启
[root@localhost ~]# getenforce 
Enforcing

## 临时关闭(一旦重启就又会开启)
[root@localhost ~]# setenforce 0

## 永久关闭(重启之后才会生效) 
[root@localhost ~]# vim /etc/sysconfig/selinux 
SELINUX=disabled

# 4.关闭防火墙 
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

# 5.在ftp的目录下创建好base目录 
[root@localhost ftp]# mkdir /var/ftp/base

# 6.挂载光盘 
[root@localhost ftp]# mount /dev/cdrom /mnt 
mount: /dev/sr0 is write-protected, mounting read-only

# 7.拷贝所有的rpm包 
[root@localhost ftp]# cp /mnt/Packages/* /var/ftp/base/

# 8.安装仓库制作命令,并创建repodata仓库(注意: 如果此仓库每次新增软件则需要重新生成一次)
[root@localhost base]# yum install -y createrepo

# 9.创建仓库
[root@localhost base]# createrepo /var/ftp/base

在10.0.0.100上更改yum源

[root@oldboy /etc/yum.repos.d]# vim /etc/yum.repos.d/ftp.repo
[ftp_base]
name=ld_base
baseurl=ftp://10.0.0.10/base
gpgcheck=0
enabled=1

## 同步别人的源
rsync rsync://mirrors.ustc.edu.cn/epel/7/x86_64/Packages/n/ 
https://mirrors.ustc.edu.cn/epel/7/x86_64/Packages/n/

用Nginx做镜像仓库

10.0.0.10制作成yum仓库

# 1.下载Nginx
[root@oldboy ~]# yum install -y nginx

# 2.修改/etc/nginx/nginx.conf
server {
        listen 80;
        root /nginx_yum;
        server_name localhost;
        location / {
                autoindex on;
        }
}

# 3.关闭selinux
## 查看selinux是否开启
[root@oldboy ~]## getenforce 
Enforcing

## 临时关闭(一旦重启就又会开启)
[root@oldboy ~]## setenforce 0

## 永久关闭(重启之后才会生效) 
[root@oldboy ~]## vim /etc/sysconfig/selinux SELINUX=disabled

# 4.关闭防火墙 
[root@oldboy ~]## systemctl stop firewalld
[root@oldboy ~]## systemctl disable firewalld

# 5.启动Nginx
[root@oldboy ~]## systemctl start nginx

# 6.创建/nginx_yum/base和/nginx_yum/zabbix这两个目录
[root@oldboy ~]# mkdir /nginx_yum/base
[root@oldboy ~]# mkdir /nginx_yum/zabbix

# 7.挂载光盘
[root@oldboy ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only

# 8.拷贝所有的rpm包到/nginx_yum/base/下
[root@oldboy ~]# cp -rp /mnt/Packages/* /nginx_yum/base/

# 9.从网上下载所有的zabbix中的包到/nginx_yum/zabbix/下
[root@oldboy ~]# curl https://repo.huaweicloud.com/zabbix/zabbix/5.2/rhel/7/x86_64/|awk -F '"' '{print "wget -P /nginx_yum/zabbix/ https://repo.huaweicloud.com/zabbix/zabbix/5.2/rhel/7/x86_64/"$4}'|grep '.rpm$'|bash

# 10.创建仓库
[root@oldboy ~]# createrepo /nginx_yum/base/
[root@oldboy ~]# createrepo /nginx_yum/zabbix/

在10.0.0.100上更改yum源

[root@oldboy /etc/yum.repos.d]# vim nginx_base.repo
[root@oldboy /etc/yum.repos.d]# cat nginx_base.repo 
[nginx_base]
name=This is a nginx repository
baseurl=http://10.0.0.13/base/
gpgcheck=0
enabled=1

[nginx_zabbix]
name=This is a nginx zabbix repository
baseurl=http://10.0.0.13/zabbix/
gpgcheck=0
enabled=1

你可能感兴趣的:(学习笔记,#Linux软件管理,linux,yum)