【Linux入门】YUM与NFS概述以及配置

YUM与NFS

YUM

YUM(Yellowdog Updater, Modified)是一个开源的软件包管理器,广泛用于Linux操作系统中,特别是在Fedora、Red Hat、CentOS等发行版中。它基于RPM(Red Hat Package Manager)包管理系统,但提供了更为便捷和强大的软件包管理功能。

一、基本功能

  1. 自动解决依赖关系:YUM能够自动检查并安装软件包之间的依赖关系,确保安装的软件包能够正常工作。这大大简化了软件包的安装过程,用户无需手动解决复杂的依赖问题。
  2. 自动化安装、更新和删除:YUM提供了自动化的软件包安装、更新和删除功能。用户只需输入简单的命令行指令,即可完成这些操作,而无需手动下载和安装软件包。
  3. 软件仓库管理:YUM维护了一个集中的软件仓库,包含了大量的软件包。用户可以从这个仓库中搜索、选择和安装所需的软件包。此外,YUM还支持多个软件源,用户可以根据自己的需求添加、删除或切换软件源。
  4. 安全验证:YUM使用GPG(GNU Privacy Guard)来验证软件包的完整性和真实性,确保安装的软件包没有被篡改或恶意修改。这为用户提供了更高的安全保障。
  5. 并行下载和安装:YUM支持并行下载和安装多个软件包,大大提高了软件包的管理效率。用户可以同时安装多个软件包,而无需等待前一个软件包安装完成。

二、特点

  1. 简单易用:YUM的命令行界面简单明了,用户无需深入了解复杂的软件包管理知识即可轻松使用。通过简单的命令行指令,用户可以完成大部分的软件包管理任务。
  2. 高效快速:YUM能够自动选择下载速度最快的软件源进行软件包下载,从而提高了下载速度。同时,它支持并行下载和安装多个软件包,进一步提高了软件包的管理效率。
  3. 强大的依赖性管理:YUM能够自动解决软件包之间的依赖关系,确保安装的软件包能够正常工作。这大大减轻了用户的负担,避免了因依赖问题导致的软件包安装失败。
  4. 安全性高:YUM使用GPG来验证软件包的完整性和真实性,确保安装的软件包是安全可靠的。这为用户提供了更高的安全保障,避免了恶意软件或病毒对系统的攻击。
  5. 灵活可配置:YUM支持用户自定义配置文件,允许用户根据自己的需求进行个性化设置。用户可以添加、删除或切换软件源,以满足不同的软件包管理需求。

三、常用命令

  1. 搜索软件包yum search <软件包名>
  2. 精确查找yum whatprovides
  3. 安装软件包yum install <软件包名>
  4. 卸载软件包yum remove <软件包名>yum erase <软件包名>
  5. 升级软件包yum update <软件包名>
  6. 下载软件包yum install <软件包名>
  7. 软件包更新yum upgrade <软件包名>
  8. 列出已安装的软件包yum list installed
  9. 列出可用的软件包yum list available
  10. 列出所有的软件包yum list
  11. 清理yum缓存yum clean all
  12. 查看软件包信息yum info <软件包名>
  13. 显示具体包组的信息yum groupinfo <软件包名>
  14. 显示安装软件包所依赖的软件包yum deplist <软件包名>
使用yum下载软件包而不安装

方式一:使用yum install --downloadonly

  • 命令:yum install --downloadonly <package-name>
  • 说明:这个命令会下载指定的软件包,但不会安装它。默认情况下,下载的软件包会存放在/var/cache/yum/x86_64/<release-version>/packages/(具体路径可能因发行版、架构和配置而异)。
  • 示例:yum install --downloadonly mariadb

方式二:使用yumdownloader

  • 命令:yumdownloader --destdir=<directory> <package-name1> <package-name2> ...
  • 说明:yumdownloader是一个独立的工具,用于下载软件包而不安装它们。通过--destdir参数,你可以指定下载后存放的目录。
  • 示例:yumdownloader --destdir=/opt mariadb mariadb-server
配置yum以保留下载的软件包

默认情况下,yum在安装软件包后可能会清理下载的rpm包以节省空间。但你可以通过修改/etc/yum.conf配置文件来改变这一行为。
- 修改keepcache选项:

  • 打开/etc/yum.conf文件:vim /etc/yum.conf
  • 找到keepcache行,并将其值从0改为11表示yum在安装软件包后保留缓存的包。
  • 示例:keepcache=1
  • 注意:保留软件包缓存可能会占用大量磁盘空间,特别是如果你经常安装大量软件包的话。
