Linux系统源码安装过程中的prefix选项

在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件除了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式。原因是:(1)没有类似rpm那样让人恼 火的包依赖关系,(2)源码安装灵活自由,适用于不同的平台,维护也十分方便。

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install),具体的安装方法一般作者都会给出文档,这里主要讨论配置(configure)。Configure是个可执行脚本,他有很多选项,使 用命令./configure –help输出周详的选项列表,如下:

  -bash-3.00# ./configure --help

  Usage: configure [options] [host]

  Options: [defaults in brackets after descriptions]

  Configuration:

  --cache-file=FILE cache test results in FILE

  --help print this message

  --no-create do not create output files

  --quiet, --silent do not print `checking...' messages

  --version print the version of autoconf that created configure

  Directory and file names:

  --prefix=PREFIX install architecture-independent files in PREFIX

  [/usr/local]

    --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX

  [same as prefix]

    --bindir=DIR user executables in DIR [EPREFIX/bin]

  ……….(省略若干)

很多的选项,个人认为,您能够忽略其他的一切,但请把—prefix加上。这里以安装supersparrow-0.0.0为例,我们打算把他安装 到目录 /usr/local/supersparrow,于是在supersparrow-0.0.0目录执行带选项的脚本./configure –prefix=/usr/local/supersparrow,执行成功后再编译、安装(make,make install);安装完成将自动生成目录supersparrow,而且该软件任何的文档都被复制到这个目录。

  为什么要指定这个安装目录?是为了以后的 维护方便,假如没有用这个选项,安装过程结束后,该软件所需的软件被复制到不同的系统目录下,很难弄清楚到底复制了那些文档、都复制到哪里去了—基本上是 一塌糊涂。

  用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就能够把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。

一个小选项有这么方便的作用,建议在实际工作中多多使用。

  ./configure && make && make install 安装三步曲到底发生了什么呢?

用一句话来解释这个过程就是:
  1、根据源码包中 Makefile.in 文件的指示,configure 脚本检查当前的系统环境和配置选项,在当前目录中生成 Makefile
文件(还有其它本文无需关心的文件),

  2、然后 make 程序就按照当前目录中的 Makefile
文件的指示将源代码编译为二进制文件,最后将这些二进制文件移动(即安装)到指定的地方(仍然按照 Makefile 文件的指示)。
  
由此可见 Makefile 文件是幕后的核心。要深入理解安装过程,必须首先对 Makefile 文件有充分的了解 

 

 

时间: 2024-09-29 00:37:49

Linux系统源码安装过程中的prefix选项的相关文章

mysql-5.5.28源码安装过程中错误总结_Mysql

介绍一下关于mysql-5.5.28源码安装过程中几大错误总结,希望此文章对各位同学有所帮助.系统centOS 6.3 mini (没有任何编译环境)预编译环境首先装了众所周知的 cmake(yum install cmake -y) 复制代码 代码如下: ../bootstrap Error when bootstrapping CMake: Cannot find appropriate C compiler on this system. Please specify one using

mysql-5.5.28源码安装过程中几大错误总结

系统centOS 6.3 mini (没有任何编译环境) 预编译环境首先装了众所周知的 cmake(yum install cmake -y)  代码如下 复制代码 1../bootstrap Error when bootstrapping CMake: Cannot find appropriate C compiler on this system. Please specify one using environment variable CC. See cmake_bootstrap.

android4 3-Android4.3源码编译过程中出错

问题描述 Android4.3源码编译过程中出错 虚拟机Ubuntu12.04 64bit 编译Android4.3过程中出现以下问题: make: *** 没有规则可以创建"out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/mterp/out/InterpAsm-x86.o"需要的目标"dalvik/vm/mterp/out/InterpAsm-x86.S". 停止. 源码在ubuntu12.

android同步源码到过程中失败了是不是要从头再来?

问题描述 android同步源码到过程中失败了是不是要从头再来? 用repo工具同步android源码,在过程中失败了是不是要从头再来? 解决方案 是的,看下是不是网络有问题

Redhat linux源码安装过程

源码就是用特定的语言来编写的文本,比如我们常见的c语言.然而源码的安装要经过配置.编译的一系列的复杂过程,那么如此的麻烦为何还要来安装源码呢?其实这是为了让我们的系统来使用更新的功能和更多的功能,另外还可以更加个性化我们的配置.就拿apache来说吧,红帽官方提供给我们的是2.2的版本,但是最新的的版本已经到2.4了,所以有些时候我们需要安装源码. 下面我们来简单说说关于源码安装的必备环境: 源码需要编译成可执行文件,而编译则需要有相应的编译环境.当我们的系统中安装了Develepment To

Linux MySQL源码安装缺少ncurses-devel包

在Red Hat Enterprise Linux Server release 5.7 上用源码安装MySQL-5.6.23时,遇到了" remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel."错误,如下所示 [root@DB-Server mysql-5.6.23]# cm

Linux(centos7) 源码安装cmake

1. 下载cmake源码 wget https://cmake.org/files/v3.3/cmake-3.3.2.tar.gz 2.解压缩 tar xzvf cmake-3.3.2.tar.gz 3.进入到cmake文件夹中执行引导命令 注:此时会检查gcc ,gcc-c++,是否安装和版本,如果没有请先安装 yum install gcc yum install gcc-c++ cd cmake-3.3.2 ./bootstrap 4.执行make gmake 5.执行安装(root权限)

Linux CentOS 源码安装 lrzsz方法详解

lrzsz是在Linux/Unix平台上同Windows进行ZModem文件上传下载,非常有好用命令行工具,相比FTP工具方便很多. sz: 将选定的文件发送(send)到本地机器; rz:运行该命令会弹出一个文件选择窗口, 从本地选择文件上传到服务器(receive).  代码如下 复制代码 mkdir -p /usr/src/tools cd /usr/src/tools wget http://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz // 下载l

分享CentOS下MySQL最新版本5.6.13源码安装过程_Mysql

2个月前公司给DBA的测试服务器被收回去了,一直跟开发用一组DB,有些需要测试的小功能,需要不断重启db,为了不影响开发同事,自己又申请了一个虚拟机,准备安装最新的5.6.13版本的MySQL社区版. 1 download the tar.gzwget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz/from/http://cdn.mysql.com/ 2 安装cmake软件包yum install cmake 3