Linux网络服务之部署yum仓库
1、yum仓库简介
1.1yum简介
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。 要成功使用 YUM 机制来更新系统和软件,需要有一个包含各种 rpm 安装包文件及其依 赖软件的软件仓库(repository),提供软件仓库的服务器也称为“源”服务器。在客户机中只 要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件。
1.2yum实现过程
软件仓库的提供方式
- 1.本地yum源(file:///mnt)
- 2.http yum源(http:///192.168.140.111/centos7)
- 3.ftp yum源(ftp:///192.168.140.111/centos7)
1.2.1yum工作原理
1.客户端根据配置文件找到yum仓库服务器的位置
2.服务端向客户端发送元数据包(包含 软件依赖关系 软件的位置)
#相当于软件安装目录
3.客户端下载后,在元数据包中的查找到目标,发送请求
4.服务器响应并将相关软件包和依赖关系发送给客户端,客户端下载安装
1.2.2注意事项
yum需要依赖于环境,依赖于服务端和客户端,允许跨网络
服务器:
- RPM包 (Packages文件夹中)
- 元数据(repodata文件夹:目录(软件的目录),软件的依赖关系,软件的位置)
客户端的配置文件中
baseurl=地址 一定要写到到 这两个文件夹 repodata packages 的上级目录
最终形成两个文件夹Packages (包文件夹一般取名packages)和 repodata(元数据文件夹)
2、yum配置文件
2.1yum配置文件
2.1.1主配置文件
[root@localhost]# /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 $basearch代表硬件架构 $releasever系统版本比如7
keepcache=0 //是否保存缓存 0代表不保存,1代表保存
debuglevel=2 //调试级别了解即可
logfile=/var/log/yum.log // 日志文件位置
exactarch=1 //是否允许不同版本的rpm安装
obsoletes=1 //update 的一个参数是否可以允许旧版本的运行
gpgcheck=1 //验证秘钥
plugins=1 //是否允许插件1代表可以
installonly_limit=5 //保存几个内核 5代表5个
2.1.2仓库的设置文件
/etc/yum.repos.d/*.repo //yum仓库文件位置
2.1.3日志文件
/var/log/yum.log //日志文件位置
3、yum命令详解
3.1下载安装
yum install 软件名 -y #通过yum方式安装
3.2查询
3.2.1显示可用的安装包:yum list
3.2.2 显示指定安装包详细信息:yum info
yum info [软件名] #显示指定安装包详细信息,不加软件名是显示所有包的详细信息
3.2.3根据关键字查找软件安装包:yum search
yum search 关键词 #根据关键字查找软件安装包
3.2.4 根据命令名查找对应的软件包:yum provides
yum provides 命令 #根据命令名查找对应的软件包
3.2.5 查询安装包组:yum grouplist
yum grouplist [包组名] #安装包组的查询 不加包组名 就是显示所有
3.2.6安装包组的详细信息:yum groupinfo
yum groupinfo <包组名> #显示包组的详细信息
#举例#
yum groupinfo Minimal Install #最小化安装包组的详细信息
3.2.7 查看历史的使用记录:yum history
yum history #查看历史记录
3.3卸载
3.3.1yum remove
yum remove [软件名] 卸载已安装的软件
3.3.2yum history undo
选择ID 1,2,3,4,5
可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除
再次查看history,可以看见增加了一条删除记录
#如果卸载错误#
yum history redo n #反悔卸载,n为卸载记录的ID
#举例#
yum history redo 8 #重新安装第二条记录中卸载的软件
3.4只下载不安装
当内网的一台主机安装某个软件包却缺少依赖包时,可以先由一台可连接外网的服务器下载依赖包,之后共享给这台主机
yum install --downloadonly +软件名称 --downloaddir=指定rpm包存放路径
4、yum仓库搭建方式
4.1搭建本地yum仓库
systemctl stop firewalld
setenforce 0
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
切换到源文件目录 cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# ls
bak CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# ls
bak
[root@localhost yum.repos.d]# vim local.repo
yum clean all
yum makecache
yum -y install tree //安装软件检测源的变化
4.2使用HTTP方式搭建yum仓库
服务端
systemctl stop firewalld //关闭防火墙
setenforce 0
yum -y install httpd //安装http
mount /dev/sr0 /var/www/html //将光驱挂载在可以共享的文件夹下
客户端
vim http.repo #新建 http.repo文件
[http]
name=http
baseurl=http://192.168.2.102 #服务器的ip地址
gpgcheck=0 #关闭校验
:wq #退出并保存
yum clean all //清理缓存
yum makecache //建立元数据库
yum -y install tree //安装tree
4.3 使用FTP方式搭建yum仓库
配置服务端
#关闭防火墙
systemctl stop firewalld
setenforce 0
# yum 安装ftp软件
yum -y install vsftpd
cd /var/ftp/
mkdir /var/ftp/centos7 #新建目录作为挂载点
mount /dev/sr0 /var/ftp/centos7 #挂载
客户端
systemctl stop firewalld.service
setenfore 0 #关闭防火墙和selinux
cd /etc/yum.repos.d
mkdir backup
mv *.repo bak #移走网络源
vim ftp.repo #新建 ftp.repo文件
vim ftp.repo #新建 ftp.repo文件
[ftp]
name=ftp
baseurl=ftp://192.168.190.254/test #挂载目录
gpgcheck=0 #关闭校验
:wq #退出并保存
yum clean all
yum makecache #清除网络源缓存,建立本地源数据
yum install -y tree #安装tree以测试源的变化