文章目录
YUM与NFS
YUM
YUM(Yellowdog Updater, Modified)是一个开源的软件包管理器,广泛用于Linux操作系统中,特别是在Fedora、Red Hat、CentOS等发行版中。它基于RPM(Red Hat Package Manager)包管理系统,但提供了更为便捷和强大的软件包管理功能。
一、基本功能
- 自动解决依赖关系:YUM能够自动检查并安装软件包之间的依赖关系,确保安装的软件包能够正常工作。这大大简化了软件包的安装过程,用户无需手动解决复杂的依赖问题。
- 自动化安装、更新和删除:YUM提供了自动化的软件包安装、更新和删除功能。用户只需输入简单的命令行指令,即可完成这些操作,而无需手动下载和安装软件包。
- 软件仓库管理:YUM维护了一个集中的软件仓库,包含了大量的软件包。用户可以从这个仓库中搜索、选择和安装所需的软件包。此外,YUM还支持多个软件源,用户可以根据自己的需求添加、删除或切换软件源。
- 安全验证:YUM使用GPG(GNU Privacy Guard)来验证软件包的完整性和真实性,确保安装的软件包没有被篡改或恶意修改。这为用户提供了更高的安全保障。
- 并行下载和安装:YUM支持并行下载和安装多个软件包,大大提高了软件包的管理效率。用户可以同时安装多个软件包,而无需等待前一个软件包安装完成。
二、特点
- 简单易用:YUM的命令行界面简单明了,用户无需深入了解复杂的软件包管理知识即可轻松使用。通过简单的命令行指令,用户可以完成大部分的软件包管理任务。
- 高效快速:YUM能够自动选择下载速度最快的软件源进行软件包下载,从而提高了下载速度。同时,它支持并行下载和安装多个软件包,进一步提高了软件包的管理效率。
- 强大的依赖性管理:YUM能够自动解决软件包之间的依赖关系,确保安装的软件包能够正常工作。这大大减轻了用户的负担,避免了因依赖问题导致的软件包安装失败。
- 安全性高:YUM使用GPG来验证软件包的完整性和真实性,确保安装的软件包是安全可靠的。这为用户提供了更高的安全保障,避免了恶意软件或病毒对系统的攻击。
- 灵活可配置:YUM支持用户自定义配置文件,允许用户根据自己的需求进行个性化设置。用户可以添加、删除或切换软件源,以满足不同的软件包管理需求。
三、常用命令
- 搜索软件包:
yum search <软件包名>
- 精确查找:
yum whatprovides
- 安装软件包:
yum install <软件包名>
- 卸载软件包:
yum remove <软件包名>
或yum erase <软件包名>
- 升级软件包:
yum update <软件包名>
- 下载软件包:
yum install <软件包名>
- 软件包更新:
yum upgrade <软件包名>
- 列出已安装的软件包:
yum list installed
- 列出可用的软件包:
yum list available
- 列出所有的软件包:
yum list
- 清理yum缓存:
yum clean all
- 查看软件包信息:
yum info <软件包名>
- 显示具体包组的信息 :
yum groupinfo <软件包名>
- 显示安装软件包所依赖的软件包:
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
改为1
。1
表示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”的错误,可能是因为你的仓库中没有找到指定的软件包,或者软件包名称拼写错误。检查你的仓库配置和软件包名称是否正确。
软件仓库的提供方式
软件仓库的提供方式主要有三种:
- FTP服务:
- 示例:ftp://…(注意:截图中的URL被省略了,实际使用时需要填写完整的FTP服务器地址)
- 说明:通过FTP协议访问软件仓库,可以下载和安装所需的软件包。
- HTTP服务:
- 示例:http://…(同样,这里的URL也被省略了)
- 说明:HTTP服务是另一种常见的软件仓库提供方式,用户可以通过HTTP协议访问并下载软件包。
- 本地目录:
- 示例:file:///… (这里的路径表示本地文件系统中的一个目录)
- 说明:如果软件包已经下载到本地计算机上,可以直接通过本地目录的路径来访问和安装这些软件包。
RPM软件包的来源
- CentOS发布的RPM包集合:
- 说明:这是CentOS官方发布的软件包集合,包含了CentOS系统所需的各种软件包。
- 第三方组织发布的RPM包集合:
- 说明:除了官方发布的软件包外,还有许多第三方组织会发布自己的RPM包集合,这些集合可能包含了一些官方仓库中没有的软件包,或者是对官方软件包的改进版本。
- 用户自定义的RPM包集合:
- 说明:用户也可以根据自己的需求,将多个RPM软件包组织成一个集合,方便自己或他人安装和使用。
补充
- 在实际使用中,用户需要根据自己的网络环境和需求,选择合适的软件仓库提供方式和软件包来源。
- 对于FTP和HTTP服务,用户需要确保自己的计算机能够访问到相应的服务器地址。
- 对于本地目录,用户需要确保该目录中的软件包是完整且未被篡改的。
- 在安装软件包时,建议使用包管理器(如yum或dnf)进行安装,这样可以自动处理软件包的依赖关系,并确保系统的稳定性和安全性。
您的描述中涵盖了多种yum仓库源的搭建方式,包括本地源、在线源、混合源以及FTP源。下面我将对这些方法进行整理,并补充一些必要的细节和步骤,以确保清晰和完整性。
YUM仓库的搭建
1. 搭建本地yum仓库
步骤:
- 准备RPM包:首先,你需要收集你想要在本地仓库中提供的RPM包。这些可以是已经下载的、从其他系统中复制的,或者从CD/DVD等介质中提取的。
- 创建仓库目录:在服务器上创建一个目录来存放RPM包。例如,
/var/yum/localrepo
。 - 将RPM包复制到仓库目录:使用
cp
、rsync
或其他工具将RPM包复制到你的仓库目录中。 - 创建仓库元数据:使用
createrepo
命令来为你的仓库目录创建必要的元数据。安装createrepo
(如果尚未安装)并运行:yum install -y createrepo createrepo /var/yum/localrepo
- 配置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仓库
服务端配置:
- 安装FTP服务:如您所述,使用
yum
安装vsftpd
。 - 准备RPM包:将RPM包放在FTP服务的根目录下,或创建一个子目录并挂载。
- 配置FTP服务(可选):编辑
/etc/vsftpd/vsftpd.conf
以调整FTP服务的设置,如匿名访问等。 - 启动FTP服务:
systemctl start vsftpd
。
客户端配置: - 配置yum仓库文件:在客户端的
/etc/yum.repos.d/
目录下创建一个.repo
文件,并配置它指向FTP服务器的地址。[ftp-repo] name=FTP Repository baseurl=ftp://<ftp-server-ip>/centos7 enabled=1 gpgcheck=0
4. 搭建阿里云yum仓库(直接使用)
步骤:
- 备份现有仓库文件(可选):将
/etc/yum.repos.d/
目录下的所有.repo
文件移动到备份目录。 - 下载阿里云仓库配置文件:使用
wget
下载阿里云提供的CentOS仓库配置文件。wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
- 清理缓存并测试:运行
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 的主要特点
- 透明性:NFS 使得用户可以在不知道数据实际存储位置的情况下,通过网络访问文件。
- 高性能:NFS 经过了优化,以提供高性能的文件访问。然而,实际的性能取决于网络带宽、延迟和服务器性能。
- 跨平台:NFS 支持多种操作系统,包括 Linux、UNIX、Windows(通过第三方软件如 Samba 或 NFS 客户端)等。
- 安全性: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
:不检查父目录权限,提高效率
服务端设置步骤
- 安装软件包:
yum -y install nfs-utils rpcbind
- 设置共享目录:
- 创建目录并设置权限
- 编辑
/etc/exports
文件添加共享条目
- 启动服务:
systemctl start rpcbind systemctl start nfs systemctl enable rpcbind systemctl enable nfs
- 验证服务:
- 使用
ss -antp | grep rpcbind
查看端口是否开启 - 使用
showmount -e
查看本机发布的NFS共享目录
- 使用
客户端访问步骤
- 安装软件包:
yum -y install nfs-utils rpcbind systemctl start rpcbind systemctl enable rpcbind
- 查看服务端共享目录:
showmount -e <服务器IP>
- 手动挂载共享目录:
mkdir /myshare mount <服务器IP>:/共享目录路径 /myshare mount | grep myshare # 或使用 df -Th 确认挂载
- 设置自动挂载:
编辑/etc/fstab
文件添加自动挂载条目,如:<服务器IP>:/共享目录路径 /myshare nfs defaults,_netdev 0 0
- 卸载NFS共享:
- 正常情况下使用
umount /myshare
- 如果NFS服务中断导致无法正常卸载,使用
umount -lf /myshare
强制卸载
- 正常情况下使用