8.3.yum在线安装

YUM是centos才有的软件工具,其他的系统可能是没有的,另外本文中提到的一些目录位置等信息可能根据系统版本的不同有所变化,所以如果发现了哪里有出入,就需要仔细找到自己准确的版本信息和系统类型去查找了。

8.3.1.yum源文件

将所有的安装包放在官方服务器上,当进行yum在线安装时,都可以自动解决依赖性问题。
yum源文件在/etc/yum.repos.d下有4个yum源文件,一般是默认网络yum源(CentOS-Base.repo)生效,使调试yum源(CentOS-Debuginfo.repo)、光盘yum源(CentOS-Media.repo)、老版本yum源(CentOS-Vault.repo)失效,网络yum源中主要就是保存了多个yum容器,每个容器格式都差不多,容器名[ ]中不可以有空格。
比较重要的内容是mirrorlist镜像站点,baseurl yum源服务器地址一般两个都是一样,然后注释掉baseurl,使用mirrorlist即可,源地址一般都是CentOS官方的yum源服务器,这个是可以修改成国内的yum源服务器网址也是可以的;还有enabled表示此容器是否生效,不写或者置1表示生效,置0则不生效,gpgcheck是RPM的数字证书,用来证明该RPM包是否来自官方,是否安全,gpgkey数字证书的公钥保存位置,这些都不需要去修改,唯一可以修改的就是mirrorlist来选择想要的yum源服务器网址。所以只要计算机可以上网,然后默认可以使用该服务,那么就可以使用yum。

8.3. 2.yum源搭建

没有网络的情况下,由于所有的安装包其实都在光盘中,所以只要有安装光盘,也可以使用光盘来搭建本地yum源。
首先要挂载光盘。然后让网络yum源失效,可以让所有的容器都有enabled=0,也可以删除网络yum源,最好的办法是给网络yum源改名,只要修改后缀名(不让后缀名为repo)即可.
然后启用光盘yum源,vim进入光盘yum源文件,在baseurl后面跟上挂载光盘的目录,再注释掉多余的,然后让enabled=1就可以了。

8.3.3.yum命令

命令yum list,查询所有可用软件包列表;
命令yum search+关键字,搜索服务器上所有和关键字相关的包。
命令yum -y install+包名,安装该软件包,并且不需要写全名,包全名只是针对手动安装rpm包。
命令yum -y update+包名,升级软件。前提是packages里面有更高版本的安装包。yum -y update命令会更新当前所有安装包,包括内核,所以很有可能导致系统崩溃。
命令yum -y remove+包名,卸载软件包,一般不会使用这个命令,因为不清楚该软件的依赖关系,可能卸载一个软件之后会导致其他的部分软件失去依赖性而失效,然后又导致另外的软件失去依赖性,这样的连锁反应可能会造成极大的损失。所以一般不会使用yum卸载软件(RPM卸载还会询问依赖性,但是yum卸载不会)。
所以原则上:服务器使用最小化安装,用什么软件安装什么,尽量不卸载。
命令yum grouplist,查询所有软件组包,很多的软件功能不是由一个软件包实现的,而是由一组软件包实现的,通过这个命令可以查询所有的软件组包。
命令yum groupinstall+”软件组包名(英文)”,用于安装这个软件组包。LANG =zh_CN.utf8将英文显示换成中文显示(前提是安装了中文软件组包),LANG=en_US将中文显示换成英文显示。
命令yum groupremove+软件组包名(英文),卸载这个安装组包。
yum没有类似rpm的查询命令。

8.4.源码包安装

8.4.1.源码包和rpm包的区别

