一.什么是yumYum全称为 Yellow dog Updater, Modified是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。是基于rpm但更胜于rpm的软件管理工具能够从指定的服务器自动下载RPM包并且安装用yum只能查到rpm包软件的信息,不能查到源代码软件的信息yum只能安装rpm格式的软件包。yum的优点就是自动解决rpm包的依赖关系。二.yum相关文件yum的配置文件服务器端/etc/yum.confyum的配置文件客户端/etc/yum.repos.d/目录下以. repo结尾的文件上图是我本机中的已有的repo配置文件将这些文件统一移动到一个新建目录中防止对后续的试验产生影响。[rootlocalhost yum.repos.d]# mkdir repo[rootlocalhost yum.repos.d]# mv*.repo./repo再创建自己的配置文件且必须以.repo做文件结尾并添加自己的配置。[rootlocalhost yum.repos.d]# vim base.repo[base]namebase baseurlfile:///mnt/enabled1gpgcheck0[base]表示Yum 软件仓库唯一标识符避免与其他仓库冲突名字自取同一个服务器下可以配置多个yum源仓库分别对应不同的以.repo结尾的文件所以这里要起不同的名字nameyum仓库名字以识别仓库baseurl这个参数指定yum源仓库所在位置提供的方式包括 FTP(ftp://…)、HTTP(http://…)、本地(file://…)这里是本地仓库所以以file://开头后面是具体路径enabled表示此源是否可用1为可用0 为禁用gpgcheck设置此源是否校验文件1 为校验0 为不校验gpgkey若gpgcheck参数开启校验则需要通过该参数指定公钥文件地址yum的缓存目录/var/cache/yum。存放从服务器上下载下来的索引文件一般说的清空缓存就是清空缓存目录。yum的日志文件/var/log/yum.log三.本地yum搭建1.确保本机的CD/DVD光盘镜像处于连接状态[rootlocalhost yum.repos.d]# ls-l/dev|grep cdrom lrwxrwxrwx1root root3Sep112:09cdrom-sr0 crw-rw----1root cdrom21,0Sep112:09sg0 brw-rw----1root cdrom11,0Sep112:09sr02.挂载光盘将/dev/sr0即表示光盘文件挂载到/mnt文件下[rootlocalhost yum.repos.d]# mount/dev/cdrom/mnt/3.配置yum的配置文件进入到/etc/yum.repos.d/目录中(因为该目录存放着 Yum 软件仓库的配置文件)将该目录下的所有文件转移到其他目录下创建一个新的配置文件base.repo名字任取但必须以.repo结尾。内容如下[base]#Yum 软件仓库唯一标识符避免与其他仓库冲突 namebase #Yum 软件仓库名称描述易于识别仓库用处 baseurlfile:///mnt/ #这里指定挂载路径enabled1#设置此源是否可用;1为可用0为禁用 gpgcheck0#设置此源是否校验文件;1为校验0为不校验4.检验yum仓库是否可用可以使用yum repolist命令来检查配置是否已经生效[rootlocalhost yum.repos.d]# yum repolist Loaded plugins:fastestmirror,langpacks Loading mirror speedsfromcached hostfile repo id repo name status!base base10,019repolist:10,019四.建立EPELBASE仓库安装epel源方法与安装本地磁盘的配置类似只是将路径改成远程的路径可用的yum源有阿里云repo文件http://mirrors.aliyun.com/repo/CentOS系统的yum源阿里云 https://mirrors.aliyun.com/centos/ $ releasever/os/x86_64/清华大学https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/x86_64/EPEL的yum源阿里云https://mirrors.aliyun.com/epel/ $ releasever/x86_64阿里巴巴开源软件https://opsx.alibaba.com/再在base.repo基础上再添加一组配置如下[epel]nameEPELbaseurlhttps://mirrors.aliyun.com/epel/7/x86_64/gpgcheck0enabled1在yum的repo配置文件中可用的变量有如下这些变量说明$releasever当前OS的发行版的主版本号$archi386,i486,i586,x86_64等$basearch基础平台i386, x86_64$ YUM0-$YUM9自定义变量之前有本地的配置为了使新的配置生效可以使用下面两个命令yum clean all #清空缓存 yum makecache #重新生成缓存可以使用yum repolist命令来检查配置是否已经生效[rootlocalhost yum.repos.d]# yum repolist Loaded plugins:fastestmirror,langpacks Loading mirror speedsfromcached hostfile repo id repo name status epelEPEL13,373repolist:13,373验证命令可以随意安装一个命令sl[rootlocalhost yum.repos.d]# yum install sl当运行sl命令时可以看到如下现象五.基于HTTP协议的网络yum仓库在centos7搭建http服务提供给centos7仓库服务1.安装httpd服务,并查看使用本地光盘先在centos7下安装httpd服务[rootlocalhost yum.repos.d]# yum install httpd安装完后查看httpd里的内容使用下面这命令[rootlocalhost yum.repos.d]#rpm-ql httpd可以看到最后一个目录/var/www/html该目录是个极其重要的目录2.启动httpd服务启动服务前需要关闭防火墙#centos7关闭防火墙命令 systemctl disable firewalld systemctl stop firewalld #centos6 关闭防火墙命令 chkconfig iptables off service iptables stop以及SELinux 关闭vim/etc/selinux/configSELINUXdisabled启动httpd服务[rootlocalhost yum.repos.d]# systemctl start httpd是没有任何输出显示的我的本机ip地址是192.168.81.134通过浏览器访问这个地址显示如下页面就代表成功3.在/var/www/html创建目录[rootlocalhost html]# mkdir-pv centos/7/os/x86_64 mkdir:created directory ‘centos’ mkdir:created directory ‘centos/7’ mkdir:created directory ‘centos/7/os’ mkdir:created directory ‘centos/7/os/x86_64’4.将本地光盘挂载到上步创建的目录中去[rootlocalhost html]# mount/dev/sr0/var/www/html/centos/7/os/x86_64 mount:/dev/sr0 is write-protected,mounting read-only5.验证和使用刷新页面显示出如下所示即代表挂载成功再在自己的yum源配置文件中添加该路径[base]namebase #baseurlfile:///mnt/baseurlhttp://192.168.81.134/centos/7/os/x86_64/enabled1gpgcheck0再执行以下两个命令yum clean all #清空缓存 yum makecache #重新生成缓存为了验证是否生效我们安装几个命令试一下1.安装tree包[rootlocalhost yum.repos.d]# yum install tree显示如上图所示即代表成功。2.安装ftp包首先用命令检查是否安装了ftp无任何信息显示就代表没有安装[rootlocalhost yum.repos.d]# rpm-qa|grep vsftpd安装ftp包显示如下即代表成功3.安装lftp包使用命令[rootlocalhost yum.repos.d]# sudo yum install lftp4.安装telnet包首先先查找telnet包有哪些安装包[rootlocalhost yum.repos.d]# yum list|grep telnet telnet.x86_641:0.17-64.el7 base telnet-server.x86_641:0.17-64.el7 base安装telnet包[rootlocalhost yum.repos.d]# yum install-y telnet-server.x86_64[rootlocalhost yum.repos.d]# yum install-y telnet.x86_64六.yum命令yum命令的用法 yum[options][command][package...]显示仓库列表 yum repolist[all|enabled|disabled]显示程序包 yum list yum list[all|glob_exp1][glob_exp2][...]yum list{available|installed|updates}[glob_exp1][...]安装程序包 yum install package1[package2][...]yum reinstall package1[package2][...](重新安装)升级程序包 yum update[package1][package2][...]yum downgrade package1[package2][...](降级)检查可用升级 yum check-update 卸载程序包 yum remove|erase package1[package2][...]查看程序包information yum info[...]查看指定的特性(可以是某文件)是由哪个程序包所提供 yum provides|whatprovides feature1[feature2][...]清理本地缓存 清除/var/cache/yum/$basearch/$releasever缓存 yum clean[packages|metadata|expire-cache|rpmdb|plugins|all]搜索yum search string1[string2][...]以指定的关键字搜索程序包名及summary信息 查看指定包所依赖的capabilities yum deplist package1[package2][...]查看yum事务历史 yum history[info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]yum history yum history info6yum history undo6安装及升级本地程序包 yum localinstall rpmfile1[rpmfile2][...](用install替代)yum localupdate rpmfile1[rpmfile2][...](用update替代)包组管理的相关命令 yum groupinstall group1[group2][...]yum groupupdate group1[group2][...]yum grouplist[hidden][groupwildcard][...]yum groupremove group1[group2][...]yum groupinfo group1[...]yum的命令行选项--nogpgcheck禁止进行gpg check-y:自动回答为“yes”-q静默模式--disablereporepoidglob临时禁用此处指定的repo--enablereporepoidglob临时启用此处指定的repo--noplugins禁用所有插件----引申编写系统初始化脚本reset.sh包括别名提示符颜色yum仓库配置文件#!/bin/bash # #********************************************************************#Author:linteng #QQ:1025602981#Date:2019-09-01#FileName reset.sh #********************************************************************#decide current system os echoStart Init System,Please Waiting Some Time~~sleep2versionegrep -o [0-9] /etc/centos-release |head -n1 echo Current System Version is Centos $version echo Setting Alias.... sleep 1 cat /root/.bashrcEND alias rmrm -i alias cpcp -i alias mvmv -i alias cdnetcd /etc/sysconfig/network-scripts/ alias IPOUTifconfig | egrep -o \([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}\ | head -1 alias clsclear if [ $version -eq 7 ];then ps1\[\e[1;36m\][\u\h \W]\$\[\e[0m\] elif [ $version -eq 6 ];then ps1\[\e[1;33m\][\u\h \W]\$\[\e[0m\] else 1,1 Top ps1\[\e[1;33m\][\u\h \W]\$\[\e[0m\] else ps1\[\e[1;35m\][\u\h \W]\$\[\e[0m\] fiPS1$ps1ENDechoAlias and PS1 be Ready~echoStart Setting Yum Repository...sleep1#mount cd rom mkdir/mnt/cdrom mount/dev/sr0/mnt/cdrom mkdir/etc/yum.repos.d/bak #move system Centos repo mv/etc/yum.repos.d/*.repo /etc/yum.repos.d/bak cat /etc/yum.repos.d/bash.repoEND [base] nameCentos $version baseurlfile:///mnt/cdrom gpgcheck0 [epel] nameAliyun baseurlhttps://mirrors.aliyun.com/epel/$version/x86_64 gpgcheck1 gpgkeyfile:///mnt/cdrom/RPM-GPG-KEY-CentOS-$version END 26,5 69% gpgkeyfile:///mnt/cdrom/RPM-GPG-KEY-CentOS-$version END sleep 1 if [ $version -eq 7 ];then systemctl stop firewalld systemctl disable firewalld elif [ $version -eq 6 ];then service iptables stop chkconfig iptables off else echo Please Manual Stop Firewall echo Init System Over unset version