YUM 与 NFS
yum客户端配置:
仓库公共配置文件: /etc/yum.conf
每个仓库配置文件 : /etc/yum.repos.d/*.repo
yum 依赖性关系数据库 指向路径不正确
yum主配置文件:
/etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录, $basearch代表硬件架构,$releasever系统版本比如7
keepcache=0 //是否保存缓存 0代表不保存,1代表保存
debuglevel=2 //调试级别(0-10),默认为2
logfile=/var/log/yum.log //日志文件位置
exactarch=1 //是否允许不同版本的rpm安装
obsoletes=1 //这是一个update的参数,是否允许旧版本的运行
gpgcheck=1 //是否验证GPG(GNU Private Guard)密钥,1表示验证
plugins=1 //是否允许插件,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
yum仓库配置文件:
/etc/yum.repos.d/*.repo
系统内默认的yum仓库,是centos官方的yum源(国外源),需要连通外网才可以使用
baseurl配置方式:
本地源 本地目录 file://
FTP源 FTP服务 ftp://
网络源 http:// https://
baseurl指向路径:
#阿里云
https://mirrors.aliyun.com/centos/$releasever/
#腾讯云
https://mirrors.cloud.tencent.com/centos/$releasever/
#华为云
https://repo.huaweicloud.com/centos/$releasever/
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/
更新源:http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
日志文件:/var/log/yum.log
yum命令:
命令 不加关键字 加入关键词、软件包、软件包组
yum list 显示所有可用包 单个的可安装包
yum info 显示所有可用包的信息 单个具体的信息
yum search \ 模糊查找所有的相关信息
yum whatprovides \ 精确查找
yum install \ 安装具体软件包
yum update 所有软件升级,更新内核 具体软件升级
yum upgrade 只更新软件包,但不更新内核 具体软件更新
yum remove \ 卸载具体软件
yum history 查看当前yum操作历 \
yum history info \ 加序号列出某次事务的详细信息
yum history undo \ 加序号卸载序号里安装的软件
yum history redo \ 加序号重新执行序号里的操作
包组:
命令 不加关键字 加入关键词、软件包、软件包组
yum grouplist 显示所有可用包组显示 具体的包组
yum groupinfo 显示所有的包组具体信息 显示具体的包组的具体信息
yum groupinstall \ 安装具体软件包组
yum group update 所有包组升级 具体包组升级
yum groupremove \ 卸载具体包组软件
软件仓库提供方式:
本地目录:file://绝对路径
FTP服务:ftp://ip地址/站点里的路径
HTTP服务:http://域名或者ip地址/站点里的路径
最小安装没有net-tools
搭建本地yum仓库:
挂载光盘: /dev/sr0 /dev/cdrom 后者是前者的软链接
mount /dev/sr0 /mnt
df -Th
切换/etc/yum.repo.d/移走或删除自带仓库文件
cd /etc/yum.repos.d
ls
mkdir backup
mv * .repo backup
新建yum仓库文件
vim local.repo
vim local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
清理缓存安装软件:
yum clean all
yum makecache
搭建在线仓库:(http方式)
切换到/etc/yum.repo.d/下,移走或删除仓库文件
cd /etc/yum.repo.d
mkdir backup
mv *.repo backup
ls
建立在线仓库
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
这个指令就是在/etc/yum.repos.d/下建立了文件名为CentOS-Base.repo 设置了baseurl 为后面的网址
清理缓存安装软件:
yum clean all
yum makecache
http方式搭建云仓库
安装vftpd服务:
yum install vftpd -y
服务端切换到/var/ftp/新建子目录centos,并将光驱挂载到centos目录下(也可以将光驱内的所有文件包复制到centos目录下)。
cd /var/ftp
ls
mkdir cemtos
mount /dev/ssr0 ./centos
ls ./centos
服务器开启vsftpd 服务,关闭防火墙和selinux
systemctl start vsftpd
systemctl stop firewalld
setenforce 0
客户端安装ftp程序,检测ftp是否正常
yum install ftp -y
ftp 服务端IP
客户端编写yum仓库文件
cd /etc/yum.repos.d
ls
mkdir backup
mv *.repo backup
ls
vim ftp.repo
[ftp]
name=ftp
baseurl=ftp:// 服务端IP地址/centos
enabled=1
gpgcheck=0
清理yum缓存,建立元数据,测试使用yum 能否安装软件包
yum clean all && yum makecache
yum install httpd -y
搭建本地epel源仓库
但实际工作中,公司内网常常无法连接外网,这时可以提前搭建本地epel源仓库,即在一台可连通外网的服务器中提前下载好epel源的所有软件包,编写好仓库文件后,在离线的情况下也可以使用yum安装软件包。
之后其他主机可以通过http方式或ftp方式使用服务端的epel源仓库。
安装epel源,下载epel源所有软件包
yum install epel-release
mkdir centos7
reposync -r epel -p /centos7/ &
ls /centos7
安装createrepo,使用createrepo创建元数据
yum -y install createrepo
createrepo -v /centos7/epel
cd /centos7/epel
ls
切换到/etc/yum.repos.d目录,移走默认仓库文件,编写新的仓库文件
cd /etc/yum.repos.d/
ls
mkdir backup
mv *.repo backup
ls
vim epellocal.repo
命令方式生成仓库文件:
1、外网环境搭建 wget -O /etc/yum.repos.d/name.repo(自定义以repo结尾的文件名) 源路径
2、内网环境搭建 yum-config-manager --add-repo=file:// yum-config-manager --add-repo=ftp://
下载依赖包到本地(但不安装)
yum install --downloadonly +软件名称 --downloaddir=指定rpm包存放路径
文件共享服务 NFS
基于TCP/IP 传输的网络文件系统协议,
NFS特点:
采用TCP/IP传输网络文件
安全性低
简单易操作
适合局域网环境
FTP是普通文件的传输协议,NFS是文件系统,操作系统内核管理。
原理
NFS软件:nfs-utils 2049/tcp rpcbind 111/tcp
NFS服务主要进程:
rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
rpc.lockd 非必要,管理文件锁,避免同时写出错
rpc.statd 非必要,检查文件一致性,可修复文件
配置文件:
位置:/etc/exports
参数 作用
ro 只读
rw 读写
sync 同步写入。同时将数据写入到内存与硬盘中,保证不丢失数据
async 异步写入。优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
root_squash 当NFS客户端以root访问时,映射为NFS服务器的匿名用户
no_root_quash 当NFS客户端以root访问时,映射为NFS服务器的root用
all_squash 无论NFS客户端使用什么身份登录,都映射为NFS服务器的匿名用户
no_all_squash(默认) 访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
anonuid=< UID> 指定匿名访问用户的本地用户UID,默认为nfsnobody(65534)
anongid=< GID> 指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534)
exportfs 命令可用于管理 nfs
exportfs -v : 查看本机所有nfs共享目录,及其详细信息
exportfs -r : 重新读取配置文件,重新加载配置
showmount -e : 查看本机发布的NFS共享目录
showmount -e 192.168.72.10 : 查看服务器192.168.72.10提供的共享目录
NFS共享存储服务的操作步骤
服务端:关闭防火墙
systemctl stop firewalld
setenforce 0
安装nfs-utils和r-pcbind软件包
yum intstall nfs-utils rpcbind -y
mkdir /share
touch /share/f1.txt
编辑配置文件 nfs
vim /etc/exports
/share 共享网段/24
启动服务,查看nfs信息
systemctl start nfs
systemctl start rpcbind
showmount -e
exportfs -v
客服端设置
rpm -q rpcbind
rpm -q nfs-utils
mount 192.168.92.10:/share /mnt
df -Th
查看共享目录的文件
ls /mnt
测试:在服务端的共享目录中新建文件f2,观察客户端能否查看到
服务端:
cd /share
touch f2
ls
客户端:
ls /mnt
启动服务后,可以使用 "ss -ntuap | grep 111" 命令查看端口是否已开启,以便确认服务是否正常启动了。
使用mount命令只是临时挂载,如果想要将NFS共享目录永久挂载到本地,需要修改配置文件/etc/fstab。挂载参数为:defaults,_netdev。
但如果在本机配置文件/etc/fstab中写入了永久挂载,之后服务端取消了对本机的NFS共享,那么本机重启时会出现 “CRTL-D” 报错,此时需要进入但用户模式,编辑/etc/fstab,将NFS共享目录的挂载信息删除。
强制卸载 NFS:umount -lf 挂载设备/挂载点
如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。这个时候直接使用umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载
最小安装很多服务都没有提供
依赖包不兼容 跟新最新
init 6 重启 防止不支持热插拔
当前目录无法退出 ,需要先退出挂载目录
nfsnobody相对于其他用户是其他用户 需要两个都赋予权限