软件安装

源码包和RPM包

软件安装时可以有两种方式。一种是源码包,经过编译才能安装,速度较慢,脚本安装包是在源码包的基础上开发出来的有安装界面提示的安装包,应用不多。还有一种是二进制包(RPM包、系统默认包)

 

源码包卸载时只需要删除对应文件即可。

 

 

 

源码包和RPM包的安装位置不同,RPM包的安装位置一般是默认的:

 

而源码包的安装位置可以指定,一般是usr/local/软件名。

因为安装位置不同导致开启服务时RPM包安装的软件既可以按照绝对路径执行,也可以用service开启服务:

 

而源码包不能用service,只能用绝对路径:

 

源码包安装更加稳定,效率更高,适合用于对外提供大量访问的关键软件安装。

rpm命令管理和yum在线管理

rpm包安装时最严重的问题就是依赖性:分为树形依赖(如果a依赖b,b依赖c,那么安装顺序就是cba,卸载顺序就是abc)、环形依赖(需要一次性安装)、模块依赖(依赖某个包的一部分)

iso中有一个package文件,内部都是rpm包。如果要安装mysql的驱动:

 

此时会提醒必须先安装依赖,这个依赖有时在package中有,有时没有,如libodbcinst.so.2并不在其中,它只是一个包中的一部分,这就是模块依赖,此时需要登录www.rpmfind.net查询libodbcinst.so.2属于哪个包。

yum在线管理没有依赖问题,但是需要联网或装yum源,这个操作可能是付费的。

rpm命令管理

 

包全名就是rpm包完整的文件名,注意要加路径,包名只是其中头一个单词。当软件没有安装时需要操作包全名,当软件已经安装时就可以操作包名了,此时实际上是去/var/lib/rpm/中的数据库。

rpm安装命令rpm -ivh 包全名i(install)是安装,v(verbose)是显示详细信息,h(hash)是显示安装进度。rpm升级命令rpm -Uvh 包全名U(upgrade)代表升级。rpm卸载命令rpm -e 包名e(erase)代表卸载

查询软件包是否安装rpm -q 包名q(query)代表查询。查询所有已安装的rpm包rpm -qaa代表all。通过管道命令可以找到与httpd相关的已安装rpm包:rpm -qa | grep httpd

查询软件包详细信息rpm -qi 包名i代表information。查询未安装包信息rpm -qip 包全名

软件安装时位置都是固定的,修改会带来一些不必要的麻烦。查询软件安装位置rpm -ql 包名l代表list,-qlp可以查询未安装包将要安装的位置,同时要使用包全名。

查询系统文件属于哪个包rpm -qf 文件名f代表file。这个文件必须是包创建出来的,可以用该命令反向追查。

查询依赖性rpm -qR 包名R代表requires。加-qRp跟包全名可以查未安装包依赖信息。

RPM包校验:rpm -V 已安装的包名v代表verify,如果软件没有做任何修改,则命令执行后没有反应,如果做了修改会出现:

 

结果的第一部分代表修改信息,修改信息的内容如下。c是文件类型,最后是修改的文件。

 

文件类型有以下几种:

 

RPM包中文件抽取,误删命令或文件时用这个命令来提取对应包中的命令或文件:

 

yum在线管理

网络yum源需要联网,网络yum源的位置在/etc/yum.repos.d/CentOS-Base.repo,同一个目录下CentOS-Media.repo文件是本地光盘实现的yum源。打开基本yum源:

 

 

文件的解释:

 

查询所有服务器中可用的软件包列表yum list

查询特定的软件包yum search 关键字

安装命令yum -y install 包名-y的意思是自动回答yes。

升级软件包yum -y update 包名如果不加包名意思是所有软件包都升级,包括linux内核,这大概率会导致服务器崩溃。

卸载命令yum -y remove 包名这个命令会导致包依赖的全部包被卸载,系统可能会因此出现问题。

列出可用的软件包组:yum grouplist

安装软件包组yum groupinstall 软件组名

卸载指定软件包租yum groupremove 软件组名

光盘yum源搭建,用光盘做无需联网,且光盘中的软件版本比较稳定的。

首先要挂载光盘,打开虚拟机设置将yum源所在光盘放入,然后将除光盘yum源的其他yum源后缀名都修改,yum源的后缀名是repo,改为repo.bak,改成其他文件名之后系统不再识别该yum源,此时就只有光盘yum源生效。最后需要修改光盘yum源的文件,需要将baseurl后的路径设置为挂载点,其他路径注释,然后将enable设置为1。

 

源码包安装

源码包和RPM包即使是同一个软件也可以同时安装,因为他们的安装位置不同。

要安装源码包首先要安装c语言编译器gcc,然后到对应官方网站下载:http://mirror.bit.edu.cn/apache/httpd/

源码包应该保存在usr/local/src,安装位置应该在usr/local。

源码包下载完成后,解压,进入解压目录,解压目录中有INSTALL和README,这两个文件一个是安装说明一个是使用说明。

按照安装说明,首先执行./configure --help查看可以定制的功能。其中有一项是定义安装目录:

./configure --prefix=/usr/local/apache2

然后执行make命令进行编译(注意要在解压目录下),如果这个过程报错需要执行make clean清空编译产生的临时文件。最后执行make install完成安装,向安装目录写文件。

删除源码包只需要删除安装目录即可。

脚本安装包

下载好后解压缩,进入压缩目录,直接执行setup.sh,询问安装位置、日志位置等。