并非全部的安装包都有已经生成的rpm包的,还有一些已经编写好的,可是尚未进行编译的源码包,当咱们想要安装着谢源码包时,咱们该如何作呢?
源码安装三部曲:c++
源码安装不像使用rpm包安装,使用rpm包安装一个软件,什么都本身内部定制好的,你安装在哪一个目录上,安装的命令在哪一个目录上,缓存目录都是默认的,根本没得选。而使用源码安装时,就能够在运行源码./configuer时后跟一些选项,想怎么安装怎么安装,安装在哪一个目录,命令在哪一个目录,这个命令的man文档在哪一个目录?开启或禁用包内的某些功能均可以,至关于私人订制,后面能够跟多个选项,不了解的可使用命令 ./configure - -help 查看后面的全部选项及做用例图:
有一些小伙伴可能以为看到这么多选项蒙圈了,英文不太好的可能看了这些选项也不知道什么意思,下面我就简单介绍几个:
安装目录的选择
--prefix=/PATH(安装目录) : 指定默认安装位置,不指定通常默认为/usr/local
--sysconfdir=/PATH : 配置文件安装位置
System types :支持交叉编译
安装包的一些可选特性(feature代指某个可选的特性)
--disable-feature 安装时禁用某个特性,功能(默认状况这个特性、功能是启用的状况下)
--enable-feature 安装时启用某个特性、功能(默认状况下这个特性、功能是被禁用的状况下)
安装包的依赖包(pkgage:安装包名)
--with-pkgage 同时将源码包的这个依赖包也安装
--without-pkgage 禁用依赖包关系
还有一些小伙伴以为这么多选项好麻烦啊,我就想懒省事,我不想这么麻烦,那就什么选项都不加一切都按照默认的安装就能够了
./configure 这个命令不是在什么目录下执行均可以的,是须要把你下载下来的源码包解压了,而后进入解压后的目录下,包含有configure这个脚本文件的目录,执行这个configure这个脚本,这个命令的做用有两点:apache
上一个不骤呢,只是检测一下编译环境,和传递一些参数,这一步才是真正的编译,构成应用程序vim
编译成功后这一步来安装,后台作的就是把软件须要的文件拷贝到该放的位置,执行完这一步,这个源码包就算是安装成功了
作完以上三个步骤,一个源码包就算是已经安装成功了浏览器
但是还有一个问题,有的安装包呢,是包含着一些命令的,安装后才可使用那些命令作某些特定的事情,而若是咱们在安装时本身定义一个目录去安装源码包呢,这个被指定的文件就会是这个程序的根文件,那么这个包所包含的全部的文件就会保存在咱们所指定的那个文件下,可是当输入一个二进制程序时,咱们系统会默认在PATH变量的值中去寻找,PATH的值是一个或多个目录,当运行一个程序时,Linux会在这些目录下进行搜寻编译连接,而咱们所安装的二进制程序的命令会在指定文件的/bin下,库文件保存在指定文件下的/lib文件中,man文件会在指定文件的/man下,因此咱们在使用这个包的命令时是不能直接打出那个命令的,由于这个程序的二进制程序并无保存至PATH变量中任何一个目录中,因此Linux会提醒找不到该命令。要想使用该命令得麻烦的去打这个二进制程序的全路径,例如:我把程序安装在/app/apache下,那么这个二进制程序会在/app/apache/bin/name,因此调用命令要/app/apache/bin/name –[选项] 这样用,感受很是麻烦是否是?命令太长了,用起来不是太方便,我想不输入全路径就直接输入二进制程序名就能够运行该命令,这时候咱们就就须要把二进制程序目录导入PATH环境变量中就OK了。
咱们先来看一个PATH环境变量中都有哪些值
你们都看出了吧,PATH变量中有着不少值,每个值都是一个目录,这些值之间以:分隔,这些目录都是Linux中包含着二进制程序的一些目录,咱们执行一个二进制程序时Linux会在这各个值中寻找对应的二进制程序,找到就执行,找不到就会出错没法执行,下面咱们就再给它添加咱们所安装的源码包的二进制程序路径,就能够在下次运行程序时不用输入全路径,只输入程序名就能够了。
咱们在这以前先来试验一下,我先安装好了一个httpd源码包,可是尚未把二进制程序目录导入PATH环境变量中来先运行一下看看会不会出错?输入全路径会不会出错?
结果证实了不把二进制程序目录导入至PATH环境变量中程序也能够用,只是用起来更麻烦一点要多输入路径,对于一些懒省事的小伙伴就会以为用的不爽,下图就交你们怎么把二进制程序目录导入PATH环境变量中而且再运行一下该命令看看反应
可是这种方法的PATH在终端关闭后就会消失,因此建议经过编辑/etc/profile来改变PATH,也能够改家目录下的.bashrc
第二种方法:
#vim /etc/profile
在文档的最后,添加export PATH=”/app/apache/bin:$PATH” ,保存退出,而后运行
#source /etc/profile 注释:
不报错则成功缓存
编辑/etc/ld.so.conf文件,在文件中添加库的搜索路径
#vim /etc/ld.so.conf
而后直接将库文件的额绝对路径添加至最后一行就能够了
如:/app/apache/lib
一行写一个路径
而后保存退出
让系统从新搜索库文件生成缓存:
#ldconfig [-v]
-v : 显示过程bash
基于连接的方式实现:
ln-svapp
帮助手册其实就是man命令,使用man 后跟一个命令,能够查出这个命令的帮助手册,帮助你更好的使用这个命令,新装的源码包也有本身的man手册,可是不导入帮助手册,即便二进制程序能够正常使用,也是不能查看man帮助信息的,因此须要还须要导入man手册来方便查看帮助手册
编辑/etc/man.config|man_db.conf文件,添加一个MANPATH(man路径)
#vim /etev/man.config|man_db.conf
在文件末行添加一条man路径
格式为MANPATH 安装程序的man路径,例如:
MANPATH /app/apache/man
保存退出
这样一个源码包就算是完美的安装好了,后面的安装后的配置也能够不作,源码包安装很久能够用,不过是使用命令麻烦点,man麻烦点而已,因此建议你们有rpm包文件最好使用rpm安装,简单省事,一条命令解决全部的问题ide
一、源码包的一般是由多个文件组成的,文件中的代码极可能跨文件依赖关系,另外源码包除了包含源代码的文件,还包含一些其它的man文件、帮助文档、配置文件等。把这些文件压缩成一个压缩包就叫作源码包
二、源代码是不可以直接使用安装的,必须通过编译后才能够安装,
源代码预处理编译汇编连接执行
三、源码包的安装的大同小异,大部分安装方法都是差很少的,可是不妨碍也有一部分的源码包安装不同,因此建议你们在安装前能够查看一下README这个文件,README文件呢是对于这个软件的一些介绍,关于它的版本,它的目录放在哪,还有一个INSTALL这个文件里面是包含一些这个包的配置文件的介绍
四、开源程序源代码的获取:
官方自检站点:
Apache.org mariadb.org
代码托管:
SourceForge.net Github.com code.google.com
五、c/c++编译器:gcc(GNU C Complier)
六、编译C源代码:
1.准备:提供开发工具及开发环境
开发工具:make,gcc等
开发环境:开发库,头文件
glibc:标准库
2.实现:经过“包组”提供开发组件
Development Tools
Server Platform Development工具
光是这样看呢,可能也不是太明白,下面给你们作一个示例
要求:将CentOS 6中安装httpd-2.2.34.tar.gz源码包开发工具
打开浏览器在地址栏输入http://httpd.apache.org/ 进入下图
点击左边红框处的下载进入下图:
往下滚动鼠标找到下图中的红框处点击会下载此httpd-2.2.34.tar.gz安装包至您的物理机上
而后会出现下图中的下载框,让您选择下载至指定的位置并记住这个位置,方便下一个把源码包拷贝至虚拟机上
从物理机上拷贝文件至虚拟机须要rz命令,若是虚拟机没有安装rz命令,下面咱们来先安装rz命令,可是只知道这个命令是rz,不知道有没有rz这个包呢?咱们来看一下下图,使用yum安装一下rz:
发现安装失败,并无rz这个安装包,怎么办呢?别着急咱们还有yum provides来查询关于rz这个命令的来自于哪一个安装包
发现了rz这个命令来源于lrzsz这个包
下面就能够安装这个命令了
原本安装过rz的小伙伴能够忽略衣裳步骤,直接使用rz拷贝,安装成功后咱们来看看如何使用rz来说物理机上的文件拷贝至虚拟机,
而后或弹出对话框以下图
找到第一步下载的源码包的位置选择open拷贝至虚拟机,这一步要注意了,rz这个命令,是在哪一个目录下执行的,拷贝的文件就会在哪一个目录下,
而后将源码包从当前文件拷贝至想要安装的目录,我这里就安装在/app目录了
再下一步就是解压了
解压完成咱们来看一下源码包内都有什么文件吧
这里解释一下为甚么要先安装development包组,由于这个是源码安装,这些源码是未通过编译的,源码包必需要编译事后才能够安装,而编译须要的一些命令软件徐亚用到development包组内的好多软件包,因此要先安装development包组
这个命令必须在解压的目录中,包含configure脚本的目录中执行
我这里其它选项就太多了就不设置了,只设置安装主目录在/app/apache
传递我设置的选项参数,并检测成功后使用make命令编译,构建应用程序
编译成功,这一步就是安装软件了
完成这一步,这个源码包就算是安装好了
有安装就有卸载,源码包的卸载不用像rpm包那样卸载,rpm -e若是源码包中有卸载程序呢,就查看安装手册,按说明卸载,不一样的源码包卸载方法也不一样,可是有一个通用的卸载方法,那就是记住安装时选择的安装目录,例如上面的安装步骤,安装在了/app/apache目录下,因此安装的程序的全部文件都在该目录下,直接简单粗暴的删除这个目录就能够了 Rm -rf /app/apache