yum工具及源码包

yum

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

yum源

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

各大镜像源:

阿里云: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查询软件包的方式

#列出软件仓库中可用的软件
[root@zls ~]# yum list #进行模糊查找
[root@zls ~]# yum list|grep ftp #列出软件包详情
[root@zls ~]# yum info ftp

使用yum安装软件包的方式

#安装软件只需要给出软件名称(前提是在仓库中必须有)
[root@zls ~]# yum install traceroute #安装过程中分析依赖关系后, 直接安装, 无需交互
[root@zls ~]# yum install php -y #安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖(非来自.repo定义的软件仓库)
[root@zls ~]# yum localinstall /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm #安装网络上rpm包
[root@zls ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

使用yum重装软件包的方式

#检查软件是否存在
[root@zls ~]# rpm -q vsftpd
vsftpd-2.2.2-24.el6.x86_64 #检查vsftpd软件配置文件
[root@zls ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf #不小心删除vsftpd配置文件
[root@zls ~]# rm -f /etc/vsftpd/vsftpd.conf #重新安装软件
[root@zls ~]# yum reinstall vsftpd #再次检查
[root@zls ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf

使用yum更新软件包的方式

#对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
[root@zls ~]# yum check-update #更新acl软件
[root@zls ~]# yum update acl -y #如果执行下面的命令,很危险
[root@zls ~]# yum update -y

使用yum删除软件包的方式

#先安装一个samba软件
[root@zls ~]# yum install samba -y #删除该软件包,会删除依赖, 但是我们尽可能不要使用删除软件操作
[root@zls ~]# yum erase samba -y
[root@zls ~]# yum remove samba -y

yum仓库的相关命令

#列出yum源可用的软件仓库
[root@zls ~]# yum repolist #列出全部yum源可用和禁用的仓库
[root@zls ~]# yum repolist all #启用软件包
[root@db04 ~]# yum-config-manager --enable
建议:直接修改配置文件 #查看这个文件或命令属于哪个包
yum provides /etc/my.cnf
yum provides cd

yum缓存相关指令

#缓存yum源软件仓库, xml元数据文件
[root@zls ~]# yum makecache #缓存软件包, 修改yum全局配置文件
[root@zls ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1 //启动缓存 #查看缓存的xml文件
[root@zls ~]# ls /var/cache/yum/x86_64/7/base/ #查看缓存软件包路径
[root@zls ~]# /var/cache/yum/x86_64/7/ #另一种缓存rpm包方式 #1.安装插件支持只下载软件包不安装
[root@zls ~]# yum install -y yum-plugin-downloadonly
#2.将软件下载至指定目录
[root@zls ~]# yum install httpd -y --downloadonly --downloaddir=/tmp #清除所有yum缓存
[root@zls ~]# yum clean all #只清除缓存的软件包
[root@zls ~]# yum clean packages

yum包组相关指令

#列出已经安装和所有可使用的软件组
[root@zls ~]# yum groups list #安装一整个组的软件
[root@zls ~]# yum groups install Development tools \
Compatibility libraries \
Base Debugging Tools #yum删除包组
[root@zls ~]# yum groups remove -y Base

yum历史命令

#查看历史执行yum命令
[root@zls ~]# yum history #查询历史执行yum命令ID详细信息
[root@zls ~]# yum history info N #撤销历史执行过的yum命令
[root@zls ~]# yum history undo N

yum全局配置文件

yum的配置一般有两种方式:

1.全局配置文件/etc/目录下的yum.conf

2.子配置文件/etc/yum.repos.d/目录下的所有.repo文件

vim /etc/yum.cnf
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签名检查机制[扩展]

rpm软件提供组织redhat在构建rpm包时, 使用其私钥private keyrpm进行签名

客户端在使用rpm为了验证其合法性, 可以使用redhat提供的公钥public key进行签名检查


方式1: 指定公钥的位置

[root@zls ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

方式2: 提前导入公钥

[root@zls ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@tianyun ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1

方式3: 不进行签名验证

#不检查软件包的签名,或者修改配置文件
[root@zls ~]# yum install httpd --nogpgcheck

制作本地yum仓库

[]          //仓库名称
name //仓库描述信息
baseurl //YUM源url地址 ,可以是file:// ftp:// http://
enabled //是否激活该YUM源(0代表禁用,1代表激活,默认为激活)
gpgcheck //安装软件时是否检查签名(0代表禁用,1代表激活)
挂载镜像
mount /dev/cdrom /mnt
备份原有仓库
gzip /ctc/yum.repos.d/*

创建新仓库文件

使用yum-config-manager命令添加本地仓库
[root@zls ~]# yum-config-manager --add-repo="file:///mnt" #手动添加repo配置文件(方式二)
[root@zls ~]# vim /etc/yum.repos.d/cdrom.repo
[cdrom]
name=This is local cdrom
baseurl=file:///mnt
enabled=1
gpgcheck=0

刷新repos生成缓存

yum makecache

构建企业级yum仓库

服务端配置

1.基础环境准备

#关闭防火墙
[root@yum_server ~]# systemctl stop firewalld #临时关闭selinux
[root@yum_server ~]# setenforce 0 #安装ftp服务,启动并加入开机启动
[root@yum_server ~]# yum -y install vsftpd
[root@yum_server ~]# systemctl start vsftpd
[root@yum_server ~]# systemctl enable vsftpd #开启yum缓存功能
[root@yum_server ~]# vim /etc/yum.conf
[main] cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
[root@yum_server ~]# yum clean all

2.提供基础base

[root@yum_server ~]# mkdir /var/ftp/centos7
[root@yum_server ~]# mount /dev/cdrom /mnt
[root@yum_server ~]# cp -rp /mnt/Packages/*.rpm /var/ftp/centos7

3.提供第三方源,同步中科大的源

#进入ftp目录
[root@yum_server centos]# cd /var/ftp/ #同步中科大的源
[root@yum_server ftp]# rsync -avzP rsync://rsync.mirrors.ustc.edu.cn/repo/nginx ./

4.安装createrepo并创建 reopdata仓库

//安装createrepo
[root@yum_server ~]# yum -y install createrepo
//生成仓库信息
[root@yum_server ~]# createrepo /var/ftp/ //注意: 如果此仓库每次新增软件则需要重新生成一次

客户端使用yum源

1.配置并使用base基础源

[root@yum_client ~]# gzip /etc/yum.repos.d/*
[root@yum_client ~]# vim /etc/yum.repos.d/centos7.repo
[centos74]
name=centos74_base
baseurl=ftp://10.0.0.90/centos7
gpgcheck=0

2.客户端指向本地ftp

[root@yum_client ~]# vim /etc/yum.repos.d/nginx.repo
[ftp]
name=local ftpserver
baseurl=ftp://10.0.0.90/nginx
gpgcheck=0

流程图

源码包

源码包指的是开发编写好的程序源代码,但并没有将其编译为一个能正常使用的工具。

源码包的优缺点

优点:

1.有了源码包,那我就可以自行修改代码,提供我们使用,传说中的二次开发

2.可以定制需要的相关功能

3.新版本优先更新源码

4.自动化规范,方便落地

缺点:

1.相对于yum安装,复杂

2.耗时比较长

源码包安装步骤

安装源码包,必须要经历4个步骤

1.解压 tar

2.生成 ./configure cmake

3.编译 make

4.安装 make install

  • 源码包安装基础环境准备

    [root@node1 ~]# yum install -y gcc make wget

最新文章

  1. [转]An introduction to OAuth 2.0 using Facebook in ASP.NET Core
  2. Atitit xml命名空间机制
  3. 六个创建模式之建造者模式(Builder Pattern)
  4. 奇葩啊,HOLOLENS里模拟器截不了图,后台DEVIE PORTAL可以截
  5. 20150624_Andriod _web_service_匹配
  6. gdb mysq
  7. [CAMCOCO][C#]我的系统架构.服务器端.(三)----Model层
  8. 《C++ Primer 4th》读书笔记 第5章-表达式
  9. 彻底解决iOS项目中 "_OBJC_CLASS_$_XXXService", referenced from: 的相似问题
  10. 3ds max 2016 新功能
  11. C. Bits (Codeforces Round #276 (Div. 2) )
  12. cat/tac/more/less 命令详解
  13. 使用org.apache.commons.logging打日志注意事项
  14. 计算机网络相关:应用层协议(二):HTTP
  15. postgresSQL 实现数据修改后,自动更新updated_date/ts等字段
  16. 2019.4.14 python基础30
  17. 洛谷P1970 花匠
  18. js中各种跨域问题实战小结
  19. 手机站CSS
  20. node.js cookie session使用教程

热门文章

  1. Winform中自定义添加ZedGraph右键实现设置所有Y轴刻度的上下限
  2. OpenCV:增加和减少图像的亮度,图像的加减法
  3. 转载:关于STM32硬件I2C读写EEPROM代码实现原理的理解与总结
  4. IDEA 第三方jar包 使用
  5. 科研画图:散点连接并平滑(基于Matlab和Python)
  6. Codeforces Round #578 (Div. 2)
  7. 3. java 方法入门
  8. 201871010113-刘兴瑞《面向对象程序设计(java)》第十六周学习总结
  9. 【转】SQL中GROUP BY语句与HAVING语句的使用
  10. electron内监控目标网站cookie的变化,查找指定的cookie