Linux源码包管理、脚本安装包详情
1)源码包和RPM包的区别:
安装位置不同带来的影响
1、源码包是不能使用[service/systemctl]命令来启动服务,因为源码包的安装位置由用户指定,放在哪并不统一。而rpm包安装后,通常都是放在[/etc/rc.d/init.d]目录中的,而[service/systemctl]命令执行时,会自动搜索该目录,所以rpm包安装的服务可以使用[service/systemctl]命令。
2、综上所述,安装位置不同,启动方法是有区别的。
3、使用绝对路径启动程序的方法是通用的,通常软件包中会写上启动程序的方法的。
4、如果将源码包安装后的启动程序复制到[/etc/rc.d/init.d]目录中,则也是可以使用[service]命令执行的。
1、安装准备
2、由于源码都是c语言写的,所以要先安装c语言编译器:gcc
[root@localhost ~]# yum -y install gcc*
3、从官方网站下载源码包,若是下载到了windows上面,可以使用winSCP传到linux上。
注:若已安装了二进制包,则源码包也是可以继续安装的,因为两者安装目录不一样。但是,并不建议这样做,因为端口会冲突。
netstat -tlun 查找网络连接信息和系统开启的端口号 使用 -t 选项列出 TCP 协议的连接 使用 -l 选项列出正在监听的套接字 使用 -u 选项列出 UDP 协议的连接 使用 -n 选项禁用域名解析功能
下面以安装apache2为例,解压缩后的目录为[httpd-2.2.31]:
1、安装时必须进入到解压缩后的目录[httpd-2.2.31]中;
2、执行[./configure]命令,该命令用于软件配置与检查(基本上每个源码包都会有该命令,即使个别的没有该命令,也会提供相关替代命令),它有以下几点功能:
a、定义需要的功能选项;
b、检测系统环境是否符合安装要求;
c、把a中定义好的功能选项和b中检测系统环境的信息都写入Makefile文件,用于后续的编辑。(后续的[make]和[make install]命令都会依赖该文件)
执行命令[./configure –prefix=/usr/local/apache2],该命令用于指定安装位置为:[/usr/local/apache2](其中的[apache2]目录不需要提前创建,[make install]命令执行时会自动创建)。
命令执行后,会在当前目录生成Makefile文件。
3、执行【make】命令,编译源码(这一步通常比较耗时);
4、执行【make install】命令,安装程序,此时会创建【/usr/local/apache2】目录。
5、如果命令执行过程中发生终止,并且出现error、warn或no提示,则表明出错,否则,一切正常。
若执行【./configure】或【make】命令时出现错误,是不需要删除[/usr/local/apache2]目录的,因为程序还没有真正安装。只需要执行【make clean】命令即可,该命令用于清除缓存、临时文件等,使安装环境恢复到未安装状态。
若执行【make install】命令时报错,则需要删除[/usr/local/apache2]目录,并且执行【make clean】命令才行。
1)脚本安装包:准备工作
1、本节以安装LNMP1.0为例,所以需要先停止之前安装的apache和mysql服务(最好也将源码包安装的apache [/usr/local/apache2]删除)
2、保证yum源正常:可以使用[yum list]命令测试。(若是光盘yum源,记得挂载光盘)
3、关闭SELinux和防火墙:
a、永久关闭SELinux的方法:编辑文件[/etc/selinux/config],将[SELINUX=enforcing]改为[SELINUX=disabled],然后重启系统即可。
b、永久关闭防火墙的方法:[chkconfig iptables off],开启为:[chkconfig iptables on];临时关闭防火墙的方法:[service iptables stop],开启为:[service iptables start]。
4、脚本安装过程中,会将系统中已有的apache、mysql、php等卸载掉。下面是安装脚本
【centOS.sh】的部分内容: ......部分内容省略...... yum install -y ntp ntpdate -u pool.ntp.org date rpm -qa|grep httpd rpm -e httpd rpm -qa|grep mysql rpm -e mysql rpm -qa|grep php rpm -e php yum -y remove httpd* yum -y remove php* yum -y remove mysql-server mysql yum -y remove php-mysql ......部分内容省略......
注:安装后,如果安装卡在了[php-fpm]那里,通常表示已安装成功,只是[php-fpm]那里卡住了(物理机少见,但虚拟机比较常见),解决的方法就是:使用命令[pkill -9 php-fpm]杀掉[php-fpm]进程,然后重新启动该进程[/etc/rc.d/init.d/php-fpm start]即可。
pkill -9 php-fpm
强制结束php进程
重启php-fpm: /etc/rc.d/init.d/php-fpm start
2)所谓脚本安装包就是把命令一条一条的堆叠,然后一键执行,其实是借助shell脚本