Linux 源码安装
源码包与RPM包的区别
源码包是开源的,更自由,安装更慢,容易出错,可以定制功能,需要编译RPM包安装快,不自由,安装方便,不易出错,源码包由于安装在固定的位置,所以和此软件有关的内容都不在安装目录之下,但我们要删除它时,能将所有东西全部删除,很方便
具体的最直观的不同
RPM包会安装在系统默认的位置,而源码包是手工安装在某个位置
/etc/ 配置文件默认安装位置
/usr/bin/ 可执行命令默认安装位置
/usr/lib 函数库默认保存位置
/usr/share/doc/ 使用手册安装位置
/usr/share/man/ 帮助文档安装位置
这些目录是绝大多说RPM包的默认安装目录
源码包安装位置
一般情况下,我们把源码包安装在/usr/local/软件名下
当然,我们也可以自己指定安装的路径,都是没问题的,但是源码安装最好都集中到一个目录下,便于管理
安装的位置的不同带来的影响
RPM包安装的服务可以用系统服务管理命令来管理,比如apache启动的方法:
centOS6.*版本,7以后有所改变
/etc/rc.d/init.d/httpd start
service httpd start
两种都可以
service在启动服务的时候会向RPM包的默认安装路径中去找可执行文件,然后执行,但是service无法启动源码包安装的软件,因为service不会的搜索路径中不包括源码包安装的路径
一般,要启动源码装的软件要通过绝对路径来启动服务或软件
如:/usr/local/apache2/bin/apachectl start
或者,我们将软件的路径添加到PATH中去
源码包的安装过程
在我们进行源码包安装之前,需要安装gcc 因为源码包需要编译,而编译需要gcc。
注意事项:
源代码保存位置:/usr/local/src/
软件安装位置:/usr/local/
如何确定出错:安装过程中停止,并出现error,waring,no等提示
在准备工作做完之后,我们要做的是下载源码包,我们以httpd服务为例,进行演示:
1.下载源码包(我是在windows上下的,然后用WinSCP工具传到centOS6上)
httpd-2.2.32.tar.bz2
2.解压源码包
tar -jxvf httpd-2.2.32.tar.bz2
3.进入到解压后的文件夹中
在上图中INSTALL是安装说明文档,RENAME是使用说明文档
./configure 软件的配置与检查
定义需要的功能选项
检测系统环境是否符合安装要求
把定义好的功能选项和检测系统环境的信息都写到MAkefile文件中去(如上图,默认没有Makefile只有这一步完成,才会出现)
可以用./configure --help查看可以定制的功能
我们用./configure --prefix=/usr/local/apache2来定义安装路径
make
我们假设检测没问题,接下来在安装目录下执行make,对源码进行编译
make install
接下来执行make install,这时要注意,在我们执行这一步之前,都不会向指定的安装目录写下任何东西,只有在这一步执行后,才会真正的写入。
make install执行完后,源码包算是装完了
接下来我们启动服务就好了/usr/local/apache2/bin/apachectl start
源码包的卸载
如果我们想卸载掉源码包安装的,只需要rm -rf /usr/local/apache2就可以了,它不会有任何残留,非常方便
装后的配置
(1) 二进制程序目录导入至PATH环境变量中
编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
(2) 导入库文件路径
编辑/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中
让系统重新生成缓存:
ldconfig [-v]
(3) 导入帮助手册
编辑/etc/man.config|man_db.conf文件
添加一个MANPATH
脚本安装
软件包是没有脚本包的,只有RPM包和源码包
脚本安装包不是独立的软胶宝类型,一般安装的还是源码包,是人为的把安装过程写成自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成。
现在的大多数脚本安装包是硬件驱动等,其他大部分安装包,还是RPM包或源码包,这里就简单介绍一下,不说安装说明