文档章节

linux源代码安装软件

ustbgaofan
 ustbgaofan
发布于 2014/07/30 16:03
字数 1326
阅读 40
收藏 0
点赞 0
评论 0


./configure 配置环境

make是编译的意思。就是把源码包编译成二进制可执行文件

make install 就是安装的意思。

 在Linux中利用源码包安装软件最重要的就是要仔细阅读安装包当中的README  INSTALL两个说明文件,这两个文件会清楚的告诉你如何可以正确的完成这个软件的安装!         我们都知道源码包安装分为这么几个阶段,1、  ./configureconfigure会在你的系统上测试存在的特性  Make:编译程序。5、<span times="" new="" roman'"="" style="padding: 0px">  Make install:安装文件!以上五步就是源码包安装软件的步骤,每一步不成功,则下一步就没法去完成!下面我们就找个软件来安装,并且一步一步来解释一下!我们就那httpd-2.2.11.tar.gz来做例子吧!1、<span times="" new="" roman'"="" style="padding: 0px">  Tar:解压这个源码软件包。这步没什么好说的,把源码包解压开就好了,接下来第二步!2、(或者<span tahoma','sans-serif';="" color:="" #2a2a2a;="" mso-bidi-font-size:="" 14px"="" style="padding: 0px">bug!)然后来建立Makefile文件来完成makeconfigure”脚本有大量的命令行选项,对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的。而我们用的最多的也就是下面这条命令:./configure --prefix=/软件要安装的路径但是我们也可以直接./configure而不指定路径,通常通过从源码包编译安装的软件默认路径都是/usr/local/,如果./configure不成功而直接去make的话,就会出现下图的错误:当我们解决完./configure的错误,然后重新./configure成功后,我们就可以编译程序了!再说几个能关系到能否编译成功的文件:/etc/ld.so.confldconfig首先说一下/etc/ld.so.conf,这个文件中记录的编译时使用的动态链接库的路径,默认情况下编译器只会使用/lib/usr/lib这两个目录下的库文件,如果你安装了其他的库,那么安装完成后就在/etc/ld.so.conf把这个库文件中的绝对路径写进去就OK了。再来看看ldconfig是个什么东西吧:他是一个程序,它的作用就是将/etc/ld.so.conf中的路径缓存到/etc/ld.so.cache中,因此在安装完一些库文件或者修改ld.so.conf增加新的路径后需要运行一下/sbin/ldconfig使所有的库文件都缓存都ld.so.cache中,如果没有运行/sbin/ldconfig,即使库文件就在/etc/ld.so.conf中,也是不会被使用的,结果在编译的过程中同样报错缺少XXX库!4Make:编译程序。在编译的时候,gcc个版本之间存在着差异,所以有时候用不同版本的gcc去编译,有的版本能编译成功,有的就编译失败,这样的错误只是版本问题。另外在make的时候会出现的另一个错就是比较难办的,遇到这样的问题就只能凭经验查找原因,比如说某个头文件没有找到,这个时候就要顺着出错的位置一行一行的往上找,比如显示XXXXXX.h………no such file or directory,说明缺少头文件,或者找到你觉得有价值的错误信息去搜索引擎里搜索,从这里可能会找到对你有用的信息,最重要的就是在安装之前仔细的去看READMEINSTALL文件,这两个文件里会告诉你程序应该怎样去安装,需要什么依赖文件等等。有的时候在编译时不知道是否编译成功,而在没有编译成功就去make  install肯定会出错,这样就增加了问题的复杂性,俗话说的好“道高一尺魔高一丈”,这样我们可以在make结束的时候通过一条命令来检查是否成功编译:echo  $?输入这条命令回车后,输出的结果是0,那么就说明成功编译,否则就是出错了,echo  $?表示检查上一条命令的退出状态,程序正常退出返回05、<span times="" new="" roman'"="" style="padding: 0px">  Make install:安装文件!它也从Makefile中读取指令,然后安装到指定的位置。看到上图输出0之后我们就可以make  install来安装了,运行完之后输入echo  $?检查看看是否有错误,只要输出结果为0,那就说明我们的安装成功,我们可以测试一下,把Apache的服务起来/usr/local/apache2/bin/apachectl start,因为Apache的端口是80所以我们netstat -lan | grep 80来看看80端口处于监听状态不:然后再IE里输入服务器的IP地址http://10.10.234.203/成功了,说明我们的安装没问题!其实./configuremakemake  install这三个命令,我们可以用&&来把命令连接起来执行,表示当前一条命令正常结束后,后面的命令才会执行,这个办法很好,既节省时间,又可以防止发生错误。例:./configure  &&  make  &&  make  install

