最新项目干货图文讲解--Linux部署yum仓库

文章目录

    • Linux部署yum仓库项目
      • 1、yum仓库简介:
      • 2、yum实现过程:
      • 3、Linux部署yum仓库项目:
        • (1) 主配置文件:/etc/yum.conf
        • (2) yum仓库文件位置:/etc/yum.repos.d
        • (3) 日志文件:/var/log/yum.log
        • (4) yum相关命令:
        • (5) 搭建yum仓库的方式:
        • (6) 搭建本地yum仓库:
        • (7)搭建阿里云仓库(http方式外网环境)
        • (8)ftp方式搭建云仓库:
      • 4、NFS共享文件:
        • (1) NFS简介:
        • (2) 特点:
        • (3) 原理:
        • (4) 搭建过程:

Linux部署yum仓库项目

1、yum仓库简介:

yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。

yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。

一个文件可以搭建多个yum仓库;

内核位置为:/boot X86代表架构;

yum info #显示所有可用包的信息

2、yum实现过程:

先在yum服务器上创建 yum仓库,在仓库中事先存储了众多rpm包,以及包的相关元数据文件;

当yum客户端利用yum工具进行安装时包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

3、Linux部署yum仓库项目:

(1) 主配置文件:/etc/yum.conf

[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个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量

(2) yum仓库文件位置:/etc/yum.repos.d

默认的yum仓库 是centos官方的yum源,需要联网才可以使用;

[root@localhost yum.repos.d]# ls /etc/yum.repos.d/
bak               CentOS-Debuginfo.repo  CentOS-Sources.repo
CentOS-Base.repo  CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo    CentOS-Media.repo

(3) 日志文件:/var/log/yum.log

[root@localhost yum.repos.d]# cat /var/log/yum.log //查看日志文件
Jun 23 11:03:16 Installed: apr-1.4.8-3.el7.x86_64
Jun 23 11:03:16 Installed: apr-util-1.5.2-6.el7.x86_64
Jun 23 11:03:16 Installed: httpd-tools-2.4.6-67.el7.centos.x86_64

(4) yum相关命令:

命令 作用
yum list 显示所有可用包
yum info 显示可用包的信息
yum search 模糊查找相关信息
yum whatprovides 精确查找
yum grouplist 显示所有可用包组
yum groupinfo 显示所有的包组具体信息
yum install 安装具体软件包
yum update 软件升级
yum remove 卸载具体软件
yum history 查看当前yum操作历史
yum history undo 加入序号卸载序号里安装的软件
yum history redo 加入序号重新执行序号里的操作
#显示可用的安装包,如不加软件名是显示所有的可用包,由于软件过多不做例子。
[root@localhost data]# yum list dhcp
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
已安装的软件包
dhcp.x86_64              12:4.2.5-58.el7.centos               @centos7
#显示安装包详细信息
[root@localhost ~]# yum info dhcp

最新项目干货图文讲解--Linux部署yum仓库_第1张图片

#根据关键字查找软件安装包,有模糊查询和精确查询
[root@localhost ~]# yum search ftp   #模糊查询
[root@localhost ~]# yum whatprovides ftp   #精确查询

最新项目干货图文讲解--Linux部署yum仓库_第2张图片

#安装包组的查询,若不加包组名就是显示所有(此处例子由于安装了中文环境,无法显示英文包组名称无法直接复制中文使用,建议直接安装英文操作系统)
[root@localhost data]# yum grouplist

最新项目干货图文讲解--Linux部署yum仓库_第3张图片

#安装软件包
[root@localhost ~]# yum install httpd
#卸载已安装的软件必须加软件名
[root@localhost yum.repos.d]# yum remove httpd
#查看yum历史的使用记录
[root@localhost yum.repos.d]# yum history 

最新项目干货图文讲解--Linux部署yum仓库_第4张图片

(5) 搭建yum仓库的方式:

软件仓库的提供方式
FTP服务:ftp://ip地址/站点里路径
HTTP服务:http://域名或者ip地址/站点里的路径
本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录

(6) 搭建本地yum仓库:

#首先将光驱中镜像文件进行挂载
[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -Th    //查看下挂载
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt 

#切换到 /etc/yum.repo.d 目录 将自带的仓库移走
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak    #新建一个文件夹用来存放原来的.repo文件
[root@localhost yum.repos.d]# mv *.repo bak/    #将原来的.repo文件移走
[root@localhost yum.repos.d]# ls   #查看一下
bak

#新建yum仓库文件
[root@localhost yum.repos.d]# vim abc.repo
[abc]
name=abc
baseurl=file:///mnt
enabled=1
gpgcheck=0

[root@localhost yum.repos.d]#yum clean all   //清除一下yum
[root@localhost yum.repos.d]#yum list   //列出yum

(7)搭建阿里云仓库(http方式外网环境)

国外云仓库比较慢,可以使用阿里云仓库代替;

#新建阿里云yum仓库文件
[root@localhost yum.repos.d]# vim ali.repo
[ali]
name=aliyun
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enabled=1
gpgcheck=0

[root@localhost yum.repos.d]#yum clean all   //清除一下yum缓存
#两个小游戏
#小火车
[root@centos7 ~]#yum -y install epel-release
[root@centos7 ~]#yum -y install sl
[root@centos7 ~]#sl -a
#牛
[root@localhost ~]#yum install -y install cowsay
[root@localhost ~]#cowsay hello

(8)ftp方式搭建云仓库:

服务端:192.168.111.122

客户端:192.168.111.130

#服务端安装vsftp服务
[root@localhost ~]# yum install vsftpd.x86_64 -y
#服务端切换到 ftp目录下新建一个centos7,other目录
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir centos7 other
[root@localhost ftp]# ls
other centos7  pub

#服务端将光驱里的文件包全部拷到centos7里面(此处我已经先将光驱挂载到 了mnt目录下了)
[root@localhost ftp]#mount /dev/sr0 /mnt/
[root@localhost ftp]# cp -rf /mnt/* centos7/ &                                //&代表后台运行应为文件较大
[root@localhost ftp]#jobs  #查看shell作业信息(后台下载的)
[root@localhost ftp]# cd centos7/
[root@localhost centos7]# ls                                                 //已将安装包文件拷入
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

[root@localhost ~]# cd /var/ftp/other
#建立数据库文件
[root@localhost other]# createrepo -g      /mnt/repodata/repomd.xml ./

#服务端开启相关服务,关闭防火墙和selinux
[root@localhost repodata]# systemctl stop firewalld.service
[root@localhost repodata]# setenforce 0
[root@localhost repodata]# systemctl start vsftpd   //重启vsftpd服务
[root@localhost ftp]#netstat -natp | grep ftp   //过滤查找ftp
tcp6       0      0 :::21                   :::*                    LISTEN      20518/vsftpd
#客户端安装ftp 服务并启动关闭防火墙和selinux
[root@localhost yum.repos.d]# yum install ftp
[root@localhost repodata]# systemctl stop firewalld.service
[root@localhost repodata]# setenforce 0

#测试ftp服务是否正常
[root@localhost yum.repos.d]# ftp 192.168.111.122

最新项目干货图文讲解--Linux部署yum仓库_第5张图片

最新项目干货图文讲解--Linux部署yum仓库_第6张图片

#编写yum仓库文件
[root@localhost yum.repos.d]# vim centos7.repo
[centos7]
name=centos7
baseurl=ftp://192.168.111.122/centos7
enabled=1
gpgcheck=0

[other]
name=other
baseurl=ftp://192.168.111.122/other
enabled=1
gpgcheck=0
#测试是否yum可以正常使用
[root@localhost ftp]#yum clean all
[root@localhost ftp]#yum list
[root@localhost yum.repos.d]# yum install dhcp

最新项目干货图文讲解--Linux部署yum仓库_第7张图片

4、NFS共享文件:

(1) NFS简介:

NFS(Network File System 网络文件服务)
NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。
通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
NFS 也是 NAS 存储 设备必然支持的一种协议。

(2) 特点:

采用TCP/IP传输网络文件;
安全性低;
简单易操作;
适合局域网环境;

(3) 原理:

NFS优势:节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。

(4) 搭建过程:

#服务器端:192.168.111.122
[root@localhost httpd]#systemctl stop firewalld
[root@localhost httpd]#setenforce 0
[root@localhost share]#yum install nfs-utils.x86_64  -y
#安装软件包盘用作共享使用

最新项目干货图文讲解--Linux部署yum仓库_第8张图片

#新建共享目录
[root@localhost httpd]#mkdir /share
[root@localhost httpd]#cd /share/
[root@localhost share]#chmod -R 777 /share/
#修改权限
[root@localhost share]#vim /etc/exports
#编辑配置文件
/share *
/share 192.168.91.0/24(rw,sync,no_root_squash)
#共享目录  网段           读写,同步,无root权限

#重启rpcbind和nfs服务
[root@localhost ~]# systemctl start rpcbind 
[root@localhost ~]# systemctl start nfs 
[root@localhost ~]#exports -vr
#不重启生效
[root@localhost share]#exportfs -v
#查看详细的nfs信息

[root@localhost ~]# netstat -anpt | grep rpc
[root@localhost share]# showmount -e
Export list for localhost.localdomain:
/share (everyone)

最新项目干货图文讲解--Linux部署yum仓库_第9张图片

#客户机端:192.168.111.130
[root@localhost ~]#mkdir /data   //创建一个挂目录
#挂载服务器端地址文件在自己目录下
[root@localhost ~]# mount 192.168.111.122:/share /data
[root@localhost ~]#df -hT
192.168.111.122:/share  nfs4       17G  8.6G  8.5G   51% /data
#测试一下
#服务器 touch 一个文件,在客户端看看有没有
[root@localhost share]# touch 1.txt
#客户端:
[root@localhost yum.repos.d]# cd /data
[root@localhost data]# ls
1.txt
#因为给了 share 777权限,因此客户端也可以 touch 文件
[root@localhost data]# touch 2.txt
[root@localhost data]# ls
1.txt  2.txt

#强制解挂载
[root@localhost ~]# umount /mnt
t umount. nfs: /mnt : device is busy 
[root@localhost ~]# umount -lf /mnt

最新项目干货图文讲解--Linux部署yum仓库_第10张图片

总结:
这些项目比较容易上手,在学习过程中还是要多敲多练习,俗话说:好记性不如烂笔头,说明了多动手敲命令很重要,好好学习,天天向上!

你可能感兴趣的:(Linux,linux,centos,yum)