源码的安装通常由这三个步骤:

配置(configure)

编译(make)

安装(makeinstall)

安装成功的源码就是所谓的可执行文件,在你不须要的时侯,也是可以删掉/卸载(remove/uninstall)的。下边就挨个进行剖析:

一、源码的配置

配置命令就是configure命令。通常来说,configure文件是坐落源码根目录下的一个可执行的脚本文件,它有很多选项,但是不同软件的选项都不完全一致。可以在待安装的源码目录下使用命令:./configure--help输出详尽的选项列表。

./configure--prefix=/usr/local/

1其中有一个通用的选项,称作--prefix选项,目的是配置安装的路径。

若果不配置该选项,安装后:

可执行文件默认置于/usr/local/bin,

库文件默认置于/usr/local/lib,

配置文件默认置于/usr/local/etc,

其他的资源文件置于/usr/local/share,比较分散。

为了易于集中管理某个软件的各类文件,想指定到某个路径下,可以配置--prefix,如:

./configure--prefix=/usr/local/proj4

1这么,安装后的所有资源文件就会被置于/usr/local/proj4目录中,不会分散到其他目录。

用了--prefix选项的另一个用处是卸载软件或则移植软件更便捷。当某个安装的软件不再须要时,只须删掉该安装目录,就可以把软件卸载的干干净净。

二、源码的编译

配置完毕以后linux 卸载apache命令,通常还会提示你,直接运行make命令进行编译。此时你照做就好,程序才会开始手动编译。

有一个要注意的就是,考虑到目前的计算机通常都是多核的,假如你想人工推动程序的编译速率linux 卸载apache命令,可以手工指定一个make命令的一个参数“-j8”或者“-j16”,前面的数字表示的就是用几个核进行编译,数字越大,编译速率越快。其实,要说明的是,这儿的编译速率与内核的个数,并不是成反比的。并且,具体多少个任务同时执行为佳,还须要依照具体的机器配置,任务数太多,反倒疗效不好。

比如:对一个linux内核的编译过程的测试,使用不同的参数编译的时间如下:

用make:大概40分钟;

用make-j4:大概23分钟;

用make-j8:接近23分钟。

另外,这个方案不是完全没有弊病的,假如项目的Makefile不规范,没有正确的设置好依赖关系,并行编译的结果就是编译不能正常进行。假如依赖关系设置过分保守,则可能本身编译的可并行度就升高了,也不能取得最佳的疗效。

三、程序的安装

编译完成以后,就是安装。这儿的安装,虽然就是把编译下来的可执行文件linux就该这么学,以及一堆的头文件和依赖库,以及文档资料等linux服务器维护,根据linux系统约定的规则,拷贝到你事先指定的目录下去。所以,与其叫安装,虽然就是一个拷贝的过程。

cmd卸载命令_卸载命令linux_linux 卸载apache命令

同样,这儿也有一点要说明的是,好多时侯,指南或则提示信息里都只是告诉你,执行makeinstall命令来进行安装。但是,你执行了这个命令以后,常常会碰到一些错误的提示。经过一番排查以后,你会发觉,就是由于权限不够,造成文件拷贝失败。所以,最好养成一个习惯,每次makeinstall的命令前加上sudo的权限,如下:

$sudomakeinstall

四、程序的卸载

其实,要卸载程序,也可以在原先的make目录下用一次makeuninstall,但前提是Makefile文件有uninstall命令。

而假如你安装时没有配置--prefix选项,源码包也没有提供makeuninstall命令,则可以通过以下方法来卸载:

找到makeinstall以后形成的这个文件install_manifest.txt

上面有安装的所有东西的路径,使用下列命令挨个删掉它们即可。

$catinstall_manifest.txt|sudoxargsrm

五、总结

./configure的作用是测量系统配置,生成makefile文件,便于可以用make和makeinstall来编译和安装程序。

./configure是源代码安装的第一步,主要的作用是对将要安装的软件进行配置,检测当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包。

可以先ls,查看有没有configure或则makefile文件。

假如有configure,就./configure,有好多参数。假如系统环境合适,都会生成makefile,否则会报错。

假如有makefile,就直接make,之后makeinstall。

还可以用rpm或则deb包来安装。并且现今的发行版都有自己的包管理器,例如apt或yum,一个命令就可以从源下载软件,还可以手动解决依赖问题。

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复