yum搭建和使用
搭建yum(本地yum源)
作用:自动解决依赖关系安装软件
服务:自动解决依赖关系安装软件
执行流程: yum命令—–》配置文件—–》软件包仓库
本地Yum仓库:本机构建软件仓库,为自己提供服务
服务端(本机): 1.众多的软件(Packages) 2.仓库数据文件(repodata) 3.FTP协议 或 http协议
本地Yum仓库:服务端需要有光盘内容即可
客户端(本机):指定服务端位置
仓库配置:/etc/yum.repos.d/.repo
错误的文件会影响正确的文件
客户端文件配置内容:
–[源名称] :自定义名称,具有唯一性
–name:本软件源的描述字串
–baseurl:指定YUM服务端的URL地址
–enabled:是否启用此频道
–gpgcheck:是否验证待安装的RPM包
–gpgkey:用于RPM软件包验证的密钥文件
光盘源yum仓库
CentOS 7的挂载
将光驱设备挂载到/iso/linux目录,以/iso/linux目录作为其访问点,
]# mkdir -p /iso/linux
]# mount /dev/cdrom /iso/linux
mount: /iso/linux: WARNING: device write-protected, mounted read-only.
利用/iso/linux目录提供光盘内容作为软件源,构建本地Yum仓库
]# ls /iso/linux/
]# rm -rf /etc/yum.repos.d/
]# ls /etc/yum.repos.d/
]# vim /etc/yum.repos.d/dvd.repo
[haha] #自定义名字,具有唯一性
name=haha #此软件源的描述(名字)
baseurl=file:///iso/linux #指定YUM服务端的URL地址
enabled=1 #是否启用此频道(1启用、0不启用)
gpgcheck=0 #是否验证待安装的RPM包(1是、0否)
blkid /dev/cdrom #查看光驱文件设备类型
]#vim /etc/fstab
/dev/cdrom /iso/linux iso9660 defaults 0 0 #开机自动挂载
]# yum repolist -v #列出仓库信息
]# rpm -q httpd #查看httpd是否安装
]# yum -y install (vim,bash-completion) #安装软件包vim,tab
红帽 8和CentOS 8的挂载
将光驱设备挂载到/iso/linux目录,以/iso/linux目录作为其访问点,
]# mkdir -p /iso/linux
]# mount /dev/cdrom /iso/linux
mount: /iso/linux: WARNING: device write-protected, mounted read-only.
利用/iso/linux目录提供光盘内容作为软件源,构建本地Yum仓库
]# ls /iso/linux/
]# rm -rf /etc/yum.repos.d/*
]# ls /etc/yum.repos.d/
]# vim /etc/yum.repos.d/dvd.repo
[base] #自定义名字,具有唯一性
name=base #此软件源的描述(名字)
baseurl=file:///iso/linux/BaseOS #指定YUM服务端的URL地址
enabled=1 #是否启用此频道(1启用、0不启用)
gpgcheck=0 #是否验证待安装的RPM包(1是、0否)
[App]
name=App
baseurl=file:///iso/linux/AppStream
enabled=1
gpgcheck=0
blkid /dev/cdrom #查看光驱文件设备类型
]#vim /etc/fstab
/dev/cdrom /iso/linux iso9660 defaults 0 0 #开机自动挂载
]# yum repolist -v #列出仓库信息
]# rpm -q httpd #查看httpd是否安装
]# yum -y install httpd #安装软件包httpd
]# systemctl restart httpd #启动httpd服务
自定义yum源
将自己下载的RPM包构建为仓库
第一阶段 tools.tar.gz
由真机将tools.tar.gz传递到虚拟机A的/root目录下
减压数据包
[root@svr7 ~]# ls /root
[root@svr7 ~]# tar -xf /root/tools.tar.gz -C / #自己做的多个软件包压缩成的包
[root@svr7 ~]# ls /
[root@svr7 ~]# ls /tools/
[root@svr7 ~]# ls /tools/other/
生成仓库数据文件
[root@svr7 ~]# createrepo /tools/other/ #生成仓库数据文件
[root@svr7 ~]# ls /tools/other/
搭建yum仓库
[root@svr7 ~]# vim /etc/yum.repos.d/mydvd.repo
[mydvd]
name=centos7
baseurl=file:///mydvd
enabled=1
gpgcheck=0
[rpm] #唯一标识
name=myrpm
baseurl=file:///tools/other #指定Yum仓库的路径
enabled=1
gpgcheck=0
[root@svr7 ~]# yum repolist
[root@svr7 ~]# yum -y install sl
[root@svr7 ~]# yum -y install cmatrix
网络源yum仓库
软件仓库组成: 1.众多的软件包 2.仓库数据文件网络
Yum仓库:利用服务提供软件仓库内容
采用web服务方式提供网络Yum仓库
没有web服务的服务器:
虚拟机A:构建Web服务器
[root@svr7 ~]# yum -y install httpd
[root@svr7 ~]# systemctl restart httpd
[root@svr7 ~]# systemctl enable httpd
[root@svr7 ~]# ls /var/www/html/
[root@svr7 ~]# mkdir /var/www/html/dvd
[root@svr7 ~]# mount /dev/cdrom /var/www/html/dvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 ~]# ls /var/www/html/dvd
[root@svr7 ~]# firefox http://192.168.4.7/dvd
虚拟机B:书写Yum配置文件
[root@pc207 ~]# vim /etc/yum.repos.d/mydvd.repo
[myweb]
baseurl=http://192.168.4.7/dvd
gpgcheck=0
[root@pc207 ~]# yum repolist
有web服务的服务器上:
虚拟机A:构建高级的Web服务器
[root@svr7 ~]# vim /etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80>
ServerName www..com
DocumentRoot /webroot
</VirtualHost>
<VirtualHost *:80>
ServerName www.baidu.com
DocumentRoot /myweb
</VirtualHost>
<Directory "/webroot">
Options Indexes #允许访问目录下的子目录内容
Require all granted
</Directory>
<Directory "/myweb">
Require all granted
</Directory>
[root@svr7 ~]# mkdir /webroot
[root@svr7 ~]# mkdir /myweb
[root@svr7 ~]# echo wo shi > /webroot/index.html
[root@svr7 ~]# echo wo shi myweb > /myweb/index.html
[root@svr7 ~]# mkdir /webroot/dvd
[root@svr7 ~]# mount /dev/cdrom /webroot/dvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 ~]# ls /webroot/dvd
[root@svr7 ~]# systemctl restart httpd
虚拟机B:书写Yum配置文件
[root@pc207 ~]# vim /etc/yum.repos.d/mydvd.repo
[myweb]
baseurl=http://192.168.4.7/dvd
gpgcheck=0
[root@pc207 ~]# yum repolist
采用FTP服务方式提供网络Yum仓库
虚拟机A
[root@svr7 ~]# yum -y install vsftpd
[root@svr7 ~]# systemctl restart vsftpd
[root@svr7 ~]# systemctl enable vsftpd
[root@svr7 ~]# mkdir /var/ftp/dvd
[root@svr7 ~]# mount /dev/cdrom /var/ftp/dvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 ~]# ls /var/ftp/dvd
虚拟机B:书写Yum配置文件
[root@pc207 ~]# vim /etc/yum.repos.d/mydvd.repo
[myweb]
baseurl=ftp://192.168.4.7/dvd
gpgcheck=0
[root@pc207 ~]# yum repolist
Yum的使用
安装(install、reinstal)
格式:yum -y install 软件名
用 install 安装后可以 reinstall 强制重新覆盖安装
安装软件 install reinstall(强制重新安装)
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# rpm -q httpd
卸载 (remove)
卸载软件 remove
[root@localhost ~]# yum remove gcc
[root@localhost ~]# yum remove httpd
查询(list、search、provides)
list 精准查询(系统、仓库)
查看系统中那个软件产生该数据(包含仓库中未安装的)
[root@localhost ~]# yum list ftp #查询仓库是否有ftp软件
可安装的软件包 #表示当前系统没有安装该软件
ftp.x86_64 0.17-67.el7 nsd2010
[root@localhost ~]# yum list httpd
search 模糊查询包含就算(系统、仓库)
查看系统中那个软件产生该数据(包含仓库中未安装的)