在软件包安装之前,源码包和rpm包的区别是概念上的区别,而安装之后的区别就是安装位置的区别,而安装位置的不同带来的影响就会比较多了。
rpm包的安装位置不是由安装者决定的,而是由包作者来决定的。即包作者认为该包各个文件应该装在哪些目录下,那么系统就会默认装在哪个目录下,这样也是比较合理的安装位置。
源码包需要手动指定安装位置,一般习惯安装在/usr/local/软件名/下,源码包一定要指定安装位置,因为源码包没有卸载命令,所以管理员一定要知道软件安装位置才可以。源码包的卸载方式就是删除安装目录。
安装位置的不同带来的结果就是启动方式的不同,rpm包安装是可以通过systemctl(原理是去启动该软件默认安装在/etc/…下的某个启动文件)命令启动软件的.
但是源码包就默认不可以,因为源码包所有文件都在指定目录下,systemctl命令就找不到这个启动文件(综上所诉,如果将源码包中的启动文件强行拷贝到/etc/…目录下,那么就可以使用systemctl命令启动源码包软件了),所以一般就要根据说明找到软件包的启动文件,然后使用命令绝对路径/启动文件 start这样来启动这个源码包软件。
原则上,比较底层的软件包使用rpm包(比如gcc),需要被其他人访问的软件包使用源码包安装(比如httpd),源码包软件的效率更高,主要是都在一个安装位置,方便管理。

8.4.2.源码包的安装

rpm包都是在安装光盘里面,而源码包则需要在网上去下载。下载网址可以选择:
http://mirror.bit.edu.cnhttp://mirrors.aliyun.commirrors.sohu.commirrors.163.com 从网站上下载的源码包可以先放在Windows系统里,所以还需要通过ftp协议转到Linux系统中,filezila软件就可以通过ftp协议进行文件互传。
如果已经通过rpm包安装过一个软件包了,还可以通过源码包再安装一个,原因就是两个包的安装位置不同,源码包的安装位置在安装之前都是不存在的,所以是不会冲突的,不过启动就只能启动一个,因为一个包的服务就会启用一个端口,完全相同的软件不可能启动两个完全相同的端口。
把源码包放到Linux系统中是放在/usr/local/src目录下,安装就安装在/usr/local/目录下。
安装过程中,如果停止了,然后出现no、error、warning这样的提示,那么就可能时出现了错误。
安装第一步:下载,从网上下载;
第二步:解压缩,使用tar命令进行解压缩;
第三步:进入解压缩目录(必须,后续命令都是操作该目录);
第四步:命令./configure(这是在解压缩目录下才有的命令,绝大多数的源码包都有这个命令,即使极少数的没有,也会有类似的命令来代替他),功能是用于软件配置与检查。首先定义需要的功能选项,然后检查系统环境是否符合安装要求,最后把定义好的功能选项检测环境系统信息都写进MakeFile方便后续的编辑。
命令./configure --prefix=/usr/local/软件名,指定安装位置
命令make(通过MakeFile文件进行编译将源代码转换成二进制d文件,如果编译过程出错,使用命令make clean 将编译生成的过程文件都删除掉)
命令make install进行安装。
至此就已经安装完成了。然后在安装目录下找到启动文件就可以启动该软件了。比如启动Apache的命令就是:
/usr/local/apache2/bin/apachectl start就可以启动这个软件包。在安装目录下有一个INSTALL的文件,该文件中记录了安装的步骤以及启动文件的名字等信息。

8.5.脚本安装包

脚本安装包就是把需要很多行命令才能完成的rpm包安装或者源码包安装写成一个脚本文件,然后只需要执行脚本就可以完成对这个复杂软件包的安装了。
所以脚本安装包的优点很明确,安装软件可以一键完成,简单快速,不过也暴露出了明显的问题,安装的版本以及功能选择这些灵活性的功能都是由脚本作者决定的,而无法完成自定义。一定程度上丧失了灵活性。
http://lnmp.org/install.html 网址用于下载脚本安装包。将下载回来的压缩包(完整版)放到/root(随便),然后解压缩。然后执行里面的脚本文件,接下来会出现一些交互问答,根据问题选择想要的内容就可以安装,安装到最后可能会卡住,但是只要没有报错,那么就表示已经安装完成了。
卡的解决办法是终止这个软件包的启动进程,然后再重新启动就好了。ps aux找到进程名;kill -9+进程名终结进程;启动则需要找到启动文件,一般是在/etc/rc.d/init.d/下面,就可以启动这个软件。