先来说下为什么要源码安装:
拿CentOS操作系统举例,它本身自带很多rpm包,我们可以通过yum命令关联依赖包来安装应用软件,但由于是自带的,软件的版本不会改变,假设我们要升级应用软件或者要使用rpm包之外的软件(第三方软件),我们就不能通过yum命令安装,只好通过源码安装。
首先下载源码包,可以使用wget+源码包网址的命令下载,之后再解压缩
1.若解压缩的文件里面有Makefile文件
1.1为当前客户机使用
1.1.1若升级软件
make
sudo make install
1.1.2若安装第三方软件
make
make --prefix=安装路径 install //如果不指定安装路径,则可执行文件默认安装到/usr/bin/,动态库文件则会安装到/usr/lib/,假设第三方软件动态库的某个文件名和本机动态库的某个文件名一样,这样就会替换,导致本机动态库发生改变,会造成不良影响,严重的直接崩溃,所以安装第三方软件一定要指定安装路径,个人喜欢指定为/usr/local/xx
1.2 为ARM开发板使用
修改Makefile,添加交叉编译工具链arm-linux-
make
make install是不必要的,直接将生成的所需要文件移植到开发板即可,因为是提供给ARM使用,安装在本机上有何用?我们要有灵性!
2.若解压缩的文件里面有configure文件
2.1 为当前客户机使用
2.1.1若升级软件
./configure //为了生成Makefile
make
sudo make install
2.1.2若安装第三方软件
./configure --prefix=安装路径 //道理和上面类似
make
make install
2.2 为ARM开发板使用
./configure CC=arm-linux-gcc LD=arm-linux-ld --host=arm-linux --prefix=安装路径
make
/*
假设make之后报错,一般是缺少了某个交叉编译工具链,我们通过报错信息将需要的添加进去,比如少了ranlib,我们就要添加并指定RAMLIB=arm-linux-ranlib,注意要大写,接下来我们先make distclean,再
./configure CC=arm-linux-gcc LD=arm-linux-ld RAMLIB=arm-linux-ranlib --host=arm-linux --prefix=安装路径
make
*/
##
如果设值了环境变量,则CC=arm-linux-gcc即可,若没设置,则要写绝对路径,例如:CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc,LD同理
##
make install不必要,直接将生成的所需要文件移植到开发板即可,至于所需要的文件,可以在解压缩目录下
find -iname "所需要文件名"
找到之后还可以用file命令查看文件是否符合ARM