Linux系统:开放源代码应用程序的编译与安装
来源:互联网 发布:知天命之年是什么意思 编辑:程序博客网 时间:2024/05/16 03:35
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://543925535.blog.51cto.com/639838/154269
实验名称:开放源代码应用程序的编译与安装
实验目的:本例将以编译安装httpd为实例来讲述源代码安装的基本步骤
实验准备:安装了Linux系统的计算机,试验用的登录账号,httpd压缩包,ISO镜像制作工具(因为是在虚拟机的环境下,所以需要制作Httpd镜像文件)
试验步骤:
从应用程序源代码编译安装应用程序通常需要以下几个步骤
确认当前系统中具备软件编译的环境
获得应用程序的源代码软件包文件
解压缩源代码软件包文件
进行编译前的配置工作
进行程序源代码的编译
将编译完成的应用程序安装到系统中
下面以编译安装httpd为例(本例中使用的Httpd压缩包已经事先下载到windows主机中,供试验使用)。
(一)、首先要准备好编译的环境
1、使用ISO软件将httpd压缩包制作成ISO镜像,待用。因为是用虚拟机做这个试验,所以需要把httpd制作成关盘镜像插入到linux虚拟光驱中,挂载使用。
将Httpd压缩文件拖入到上方的空白处
将拖入到上方的httpd文件另存为ISO文件,保存到一个位置,备用,本例保存到桌面
2、登录到linux系统,打开终端,查看是否具备GCC编译环境,使用下面命令查看
rpm –qa | grep gcc
如果不具备,则安装该编译环境,将LINUX安装关盘插入虚拟光驱,确认是否存在gcc,使用下面命令
ls –l | grep gcc
我们来说说不具备编译环境的处理:
看下图,先查看,表明不具备,然后使用mount挂载linux镜像安装光盘,进入到编译器所在的目录,筛选一下看看是不是有gcc,如果有的话则安装
通过上图看到有gcc,那么使用下面的命令安装gcc编译器
注:在RHEL4版本中,使用—aid,系统会自动寻找具有依赖关系的包(执行目录必须进入rpm目录),该命令在RHEL5中不支持,所我有时候用版本低点的也是有好处的,应该是各有各的好处吧。
另外注意最后一行:you have mail in /var/spool/mail/root这个是日志文件存放的位置,有些时候日志文件可以起到很重要的辅助作用哦。
到现在我们可以用刚才使用过的命令来验证gcc环境是否搭建完成,看下图,表明gcc已经成功安装
在安装gcc时要注意会碰到的问题:
如果安装镜像和机器中的版本有冲突,那么安装会不成功,这个时候可以参考一下的操作
rpm –e –nodeps cpp(在系统中)
rpm –ivh cpp-3.4.3.9.EL4.i386.rpm
如果这个时候还是无法安装成功,则可以尝试一下操作
rpm –e rpmdb-RedHat
rpm –ivh rpmdb-RedHat-4.0.20050107.i386.rpm(此处只做举例,实际操作根据不同的情况区分不同的冲突情况来进行处理)
3、现在到了第三步的准备工作了,我们执行弹出光盘的命令eject,更换虚拟光盘为刚才制作的httpd镜像文件,重新挂载光驱
我们可以看到绿色显示的为我刚才挂载的压缩镜像文件
4、接下来,将压缩文件复制到系统中,为了试验方便,我直接把这个文件复制到根目录下,并且在系统中解压缩,使用查看命令可以看到已经解压缩的文件
根据不同的压缩文件有不同的解压缩的方式,tar命令用于对文件进行归档以及恢复归档文件。比如:
tar zxvf 一般解压缩tar.gz格式的压缩包
tar jxf 用于释放(恢复)使用“bz2”格式压缩的归档文件。
5、下面介绍准备工作的最后一步,进入源代码所在的目录,定制安装的路径,如果不定制,则默认安装在/usr/local/bin目录下。看下图:
该命令执行后,配置需要一定的时间,配置过程会在屏幕中显示大量的输出信息,这些信息有利于管理员了解程序配置的过程。
注意:如果前面的gcc编译环境没有准备好,那么检查是不会通过的。
等待几分钟后,准备工作已经全部完成,下面介绍具体的编译与安装,其实编译和安装的命令很简单,接着往下看:
(二)、进行编译与安装
1、使用make进行编译(进入源码目录),该编译有一个过程,耐心等待即可。
部分编译过程如下:
2、等了N久,终于欣慰地看到make完成了,下面使用make install进行安装,这个过程相对于上一步的安装过程要短了很多,看安装的部分过程截图如下
3、到现在全部的安装工作已经完成,我们可以进入root目录看看,检查安装是否成功
由于为了试验的验证方便,我直接把文件都安装到了root下,看下面的截图可以看到系统在安装中建立的httpd相关的文件夹
注意有些是httpd的文件,比如:build include lib等,有些是系统文件
备注:RPM最早是由RedHat公司提出的软件包管理标准,后来随着版本的升级you融入了许多其他优秀的特性,称为了LINUX中公认的软件包管理标准。目前使用RPM作为软件包管理格式主要的主要有RedHat Linux、SUSE Linux和Mandriva Linux.
RPM现在是RPM Package Manger的所写(原来是RedHat Package Manager),由RPM社区负责维护。
可登录下面站点查询RPM的详细资料:
- Linux系统:开放源代码应用程序的编译与安装
- 开放源代码与.NET应用程序平台的性能测试
- egroupware 开放源代码的内容管理系统
- linux 编译系统的简单介绍与内核编译与安装
- linux系统交叉编译环境的安装
- linux系统中应用程序安装
- linux系统中应用程序安装
- 探讨嵌入式系统开放源代码的可能性
- Asterisk[1] 是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86
- 应用程序编译安装的过程
- 开放源代码的全文检索引擎Lucene――介绍、系统结构与源码实现分析
- Linux系统下Boost库编译与安装
- Linux应用程序安装与管理
- linux应用程序安装与管理
- linux网卡驱动程序的编译与安装
- OpenCV (Linux下的编译与安装)
- linux的内核编译与安装
- linux网卡驱动程序的编译与安装
- Java中多客户端同时连接服务端
- C++Primer第五版 9.5.3节练习
- C++重载操作符之二(输入>>,输出<<,以及乘法)
- Android中内存缓存和文件缓存的实现原理
- linux 通过 crontab 和 shell 每三秒跑一次check
- Linux系统:开放源代码应用程序的编译与安装
- 用JDK中的 jps、jinfo、jstat、jstack、jmap、jconsole等命令对JVM,内存,线程进行分析和故障诊断
- C算法-求一个加上100和168后为完全平方数的整数
- 九宫格布局
- 字符串替换(持续更新中)
- ios Block传值
- JavaScript技巧续(命名规范)
- 数据结构之初体验
- 编译android5.0.2源码到libwebviewchromium.so时停止很长时间发生错误