Linux-源码包安装软件

源代码包

在Linux、BSD系统中,软件包主要以两种形式出现:二进制包以及源代码包。
之前一直说的rpm包就是属于二进制包,也就是已经编译好的软件包.
这里说源代码包则主要适用于自由软件的安装,用户需要自己编译它们。


先了解下:源码安装和rpm安装的比较

  • rpm包的安装路径
    通过参数prefix指定rpm软件包的安装路径:
    rpm -ivh MySQL-devel-5.6.16-1.rhel5.x86_64.rpm –prefix=/root/mysql
    error: package MySQL-server is not relocatable
    官方是这么说的:RPM能够给用户一些决定在其系统上安装软件包的空间。但是,软件包构建者必须首先设计软件包才能为用户提供自由。换句话说,可以安装到不同目录的RPM包被认为是可重定位的。请注意,并非所有RPM软件包都可以安装到另一个目录中。这里MySQL-devel-5.6.16-1.rhel5.x86_64.rpm就是一个不能指定安装路径的rpm包.

  • 源码包的的安装路径
    关于源码包的安装路径,是建议大家安装时,指定其路径的,主要因为源码安装软件包,没有卸载命令,如果不指定其安装路径,会在Linux先安装得到处都是,卸载麻烦,如果我们在安装的时候指定其安装路径,只需要将其安装目录删除,该软件就卸载干净了.

  • 关于软件的启动
    rpm包安装后,其服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是:
    /etc/rc.d/init.d/httpd start Linux标准启动方式
    service httpd start Service是Redhat系统的启动服务
    而源码安装的软件只能通过Linux标准启动方式,来启动,但是也不排除在源码安装后人为将启动文件放在/etc/rc.d/init.d/系统的服务查找目录下来通过服务启动.


准备工作

  • 安装c语言编辑器
    yum -y install gcc
    yum -y install gcc-c++
    yum install make
    或者使用安装软件组的方式安装
    yum groupinstall "Development Tools"

  • 安装wget工具
    yum -y install wget

  • 下载需要安装的软件包的源码包.
    wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.2.32.tar.gz


源码包安装软件注意事项

  • 源码包保存的位置 (建议)
    /usr/local/src

  • 软件安装位置: (建议)
    /usr/local/

  • 如何确定安装过程报错:
    安装过程停止
    出现error,warning,no的提示.


源码包安装软件的安装位置说明

一般是我们手动指定安装在/usr/local下,相当于windows下是Program Files,这是一种安装习惯,当然我们也可以指定我们自己熟悉的任意路径.

注意:    源码包一定要指定安装路径,因为源码包没有卸载命令.
习惯安装: /usr/local/

configure命令介绍

基本上每一个源码包解压后都目录下面都有configure命令,它用于软件的配置和环境的检测.
./configure --help 查看所有的configure参数帮助

  • 定义需要的功能和选项
  • 检测系统环境是否符合安装要求
  • 把定义好的功能选项和检测系统环境的信息写入Makefile文件,用于后续的编辑.
    (make和make install都依赖于Makefile)

源码包安装软件过程(以apache为例子)

  • 1.完成准备工作
    准备gcc环境
    下载需要的源码包

  • 2.解压下载的源码包
    tar -zxvf httpd-2.2.32.tar.gz

  • 3.进入解压缩后释放的目录
    cd httpd-2.2.32

  • 4.定义需要的功能和选项
    ./configure --prefix=/usr/local/apache2
    软件的目录不需要手动建立,该命令会自动建立所指定的目录,执行该命令后在当前目下回生成一个Makefile文件,后续的make 和make install 就是依赖于这个文件.
    prefix参数指定的是软件的安装路径.

  • 5.编译
    make
    make install
    或者
    make && make install

  • 关于出错
    make
    当在make编译出错时: 可以使用 make clean 清除缓存文件,还原安装环境再编译.
    make install
    当 make install 报错的时候,不仅要 make clean还要删除已经产生的安装文件,这里是
    /usr/local/apache2


源码安装的软件启动

源码包安装的服务是不能被服务命令(service)管理的,因为没有安装到默认路径中.所以只能用绝对路径进行服务的管理,如:(具体怎么启动每个源码包安装说明都写有操作说明.)

每一个源码包,解压后的目录下都有一个INSTALL文件,该文件就是该软件的安装说明.
这里摘一小段内容说明下:

 For complete installation documentation, see [ht]docs/manual/install.html or
  http://httpd.apache.org/docs/2.2/install.html

     $ ./configure --prefix=PREFIX
     $ make
     $ make install
     $ PREFIX/bin/apachectl start

这里的PREFIX 指代的是我们安装的软件时,指定的安装路径,通过PREFIX/bin/apachectl start,我们可以知道该软件的启动方式为我们自己指定安装软件路径的bin目录下的apachectl 文件就是apache的启动文件.

  • Linux下标准启动方式:
    绝对路径的方式来启动软件的服务.
    启动apache2:
    /usr/local/apache2/bin/apachectl start

  • 服务的启动方式:
    源码包安装的软件,默认是不支持Service服务的启动方式的,但是如果我们将该软件的启动文件拷贝到Service服务的查找目录/etc/rc.d/init.d/下就可以实现Service的启动的方式.

    cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/

    启动命令:
    service apachectl start

小细节:
启动apache后,要打开80端口,嫌麻烦可以直接关闭防火墙:
systemctl stop firewalld
然后在浏览器中输入该机的ip,浏览器显示结果It works!apache启动成功,能正常访问.


卸载源码安装的软件

源码包安装软件时一定要指定安装路径,因为源码包没有卸载命令,所以针对源码包的卸载也只能是手动的相关文件rm;如果在安装时通过–prefix=XXX来指定了安装路径,直接将该路径下的文件rm -rf既可将软件卸载.


你可能感兴趣的:(【Linux-软件安装管理】)