[root@localhost ~]# yum search ftp #包含ftp就匹配
provides 精准查询 (系统)
查看已经安装的那个软件产生的该数据(针对对系统已经安装的)
]# yum provides /usr/bin/hostname
]# yum provides /etc/passwd
]# yum provides */guestmount (查询那个软件包在任何路径下产生的该数据)
]# rpm -qf /usr/bin/hostname
清空缓存(clean)
[root@localhost ~]# yum clean all #删除缓存数据清空缓存
加载yum包信息(repolist)
[root@localhost ~]# yum repolist #显示以配置的源
生成仓库数据文件
[root@localhost ~]# createrepo /tools/other/ #生成仓库数据文件
RPM软件包简介
RPM Package Manager
由红帽公司提出,RedHat、SUSE等系列采用
建立集中数据库,记录软件包安装/卸载等变化信息,分析软件包依赖关系
RPM包文件名特征
–软件名-版本信息.操作系统.硬件架构.rpm firefox-52.7.0-1.el7.centos.x86_64.rpm
软件名:firefox软件包名:firefox-52.7.0-1.el7.centos.x86_64.rpm
RPM包的一般安装位置(分散)
文件类别 默认安装位置
普通执行程序 /usr/bin/ 、/bin/
服务器程序、管理工具 /usr/sbin/ 、/sbin/
配置文件 /etc/ 、/etc/软件名/
日志文件 /var/log/、/var/log/软件名/
程序文档、man帮助手册页 /usr/share/doc/ 、/usr/share/man/
软件信息查询
格式:rpm 选项 RPM包文件…
选项:
-q (查询软件是否安装)
-qa(当前系统中所有已安装的软件包)
-ql(查询软件安装了哪些内容(安装清单))
-qi(查询软件信息)
-qf(查询某个目录/文件是哪个RPM包带来的)
查询软件(参数软件名)
]# rpm -qa #当前系统中所有已安装的软件包
]# rpm -qa | grep firefox
]# rpm -qa | wc -l #统计已经安装的软件个数
]# rpm -q firefox #查看firefox是否安装
firefox-52.7.0-1.el7.centos.x86_64
]# rpm -q httpd
未安装软件包 httpd
]# rpm -q bash
bash-4.2.46-30.el7.x86_64
]# rpm -qi firefox #查询软件信息
]# rpm -ql firefox #查询软件安装了哪些内容(安装清单)
]# rpm -ql firefox | less
查询某个目录/文件是哪个RPM包带来的
格式:rpm -qf [文件路径]…
即使目标文件被删除,也可以查询
[root@localhost ~]# which vim #查询命令对应的程序文件
/usr/bin/vim
[root@localhost ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-4.el7.x86_64
[root@localhost ~]# rpm -q vim-enhanced
vim-enhanced-7.4.160-4.el7.x86_64
查询软件包(参数为软件包名)
]# rpm -q vsftpd #查询vsftpd软件是否安装
未安装软件包 vsftpd
]# ls /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
查询软件包的安装清单
]# rpm -qpl /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
查询软件包信息
]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
导入红帽签名信息
]# rpm –import /mnt/RPM-GPG-KEY-CentOS-7查询软件包信息]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
安装RPM软件
格式:rpm -i RPM包文件…
•辅助选项
-v:显示细节信息
-h:以#号显示安装进度
]# rpm -q vsftpd #查询当前的系统是否安装了该软件
未安装软件包 vsftpd
]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
]# rpm -q vsftpd #查询当前的系统是否安装了该软件
vsftpd-3.0.2-22.el7.x86_64
卸载RPM软件
格式:rpm -e RPM包文件…
•辅助选项
-v:显示细节信息
-h:以#号显示安装进度
]# rpm -evh vsftpd #卸载软件
]# rpm -q vsftpd #查询当前的系统是否安装了该软件
未安装软件包 vsftpd
解决依赖关系
先安装/卸载要求的包
如果RPM包齐全但比较多,可以用通配符 *
忽略依赖关系(不推荐)
可能会导致软件运行异常
辅助选项 –nodeps
常见依赖关系的报错:
[root@localhost ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-61.el7.x86_64.rpm
错误:依赖检测失败:
bind = 32:9.9.4-61.el7 被 bind-chroot-32:9.9.4-61.el7.x86_64 需要

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/164663.html