背景
简述:
先说windows平台下的软件安装,最常见的是:
下载到exe的安装文件,然后双击,然后一路下一步,使用默认配置,最后点击安装完成即可。
而对于linux下,一般来说,至少在出现各种更方便的软件包管理工具之前,是没有:
双击某个软件包,然后就可以自动帮你安装,直到安装完成的。
而linux下,对于安装软件来说,主要分两种:
- 手动安装
- 二进制直接安装:
- 别人帮你编译好了,针对你的平台的,二进制文件,你直接拿过来使用即可
- 源码编译后安装:
- 获得源码,然后自己配置,编译,成对应的二进制,然后再安装到你系统中
- 二进制直接安装:
- 自动安装:
- 使用ubuntu下的apt等工具,自动实现某软件的安装
- 无需关心细节,直接apt-install xxx,即可实现常见的软件的安装
- 使用ubuntu下的apt等工具,自动实现某软件的安装
此处,主要介绍的是:
手动安装,包括二进制和源码的两种不同方式。
Linux下安装软件的通用流程
下载得到对应平台的二进制文件而直接安装
很多时候,对于某个软件,别人,已经提供了,针对某个平台,编译好的,二进制文件;
如果此时,已经有了你的平台的二进制文件时,则可以直接下载后,直接(安装)使用,就不用麻烦再去编译了。
此时,只剩下,把解压后的,二进制,所在的xxx/bin的路径,添加到linux的环境变量path中,即可。
配置编译安装之前要明白的事情
一般的软件的源码包内,都有一些,关于介绍本软件,在配置,编译,安装等方面的注意事项。
所以,在真正去配置编译安装之前,认真的看人家的说明,会在你后期遇到问题时,有很大帮助。
最常见的几类说明文件有:
(1)readme.txt或README
最常见的,在你使用此程序之前,最好看看人家的说明。
注意其中是否有哪些事项需要你注意的。
以及,如何使用此程序等等。
(2)INSTALL
在编译完毕后,对于安装,有哪些注意事项,如何操作,等等。
举例:
(3)config.sub
全称是:
Configuration validation subroutine script
其中,包含了:
当我们在进行各种配置,比如交叉编译时,常用的–host或–target的值的时候,往往不太确定,当前支持哪些值
这时候,就可以去config.sub去找找了。
下载源码后自己配置编译安装
最最通用的步骤是:
- ./configure
- make
- make install
- make clean
即所谓的:
- 配置
- 编译
- 安装
- 删除安装时产生的临时文件
下面详细解释每个步骤。
获得软件的源码
简述:
主要有两种方式:
一种是,直接去官网,下载对应的源码包;
一种是,去别的某些(镜像)网站,下载对应的源码包;
配置
如果没特殊需求,则直接去配置即可:
./configure
1.在配置之前,一般都可以通过:
./configure –help
可以查看到,当前软件,支持哪些详细的功能和配置
即,可以通过,该软件特定的参数,去开启或关闭某个功能或特性等等。
2.比较通用几个参数
(1)–prefix=xxx:
将你的程序,安装到哪里,等价于:
windows中,在安装过程中,所要选择的程序的安装目录
(2)交叉编译时,常会用到–host和–target
编译
最常用的,就是直接make去编译即可:
1 | make |
安装
一般都是直接安装:
1 | make install |
即可,将生成的二进制文件,以及相关帮助文件(man文件),(sample,demo等)示例文件,安装到相应的位置。
删除安装时产生的临时文件
使用如下命令:
1 | make clean |
关于源码编译安装包安装好后,解压目录是否删除问题
通常情况下:
tar.gz只是一种压缩方式,和deb,rpm只是封装的方式不同,安装后都可以删除,包括解压产生的目录。
特殊情况:
有些软件包整合了必要的文件,安装时默认必须安装在压缩目录下,如amber。这种情况定不可删除解压后的目录,否则会把此软件从计算机中删除。
卸载
有些tar包带了uninstall脚本,则可用make uninstall命令卸载此软件(前提是这个安装目录没有被删除)
没有包含uninstall脚本的tar包可以用第三方工具卸载软件,如新立得,Kinstall和Kife。
make distclean: 这个命令是一个大锤 - 它删除所有的临时文件, 已安装的库和程序,以及几个第三方库. 这个命令的目的是将源代码树返回到原始状态, 就好像你刚刚提取了一个新版本的源代码。此命令适合上述amber软件的卸载。如果你计划更改您用于构建Amber的编译器,,你应该先运行这个命令。