Linux系统会给我们提供许多的服务,这些服务并没有直接安装在我们的系统中,而是在我们的镜像iso中,我们通过搭建yum源,来将我们所需的服务软件安装。本地的yum源,只能我们自己在里面下载软件,那么如果我们要给多台机器安装软件,我们该怎样利用yum源,更快的实现目标?还有我们该如何搭建共享的网络yum源?
一、本地yum源的搭建
在这里建议大家在虚拟机中先搭建yum源,熟悉操作后,可以在真机里面搭建,本文在虚拟机中进行yum源的搭建。
1.准备工作
(1)虚拟机网络配置
虚拟机与真机不再同一网段,是不能远程复制的,因此,我们为了方便之后的工作,先设定虚拟机的ip地址,如果不太会设置ip地址,可查看Linux入门之网络的配置这一文章。
vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##网络配置设定
(2)远程复制镜像
获得一个与本机系统一致的系统镜像,由于我们是在虚拟机中做实验,我们需要通过远程下载,将镜像iso文件拷贝过来,如果对远程下载有疑问,可以到“Linux入门之企业中的sshd服务管理”这一文章中查看相关操作。
scp root@ip地址:文件具体位置 存放位置 ##远程下载文件
由于我们在虚拟机创建时,内存容量设置较小,导致我们的镜像文件没有空间存放,难道我们的实验不能继续下去了吗?
如果大家遇到这样的问题,我们可以通过光盘设备,来拷贝镜像,具体操作如下:
virt-manager命令打开虚拟机管理器,设置光盘设备必须在关机的情况下执行,关闭需要做实验的虚拟机,选择添加硬件设备AddHardware,在Storage中设备类型选择光盘设备,同时制定镜像文件的路径,然后打开虚拟机。
我们可以在虚拟机的桌面看到一个光盘图标的文件,这个文件表明我们已成功的将镜像做成光盘拷贝到虚拟机中。
2.挂载镜像文件
df ##查看挂载文件
由于镜像文件太大,内存不够,我们以光盘设备挂载为例。通过df命令,我们可以看到光盘设备被直接挂载到临时挂载点上。
通过以下命令将光盘设备挂载到我们指定的挂载位置
mount /xxx/xxxx.iso 挂载位置 ##将镜像文件挂载到指定位置
mount /dev/cdrom 挂载位置 ##将装着镜像文件的光盘设备挂载到指定位置
3.yum仓库信息的编辑
cd /etc/yum.repos.d/
vim /etc/yum.repos.d/yum.repo ##文件名称必须以repo结尾
[westos] ##仓库名称
name=westos ##对软件源的描述
baseurl=file:///westos ##网络安装源
gpgcheck=0 ##不检测gpgkey
enabled=1 ##此安装源语句块生效
设定yum仓库的名称与本地yum源的链接
4.测试yum源是否搭建成功
yum clean all ##清除原有yum源的信息
yum repolist ##列出仓库信息,如果仓库信息为0,则证明yum源搭建失败
二、共享型yum源的部署
共享型yum源,顾名思义,该yum源可以被不同的用户或系统访问到,我们可以利用共享yum源来找到自己需要的软件或服务。部署共享yum源的前提是,需要开启httpd服务。如果使用systemctl start httpd命令,系统没有该服务,我们需要通过之前搭建的本地yum源安装该项服务。
1.准备工作
systemctl start httpd ##开启httpd服务
systemctl stop firewalld ##关闭防火墙
systemctl enable httpd ##开机启动httpd服务
systemctl disable firewalld ##开机不启动防火墙
systemctl mask firewalld ##锁住防火墙与上一条命令类似
在共享目录下创建目录,用于挂载镜像
2.镜像的挂载
mount /xxx/xxxx.iso /var/www/html/xxx ##将镜像挂载到指定位置
mount /dev/cdrom /var/www/html/xxx ##将光盘设备挂载到指定位置
vim /etc/yum.repos.d/yum.repo ##文件名称必须以repo结尾
[westos] ##仓库名称
name=westos ##对软件源的描述
baseurl=http://172.25.254.165/westos ##网络安装源
gpgcheck=0 ##不检测gpgkey
enabled=1 ##此安装源语句块生效
注意:该链接在其他虚拟机浏览器中要能访问到iso中的目录
3.设定永久挂载
vim /etc/rc.d/rc.local
mount /dev/cdrom /var/www/html/xxx ##配置文件中写入挂载命令
chmod 755 /etc/rc.d/rc.local ##在系统开机时会自动执行此脚本
通常我们使用vim命令编辑文件后,文件的权限为664,如果要将它变成可执行文件,同时不让其他人修改此文件,我们需要将该文件的权限设置成755。
4.测试
通过该链接(网络源地址)可以访问到共享安装源
三、yum命令介绍
搭建好yum源,那么有什么相关命令来对仓库中的软件进行管理呢?以下是yum命令的详细解说。
yum clean all ##清除原有yum缓存
yum repolist ##列出仓库信息
通常我们使用该命令来检测yum仓库是否搭建成功,如果仓库信息不为0,则证明仓库搭建成功。有些时候我们会搭建多个yum仓库,通过该命令也可以看到每个仓库中包含哪些仓库名以及该仓库的id、大小等
yum list software ##查看软件
用于查看软件的信息,主要包括安装状态、版本、安装包等信息
yum list all ##查看所有软件
通过此命令,我们可以看到yum仓库中包含的所有软件,包括已安装的和未安装的软件。
yum list available ##列出可安装的软件
yum list installed ##列出已安装的软件
yum reinstall software ##重新安装
【yum reinstall】命令用于软件的重新安装,我们在系统中,误删了某一文件导致服务或软件不能使用,我们可以通过【yum search】命令查找到包含该文件的软件安装包,重新安装。
yum info software ##查看软件信息
查看某一软件的详细信息,如适用系统、版本、大小、认证信息等
yum search software ##根据软件信息查找软件
我们只知道该软件中的某一文件或命令时,可以通过【yum search】命令进行查找。
yum remove software ##卸载,如果保存该软件的配置文件,可以通过rm -fr彻底删除
软件的安装与卸载是最常用的命令,在卸载时,这些软件也会在我们系统中产生大量的信息,在删除时要注意的是,该软件在系统中的配置信息是否也要删除。
yum whatprovides file ##根据文件找出包含此文件的软件
yum history ##查看系统中软件管理信息
yum history info 数字 ##对该数字为id的信息进行显示
查看某一条历史记录的详细信息
yum groups list ##列出软件组
通过Application进入software管理界面,我们可以看到不同的类别下包含多个不同的软件组,我们可以通过它查看软件和安装软件。
yum groups info ##查看软件组的信息
命令查看软件组的信息,其中+代表可以安装的软件
yum groups install sfgroup ##安装软件组
yum groups remove sfgroup ##卸载软件组,与软件卸载方式一致
四、rpm命令介绍
rpm -i ##安装
rpm -v ##显示过程
rpm -h ##hash加密
rpm --nodeps ##忽略依赖性
我们在安装第三方软件时,因为没有搭建yum仓库,软件的依赖关系需要一个一个的解决,我们可以先通过忽略依赖性来对软件进行安装,安装后在对依赖性进行处理。
rpm -q ##查看软件
【-q】命令只能查看软件,不能查看软件包
rpm -ql ##查看软件在系统中的安装文件路径
rpm -qlp ##查看未安装的软件包在系统中如果安装后产生文件的路径
rpm -qa ##查看所有软件
通过qa命令和管道符“|”我们可以将想要查找的软件过滤出来
rpm -qd ##查看软件的帮助文件
rpm -qc ##查看软件的配置文件
rpm -qf ##根据某个文件找出包含该文件的软件安装包
rpm --force ##强行安装软件
rpm -e ##卸载软件
如果该软件存在相关的依赖软件,若不同时删除依赖软件,系统会报错
rpm -Kv ##检查软件包是否被篡改
Linux系统的图形界面简单,从而提高了它的安全性,一些非法分子就会通过第三方软件,来对Linux系统进行攻击,要避免攻击,我们就需要在软件安装前,对rpm安装包进行检测,查看是否被篡改或者查看它是不是流氓软件。
rpm --scripts ##查看脚本