Linux中如何搭建YUM服务

什么是yum,有何作用?

YUM,yellow Updater Modified

  • 为客户机集中提供软件仓库,基于红帽RPM安装包构建
  • 能够自动解决软件安装依赖关系
  • 简单说就是linux的应用商店

实验环境

  • CentOS7
  • 在虚拟机上使用VMNAT 8模式
  • 配好IP地址,能够跟物理机ping通

敲起来

准备软件仓库

首先,挂载CentOS7光盘

[root@svr7 ~] ls  /dev/cdrom   // 查看光驱设备
/dev/cdrom
[root@svr7 ~] mkdir  /dvd   // 创建dvd目录
[root@svr7 ~] ls  /dvd   //查看创建的dvd目录
[root@svr7 ~] mount  /dev/cdrom   /dvd/   //将光盘挂载到创建的dvd目录下
[root@svr7 ~] ls /dvd   //查看挂载是否成功 看dvd目录下是否有挂载文件
[root@svr7 ~] ls /dvd/Packages   //查看dvd目录下软件包目录

[root@svr7 ~] mkdir  -p  /repo/cos7dvd   //创建仓库目录
[root@svr7 ~] ls  /repo/cos7dvd/    //查看创建是否成功
[root@svr7 ~] cp  -r  /dvd/*  /repo/cos7dvd/   //复制dvd下所有文档到仓库

确认仓库数据

[root@svr7 ~] ls /repo/cos7dvd/   //查看仓库数据
CentOS_BuildTag  LiveOS
EFI              Packages
EULA             repodata
GPL              RPM-GPG-KEY-CentOS-7
images           RPM-GPG-KEY-CentOS-Testing-7
isolinux         TRANS.TBL

为yum设置软件源

[root@svr7 ~] mkdir /etc/yum.repos.d/oldrepo   //在仓库下创建一个目录
[root@svr7 ~] mv /etc/yum.repos.d/*.repo  /etc/yum.repos.d/oldrepo/   //将仓库中所有.repo移动到oldrepo中
[root@svr7 ~] ls /etc/yum.repos.d/oldrepo/   //查看是否移动成功
[root@svr7 ~] yum-config-manager  --add-repo file:/ // repo / cos7dvd   //建立配置文件
[root@svr7 ~] vim /etc/yum.repos.d/yum.repo   //修改配置文件
[yum]    # 仓库标识,随意起一个名
name=yum    # 仓库描述信息
baseurl=file:// /repo/cos7dvd    # 指定服务端位置
enabled=1    # 本文件是否生效   1代表生效
gpgcheck=0    # 是否检测红帽签名信息   0代表不检测
[root@svr7 ~] yum repolist   #列出仓库信息

清理yum缓存数据

[root@svr7 ~] yum  clean  all   // 清除缓存
[root@svr7 ~] yum  repolis   // 列出仓库信息
# 为了提高检索数据,yum会在本机缓存数据
# 当软件源地址发生变化时,需要检索仓库时,需要清除缓存,才能生效

软件安装与查询

[root@ svr7 ~] yum -y install  httpd   //安装httpd
[root@ svr7 ~] yum -y install  sssd   //安装sssd
[root@ svr7 ~] yum -y install  bind-chroot   //安装bin-chroot
[root@ svr7 ~] yum -y install  maridb-server   //安装maridb-server

[root@svr7 ~] yum list firefox   //查看firefox软件是否安装
已安装的软件包
firefox.x86_64     45.4.0-1.el7.centos     @ anaconda
[root@ svr7 ~] yum info firefox   //查看软件详细信息

[root@ svr7 ~] yum provides /usr/bin/hostname   //查看hostname指令由哪个软件包产生
[root@svr7 ~] yum provides */guestmount   //模糊搜索哪个路径下有  /guestmount

卸载软件

[root@svr7 ~] yum remove httpd   //卸载软件
[root@svr7 ~] yum list httpd   //查看httpd还是否存在
[root@svr7 ~] yum -y reinstall httpd   //重新安装httpd服务

部署FTP服务

FTP通信解析

  • 基于C/S架构的文档下载/上传通信
  • 服务端:支持FTP协议的下载/上传资源提供程序
  • 客户端:与服务端通信实现文档下载/上传功能的控制程序

FTP控制连接使用的端口为21
FTP数据连接的建立
服务端主动:从20端口连接客户端
服务器被动:在随机端口等待客户端来连接

FTP用户

  • 匿名访问
    登录名为ftp或anonymous 密码任意
  • 验证访问
    直接使用linux服务器的系统用户,需要输入正确密码
    在高级应用中可以使用数据库中的虚拟用户访问

部署及访问FTP服务

[root@svr7 ~] yum -y install vsftpd   //安装提供FTP服务的软件
[root@svr7 ~] yum info vsftpd  #查看软件详细信息
[root@svr7 ~] systemctl restart vsftpd   #重启服务
[root@svr7 ~] systemctl enable vsftpd    #设置开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@svr7 ~] firefox ftp://192.168.4.7   //测试访问
#  匿名用户显示为/var/ftp目录内容,本地系统用户显示该用户家目录的内容
[root@svr7 ~] ls /var/ftp/   //查看目录是否存在
[root@svr7 ~] touch /var/ftp/anon.txt   //目录下创建anon文档
[root@svr7 ~] ls /var/ftp/   //查看文档是否创建成功
[root@svr7 ~] firefox ftp://192.168.4.7   //访问ftp

[root@svr7 ~] id xxx    //查询是否有xxx用户
[root@svr7 ~] ls /home/xxx/   //查看xxx的家目录
[root@svr7 ~] touch /home/xxx/xxx.txt   //在xxx用户家目录下创建文档
[root@svr7 ~] ls /home/xxx/   //查看文档是否创建成功
[root@svr7 ~] firefox ftp://xxx:123456@192.168.4.7
#  格式  firefox ftp://用户名:密码@自己的IP地址

利用物理机访问FTP服务

  • 虚拟机跟物理机能够ping通
  • 选择VMNAT 8模式
[root@svr7 ~] systemctl  stop  firewalld    //立即关闭防火墙
[root@svr7 ~] systemctl  disable  firewalld   //永久关闭防火墙
Removed symlink /etc/systemd/system/dbus- org.fedoraproject.FirewallD1.service.
 Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

[root@svr7 ~] getenforce   //查看当前SELinux状态
[root@svr7 ~] setenforce  0     //当前使SELinux失效
[root@svr7 ~] vim  /etc/selinux/config  //开机禁用,下一次开机生效
SELINUX=disabled
# 修改第一个SELINUX

最后

最近时间太少,来不及挂图片,大家就将就一下看吧
这个呢纯属个人笔记的延伸
有什么不严谨不对的地方希望大家指出,好便及时更正
由于路径的双斜杠跟文本编辑的语法可能有些冲突,颜色上可能有所差异
这个适合有点linux基础的看,不会linux的话看起来会有些吃力

大体思路:挂载---搭建仓库---设置软件源---安装需要的软件包---卸载---搭建FTP---root用户测试访问FTP---普通用户访问FTP