Linux软件安装之源码安装

什么是源码安装?一开始接触到Linux时候感觉很疑惑,安装不就是跟Windows中安装软件一样,下一步-->更改安装位置-->下一步么,用什么源码安装?现在有了些初步的了解,写出来算是做个笔记,与大家分享学习成果吧。

每个程序开发过程中或因考虑不充分出现一些漏洞,或者有些程序模块是你用不到的, 是否只能程序开发者才能解决问题呢?在Linux中不是这样的,每个人可以根据自己的喜好、要求随意改动源代码,自行修改程序为你所用。这样的源码不必再有专门的安装包,可直接编译安装,这就是源码安装的基本思想。

什么是可执行文件?一个文件能不能执行看的是有没有执行权限,但是Linux真正能识别的是二进制文件。而软件编辑一般都是使用人能看懂的文本编辑工具所编辑的纯文本文件,如果想让Linux能识别这个纯文本文件的内容,就需要用一些手段将其转换成二进制文件,这个过程就称为编译。用如下图描述整个过程:

源码安装起始就是将纯文本文件通过调用外部的一些函数关系,编译成Linux能看的懂得二进制程序。

查看configure脚本内容

在源码包目录下使用./configure --help 命令查看该源代码包安装的配置说明。注意,不同的源代码选项是不相同的,需要逐一查看。

案例——C代码编译安装三个步骤:

第一步环境检查:编码安装需要提供开发工具,及开发环境:开发库,头文件吗,glibc:标准库……

a、 开发工具:make (创建makefile) ,gcc (C编译器)是否均已安装

~]# yum installed make

~]# yum installed  gcc  查看是否安装

b、CentOS6包组工具:“Development Tools”,“Server Platform Development ”,查看这两个包组是否安装。

[[email protected] httpd-2.2.29]# yum grouplist

此命令将分成了如下几个组:

Istalled Groups :已安装的包组

Istalled Language Groups :已安装的语言包组

Available Groups:可安装的包组

Available Language Groups:可安装的语言包组

我查找的两个包组均在   Available Groups 包组中,说明需要安装此两个包组。

[[email protected] httpd-2.2.29]# yum groupinstall "Development Tools" -y

[[email protected] httpd-2.2.29]# yum groupinstall "Server Platform Development" -y

获取安装源代码文件之后,首先查看里边的INSTALL 或者README 文件,了解安装详细信息。

第二步环境测试:./configure 测试内容包含第一步内容。

通常是软件的一个检测程序(configure),用来测试当前环境是否满足软件运行。测试完毕后通过选项传递参数、指定启用特性、安装路径、参考用户的指定内容以及Makefile.in生成一个Makefile的规则文件。检测的数据如下:

  • 是否有适合编译程序可以编译本软件的程序代码
  • 是否已存在 本软件所需要的函数库或其他需要的相关证书
  • 操作系统平台是否适合本软件,包括Linux的内核版本
  • 内核的头文件是否存在

看文件中的 configure文件,并依据文件中的内容进行configure脚本配置。

进入到源码包目录,使用./configure --help命令。

configure脚本内容

选项:指定安装位置、指定启用特性

--prefix=/PATH/TO/SOMEWHERE: 指定默认目录安装,如果未指明则将会在默认路径下/usr/local/ 下边安装,生成lib,bin 等文件。

Optional Packages:

--with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]

--without-PACKAGE   依赖到的程序包

Optional Feature :可选特性

--disable-FEATURE  禁用此特性

--enable-FEATURE[ARG]   启用某特性

Some influential environment variables

此文件中说明了安装步骤,1、./configure --prefix-PREFIX  2、make 3、make install 4、PREFIX/bin/apachectl start。同时在安装前须查看此源码包中安装说明信息——INSTALL,不同的源代码包中的说明文件不一样,有的可能是README。

介绍完基础信息后,下面我们开始进行测试。执行如下命令:

[[email protected] httpd-2.2.29]# ./configure --prefix=/usr/local/apache2  --sysconfdir=/etc/httpd2

如果测试结果没有报错,就可以开始编译了。

第三步源码编译:使用make命令

程序编译并不是easy的事儿,如果将几万条的源码一一编译成二进制,其繁琐性可想而知。而我们可以使用make这个工具解决这个问题。当运行make时,make在当前目录下搜索Makefile这个文件,而Makefile中记录了源码如何编译的详细信息。make会自动判别源码是否经过变动更新执行文件,就是调用配置文件及各处理器进行处理的过程。

[[email protected] httpd-2.2.29]# make

在编译过程中可以看到使用gcc编译过程等信息

第四步拷贝文件:将编译完的文件拷贝到指定目录下,in目录中会生成库文件、头文件、帮助文件、二进制文件、模块文件等。

[[email protected] httpd-2.2.29]# make install

   至此源码包已经编译安装完成,接下来试试安装的软件是否可用。在bin下的apachectl脚本能控制apache服务启动的。启动该程序后用netstat -ntl 查看80 端口被监控,则说明apache已经正常的运行了。别高兴太早,这还不算完。要想程序开机就能使用还得需要如下的步骤:

    1、导出程序二进制文件至PATH环境变量中;在/etc/profile.d 中编辑一个apache2.sh文件,脚本内容将程序安装路径设定为环境变量,即:export PATH=/usr/local/apache2/bin。重新登录shell即可。

2、导出库文件路径,在/etc/ld.so.conf.d/中创建一个以程序名.conf 命名的文件,在其中添加新的库文件所在的目录(/usr/local/apache2)。

