赞
踩
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系。并且所有软件包由集中的Yum软件仓库提供,一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
不同系统的软件安装方式及扩展名
系统类型 | 文件类型(扩展名) | 软件包安装方式 |
---|---|---|
RHEL、CentOS | .rpm | yum |
Ubuntu、Debian | .deb | apt |
RPM软件包的来源
构建CentOS 7软件仓库:
在软件仓库中加入非官方RPM包组
createrepo -g 软件包目录 依赖关系索引表文件的所在目录
-g:指定依赖关系索引表文件的所在目录
本地yum源仓库只能给本机使用
配置方式
beseurl=file://......
配置过程
首先在本地挂载镜像后将.repo
后缀的文件进行备份,然后编写配置文件,最后清理yum缓存并更新就可以测试了。具体过程如下:
[root@host ~]# mount /dev/sr0 /mnt #把光盘挂载到/mnt目录下(前提虚拟机是光盘挂载) [root@host ~]# df -Th #查看挂载情况 文件系统 类型 容量 已用 可用 已用% 挂载点 devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 1.9G 13M 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda2 xfs 35G 5.4G 30G 16% / tmpfs tmpfs 378M 12K 378M 1% /run/user/42 tmpfs tmpfs 378M 0 378M 0% /run/user/0 /dev/sr0 iso9660 4.4G 4.4G 0 100% /mnt [root@host ~]#cd /etc/yum.repos.d/ #进入yum源仓库 [root@host yum.repos.d]# mkdir repo.bak #新建备份文件夹 [root@host yum.repos.d]# ls CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-CR.repo CentOS-Media.repo CentOS-x86_64-kernel.repo CentOS-Debuginfo.repo CentOS-Sources.repo repo.bak [root@host yum.repos.d]# mv *.repo repo.bak/ #将含有.repo的文件放进备份文件夹中 [root@host yum.repos.d]# ls repo.bak [root@host yum.repos.d]# vim local.repo #配置本地yum源 [local] #仓库类别,本地唯一,用于区分不同yum源 name=local #仓库名称 baseurl=file:///mnt #指定URL 访问路径为光盘挂载目录 enabled=1 #开启此yum源,此为默认项,1启用yum源,0禁用yum源 gpgcheck=0 #不验证软件包的签名 [root@host yum.repos.d]# ls local.repo repo.bak [root@host yum.repos.d]# yum clean all && yum makecache #清理yum缓存并更新 [root@host yum.repos.d]# yum install -y tomcat #测试本地yum安装 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ... tomcat-servlet-3.0-api.noarch 0:7.0.76-15.el7 xalan-j2.noarch 0:2.7.1-23.el7 xerces-j2.noarch 0:2.11.0-17.el7_0 xml-commons-apis.noarch 0:1.4.01-16.el7 xml-commons-resolver.noarch 0:1.2-15.el7 完毕!
ftp源yum仓库能给所有能连接此ftp服务器的用户使用(注意要关闭防火墙)
配置方式
beseurl=ftp:// .....
配置过程
首先安装vsftpd服务端软件(默认已经安装了,然后创建并制作yum远程ftp站点的源,接着启动ftp服务,然后创建远程yum源的配置文件,最后用yum安装软件验证结果。
[root@host ~]# systemctl stop firewalld #关闭防火墙 [root@host ~]# setenforce 0 #关闭selinux服务 [root@host ~]# cd /mnt/Packages/ #进入rpm软件包目录 [root@host Packages]# ls vsftpd* #查找vftpd软件包 vsftpd-3.0.2-28.el7.x86_64.rpm [root@host Packages]# rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm #安装vsftp软件包 警告:vsftpd-3.0.2-28.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY 准备中... ################################# [100%] 软件包 vsftpd-3.0.2-28.el7.x86_64 已经安装 [root@host Packages]# systemctl start vsftpd #启动vsftpd服务 [root@host Packages]# cd /var/ftp/ #匿名用户访问的根目录 [root@host ftp]# mkdir /var/ftp/centos7 #创建挂盘挂载目录 [root@host ftp]# mount /dev/sr0 /centos7 #镜像挂载 [root@host ~]# df -h #查看挂载情况 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda2 36G 4.7G 32G 14% / tmpfs 378M 0 378M 0% /run/user/0 /dev/sr0 4.4G 4.4G 0 100% /var/ftp/centos7 tmpfs 378M 12K 378M 1% /run/user/42 [root@host ftp]# cd centos7/ [root@host centos7]# ls #查看文件,repodata文件存储了软件包的依赖表 CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7 EFI images Packages RPM-GPG-KEY-CentOS-Testing-7 EULA isolinux repodata TRANS.TBL [root@host centos7]# systemctl status vsftpd #查看vsftppd启动状态 ● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled) Active: active (running) since 五 2023-04-21 09:38:27 CST; 5h 13min ago Process: 2284 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS) Main PID: 2287 (vsftpd) Tasks: 1 CGroup: /system.slice/vsftpd.service └─2287 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf 4月 21 09:38:27 host systemd[1]: Starting Vsftpd ftp daemon... 4月 21 09:38:27 host systemd[1]: Started Vsftpd ftp daemon. [root@host centos7]#vim /etc/yum.repos.d/centos7.repo #创建远程yum源的配置文件 [ftp] #仓库类别 name=ftp #仓库名称(说明) baseurl=ftp://192.168.145.15/centos7 #指定URL,访问路径为光盘挂载目录,因为ftp的根目录在/var/ftp,所以直接写centos7 enabled=1 #启用此软件仓库 gpgcheck=1 #验证软件包的签名 gpgkey=ftp://192.168.145.15/centos7/RPM-GPG-KEY-CentOS-7 #GPG 公钥文件的位置 [root@host yum.repos.d]# ls ftp.repo repo.bak [root@host yum.repos.d]# yum clean all && yum makecache #清理yum缓存并更新 已加载插件:fastestmirror, langpacks 正在清理软件源: ftp Cleaning up list of fastest mirrors Other repos take up 188 M of disk space (use --verbose for details) 已加载插件:fastestmirror, langpacks Determining fastest mirrors ftp | 3.6 kB 00:00:00 (1/4): ftp/group_gz | 153 kB 00:00:00 (2/4): ftp/primary_db | 3.3 MB 00:00:00 (3/4): ftp/filelists_db | 3.3 MB 00:00:01 (4/4): ftp/other_db | 1.3 MB 00:00:00 元数据缓存已建立 [root@host yum.repos.d]# yum install -y httpd #测试 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 httpd.x86_64.0.2.4.6-95.el7.centos 将被 安装 --> 正在处理依赖关系 httpd-tools = 2.4.6-95.el7.centos,它被软件包 httpd-2.4.6-95.el7.centos.x86_64 需要 --> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-95.el7.centos.x86_64 需要 --> 正在检查事务 ---> 软件包 httpd-tools.x86_64.0.2.4.6-95.el7.centos 将被 安装 ---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ===================================================================================== Package 架构 版本 源 大小 ===================================================================================== 正在安装: httpd x86_64 2.4.6-95.el7.centos ftp 2.7 M 为依赖而安装: httpd-tools x86_64 2.4.6-95.el7.centos ftp 93 k mailcap noarch 2.1.41-2.el7 ftp 31 k 事务概要 ===================================================================================== 安装 1 软件包 (+2 依赖软件包) 总下载量:2.8 M 安装大小:9.6 M Downloading packages: 警告:/var/cache/yum/x86_64/7/ftp/packages/httpd-tools-2.4.6-95.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY httpd-tools-2.4.6-95.el7.centos.x86_64.rpm 的公钥尚未安装 (1/3): httpd-tools-2.4.6-95.el7.centos.x86_64.rpm | 93 kB 00:00:00 (2/3): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:00 (3/3): httpd-2.4.6-95.el7.centos.x86_64.rpm | 2.7 MB 00:00:00 ------------------------------------------------------------------------------------- 总计 15 MB/s | 2.8 MB 00:00 从 ftp://192.168.145.15/centos7/RPM-GPG-KEY-CentOS-7 检索密钥 #这里可以看到使用ftpyum源安装软件 导入 GPG key 0xF4A80EB5: 用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" 指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 来自 : ftp://192.168.145.15/centos7/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction 警告:RPM 数据库已被非 yum 程序修改。 正在安装 : mailcap-2.1.41-2.el7.noarch 1/3 正在安装 : httpd-tools-2.4.6-95.el7.centos.x86_64 2/3 正在安装 : httpd-2.4.6-95.el7.centos.x86_64 3/3 验证中 : httpd-tools-2.4.6-95.el7.centos.x86_64 1/3 验证中 : mailcap-2.1.41-2.el7.noarch 2/3 验证中 : httpd-2.4.6-95.el7.centos.x86_64 3/3 已安装: httpd.x86_64 0:2.4.6-95.el7.centos 作为依赖被安装: httpd-tools.x86_64 0:2.4.6-95.el7.centos mailcap.noarch 0:2.1.41-2.el7 完毕!
配置方式
beseurl=http://.....
beseurl=https://.....
通过网络在线使用软件
下载链接:https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
[root@host ~]# wget -0 /etc/yum.repos.d/CentOS7-Base-tsinghua.repo https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/ [root@host ~]# vim CentOS7-Base-tsinghua.repo #编辑清华 yum 网络源 [base] name=CentOS-$releasever - Base baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
下载链接: http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@host ~]# wget -0 /etc/yum.repos.d/CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo [root@host ~]# vim CentOS7-Base-163.repo #编辑163 yum 网络源 [base] name=CentOS-$releasever - Base - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus - 163.com baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
下载地址: http://mirrors.aliyun.com/repo/Centos-7.repo
[root@host ~]# wget -0 /etc/yum.repos.d/CentOS7-Base-aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@host ~]# vim CentOS7-Base-aliyun.repo #编辑阿里云yum 网络源 [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://mirrors.aliyun.com/epel/7/$basearch failovermethod=priority enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-debuginfo] name=Extra Packages for Enterprise Linux 7 - $basearch - Debug baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=0 [epel-source] name=Extra Packages for Enterprise Linux 7 - $basearch - Source baseurl=http://mirrors.aliyun.com/epel/7/SRPMS failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=0
http://ftp.sjtu.edu.cn/centos
#上海交大,但服务器位于北京,中国教育网网络中心, 北方用户与教育网用户推荐,速度飞快。
http://centos.ustc.edu.cn,
#中国科技大学,服务器位于合肥。 南方用户推荐。
http://mirrors.sohu.com/
#sohu的开源镜像服务器,服务器位于山东省联通。 速度飞快,全国用户推荐,经常用FireFox下载CD镜像
首先安装yum-plugin-priorities
优先级插件,接着创建本地源,然后在本地源仓库里添加在线源参数,接着在两个源仓库中添加priority
参数设置优先级。
[root@host yum.repos.d]# yum install yum-plugin-priorities #安装优先级软件包 [root@host yum.repos.d]# rpm -qa | grep yum-plugin-priorities yum-plugin-priorities-1.1.31-54.el7_8.noarch [root@host ~]#vim /etc/yum.repos.d/centos7.repo [ftp] name=ftp baseurl=ftp://192.168.145.15/centos7 enabled=1 gpgcheck=1 gpgkey=ftp://192.168.145.15/centos7/RPM-GPG-KEY-CentOS-7 priority=1 #设置优先级,数值越小,优先级越高 [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://mirrors.aliyun.com/epel/7/$basearch failovermethod=priority enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 priority=2 #设置优先级,数值越小,优先级越高 [root@host yum.repos.d]# yum install -y nginx #测试优先级,ftp软件包中没有nginx,则会使用在线源 已加载插件:fastestmirror, langpacks, priorities Loading mirror speeds from cached hostfile epel/x86_64/primary_db | 7.0 MB 00:00:30 10 packages excluded due to repository priority protections 正在解决依赖关系 --> 正在检查事务 ---> 软件包 nginx.x86_64.1.1.20.1-10.el7 将被 安装 --> 正在处理依赖关系 nginx-filesystem = 1:1.20.1-10.el7,它被软件包 1:nginx-1.20.1-10.el7.x86_64 需要 --> 正在处理依赖关系 libcrypto.so.1.1(OPENSSL_1_1_0)(64bit),它被软件包 1:nginx-1.20.1-10.el7.x86_64 需要 --> 正在处理依赖关系 libssl.so.1.1(OPENSSL_1_1_0)(64bit),它被软件包 1:nginx-1.20.1-10.el7.x86_64 需要 --> 正在处理依赖关系 libssl.so.1.1(OPENSSL_1_1_1)(64bit),它被软件包 1:nginx-1.20.1-10.el7.x86_64 需要 --> 正在处理依赖关系 nginx-filesystem,它被软件包 1:nginx-1.20.1-10.el7.x86_64 需要 --> 正在处理依赖关系 libcrypto.so.1.1()(64bit),它被软件包 1:nginx-1.20.1-10.el7.x86_64 需要 --> 正在处理依赖关系 libssl.so.1.1()(64bit),它被软件包 1:nginx-1.20.1-10.el7.x86_64 需要 --> 正在检查事务 ---> 软件包 nginx-filesystem.noarch.1.1.20.1-10.el7 将被 安装 ---> 软件包 openssl11-libs.x86_64.1.1.1.1k-5.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ===================================================================================== Package 架构 版本 源 大小 ===================================================================================== 正在安装: nginx x86_64 1:1.20.1-10.el7 epel 588 k 为依赖而安装: nginx-filesystem noarch 1:1.20.1-10.el7 epel 24 k openssl11-libs x86_64 1:1.1.1k-5.el7 epel 1.5 M 事务概要 ===================================================================================== 安装 1 软件包 (+2 依赖软件包) 总下载量:2.1 M 安装大小:5.3 M Downloading packages: (1/3): nginx-filesystem-1.20.1-10.el7.noarch.rpm | 24 kB 00:00:00 (2/3): nginx-1.20.1-10.el7.x86_64.rpm | 588 kB 00:00:02 (3/3): openssl11-libs-1.1.1k-5.el7.x86_64.rpm | 1.5 MB 00:00:06 ------------------------------------------------------------------------------------- 总计 327 kB/s | 2.1 MB 00:06 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : 1:openssl11-libs-1.1.1k-5.el7.x86_64 1/3 正在安装 : 1:nginx-filesystem-1.20.1-10.el7.noarch 2/3 正在安装 : 1:nginx-1.20.1-10.el7.x86_64 3/3 验证中 : 1:nginx-filesystem-1.20.1-10.el7.noarch 1/3 验证中 : 1:nginx-1.20.1-10.el7.x86_64 2/3 验证中 : 1:openssl11-libs-1.1.1k-5.el7.x86_64 3/3 已安装: nginx.x86_64 1:1.20.1-10.el7 作为依赖被安装: nginx-filesystem.noarch 1:1.20.1-10.el7 openssl11-libs.x86_64 1:1.1.1k-5.el7 完毕!
软件仓库类型 | 命令格式 | 支持的访问数量 | 优缺点 |
---|---|---|---|
本地源 | beseurl=file:// … | 一对一 | 安装快,但是软件数量少,版本低 |
ftp源 | beseurl=ftp:// … | 一对多 | 安装快,但是软件数量少,版本低 |
在线源 | beseurl=http://… beseurl=https://… | 一对多 | 软件数量多,版本新,但是安装前需要更新缓存,安装速度较慢。在线源最好使用国内镜像,传输快。 |
默认情况下,yum在安装软件包后会自动清理软件包,软件包没有被缓存下来,需要修改配置文件/etc/yum.conf
,使yum不再清理软件包,即可得到所有下载的软件包。
[root@centos1 yum.repos.d]# ls ftp.repo repo.bak [root@centos1 yum.repos.d]# cd /var/cache/ [ root@centos1 cache]# ls abrt-di cups gdm ibus ldconfig man realmd yum coolkey fontconfig httpd krb5rcache libvirt Package Kit tomcat [root@centos1 cache]# cd yum/ [root@centos1 yum]# pwd /var/ cache/ yum [root@centos1 yum]# lsx86_64 [root@centos1 yum]# cd x86_64/7/ [root@centos1 7]#ls base epel extras ftp timedhosts timedhosts.txt updates [root@host 7]# pwd #YUM下载软件包的缓存位置以及清除缓存的文件位置 /var/cache/yum/x86_64/7 [root@host ~]# vim /etc/yum.conf #修改缓存配置文件 [main] cachedir=/var/cache/yum/$basearch/$releasever #缓存目录位置 keepcache=1 #0代表不保留缓存,1代表保留缓存。所以此处修改为1,默认为0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=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
downloadonly可以仅下载所需软件和及其依赖包,大大解决了无外网安装时找依赖包的问题,同时也可以在一台可以上外网的主机执行。
[root@host yum.repos.d]# yum install -y --downloadonly tomcat --downloaddir=/opt/pkg #downloadonly设置只下载软件包,downloaddir指定下载目录 [root@host yum.repos.d]# cd /opt/pkg [root@host pkg]# ls apache-commons-collections-3.2.1-22.el7_2.noarch.rpm apache-commons-daemon-1.0.13-7.el7.x86_64.rpm apache-commons-dbcp-1.4-17.el7.noarch.rpm apache-commons-logging-1.1.2-7.el7.noarch.rpm apache-commons-pool-1.6-9.el7.noarch.rpm avalon-framework-4.3-10.el7.noarch.rpm avalon-logkit-2.1-14.el7.noarch.rpm ecj-4.5.2-3.el7.x86_64.rpm geronimo-jms-1.1.1-19.el7.noarch.rpm geronimo-jta-1.1.1-17.el7.noarch.rpm javamail-1.4.6-8.el7.noarch.rpm log4j-1.2.17-16.el7_4.noarch.rpm tomcat-7.0.76-15.el7.noarch.rpm tomcat-el-2.2-api-7.0.76-15.el7.noarch.rpm tomcat-jsp-2.2-api-7.0.76-15.el7.noarch.rpm tomcat-lib-7.0.76-15.el7.noarch.rpm tomcat-servlet-3.0-api-7.0.76-15.el7.noarch.rpm xalan-j2-2.7.1-23.el7.noarch.rpm xerces-j2-2.11.0-17.el7_0.noarch.rpm xml-commons-apis-1.4.01-16.el7.noarch.rpm xml-commons-resolver-1.2-15.el7.noarch.rpm
单纯的使用yumdownloader 只会下载指定的RPM软件包,安装时候所需要的一些依赖不会被下载。如果要下载依赖包加上--resolve
参数。如果要指定下载目录,加上--destdir
参数。
[root@host ~]# yumdownloader --destdir=/opt/package httpd --resolve 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile local | 3.6 kB 00:00:00 (1/2): local/group_gz | 153 kB 00:00:00 (2/2): local/primary_db | 3.3 MB 00:00:00 --> 正在检查事务 ---> 软件包 httpd.x86_64.0.2.4.6-95.el7.centos 将被 安装 --> 正在处理依赖关系 httpd-tools = 2.4.6-95.el7.centos,它被软件包 httpd-2.4.6-95.el7.centos.x86_64 需要 --> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-95.el7.centos.x86_64 需要 --> 正在检查事务 ---> 软件包 httpd-tools.x86_64.0.2.4.6-95.el7.centos 将被 安装 ---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装 --> 解决依赖关系完成 (1/3): httpd-tools-2.4.6-95.el7.centos.x86_64.rpm | 93 kB 00:00:00 (2/3): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:00 (3/3): httpd-2.4.6-95.el7.centos.x86_64.rpm | 2.7 MB 00:00:00 [root@host ~]# cd /opt/package/ [root@host package]# ls httpd-2.4.6-95.el7.centos.x86_64.rpm mailcap-2.1.41-2.el7.noarch.rpm httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
yum -y install 软件名 #安装、升级软件包,“-y”选项表示自动确认
yum -y remove 软件名 #卸载软件包,可自动解决其依赖关系
yum -y update 软件名 #升级软件包
yum list #查询软件包列表
yum list installed #查询系统中已安装的软件包
yum list available #查询仓库中尚未安装的软件包
yum list updates #查询可以升级版本的软件包
yum search vim
yum list|grep "vim"
查询软件包
yum info 软件名 #查询软件包的描述信息
yum info httpd
yum search [all] 关键词 #根据某个关键词来查找相关的软件包
yum search all httpd
yum whatprovides 命令 #查询命令属于哪个软件包
yum whatprovides netstat
yum install 包名 -y --downloadonly
yum reinstall -y bash --downloadonly #下载已安装过的rpm包
yum install 包名 -y --downloadonly --downloaddir=/tmp/ #下载RPM包到指定目录
yum history #查看历史记录来找到它所依赖的包,然后删除。
yum history list #列出最近的历史
yum history info id #列出某次的详细信息,
yum history undo id #撤销某次更改
yum history help #查看帮助
yum history redo #加入序号重新执行序号里的操作
NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 sun 公司开发。通过使用 NFS协议,客户机可以像访问本地目录一样访问远程 NFS 服务器中的共享资源。NFS 也是 NAS存储设备必然支持的一种协议,但是因为没有用户认证机制,而且数据在网络上明文传输,安全性很差,所以一般只能在局域网中使用。
NFS服务使用的是2049端口号。由于文件系统非常复杂,因此NFS服务还需要依赖于RPC服务去启动额外的端口,RPC服务(rpcbind)使用的是111端口号。使用NFS服务和RPC服务需要需安装nfs-utils
、rpcbind
这两个软件包。 NFS的共享配置文件存放在/etc/exports
目录下。
NFS的主要功能是通过网络让不同的主机之间可以彼此共享文件和目录。例如下图:
NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。其就相当于windows里面共享文件,然后其他主机把这个共享文件映射成了本地盘使用一样。
NFS服务端有两个依赖服务,分别是RPC(rpcbind)服务和NFS服务。服务端需要先启动RPC(rpcbind)服务并开启111端口,然后启动NFS服务,并向RPC(rpcbind)服务注册端口信息,接着服务端将需要共享文件挂载到服务端创建的共享目录。此时客户端想要访问服务端进行实现获取共享文件也会需要启动RPC(rpcbind)服务,并使用RPC(rpcbind)服务向服务端的RPC(rpcbind)服务请求服务端的NFS端口,服务端的RPC((rpcbind)服务反馈NFS端口信息给客户端。最后客户端通过TCP/IP网络协议获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。
共享存储服务的类型
系统类型 | 程序 |
---|---|
windows共享存储服务 | cifs |
linux共享存储服务 | nfs |
设备类别
存储类型 | 使用的设备及服务 |
---|---|
块存储 | 硬盘、LVM、RAID |
文件存储 | NFS |
对象存储 | OSS |
常用格式
<共享目录绝对路径> 客户端地址(nfs共享参数)
共享目录绝对路径可以是一个或多个,若是多个共享目录,则使用多个命令行表示。
客户端地址可以是主机名、IP地址、网段地址,允许使用*
、?
通配符。多个地址用空格分隔。
常用选项及描述
常用选项 | 描述 |
---|---|
rw | 该主机对该共享目录有读写权限 |
ro | 该主机对该共享目录只有读权限 |
sync | 同步写入到内存与硬盘中,最大限度保证数据安全 |
root_squash | 当客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户(默认) |
no_root_squash | 当客户机用root用户访问该共享文件夹时赋予本地root权限 |
all_squash | 客户机上的任何用户访问该共享目录时都映射成匿名用户或用户组 |
anonuid=XXX | 指定NFS服务器/etc/passwd文件中匿名用户UID |
anongid=XXX | 指定NFS服务器/etc/group文件中匿名用户GID |
sync | 资料同步写入到内存与硬盘中(占用大量的I/O) |
async | 资料会先暂存于内存中,必要时写入硬盘 |
insecure | 允许从这台机器过来的非授权访问 |
subtree_check | 如果共享/usr/bin之类的子目录时,强制NFS检查其父目录的权限(默认) |
no_subtree_check | 如果共享/usr/bin之类的子目录时,不检查其父目录权限,这样可以提高效率 |
wdelay | 如果多个用户要写入NFS目录,则归组写入(默认) |
no_wdelay | 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置 |
hide | 在NFS共享目录中不共享其子目录 |
no_hide | 共享NFS目录的子目录 |
secure | NFS通过1024以下的安全TCP/IP端口发送 |
insecure | NFS通过1024以上的端口发送 |
服务端设置
安装软件,启动服务
[root@host ~]# yum -y install nfs-utils rpcbind #安装nfs和rpcbind 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 软件包 1:nfs-utils-1.3.0-0.68.el7.x86_64 已安装并且是最新版本 软件包 rpcbind-0.2.0-49.el7.x86_64 已安装并且是最新版本 无须任何处理 [root@host ~]# systemctl start rpcbind #优先启动rpcbind,否则客户端NFS服务可能会找不到服务端的NFS [root@host ~]# systemctl start nfs #启动nfs [root@host ~]# systemctl enable rpcbind #开机自动启动 rpcbind 服务 [root@host ~]# systemctl enable nfs #开机自动启动 nfs 服务 Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service. [root@host ~]# systemctl is-enabled rpcbind #查看是否设置开机自启成功 enabled [root@host ~]# systemctl is-enabled nfs #查看是否设置开机自启成功 enabled [root@host ~]# systemctl stop firewalld #关闭防火墙 [root@host ~]# etenforce 0 #关闭selinux
配置共享文件
[root@host ~]# cd /opt/
[root@host opt]# ls
a.txt package rh
[root@host opt]# ls package/ #查看共享目录package/
httpd-2.4.6-95.el7.centos.x86_64.rpm
mailcap-2.1.41-2.el7.noarch.rpm
httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
[root@host opt]# vim /etc/exports #NFS的配置文件,默认文件内容为空(无任何共享)
/opt/package 192.168.145.0/24(rw) #设置共享文件目录允许网段是192.168.145.0/24的主机可读可写
[root@host opt]# systemctl restart nfs #重启nfs服务,刷新配置文件
[root@host opt]# showmount -e #查看当前共享文件情况
Export list for host:
/opt/package 192.168.145.0/24
注意:如果服务端正在挂载nfs共享存储目录,重启nfs服务可能会不生效,有延迟,甚至卡死,可用下面的命令发布新的nfs配置(共享目录)
exportfs -avr
客户端配置
挂载使用
[root@host ~]# rpm -q rpcbind #查看rpcbind是否安装 rpcbind-0.2.0-49.el7.x86_64 [root@host ~]# systemctl stop firewalld.service #关闭防火墙 [root@host ~]# setenforce 0 #关闭selinux [root@host ~]# showmount -e 192.168.145.30 #在客户端查看当前服务端共享文件情况 Export list for 192.168.145.30: /opt/package 192.168.145.0/24 [root@host ~]# cd /opt [root@host opt]# mkdir /data #创建挂载目录/data [root@host opt]# mount -t nfs 192.168.145.30:/opt/package /data #将共享文件挂载到data目录下,-t nfs可以省略 [root@host opt]# df -h #查看挂载情况 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda2 36G 4.8G 32G 14% / tmpfs 378M 12K 378M 1% /run/user/42 tmpfs 378M 0 378M 0% /run/user/0 /dev/sr0 4.4G 4.4G 0 100% /mnt 192.168.145.30:/opt/package 35G 5.4G 30G 16% /data [root@host opt]# cd /data/ [root@host data]# ls #查看共享文件内容 httpd-2.4.6-95.el7.centos.x86_64.rpm mailcap-2.1.41-2.el7.noarch.rpm httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
若出现挂载卡死可以强制解挂umount /data -lf
测试权限
在客户端默认以root用户访问文件时,用户会降权称为匿名用户
[root@host data]# touch 123
touch: 无法创建"123": 权限不够
需要在服务端赋予共享文件777权限
[root@host opt]# chmod 777 package/
[root@host opt]# ll
总用量 4
-rw-r--r--. 1 root root 2 4月 20 18:25 a.txt
drwxrwxrwx. 2 root root 139 4月 21 19:56 package
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
在客户端再次测试权限,,可以查看到在客户端以root用户创建的文件123后被文件123被降权成匿名用户创建的
[root@host data]# touch 123
[root@host data]# ll
总用量 2908
-rw-r--r--. 1 nfsnobody nfsnobody 0 4月 21 22:13 123
-rw-r--r--. 1 root root 2846172 10月 15 2020 httpd-2.4.6-95.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 95136 10月 15 2020 httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 31264 7月 4 2014 mailcap-2.1.41-2.el7.noarch.rpm
[root@host data]#
若不想降权可在服务端的NFS配置文件设置
在客户端解挂载
[root@host ~]# umount /data/
在服务端修改NFS配置文件,添加no_root_squash,重启服务
[root@host opt]# vim /etc/exports
/opt/package 192.168.145.0/24(rw,no_root_squash)
[root@host opt]# systemctl restart nfs
在客户端测试
[root@host ~]# mount -t nfs 192.168.145.30:/opt/package /data [root@host ~]# ls /data/ 123 httpd-tools-2.4.6-95.el7.centos.x86_64.rpm httpd-2.4.6-95.el7.centos.x86_64.rpm mailcap-2.1.41-2.el7.noarch.rpm [root@host ~]# cd /data/ [root@host data]# ll 总用量 2908 -rw-r--r--. 1 nfsnobody nfsnobody 0 4月 21 22:13 123 -rw-r--r--. 1 root root 2846172 10月 15 2020 httpd-2.4.6-95.el7.centos.x86_64.rpm -rw-r--r--. 1 root root 95136 10月 15 2020 httpd-tools-2.4.6-95.el7.centos.x86_64.rpm -rw-r--r--. 1 root root 31264 7月 4 2014 mailcap-2.1.41-2.el7.noarch.rpm [root@host data]# touch abc [root@host data]# ll 总用量 2908 -rw-r--r--. 1 nfsnobody nfsnobody 0 4月 21 22:13 123 -rw-r--r--. 1 root root 0 4月 21 22:39 abc -rw-r--r--. 1 root root 2846172 10月 15 2020 httpd-2.4.6-95.el7.centos.x86_64.rpm -rw-r--r--. 1 root root 95136 10月 15 2020 httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。