(1)正常的编译安装/卸载:
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。这些选项中有两项至关重要!!那就是配置安装路径和软件的格式(ARM/X86)。
--prefix
该选项是配置安装路径的,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,比较凌乱。卸载的时候超级麻烦!!所以不建议第三方软件直接默认安装!!一定要自己创建一个空的目录,然后把软件安装进去,这样以后卸载的时候直接删除整文件夹就可以删得干干净净,不留后患!!
--host
该选项是配置软件格式的,也就是你想让这个软件安装后在哪个平台运行的,可以在终端中先输入命令:
uname -m
该命令可以输出当前系统运行的平台(cpu)的架构,例如上图:
(左)我虚拟机是在x86_64平台上运行的,(右)我的开发板是在armv7l平台上运行的;
这两个平台都有自己的软件格式,一般想在开发板上安装软件,是先在虚拟机上安装好,然后整个文件夹拷贝到开发板上就可以了。 目前电脑的芯片基本都是英特尔的,所以x86_64架构的最多,但是嵌入式开发板一般都是arm架构的,在开发板上一般是无法安装软件的,所以需要在自己电脑的虚拟机linux上安装好然后拷贝到开发板上。所--host很重要,它决定该软件能在哪个cpu平台下运行。如果你想让该软件在x86_64平台下运行,默认用的gcc编译。
如果你想让该软件在arm平台下运行,则要配置为交叉编译工具链:
--host=arm-none-linux-gnueabi(前提是你安装了交叉编译工具arm-linux-gcc)
一般的源码安装三部曲顺序:
./configure --prefix=/usr/local/test
sudo make
sudo make install
这三行命令依次执行的意思是,使用默认的gcc编译软件源码,然后把安装的所有资源文件都放在/usr/local/test目录中,不会分散到其他目录。最后再设置一下环境变量就可以任意使用该软件了。
注意:如果想在x86_64电脑的linux虚拟机中安装一个可以在arm开发板上运行的软件:
./configure --prefix=/usr/local/test --host=arm-none-linux-gnueabi
sudo make
sudo make install
这三行命令依次执行的意思是,使用arm-linux-gcc编译软件源码,然后把安装的所有资源文件都放在/usr/local/test目录中,不会分散到其他目录。安装完成后就把整个test目录打包拷贝到arm开发板上就可以在arm开发板上使用该软件了。
(2)卸载:
如果没有配置--prefix选项,源码包也没有提供make uninstall,则可以通过以下方式可以完整卸载:
找一个临时目录重新安装一遍,如:
./configure --prefix=/tmp/to_remove && make install
然后遍历/tmp/to_remove的文件,删除对应安装位置的文件即可(因为/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。
当下载了源码就可以按照此种方法,就可以进行软件的安装和卸载。