前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第八章 软件管理

第八章 软件管理

作者头像
晓天
发布2019-07-04 14:18:09
1.2K0
发布2019-07-04 14:18:09
举报
文章被收录于专栏:Linux、云计算技术交流

第八章 软件管理

8.1 系统光盘挂载(续)

关于光盘的挂载,之前我们已经讲过了,这里再深入介绍一点。之前我们挂载光驱使用的命令是: mount /dev/cdrom /media,我们使用ll /dev/cdrom 可以查看到,其实/dev/cdrom是一个软链接,它指向了同目录下的sr0,即/dev/s0,所以,真正的光驱设备文件是/dev/sr0。因此,我们也可以使用 mount /dev/sr0 /media实现光盘挂载。

另外,/media 是Linux系统安装后自带的媒体类设备挂载点。其实光驱设备并非必须要挂载到/media下,完全可以自己创建挂载点使用。在更老一些的Linux版本中,/media目录是不存在的,Linux系统安装后,自带的光驱设备挂载点是/mnt/cdrom。很多老工程师,已经习惯于使用/mnt/cdrom/了,所以往往有很多人在RHEL7中会在/mnt/下手动创建cdrom目录,用于光驱挂载。读者们应该不拘泥于形式,灵活处理。

再有,挂载光驱成功入,如:挂载到/media后,cd /media/后,ls可见到光盘中的很多文件,其中,所有软件安装程序包被放在Packages目录中。cd进入Packages目录后,ls可见到都是些.rpm后缀的文件,这些就是软件安装包了。

其实,不同版本的Linux光盘中,安装包的路径也不尽相同,有RPMS、SERVER等多种可能,读者在使用不同版本的Linux时,应灵活处理,或者逐一查找一下便可找到。

8.2 rpm包安装

我们知道了Linux安装光盘中的软件安装包都是以.rpm结尾的,rpm包也是Linux中大多数软件安装包的格式。下面来看一下如何安装管理软件。

mount /dev/sr0 /media ---挂载光盘

cd /media/Packages ---进入安装包存放路径

ls | grep dhcp ---查看抓取指定的包是否存在,可见到安装包的完整名字

注:本节实验,我们以dhcp软件的安装为例讲解

rpm -ivh dhcp-4.2.5-XXX.rpm ---安装指定软件包,这里使用XXX替代包名中的中间字符

其中:-i 表示安装 -v为查错,查看是否已装过及指定的包是否可用

-h 表示以#显示安装进度,类似于进度条的功能

那么,安装完毕后,软件的相关文件都安装到哪里了呢?可以使用如下命令查看:

rpm -ql dhcp ---查看软件包所有文件的安装位置

再者,如果在安装之前,我们想要查看该软件是否已经安装过,使用如下命令:

rpm -q dhcp ---查询指定包是否已安装过

如图所示,已安装过的包会显示版本号,未安装过的包会显示未安装。

关于已安装的软件包的查询,还有如下格式:

rpm -qa ---显示本机已装过的所有软件包,

活用:rpm -qa | grep mail ---抓取显示指定包是否安装过。

这种格式,比较适合于软件名较长或拼写单词较长,使用者拼写不出时使用

rpm -qf /etc/dhcp/dhcpd.conf ---查看指定文件是被哪个软件所使用

最后,来看一下软件的卸载:

rpm -e dhcp ---卸载软件

这里值得注意的是,软件包的命名规范:dhcp-4.2.5-XXXX.rpm 其中:版本号前的称为软件名,即dhcp,加版本号到后缀的完整名称为安装包名

使用规范:只有在安装时才需要指定安装包名,在查询、卸载等非安装类操作时,只需要指定软件名即可。可参考之前案例。

rpm还有两组参数可以介绍一下:-Uvh -Fvh,这两个都具备升级的功能,只是-Uvh是升级或安装,而-Fvh是仅升级,区别在于系统是否已安装了低版本的相同软件。

8.3 yum源安装

关于rpm命令的使用,之上格式应该足够日常使用了。但是有时安装软件时会有报错,信息提示是某另一个或多个包被当前包所需要。如下图:

这种安装软件时所需的前提包,即需要事先安装某些包,才能安装当前包。我们称为软件包间的依赖关系。使用yum即可解决依赖关系的安装问题。

yum源配置的功能是,安装某个包时,自动查找到相关的依赖包,并安装上,再安装指定软件包。

yum工作的原理是:事先把所有可能会用到的包,集中存放到一个目录下,然后在yum配置文件中指定该目录为安装源,则使用yum安装软件时,会自动到该指定的目录下查找到所有依赖关系包并自动安装。

现下,我们可以确定,Linux安装光盘上是具备全部的软件包的,且都在同一目录下(如:/media),则我们只需要编写yum源配置文件,指定该目录为安装源目录即可。

具体配置过程如下

cd /etc/yum.repos.d/ ---进入yum安装源配置文件所在目录

可以ls查看一下,里面都是Linux自带的一些安装源配置文件

再打开任一文件可看到里面是对官网地址的指定,即让yum自动到官网上下载相关依赖包。如:vi CentOS-Base.repo 后,可见下图内容:

