在Linux下,软件包可以划分为两类:源码包、二进制包。
源码包:程序软件的源代码
二进制包:如RedHat发行版的 rpm包,Debian发行版的 deb包
本文主要介绍Linux下源码安装
源码包安装的主要步骤
主要分三个步骤
获取程序源代码文件,通过网络下载或自己编写
编译程序,如 使用gcc编译器
生成可执行文件(即二进制文件)
原理示例
写一个简单的c源文件
vim hello.c
#include <stdio.h>
int main(void){
printf("Hello World!\n");
}
编译
gcc hello.c
# 编译完成后当前目录下多一个a.out
测试结果
[root@server ~]# ./a.out
Hello World!
源码包安装实例
步骤
下载源码包
运行 ./configure 或 ./config
用于检测操作环境并生成Makefile规则文件
--prefix=:设置安装位置。如果不设置该选项:可执行文件默认放在 /usr/local/bin,库文件默认放在 /usr/local/lib,配置文件默认放在/usr/local/etc,其他的资源文件放在 /usr/local/share。使用该选项后,安装后所有的资源文件都会被放在 指定的目录下,不会分散到其它目录。
--disable-:用于禁用一些默认提供的特性。
-enable-:启用默认禁止的特性。
--with-:提供其他已经安装的软件包的信息。
--libdir=:指定库文件的安装位置。
--includedir=:指定C头文件的安装位置.其他语言如C++的头文件也可以使用此选项。
编译
执行make
调用Makefile作为配置文件,进行make操作。执行make将源码编译成可以执行的文件,这个文件会放在当前所在目录下。
安装
执行make install
会根据 Makefile文件里关于install的选项,将上一个步骤编译完成的数据安装到默认(如果执行configure 时有加--prefix则安装到指定的)目录中
源码包安装方式的man文件默认保存在/usr/local/man或/usr/local/share/man中,如果你的安装路径自定义为如/usr/local/XXX,则man文件则一般是在/usr/local/XXX/share/man中。此时如果你想要通过man来查看你所安装软件的man手册,则需要自行修改man的路径配置文件(可能是man.config或者manpath.config)。需要在相应位置添加如下一行:
MANPATH /usr/local/XXX/share/man
卸载
通过源码包安装的软件,当你想要卸载的时候,只需要把整个安装路径删除掉就行了,100%卸载,不会像windows那样经常会残留那多注册表之类的垃圾。
根据你的安装时候选择的安装路径,源码包的卸载又仓库两种情况:
如果你安装时候指定的路径为:
--prefix=/usr/local/XXX,那么卸载的时候只需要把XXX这个文件夹删除即可,因为该软件安装的所有文件都是放置在XXX这个文件夹。
但如果你进行源码包安装的时候没有指定位置(默认值一般为/usr/local/),或指定的位置为--prefix=/usr/local,则这时候你安装软件生成的文件将分别存储在/usr/local/里面的bin、lib或ect等目录中,这时候卸载起来就相对麻烦一点了。
优缺点
优点:
开源,有能力的话可以修改源码
可以自由选择所需要的功能
编译安装,更适合自己的系统,更加稳定,效率也更高。
卸载方便
缺点:
安装过程步骤较多,尤其安装较大的软件集合时,容易出现拼写错误
编译过程时间较长,安装比二进制安装时间长
安装过程中一旦报错,新手解决问题比较困难
评论区