yum相关的日志文件
  • /var/log/yum.log:这是yum的主要日志文件,记录了yum操作的所有活动,包括安装、更新、删除软件包等。通过查看这个日志文件,你可以了解yum操作的历史和任何可能发生的错误。
清理yum缓存
  • 清理所有缓存的软件包(但保留头文件,以便后续搜索和验证):yum clean packages
  • 清理所有缓存,包括已下载的软件包和头文件:yum clean all
其他
  • 在使用yum进行软件包管理时,请确保你的系统已经配置了正确的软件仓库(repositories),以便yum能够找到并下载所需的软件包。
  • 如果你在使用yumdownloader时遇到“No matching packages to download”的错误,可能是因为你的仓库中没有找到指定的软件包,或者软件包名称拼写错误。检查你的仓库配置和软件包名称是否正确。

软件仓库的提供方式

软件仓库的提供方式主要有三种:

  1. FTP服务
    • 示例:ftp://…(注意:截图中的URL被省略了,实际使用时需要填写完整的FTP服务器地址)
    • 说明:通过FTP协议访问软件仓库,可以下载和安装所需的软件包。
  2. HTTP服务
    • 示例:http://…(同样,这里的URL也被省略了)
    • 说明:HTTP服务是另一种常见的软件仓库提供方式,用户可以通过HTTP协议访问并下载软件包。
  3. 本地目录
    • 示例:file:///… (这里的路径表示本地文件系统中的一个目录)
    • 说明:如果软件包已经下载到本地计算机上,可以直接通过本地目录的路径来访问和安装这些软件包。

RPM软件包的来源

  1. CentOS发布的RPM包集合
    • 说明:这是CentOS官方发布的软件包集合,包含了CentOS系统所需的各种软件包。
  2. 第三方组织发布的RPM包集合
    • 说明:除了官方发布的软件包外,还有许多第三方组织会发布自己的RPM包集合,这些集合可能包含了一些官方仓库中没有的软件包,或者是对官方软件包的改进版本。
  3. 用户自定义的RPM包集合
    • 说明:用户也可以根据自己的需求,将多个RPM软件包组织成一个集合,方便自己或他人安装和使用。

补充

  • 在实际使用中,用户需要根据自己的网络环境和需求,选择合适的软件仓库提供方式和软件包来源。
  • 对于FTP和HTTP服务,用户需要确保自己的计算机能够访问到相应的服务器地址。
  • 对于本地目录,用户需要确保该目录中的软件包是完整且未被篡改的。
  • 在安装软件包时,建议使用包管理器(如yum或dnf)进行安装,这样可以自动处理软件包的依赖关系,并确保系统的稳定性和安全性。
    您的描述中涵盖了多种yum仓库源的搭建方式,包括本地源、在线源、混合源以及FTP源。下面我将对这些方法进行整理,并补充一些必要的细节和步骤,以确保清晰和完整性。

YUM仓库的搭建

1. 搭建本地yum仓库

步骤

  1. 准备RPM包:首先,你需要收集你想要在本地仓库中提供的RPM包。这些可以是已经下载的、从其他系统中复制的,或者从CD/DVD等介质中提取的。
  2. 创建仓库目录:在服务器上创建一个目录来存放RPM包。例如,/var/yum/localrepo
  3. 将RPM包复制到仓库目录:使用cprsync或其他工具将RPM包复制到你的仓库目录中。
  4. 创建仓库元数据:使用createrepo命令来为你的仓库目录创建必要的元数据。安装createrepo(如果尚未安装)并运行:
    yum install -y createrepo
    createrepo /var/yum/localrepo
    
  5. 配置yum仓库文件:在客户端的/etc/yum.repos.d/目录下创建一个.repo文件,例如local.repo,并配置它指向你的本地仓库。
    [local]
    name=Local Repository
    baseurl=file:///var/yum/localrepo
    enabled=1
    gpgcheck=0
    

2. 搭建混合yum仓库(本地+在线)

步骤与上面类似,但你需要为不同的源(本地和在线)分别配置仓库文件,并确保它们的[repositoryid]是唯一的。例如:

[local]
name=Local Repository
baseurl=file:///var/yum/localrepo
enabled=1
gpgcheck=0
priority=1

[aliyun-epel]
name=Aliyun EPEL Repository
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
enabled=1
gpgcheck=0
priority=2

3. 搭建FTP yum仓库