然后让系统重新 生成缓存即执行ldconfig -v 命令。

 3、导出头文件,将安装程序头文件/usr/local/apache2/include 在/usr/include 中创建一个连接文件,可以将其中的每个文件都创建连接,也可以将整个目录创建连接。本次创建的整个目录连接。

[[email protected] man]# ln -sv /usr/local/apache2/include/ /usr/include/apache2

 4、导出帮助文件:

编辑/etc/man.config,在其中添加"MANPATH /usr/local/apache2/man"自此完成了所有的配置工作。

如果在configure中将安装路径选择默认,上边的第2、3条可以省略了,因为默认会在安装在/usr/local中,其库文件、头文件都会在/usr 中。

时间: 2024-10-12 08:35:09

Linux软件安装之源码安装的相关文章

Linux软件包管理之源码安装

Linux软件包管理之源码安装 源码包的编译用到了linux系统里的编译器,常见的源码包一般都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言.Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件.所以如果你的机器上没有安装gcc就没有办法去编译源码.你可以使用 yum install -y gcc 来完成安装. 3.1 源码包安装的步骤 1.拿到源代码,并解压 #tar xf package-version.tar.{gz|bz2|xz} 注意:展开

linux小白 mysql5.0源码安装配置

安装mysql-5.0.45.tar.gz(该软件包下载地址:http://www.filewatcher.com/m/mysql-5.0.45.tar.gz.24433261-0.html) # groupadd mysql              #添加mysql组 # useradd -g mysql mysql      #添加mysql用户,且加入mysql组 --------------------编译过程---------------------------------- # t

linux操作之软件安装(二)(源码安装)

源码安装 linux上的软件大部分都是c语言开发的 , 那么安装需要gcc编译程序才可以进行源码安装. yum install -y gcc #先安装gcc 安装源码需要三个步骤 1) ./configure 在这一步可以定制功能 , 加上相应的选项即可 , 具有什么选项可以通过 ./configure --help 命令来查看 . 在这一步会自 动检测你的linux系统与相关的套件是否有编译该源码包时需要的库 , 因为一但缺少某个库就不能完成编译 . 只有检测通过 后才会生成一个Makefil

Linux基础:从源码安装软件

为什么要从源码安装软件 在什么情况之下,我们需要从源代码安装软件呢?我想不外乎这些情形:一种情况是软件放出了新的版本,而所用的发行版并没有及时跟进,这时候,想要尝鲜的话,就非得靠自己不可:另一种情形是不管是软件的开发者,还是现用的系统都没有提供可直接使用的二进制包,而自己又非要使用该软件,那么也需亲自出马才行:当然,还有其他的情形.总而言之,学会从源代码安装软件是一项非常重要的技能. 什么是make 与 configure make 是一支程序,当执行make 时,make 会在当前目录下寻找

【Linux笔记】samba源码安装及基本使用说明

前段时间项目中碰到从windows机器上传多媒体文件至linux服务器的需求(人工审核并触发同步),调研了几种上传机制或实现方案: 1) http方式上传至WebServer 用PHP或Python脚本上传给WebServer,但由于多媒体文件动辄几百兆,PHP由于最长执行时间的限制首先被排除,另外由于用脚本上传需要增加失败重试等控制逻辑,Python虽然可以实现这些功能,但考虑到开发成本及服务的稳定性,并不是最优方案 2) flash方式上传 例如百度云web端就使用了flash方式上传,通过

Linux服务器--CentOS6上源码安装LAMP(实现WordPress,PhpMyAdmin)

Linux服务--CentOS6实现LAMP(源码安装) 实验要求: 安装php时实现php模块嵌入到httpd中和实现fpm两种方式.在fpm下,提供两个虚拟主机: 分别用于实现PHPMyadmin和WordPress,其中PhpMyAdmin提供ssl. 实验环境: CentOS系统一台(IP:172.16.99.4),所需的httpd,mariadb,php,PhpAdmin,WordPress的源码包. 实验步骤: 安装顺序:httpd-->mariadb-->php. 安装前的准备工

Linux+Apache+Mysql+Php源码安装

一.安装环境: 系统:Centos6.5x64 Apache: httpd-2.4.10.tar.gz Mysql: mysql-5.6.20-linux-glibc2.5-x86_64.tar.gz Php: php-5.6.0.tar.gz Apr: apr-1.5.1.tar.gz Apr-util: apr-util-1.5.3.tar.gz Libxml2: libxml2-2.9.1.tar.gz 默认安装路径我们统一安装到/usr/local下 二.Apache安装: 安装Apac

mysql 数据库的安装之一 源码安装

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 应用软件之一. mysql 数据库安装方式有多种,本文介绍源码安装 系统环境: Linux mysql 2.6.32-642.6.1.el6.x86_64 #1 SMP Wed Oct 5 00:36:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [[email prot

LAMP环境部署:Apache源码安装+MySQL二进制安装+PHP源码安装+Nginx源码安装

Apache 版本:2.2.27 MySQL 版本:5.5.54-linux2.6-x86_64PHP 版本:5.3.27一.源码安装Apache1.首先安装上传工具2.上传LAMP环境所需安装包3.解压所有安装包4.安装Apache依赖包5.创建安装目录6.配置安装文件./configure \ #./configure 是用来生成Makefile文件用于编译安装 --prefix=/application/apache-2.2.27 \ #指定安装目录--enable-deflate \ #