欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Linux源码包管理、脚本安装包详情

程序员文章站 2022-06-23 11:54:20
源码包与rpm包的区别">一·Linux源码包与rpm包的区别 1)源码包和RPM包的区别: 安装位置不同带来的影响 1、源码包是不能使用[service/systemct...
源码包与rpm包的区别">一·Linux源码包与rpm包的区别

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脚本