Linux安装软件源码包

Linux安装软件源码包

大部分软件的源码包都可以通过.configure配置、make编译以及make install安装3个命令来安装。有些特殊的软件可以直接通过make编译以及make install安装
.configure配置、make编译以及make install安装涉及到复杂操作,部分可能因权限问题而产生不可预料的错误,所以建议使用root用户执行命令。同时建议关闭SELinux(除非你非常熟悉SELinux),否则安装软件过程可能产生不可预料的错误

GCC

Linux上的软件的源码一般是C语言或者C++语言开发,因此源码安装一般都需要GCC编译器

GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)

GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由

基本规则

在Linux系统中,扩展名没有意义,系统从文件的属性来区分可执行文件和不可执行文件。而GCC则通过扩展名来区别输入文件的类别,下面介绍GCC所遵循的部分约定规则

  • .c为后缀的文件,C语言源代码文件;
  • .a为后缀的文件,是由目标文件构成的档案库文件;
  • .C.cc.cxx 为后缀的文件,是C++源代码文件且必须要经过预处理;
  • .h为后缀的文件,是程序所包含的头文件;
  • .i 为后缀的文件,是C源代码文件且不应该对其执行预处理;
  • .ii为后缀的文件,是C++源代码文件且不应该对其执行预处理;
  • .m为后缀的文件,是Objective-C源代码文件;
  • .mm为后缀的文件,是Objective-C++源代码文件;
  • .o为后缀的文件,是编译后的目标文件;
  • .s为后缀的文件,是汇编语言源代码文件;
  • .S为后缀的文件,是经过预编译的汇编语言源代码文件。

GCC编译过程

在执行编译工作的时候,总共需要4步:

  • 预处理,生成 .i 的文件[预处理器cpp]
  • 将预处理后的文件转换成汇编语言, 生成文件 .s [编译器egcs]
  • 有汇编变为目标代码(机器代码)生成 .o 的文件[汇编器as]
  • 连接目标代码, 生成可执行程序 [链接器ld]

下载软件源码包

登录官网,找到下载页面,找到源码包安装包
如果选择下载已经编译好的二进制安装包,则需要根据系统版本选择相应的二进制安装包

解压软件源码包

软件的源代码一般以tar.gz、tar.bz2、zip、src.rpm等方式进行打包。可以通过解压缩命令解压源码包

常用解压命令如下

# *.tar 用 tar -xvf 解压
tar -xvf file.tar
# 解压tar.gz
tar -xzvf file.tar.gz
# 解压 tar.bz2
tar -xjvf file.tar.bz2
# 解压tar.Z
tar -xZvf file.tar.Z
# *.rar 用 unrar e解压
unrar e file.rar 
# *.zip 用 unzip 解压      yum install -y unzip
unzip file.zip 
#解压.tgz
tar zxvf  file.tgz
#解压.xz      yum install -y xz
xz -d file.xz

编译安装软件条件

因软件可能依赖系统某些开发工具或者基础类库,比如gcc、gcc-c++、make、automake、perl、kernel-devel等,所以编译安装软件之前最好进行安装或更新成相应的版本,否则会导致安装异常或失败
安装相应软件时,最好查看其官网的文档,明白软件安装所需开发工具、基础类库、开发类库等。最好参考官网安装文档进行安装

安装这些依赖环境可以选择RPM安装、yum安装、也可以选择源码编译安装,不过为了方便快捷,一般选择使用yum安装,因为yum不仅操作简单便捷,还可以节省编译时间和解决软件包依赖问题

yum -y update gcc gcc-c++ make automake perl kernel-devel

不同软件所依赖的环境不同,需要参考实际环境进行选择

软件配置相关的选项并生成Makefile

./configure是一个可执行脚本,它可以检测当前系统的软硬件环境是否满足软件的安装、修改软件默认的参数等,它有很多选项,可以通过./configure -help输出详细的选项列表来帮助我们安装程序
./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系

[root@localhost ~]# ./configure --prefix=/usr/local/目录名称

可以通过--prefix参数修改软件默认的安装位置

命令执行完毕后会生成Makefile文件

软件编译

配置好编译选项后,系统会生成编译软件需要的Makefile文件,后续的mark编译需要用到Makefile文件,Makefile文件会告诉mark编译怎样去编译和链接程序

一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令.

编译软件执行make命令

[root@localhost ~]# make

执行make命令后make会根据Makefile文件来生成目标文件,如二进制程序等

执行make命令会进入编译阶段,编译阶段所用时间因源码大小、计算机硬件配置的不同而不同,所以请耐心等待编译结束

软件安装

编译完成后,可以执行make install命令来安装软件,等待安装完毕即可

[root@localhost ~]# make install

执行make install命令,开始安装软件,安装进程会自动创建安装目录(如果安装目录不存在),将部分文件复制到相应的系统目录习下,同时将相应的文件和编译好的可执行程序复制到安装目录下,有的还会执行一些Linux命令,因make install操作涉及到复杂操作,部分可能因权限问题而产生不可预料的错误,建议使用Root用户进行安装,同时建议关闭SELinux(除非你非常熟悉SELinux),否则安装软件过程可能产生不可预料的错误。至此这样安装就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值