一.软件安装包类型
1.常见软件安装包格式
源码软件 .tar.gz,.tar.bz2
优点:从功能使用的角度来讲,比rpm软件安装包更加灵活,
比如
在使用源码软件安装包的时候,可以自行选择安装软件的目录,这样操作便于后续软件的迁移。
可以将所有的软件都装在一块硬盘,这样就算后续服务器出问题了,直接将这块硬盘装在其他正常的服务器上就可以直接使用。
还有可以结合业务需求让软件启动什么功能不启动什么功能,
缺点:安装时间特别长,安装步骤多
rpm软件 .rpm
优点:安装时间短,安装步骤少。
缺点:
以rpm结尾的安装包去安装软件的时候,与该文件相配套的配置文件会按照创建这个rpm安装包作者的初始设置,分散到不同的目录中,
还有一点以rpm软件安装包的形式去安装软件的时候,这个软件带有那部分的功能这也是不能确定的,可能带有全部功能,可能带有部分功能,
如上图所示,当我们以rpm结尾的安装包去安装软件的时候,与该文件相配套的配置文件会按照创建这个rpm安装包作者的初始设置,分散到不同的目录中,
还有一点以rpm软件安装包的形式去安装软件的时候,这个软件带有那部分的功能这也是不能确定的,可能带有全部功能,可能带有部分功能,
2.rpm软件安装包的格式
光盘在/dev/目录下会有一个文件,这个文件叫做sr0
如上图所示,应该给这两个勾选上,现实生活当中就相当于是给光盘充电一样。
如上图所示,光盘上的rpm软件安装包都保存在Packages
但是光盘里软件的版本比较低,
如上图所示,的两个网站适合用来搜索需要的rpm软件安装包。
有的命令后面跟着的是软件名,有的命令后面跟着的是软件安装包名称,
如上图所示,可以使用uname -r命令来查看系统的版本,
在安装软件的时候,必须保证软件的系统平台与机器的系统版本一致,否则会出现一系列错误。
如上图所示,这样的安装包不区分系统架构,
32位系统最多能识别的内存大小是4type
64位系统最多能识别的内存大小是无限的。
二.rpm软件管理软件——rpm工具
两个管理工具:
rpm
yum/dnf
1.安装软件
rpm -ivh软件安装包名称
i是确定安装的意思
v会显示安装的过程
h会以#来显示软件安装的进度
安装dhcp软件
如上图所示,经过df -hT命令的查看发现存有很多rpm安装包的光盘已经被挂载到了/mnt/目录下。
如上图所示,使用rpm -ivh rpm软件安装包路径
此时如果不清楚软件的rpm安装包全名,可以使用Tab键来补全。
千万要注意,以后敲命令出现的信息千万要记得看明白。
在任何一个操作系统上去安装软件的时候,软件和软件之间是存在依赖关系的。
比如软件A依赖于软件B
2.查看某一个软件是否安装
如上图所示,可以使用命令rpm -q加上软件名来查看软件是否安装。
使用rpm -qa可以查看机器上所有已经安装的软件。
query 查询,all全部
如上图所示,可以使用rpm -qa | grep vim 这条命令来调出当前机器所有安装的rpm软件,然后将结果交给grep vim来进行过滤的操作。
命令本身也是文件,
3.查询软件生成的文件
如上图所示,可以使用rpm -ql 软件名称,来查看这个软件在当前机器上所生成的文件。
4.查询文件由哪个软件生成
如上图所示,可以使用which 命令来查找vim这个可执行文件的路径。
可以使用rpm -qf这条命令加上文件路径来查看这个文件是由哪个文件生成的。
5.卸载软件
如上图所示,可以使用rpm -e来卸载软件
6.更新软件
rpm -Uvh软件安装包名称
如上图所示,现在httpd这个软件的版本是2.4.6-67,并且可以联网。
如上图所示,可以使用wegt rpm软件安装包的地址名。
来从互联网上下载新的软件的rpm安装包,
这个rpm安装包的默认下载地址是当前目录,
如上图所示,当使用命令rpm -Uvh rpm软件安装包名称的时候,会发现需要依赖。
因为这是测试rpm -Uvh命令对于更新rpm软件的效果,所以这次就选择使用rpm -Uvh --nodeps rpm软件安装包名称,来忽略包与包之间的依赖关系,在实际的生产生活中,这样的操作是万万不可取的。
当因为包与包之间的依赖关系出错时,可以使用命令
三.管理rpm软件--yum工具
优势:自动解决软件的依赖关系
前提:事先配置正确的yum仓库/yum源
所谓的yum仓库就是事先告诉yum工具,所安装的软件的安装包以及所依赖的软件的安装包都在那里存着,
手写一个配置文件,通过这个配置文件来告诉yum工具来说将来我要装一个软件,这些软件安装包的存放位置。
将来可以在这个目录下去创建yum仓库,这个yum仓库的名称必须要以.repo结尾,
yum仓库的作用是告诉yum工具说我所有的软件安装包存放位置,
根据软件安装包的存放位置不同来区分yum仓库类型:
1.本地源,软件安装包的存放位置是本地系统上的一个目录。
配置本地yum源通常是出于多种原因,比如提高安装速度、减少对外部网络的依赖、增强安全性等。例如,在某些环境中,出于安全考虑,服务器可能不允许直接访问外部网络,这时就需要配置本地yum源来满足软件包的安装需求。
配置好本地yum源后,管理员就可以利用它来进行软件包的安装、更新等操作,而无需依赖外部网络。这种方式不仅提高了安全性,还能有效提升软件包管理的效率。
2.HTTP源,可以将互联网的网址来当成rpm软件安装包的位置来用,就是告诉yum工具,在安装软件的时候,去这个互联网的网址去找rpm软件安装包去。(服务器不允许上网的时候,HTTP源用不了。)
前提是机器能够正常访问互联网。
国内常见的两个HTTP源地址阿里源(阿里开源镜像站centos安装包下载_开源镜像站-阿里云 (aliyun.com))或者是网易源(网易开源镜像网站)Index of /centos/ (163.com)地址。
3.ftp源
将软件安装包都放在ftp服务器的外界访问目录中,将来可以直接将yum源地址指成ftp服务器的地址。
fpt源方便于以下应用场景:
有一台服务器,现在需要我们在这台服务器上安装软件,前提是这台服务器不允许上网,有软件安装包,可以将软件安装包上传到服务器的指定目录上,然后配置本地yum源,
但是当有多台机器的时候,我们就不能再一个一个得将软件安装包拷贝到每一个服务器的指定目录下,然后去配置本地yum仓库了,这样太慢了,
可以创建一个ftp服务器,然后将软件安装包都拷贝到ftp服务器上,然后通过ftp将这些软件安装包共享出去。
如果其他服务器要想访问ftp服务器,那么其他服务器首先要能ping通ftp服务器。
yum源就是/etc/yum.repos.d/仓库名称.repo
同时一个机器上可以同时有多个yum源,但凡有一个yum仓库出问题,yum工具在安装软件的时候有可能就会出问题。
yum工具不能安装源码软件。
四.实例——配置本地yum源指向路径/opt/software
如上图所示,该命令显示了Linux发行版的名称和版本信息。
当centos系统安装好后,机器会自带7个yum源,同时这七个yum源都是http源,
rpm软件安装包的存放地址都指向这个国外centos系统的官网。为了避免centos自带的7个yum源影响机器的配置,这时候就可以将这7个yum源进行备份。
1.备份centos自带的7个yum源,
可以将这7个yum源不以.repo结尾,或者是将这7个yum源移动到另一个创建的目录中。
如上图所示,备份centos自带的7个yum源,我是在/etc/yum.repos.d/这个目录下又创建一个新的目录,然后将这7个yum源都移动到创建的新目录中。
2.编辑本地源的配置文件
其中最上面一行写的是yum源配置文件的标识,或者叫做yum配置文件的ID。对这个ID的要求是机器中可以存放多个yum源,但是这多个yum源的ID不能有重复。
name是对这个yum源的说明信息,描述信息。
baseurl是说rpm软件安装包都在哪里存着,以file://开头表示这个yum源是一个本地源。
enabled表示是否启用这个仓库,1表示启动yum源,0表示禁用yum源。
gpgcheck表示是否启用GPG密钥,GPG密钥代表的是软件签名,1表示检测软件签名,0表示不检测软件签名。检测软件安装包是否合法。
gpgcheck=1表示的是相应目录下所有软件安装包的签名,所谓检测签名就是检测软件安装包是否合法。
这个gpgkey是指定软件的签名都在哪个文件里存放着。
如上图所示,最快的使得一个目录中有软件安装包的方法就是在这个目录上去挂载光盘,如上图所示,先使用umount解除光盘的挂载,然后再使用mount将该光盘挂载到相应的/opt/software/这个目录上。
3.清除旧的yum缓存
清除旧的yum缓存,
4.检测有效的yum仓库
如上图所示,可以使用yum repolist命令来检测当前机器上有效的yum 仓库。
可以查看到仓库的ID,仓库的描述信息,以及仓库的状态。
5.使用yum去安装一个httpd的软件
在安装软件的时候需要注意到软件安装包之间的依赖关系,在删除软件的时候同时也要注意软件安装包之间的依赖关系。
如上图所示,可以先使用rpm -e --nodeps 来忽略httpd软件rpm包之间的依赖关系。直接删除软件httpd。
如上图所示,可以使用yum工具来自动处理软件安装包之间的依赖关系,
看到界面提示想要安装软件httpd就要首先安装两个依赖,这两个依赖yum工具会在yum仓库正常的情况下,自行安装。
如上图所示,NO package ansible available表示的意思是yum源中没有我们需要的软件安装包,
这种情况下,就需要我们去重新配置一个yum源,来提供ansible的软件安装包。
五.实例——配置ftp源
机器能够从ftp服务器上下载软件的前提,是机器能够正常跟ftp服务器通信。
如上图所示,ping ftp服务器的IP地址,只有ping通。机器才能正常访问ftp服务器。
如上图所示,去编写/etc/yum.repos.d/文件名称.repo文件内容。
首先是yum源的ID,其次是这个yum仓库的描述信息,软件安装包存放地址。enabled=1表示启用该仓库,gpgcheck=0表示不检测软件安装包的签名。
如上图所示,可以使用yum clean all表示清除旧的yum缓存。
如上图所示,yum repolist是检测当前机器上的有效的yum源。以及每个有效yum源的状态。
如上图所示,发现安装ansible需要安装13个依赖。
如上图所示,可以使用rpm -q 软件名称,来查看软件是否安装,以及已经安装的软件版本。
六.配置http源,安装zabbix-server-mysql,,ntfs-3g
如上图所示,可以去阿里云开源镜像网站去找zabbix的软件安装包,
如上图所示,可以在这个Zabbix镜像的下载地址,去寻找zabbix/目录
如上图所示,在zabbix/目录中去找需要安装的zabbix软件版本,
如上图所示,是对应不同系统平台的zabbix软件安装包,
如上图所示,根据你所使用的机器的系统平台是那个系统平台再细致划分是x86-64
如上图所示,现在这个网址就是正常的了,这个网址就可以当成rpm软件安装包的存放地址。
接下来去/etc/yum.repo.d/下去创建新的yum源,
如上图所示,是对这个yum源的编写,
如上图所示,现在创建好新的yum源之后,可以使用yum clean all清除旧的yum缓存,
如上图所示,可以使用yum repolist 来检测当前机器上有效的yum 源。
如上图所示,有一个名叫zabbix45的yum源,rpm软件安装包的数量是85个。
如上图所示,发现zabbix软件安装失败的原因是缺少依赖,需要软件fping的rpm软件安装包,而恰好现在我机器上有效的三个yum仓库中谁都没有fping软件的rpm软件安装包。
此时我们就需要去创建一个新的yum源,而且这个yum源中还要有fping软件的rpm安装包。
我们有一个非常常用的http源叫做epel源,(默认是国外的一个网址,速度非常慢,国内情况下我们常使用阿里云提供的epal源)
如上图所示,是阿里云提供的epel源,可以选择7Server/
如上图所示,可以选择x86-64
如上图所示,可以将这个网址作为创建新的http类型的yum源的软件安装包的存放地址。
如上图所示,可以直接使用wget工具,
如上图所示,wget是下载的意思,-o选项是指定下载后的东西的存放地址,
这条命令的意思就是使用wget工具从阿里源那里下载epel-7.repo的仓库,然后这个仓库下载完之后被保存在/etc/yum.repos.d/epel.repo中。
如上图所示,现在这个名叫epel源的软件安装包的存放位置是阿里源的网址,这就是一个HTTP类型的yum源。
随后使用命令yum clean all来清除旧的yum缓存,
如上图所示,此时使用yum repolist 命令来检测机器上有效的yum源,会发现epel源提供了一万三千多个软件。
如上图所示,此时发现所有的依赖都有,此时可以确认安装软件zabbix-server-mysql
Linux文件系统有:
ntfs-3t软件能够帮助Linux操作系统支持ntfs文件系统。
如上图所示,windows操作系统默认支持NTFS文件系统。
如果将来将一块硬盘连接到虚拟机上而且这个硬盘还是NTFS文件系统的,
如上图所示,将这块硬盘连接到虚拟机上,
如上图所示,使用lsblk命令来查看块设备文件,发现此时机器没有监测到新插入的U盘,此时可能是U盘的USB接口和虚拟机的USB接口不一致
如上图所示,因为这块U盘的USB接口,是3.0,所以就需要将虚拟机的USB兼容性也修改为USB3.0
如上图所示,显示新的块设备文件是sdb,这块U盘上的分区是sdb1
如上图所示,blkid /dev/sdb1来查看这个硬盘分区的文件系统类型,
如上图所示,发现使用mount命令去将这个磁盘分区挂载到/mnt/下,机器会提示未知的文件系统类型。
如上图所示,帮助Linux操作系统识别NTFS文件系统的软件,ntfs-3g这个软件安装包就存放在epel.repo这个yum仓库中,
确认这个软件安装好之后,
如上图所示,此时在mount命令去挂载这个硬盘的sdb1分区会成功,
注意看系统提示,显示这个U盘在windows操作系统上没有进行安全退出。
如果机器允许访问互联网的话,就没有必要在去将光盘进行挂载,然后将挂载光盘的目录当成是一个本地源使用,
如上图所示,其实在安装centos7操作系统的时候,系统自动创建的7个yum源,就包含光盘中所有的软件安装包的存放位置,而且这7个yum源所有的软件安装包的版本都要优于光盘内部的软件安装包的版本,但是这个7个yum源都是HTTP源,具体网址都是国外的网址。
如上图所示,可以直接将这7个yum源调出来使用。
七.yum工具常用指令
1.清除yum缓存
yum clean all
2.查看有效的yum仓库
yum repolist
3.安装软件
yum install -y 软件名称 软件名称
4.卸载软件
yum remove -y 软件名称
如上图所示,可以使用rpm -q软件名称,来查看当前机器是否安装httpd软件。以及安装软件的版本信息。
如上图所示,移除软件,
5.更新软件
yum update 软件名称
6.查看yum仓库上的所有软件
yum list all可以根据需要结合管道符还有grep命令来使用
7.安装一组软件
yum groupinstall 软件组名称
8.查看软件组
如上图所示,对于软件组的名称我们应该将软件组用引号括起来。
9.利用查看命令文件找到命令对应的软件
yum provides "*bin/命令"
在这里使用通配符通过查看命令对应的文件,来查看命令对应的软件名称。
如上图所示,当使用某一个命令发现不能使用。
如上图所示,这是使用通配符的原因。
如上图所示,我们发现ifconfig命令是软件net-tools的配置文件。
如上图所示,当使用vim命令的时候发现命令不能正常使用。
如上图所示,vim工具来源于软件vim-enhanced软件
如上图所示,可以使用yum工具来安装vim-enhanced软件。
如上图所示,当某一个文件缺失的时候,可以使用yum provides 文件 ,来调查这个文件来源于哪个软件。
如上图所示,发现缺失的软件来源于软件words
这时可以直接使用yum install -y words
进行软件安装的操作。
如上图所示,centos操作系统中的Tab补全功能来自上面这个软件安装包。
八.yum的缓存功能
现在有一个服务器,需要向这个服务器上安装软件,并且这个服务器上不了网,并且这个软件安装包现有的yum源中没有,
并且这个软件的依赖还有几百项。
此时的解决方案就是从网上下载软件安装包,再将所有的软件安装包拷贝到指定的服务器上。创建一个本地的yum源进行安装软件的操作。
但是这样操作的效率低。
yum的缓存功能默认是关闭的,可以将yum的缓存功能打开,
yum的缓存功能有这两个作用:
1.第一软件会装上
2.第二这个软件的软件安装包会存在这台机器的一个本地目录上。
后续就可以将这些软件安装包发到服务器上去,然后在服务器上创建一个本地yum源,进行软件的安装操作。
从HTTP源安装软件可能网速过慢导致连接超时,进而导致软件安装失败。针对这个情况可以将yum缓存功能打开,在下载软件的同时将软件安装包缓存到机器本地目录中,方便以后在局域网范围内创建一个ftp,或者直接将软件安装包拷贝到其他机器上创建一个本地yum源。
开启yum缓存
这是yum工具的一个配置文件
如上图所示,这是使用vim编辑器打开/etc/yum.conf文件的结果。
yum缓存功能启动之后后续再装软件的时候,会自动将软件安装包缓存到/var/cache/yum/
当keepcache=0的时候yum工具的缓存功能是关闭,当keepcache=1的时候yum工具的缓存功能是打开的状态。
如上图所示,是在阿里开源镜像站中寻找的open stack软件的软件安装包。
如上图所示,此时利用这个网址创建一个HTTP类型的yum仓库。
如上图所示,在新的open stack软件安装包的yum源创建好之后,就可以使用yum install 软件名称
来进行软件的安装操作。
如上图所示,可以使用rpm -q软件名称,来查看软件是否安装成功,以及所安装软件的版本信息。
如上图所示,既然此时软件已经在yum缓存功能打开的前提下安装成功,那么这个软件的软件安装包就被缓存到了/var/cache/yum/目录下。
如上图所示,这/var/cache/yum/目录下所有的缓存信息就都是软件open stack的软件安装包。不包含其他的杂质内容。不包含其他软件的软件安装包。
此时可以使用命令find 去寻找/var/cache/yum/ 下文件名称中带有.rpm的文件。
如上图所示,可以创建一个目录,将找到的所有关于软件open stack的rpm安装包都复制到新创建的目录中。
九.rpm软件安装包存放位置能作为yum仓库的前提条件
如上图所示,在本地yum仓库中,如果机器本地的yum源能够充当软件安装包的来源的话,那么这个本地目录中必须要有文件repodata/repomd.xml这个文件存放的是rpm安装包的元数据信息。
如上图所示,我将从HTTP类型的yum源下载的open stack软件卸载干净,
如上图所示,紧接着我继续将存放open stack软件安装包来源的yum源删除干净,
如上图所示,我根据存放着全部open stack软件安装包的新创建目录/opt/open stack目录作为open stack软件安装包的来源去创建新的本地类型的yum源。
如上图所示,这是对新的本地类型的yum源所编写的文件内容。
如上图所示,使用命令rpm -e --nodeps软件安装包名称,在忽略软件依赖关系的前提下去卸载open stack软件。
随后使用命令yum clean all清理yum缓存,避免因为旧的open stack缓存信息,造成open stack软件的安装。
如上图所示,此时使用yum install 工具去安装软件open stack软件会发现系统报错,报错原因是当前系统检测不到这个机器本地目录下的repomd.xml文件。
如上图所示,可以看到能够使用的本地yum源其目录下都有一个repodata目录,这个目录下有一个repomd.xml文件。
如上图所示,这是一个ftp类型的yum源,其中也含有repodata目录,这个目录下有一个repomd.xml文件。
如上图所示,这是一个能够作为HTTP类型的yum仓库,其中也含有repodata目录,这个目录下有一个repomd.xml文件。
如上图所示,这是对一个rpm软件安装包存放位置使得合法化,使其能作为一个可以正常使用的rpm软件安装包存放位置。
如上图所示,在执行完createrepo /opt/open stack/命令后,去查看该目录下可以看到repodata目录。
十.源码编译安装部署
如上图所示,是软件的源码形式,软件的源码形式一般有两种。
还有安装源码软件的流程。
实例:安装一个htop软件类似于windows上的任务管理器
如上图所示,找到htop软件的官方网站。点进去sources,找到htop软件的源码版本。
如上图所示,当找到htop软件的源码软件安装包后,在Linux操作系统上使用wegt工具+正确的网址进行安装.
如上图所示,lftp软件就相当于windows操作系统上的FileZilla软件便于机器访问ftp服务器。
如上图所示,使用lftp工具访问ftp服务器,
找到相应的软件,通过get命令去获取相应的源码软件安装包。
随后敲exit退出lftp服务器。
1.解压缩
如上图所示,tar xf 命令是用来从一个tar归档文件中提取文件和目录,这将会把归档文件中的所有文件和目录提取到当前目录下。
如上图所示,切换到相应的目录中。
如上图所示,使用ls命令查看当前目录下有那些文件,找到名为configure的可执行程序,然后进行第二步去配置软件的功能特性,安装路径。
通过运行这个名叫configure的可执行程序去配置软件的功能特性,安装路径。
除了解压归档文件的操作,剩下的所有操作都要在文件的解压目录下进行。
2.配置软件的功能特性,安装路径。
如上图所示,除了最开始的解压缩操作以外所有的操作都要在文件的解压目录下进行。
如上图所示,执行当前目录下的下一级目录中的configure应用程序,然后添加--prefix=安装软件目录,这个参数去配置软件的安装目录,当软件的安装目录是硬盘的挂载目录的时候,这个软件就相当于是安装在了硬盘上。
如上图所示,当执行configure应用程序的时候,需要特别关注最后几行屏幕输出内容,因为每一个人机器的环境都不一样,所以每个人机器上的报错都不一样。
因为缺少文件libncursesw,这就是当安装htop软件的时候,当前机器缺少依赖。
如上图所示,当系统提示缺少依赖libncursesw的时候,其实就是缺少lib包,安装软件ncurses-devel软件就可以解决,
如上图所示,当解决掉缺少依赖的错误以后,重新执行这条命令,直到不报错为止。
3.编译软件
![](https://i-blog.csdnimg.cn/direct/57168e6206af41e6ae6c178d2d38f7ba.png)
4.安装软件
如上图所示,进入这个软件的安装目录中去查看目录内容。
如上图所示,可以敲文件路径来运行这个htop命令。
敲F10退出这个软件。
如上图所示,是软件hotp的运行界面。
十一.PATH环境变量作用
如上图所示,使用which ls去查找ls命令可执行文件的位置,在Linux操作系统中,which 命令用于查找并显示可执行文件的位置。当你输入 which 后跟一个命令名,系统会在环境变量 $PATH 定义的目录中搜索该命令,并打印出该命令的完整路径。
如上图所示,直接敲ls命令可执行文件的路径也可以实现ls命令的效果。
如上图所示,对于hotp软件来说此时只能敲htop软件可执行文件的路径,直接敲htop不能实现htop软件的效果,
如上图所示,可以用创建别名的方法实现敲htop等于敲htop软件可执行文件的结果,但是一般没人用别名处理任何问题,
这和机器上的一个环境变量有关,PATH,也可以将这个PATH当成是一个容器,这里面存放着一些数据,
/bin/和/sbin/这里面存放的都是一些命令,存放的都是机器上现有的一些命令路径,
如上图所示,当使用export命令临时修改PATH变量的内容为空格时,此时除了Linux内核自带的命令敲其他命令都不能成功,但是这里敲命令的可执行文件路径还是可以执行相应的命令的。
如上图所示,之所以pwd cd命令还能生效,是因为这两个命令是Linux内核的命令
如上图所示,可以使用export PATH=命令路径,
此时就可以恢复ls等命令的正常使用,
如上图所示,可以使用export PATH=$PATH:新的命令可执行文件路径,此时属于临时修改变量PATH的内容。
如上图所示,可以编辑/etc/profile的内容,将export PATH=$PATH:新的命令可执行文件路径添加到文件中,然后使用source 文件路径,在Linux系统中,/etc/profile 是一个全局性的Shell脚本文件,通常用于设置系统范围内的环境变量和函数。当你在命令行中执行 source /etc/profile 时,你实际上是在告诉当前的Shell会话去读取并执行 /etc/profile 文件中的命令。这意味着 /etc/profile 中定义的所有环境变量、函数和别名等设置都将应用到当前的Shell环境中。
右键电脑属性,单击高级系统设置
如上图所示,编辑环境变量中的系统变量。
如上图所示,将QQ.exe文件的路径复制下来
如上图所示,将QQ.exe文件的路径就可以便携启动QQ服务。