Linux包管理:源码安装

来自Wikioe
跳到导航 跳到搜索


关于

Linux下程序大都是由以下几部分组成:

内容 路径
二进制文件 /usr/local/bin
库文件 /usr/local/lib
配置文件 /usr/local/etc
帮助文档 /usr/local/man
  • /bin、/lib、/etc 中保存了系统基础的、大部分程序都会用到的内容;
  • /usr 是很多用户程序的默认安装路径;
  • /opt(默认为空)安装额外软件可以放在这个里面【?比如Oracle】

安装步骤

Linux源码安装步骤.png

安装的具体步骤:

# 解压源码包
$ tar zxvf XXXX.tar.gz (or tar jxvf XXXX.tar.bz2)
# 定位到源文件
$ cd XXXX
# 环境检测
$ ./configure --prefix=# 源码编译
$ make
# 安装
$ make install

清理安装后的临时文件:

$ make clean

卸载软件:

# make uninstall

安装过程

解压源码包

最常见源码包的就两种(XXXX.tar.gz or XXXX.tar.bz2),其实这些源码包都是由2个工具压缩而成的:
    tar.gz结尾的文件用到的工具是tar和gunzip,
    而tar.bz2结尾的文件所使用的工具是tar和bzip2,
    
之所以这样做是因为,tar仅仅能够打包多个文件但是没有压缩的功能,而gz和bz2却刚好相反,仅能够压缩单个文件,这样我们常见的源码包实际上是通过tar先将不同的源文件打包,然后再通过gunzip或者bzip2压缩后发布的,当然这两个步骤可以通过一条命令实现:
    tar zcvf XXXX.tar.gz XXXX (or tar jcvf XXXX.tar.bz2 XXXX)

解压的相关命令如下:

$ tar -zxvf xxxx.tar.gz
$ tar -jxvf xxxx.tar.bz2
  1. -z:通过gzip指令处理备份文件
  2. -x:从备份文件中还原文件
  3. -v:显示指令执行过程
  4. -j:通过bzip2指令处理备份文件
  5. -f:指定备份文件
  6. -c:建立新的备份文件

./configure

关于“./configure”:

  1. configure实际上是一个脚本文件,在当前目录中键入“./configure,shell”就会运行当前目录下的configure脚本;
  2. configure仅做编译相关的准备工作,执行后将生成MakeFile文件;
    设置编译特性
    检查编译环境
  • (configure前应该阅读源码目录中的README、INSTALL文件,涉及到安装中的注意事项)
  • 可以键入“./configre –help”获取具体的信息;

设置软件的安装目录:

$ cd xxxx
$ ./configure --prefix=/opt/xxxx
  • 常用的安装路径:“/usr/local/xxxx”、“/opt/xxxx”

检查configure返回结果,为0代表运行成功:

$ echo $?
0

make

关于编译相关:

  1. (Makefile文件,简单来说包括了一组文件依赖关系以及编译链接的相关步骤)
  2. make只是一个通用的工具,并不做编译链接工作,而会根据Makefile中的规则调用合适的编译器编译所有与当前软件相依赖的源码,生成所有相关的目标文件;(编译)
  3. 最后再使用链接器生成最终的可执行程序;(链接)

编译源码:

$ make

检查是否编译成功,为0代表运行成功:

$ echo &?
0

make install

关于make install:

  1. (普通用户如果没有相关目录的操作权限,可以临时切换到root)
  2. “install”只是Makefile文件中的一个标号,“make install”代表着make工具执行Makefile文件中“install”标号下的所有相关操作;
  3. 如果在configure阶段没有使用”–prefix=/opt/XXX”指定应用程序的安装目录,那么应用程序一般会被默认安装到/usr/local/bin;
  4. (如果/usr/local/bin已经存在于您的PATH中,那么安装完成不用再进行环境等的配置)

开始安装

$ make install

后续

关于“make clean”与“make uninstall”:

  1. “clean”和“uninstall”同“install”一样,也是Makefile文件中相应的两个标号,执行这两个步骤的时候Makefile文件必须存在;
  2. “make clean”用来清除编译连接过程中的一些临时文件;
  3. “make uninstall”是卸载相关应用程序,也需要切换到root执行;

配置过程

PATH环境变量

修改PATH环境变量,以能够识别此程序的二进制文件路径:

  1. 修改/etc/profile文件,在文件中添加:
export PATH=$PATH:/path/to/somewhere
    • “/path/to/somewhere”替换为可执行文件所在的目录;
  1. 然后执行命令,以使修改生效:
$ source /etc/profile

增加库文件路径

  • 有的程序不提供库文件,则不需要此设置;

默认情况下,系统搜索库文件的路径“/lib”、“/usr/lib”,要增添额外搜寻路径:

  1. 在“/etc/ld.so.conf.d/”中创建以“.conf”为后缀名的文件,而后把要增添的路径直接写至此文件中,如“mysql.conf”:
    /www/server/mysql/lib
    
  2. 然后执行如下命令使其生效:
$ ldconfig

增加头文件路径

  • 如果程序提供了库文件,也会相应的提供头文件,一般在安装目录的include目录下;

系统默认扫描头文件的路径是:“/usr/include”,要增加额外搜索路径:

  1. 在“/usr/include”下用链接连接到我们安装程序的头文件:
    ln -s /opt/xxxx/include  /usr/include/xxxx