本文转载自:http://wangqiyong.blog.51cto.com/500227/367049

共有 人打赏支持
ustbgaofan
粉丝 12
博文 139
码字总数 33184
作品 0
海淀
程序员
linux源码包软件的安装与卸载

Linux软件安装与卸载(源码包形式):一般情况下linux程序的发布不能像windows那样,直接打包成一个setup.exe文件,然用户安装 时直接按下一步就完成了,因为它对库的依赖比较严重下面就来看...

cnblogs
2011/03/25
0
0
从WINDOWS转到LINUX之路

说起来你可能不信,两年前我还根本不知道 Linux 是什么,放弃 Windows 转投 Linux 更是不可能。 我花了大量时间和耐心在 Linux 上,我的朋友们都能为我证明这点。说起来你可能不信,两年前我...

linuxprobe16
2017/11/04
0
0
Linux Centos下软件的安装与卸载方法

第一章 linux下安装软件,如何知道软件安装位置 注:一般的软件的默认安装目录在/usr/local或者/opt里,可以到那里去找找. 指令名称:whereis 功能介绍:在特定目录中查找符合条件的文件。这...

happy圈圈
2014/04/25
0
0
将 DEB 软件包转换成 Arch Linux 软件包

我们已经学会了如何为多个平台构建包,以及如何从源代码构建包。 今天,我们将学习如何将 DEB 包转换为 Arch Linux 包。 您可能会问,AUR 是这个星球上的大型软件存储库,几乎所有的软件都可...

12%
06/21
0
0
Virtualbox虚拟机安装CentOS6.5图文详细教程

什么是Virtualbox? VirtualBox 是一款开源虚拟机软件(注:跟vmware差不多)。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购...

Carl_
2014/12/18
0
0
在 Ubuntu 和 Linux Mint 中轻松安装 Android Studio

Android Studio 是谷歌自己的 Android 开发 IDE,是带 ADT 插件的 Eclipse 的不错替代品。Android Studio 可以通过源代码安装,但在这篇文章中,我们将看到如何在 Ubuntu 18.04、16.04 和相应...

作者: Abhishek Prakash
05/10
0
0
CentOS6.4 VPS安装Git

Git是一个开源的分布式版本控制系统由Linus Torvalds,Linux的创造者。 它功能简单的分支和合并,为单个项目管理多个远程仓库,和真正的分布式开发。 尽管git是美好的在管理大型、复杂的项目也许...

leisudeng
2014/02/14
0
0
Linux学习笔记(六)——应用程序安装

                  安装及管理应用程序   同windows操作系统一样,使用一个操作系统,肯定要安装一些软件,这篇随笔主要介绍Linux上软件的安装。首先我们应该了解Linux...

zhoujie0111
2013/03/23
0
0
解决ubuntu 15.04 无法开启wifi问题

在安装玩ubuntu 15.04之后,发现不能识别笔记本的无线网卡。点击 系统设置->软件和更新->附加驱动。安装里面推荐的无线网卡驱动时,发现点击com 802.11 Linux STA 无线驱动源代码。在应用更改...

jory123
2015/11/07
0
0
Linux程序包管理:rpm、yum、编译安装

RPM: RPM Package Manager(RPM软件包管理器),是一款在各个版本liunx上都使用的软件包管理器。 RPM共有10种基本的模式: 它们是安装、查询、验证、删除等。 安装模式:      rpm –i...

crcr7
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
0
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0
Confluence 6 安装补丁类文件

Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中。这些问题将会使用 Class 类文件同时在官方 Jira bug...

honeymose
昨天
0
0
非常实用的IDEA插件之总结

1、Alibaba Java Coding Guidelines 经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C...

Gibbons
昨天
1
0
Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口

Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 java程序写的网站用tomcat+jdk来运行...

TaoXu
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部