Ubuntu 安装软件(二)

编译安装

为什么要编译安装

  1. 包管理系统是绝大多数发行版的必备组件,也是一个发行版区别于其它发行版的主要特征。但是有些软件,并不能通过包管理系统安装,这就需要下载源码编译安装。
  2. 一个软件可能有许多功能,但是发行版中提供的安装包,通常只具有一些常见的功能。如果提供所有功能,那么无疑会占用更多的资源,而这些功能,大多数用户不会用到;而你会用到的功能,可能安装包中刚好没有。编译安装可以灵活地定制软件,选择自己需要的,取消自己不需要的。
  3. 编译安装还可以针对特定的硬件进行优化,以获得更好的性能表现。

编译环境

  • 编译环境包括多个工具,它们环环相扣,称作编译工具链。主要包括以下工具:

    工具简介
    binutils连接器、汇编器和其他用于目标文件和档案的工具
    gcc编译器,将源代码转换为机器代码
    glibcC库,提供标准例程(C函数)
  • 还有一些工具,能够调用工具链,实现自动化编译:

    工具简介
    autoconf自动生成 Makefile 文件
    automake
    make按照 Makefile 文件中的规则编译程序

标准编译安装

首先,下载源代码,通常是压缩包,如:xxx.tar.gz 或者 xxx.tar.bz2,解包:
压缩包格式解压命令
.tar.gztar -zxvf xxx
.tgz
.tar.bz2tar jxvf xxx

源码包解压后,进入解压后的文件夹下,使用下列命令编译安装:

./configure             #配置软件特性, 检查编译环境,生成 Makefile文件
--prefix=/path/to       #最常用配置选项: 指定软件的安装路径
make                    #根据 Makefile 编译源代码
sudo make install       #将编译完成的程序安装到系统中, 通常需要 root权限
make clean              #清除源代码目录中的编译结果

自动化编译安装

在前面的标准编译安装中,第一步是./configure,它会根据Makefile.in生成Makefile文件,然后make根据Makefile自动编译软件。通常在一个源码包中,已经包含了configure脚本和Makefile文件,作为课外知识,我们大致了解一下怎么生成这两个文件。

生成Makefile

上面的表格中也提到,生成Makefile需要使用autoconf和automake工具。

  • autoconf用来生成configure脚本,它可以检查系统特性、编译环境、环境变量、软件参数、依赖关系等。autoconf需要用到 m4。
    • 用autoscan描源代码目录生成configure.scan文件
    • 将configure.scan改名为configure.in
    • 用aclocal根据configure.in文件的内容,自动生成aclocal.m4文件
    • 使用autoconf,根据configure.in和aclocal.m4来产生configure文件
  • automake可以从Makefile.am文件自动生成Makefile.in,它主要用来配置源代码。automake需用到perl。
    • 手工写Makefile.am
    • 使用automake,根据configure.in和Makefile.am来产生Makefile.in
  • 使用configure脚本,配合Makefile.in可以生成Makefile文件,然后用make自动化的编译软件
使用make命令安装

通过make和make install命令安装。

  • make是用来编译的,它从Makefile中读取指令,然后编译。
  • make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

make常用命令列表:

命令作用
make install将程序安装到系统中
make all产生预设的目标,只敲入make也可以
make clean清除编译结果
make distclean除了清除编译结果,也把configure所产生的 Makefile 清除掉
make dist将程序和相关的文档打包为一个压缩文档以供发布
make distcheck打包并检验

本篇文章参考了: https://blog.csdn.net/chudongfang2015/article/details/51863986

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值