服务端配置

  1. 安装FTP服务:如您所述,使用yum安装vsftpd
  2. 准备RPM包:将RPM包放在FTP服务的根目录下,或创建一个子目录并挂载。
  3. 配置FTP服务(可选):编辑/etc/vsftpd/vsftpd.conf以调整FTP服务的设置,如匿名访问等。
  4. 启动FTP服务systemctl start vsftpd
    客户端配置
  5. 配置yum仓库文件:在客户端的/etc/yum.repos.d/目录下创建一个.repo文件,并配置它指向FTP服务器的地址。
    [ftp-repo]
    name=FTP Repository
    baseurl=ftp://<ftp-server-ip>/centos7
    enabled=1
    gpgcheck=0
    

4. 搭建阿里云yum仓库(直接使用)

步骤

  1. 备份现有仓库文件(可选):将/etc/yum.repos.d/目录下的所有.repo文件移动到备份目录。
  2. 下载阿里云仓库配置文件:使用wget下载阿里云提供的CentOS仓库配置文件。
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    
  3. 清理缓存并测试:运行yum clean all来清理缓存,并使用yum makecache来重新生成缓存。然后尝试安装一个包来测试配置是否正确。

NFS共享存储服务

NFS(Network File System)是一种分布式文件系统协议,它允许系统在网络上与他人共享目录和文件。NFS 客户端可以像访问本地存储一样访问 NFS 服务器上的文件系统。这种机制在需要跨多个系统共享数据的环境中非常有用,比如在企业网络、数据中心或云环境中。

  • NFS(Network File System):基于TCP/IP传输的网络文件系统协议,允许客户端像访问本地目录一样访问远程服务器中的共享资源。
  • RPC(Remote Process Call):NFS依赖于RPC机制完成远程到本地的映射过程。

NFS 的主要特点

  1. 透明性:NFS 使得用户可以在不知道数据实际存储位置的情况下,通过网络访问文件。
  2. 高性能:NFS 经过了优化,以提供高性能的文件访问。然而,实际的性能取决于网络带宽、延迟和服务器性能。
  3. 跨平台:NFS 支持多种操作系统,包括 Linux、UNIX、Windows(通过第三方软件如 Samba 或 NFS 客户端)等。
  4. 安全性:NFS 提供了基本的访问控制,但没有用户认证机制,数据在网络上明文传输,因此安全性较差,一般推荐在局域网中使用。

NFS 的基本组件

  • NFS 服务器:运行 NFS 服务的计算机,负责提供共享的文件系统。
  • NFS 客户端:挂载 NFS 服务器上的文件系统并访问其文件的计算机。
  • NFS 协议:定义服务器和客户端之间通信的规则。

需要的软件包

  • nfs-utils:用于NFS共享发布和访问,默认端口号2049/tcp。
  • rpcbind:用于RPC支持,默认端口号111/tcp。

NFS配置文件

  • 文件位置/etc/exports
  • 格式共享的目录位置 客户机地址(权限选项)

权限选项

  • rw:允许读写
  • ro:只读
  • sync:同步写入到内存与硬盘中
  • no_root_squash:客户机以root身份访问时赋予本地root权限(默认是root_squash
  • root_squash:客户机用root用户访问时,映射成匿名用户
  • all_squash:所有访问用户都映射为匿名用户或用户组
  • async:数据先保存在内存缓冲区中,必要时才写入磁盘
  • subtree_check:若输出目录是子目录,检查其父目录权限(默认)
  • no_subtree_check:不检查父目录权限,提高效率

服务端设置步骤

  1. 安装软件包
    yum -y install nfs-utils rpcbind
    
  2. 设置共享目录
    • 创建目录并设置权限
    • 编辑/etc/exports文件添加共享条目
  3. 启动服务
    systemctl start rpcbind
    systemctl start nfs
    systemctl enable rpcbind
    systemctl enable nfs
    
  4. 验证服务
    • 使用ss -antp | grep rpcbind查看端口是否开启
    • 使用showmount -e查看本机发布的NFS共享目录

客户端访问步骤

  1. 安装软件包
    yum -y install nfs-utils rpcbind
    systemctl start rpcbind
    systemctl enable rpcbind
    
  2. 查看服务端共享目录
    showmount -e <服务器IP>
    
  3. 手动挂载共享目录
    mkdir /myshare
    mount <服务器IP>:/共享目录路径 /myshare
    mount | grep myshare  # 或使用 df -Th 确认挂载
    
  4. 设置自动挂载
    编辑/etc/fstab文件添加自动挂载条目,如:
    <服务器IP>:/共享目录路径 /myshare nfs defaults,_netdev 0 0
    
  5. 卸载NFS共享
    • 正常情况下使用umount /myshare
    • 如果NFS服务中断导致无法正常卸载,使用umount -lf /myshare强制卸载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值