这里,我们为了实验成功,不使用自带的官网源文件,所以这些文件可以暂时备份一下,但不建议删除,以便将来需要时再使用。操作如下:

mkdir backup ---创建备份用的目录

mvCentOS-* backup/ ---备份原有的配置文件

vi cdrom.repo ---创建安装源配置文件,文件名可以自定义,但是后缀必须是.repo,写入如下内容:

[cdrom] ---创建一个安装源设置项,并定义标签,可以随便写

name=local cdrom ---给本项指定个名字,可以随便写

baseurl=file:///media ---指定所有安装包的存放位置,url 统一资源定位符,即完整路径 file://是磁盘上查找文件的协议

enabled=1 ---启用本项,或者 enable=1 也行,1启动 0关闭

gpgcheck=0 ---关闭数字验证,如果开启验证,即gpgcheck=1,则下面必须写gpgkey=.... 以指定验证的密钥文件

yum -y install mysql-connector-java ---安装指定软件包

注意:不加-y参数时,安装过程中会在审核收集完所有软件包后,做一次确

认,询问是否继续安装,输入y即可继续安装,所以在命令里直接加-y

参数即等于询问时输入了y,可以直接安装完毕。

再者,文件里的很多配置项,我们需要解释一下:

(1) url:统一资源定位符,即寻址时的完整路径,比如:http://www.baidu.com。这个地址由协议加网址组成,可以说就是百度网站的url。再比如,我们看到朋友在网店购买的手机很好,就给朋友说把网店的链接发过来,这个链接的专业称谓就是url。所以url是由协议加完整地址组成的。

(2) file://协议:无论在windows还是Linux系统中,在磁盘上查找文件使用

的都是file协议,只是我们平时在使用时,地址栏中只显示的具体地址,却没有显示file协议。我们可以尝试下如下案例:打开IE浏览器,在地址栏中输入:file://c:/program files,会发现直接打开的是“计算机”窗口,并显示了c:/program files中的内容,与用鼠标点击进入的效果一样,可以证明file://协议适用于磁盘分区内查找文件的。那么,按照url书写的固定格式,协议名后需要加://的字符,而我们光盘的挂载位置是在/media下,所以baseurl=写出的样子就是file:///media,其中前两个//是协议的格式要求,第三个/表示根目录。

(3) gpgcheck:我们说gpgcheck=0是关闭的数字验证,那么数字验证是什么呢?其实数字验证是指某一款软件是否经过Linux系统的官方检测,若通过

了检测则说明该软件与系统兼容性合格,会颁发一个数字证书。所以文

件中若设置gpgcheck=1则表示要安装的软件必须有证书才允许安装,否

则拒绝安装,gpgcheck=0表示无需做验证,允许软件直接安装。

(4) gpgkey:若配置gpgcheck=1,则必须在下一行写入gpgkey=…行,以指定

数字证书秘钥的位置。

yum命令除了install以外,还有很多参数项,可以输入yum后,双击<tab>键查看到。如下图:

其中,较常用的几项为:

yum search dhcp ---查找可用安装源中,有无指定软件的安装包

yum list --- 查找可用安装源中所有的包

活用:yum list | grep mysql ---抓取查看

yum remove mysql-connector-java ---卸载指定软件,但不卸载依赖包

yum makecache ---重建缓存

注:若之前使用过yum设置,内存中有其缓存,更改yum配置后,未能生效,说明缓存未更新,可用yum makecache 重建一下缓存

yum history ---查看yum操作历史记录

yum update ---查看当前可用安装源,升级现在已装过的包

yum update kernel ---升级内核,一般需要设置官网源生效

8.4 源码包安装

之前所介绍的rpm安装、yum安装针对的都是rpm包的安装过程,但是在Linux中还有一种软件安装包是非rpm格式的,称为源码包。源码包大多由非Linux官方公司开发并推出的,发布时并未打打包成rpm格式的,有些甚至接近于源代码格式。

当我们在网络上下载软件时,很可能会下载到源码包。其实Linux的GUI图形界面与windows差不多,都可以通过浏览器访问页面,点击下载软件。但是在Linux的字符界面中,我们常用 wget url 的格式直接下载软件。这里的url即软件的下载地址。如:

wget http://vault.centos.org/7.4.1708/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso

如果下载下的安装文件是.tar.gz或者.tgz后缀的,则说明很可能是源码的安装包。这个.tar.gz或.tgz的文件,是Linux中的压缩文件,所以需要解压后再使用。整体过程如下:

tar -zxvf XXX.tar.tz ---解压缩到当前目录下

注:tar压缩打包的相关命令将在下一章讲解,此处先暂时记住即可

ls ---解压后,可查看到解压出的目录

cd XXXX ---进入解压出的目录

ls ---查看之下内容,一般可能会出现两种情况

情况一:

可见到一个名字类似于install.pl 的可执行程序,这就是软件的安装程序

./install.pl ---运行安装程序,安装软件

情况二:

可见到一个 叫configure 的可执行程序,说明该安装包是源码的

./configure ---运行该程序,检测安装包及系统环境

make ---编译该包

make install ---安装软件

说明:情况二的安装过程中,每个命令的执行时间可能会有些长,所以生产环境中我们经常使用 ./configure && make && make install 逐一自动执行。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 教主小筑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档