【Linux】 源码安装make命令详解,避免踩坑

摘要:
如果配置了--prefix,例如:$/Configure--prefix=/usr/local/test安装后,所有资源文件都将放在/usr/local/test目录中,不会分散到其他目录中。当然,要卸载程序,也可以在原始make目录中执行一次卸载,前提是Makefile文件具有卸载命令。

正常的编译安装/卸载:

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
 
configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。
 
其中--prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。
 
如果配置了--prefix,如:
$ ./configure --prefix=/usr/local/test
 
安装后的所有资源文件都会被放在/usr/local/test目录中,不会分散到其他目录。
 
使用--prefix选项的另一个好处是方便卸载软件或移植软件;当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;而移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)。
 
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令(nodejs的源码包里有uninstall命令,测试版本v0.10.35)。
 

关于卸载:

如果没有配置--prefix选项,源码包也没有提供make uninstall,则可以通过以下方式可以完整卸载:
 
找一个临时目录重新安装一遍,如:
$ ./configure --prefix=/tmp/to_remove && make install
 
然后遍历/tmp/to_remove的文件,删除对应安装位置的文件即可(因为/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。

免责声明:文章转载自《【Linux】 源码安装make命令详解,避免踩坑》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SqlServer数据库主从同步Java探针技术-动态agent机制:在main函数启动之后运行agent下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux安装chrome及chromedriver(转)

1、chrome: curl https://intoli.com/install-google-chrome.sh | bash 1.1.centos安装chrome: 從 Google 下載最新版的 Chrome: $ wget https://dl.google.com/linux/direct/google-chrome-stable_curren...

linux内核是如何支持深度睡眠(deep sleep)方式的?

1. 硬件架构 arm64 2. 内核版本 4.19 3. 分析相关函数 setup_arch() ->psci_dt_init() ->psci_0_2_init() -> get_set_conduit_method() ->of_property_read_string(np, "method", &method))...

Jenkins:Linux下安装部署步骤

【转载:https://www.cnblogs.com/code-juggler/p/9177805.html】 1. 准备环境   首先,需要jdk是必须要安装好的。本人使用的linux是centos,直接使用yum安装。   先找到合适的版本://至少1.8 yum search java | grep jdk   然后运行安装: yum instal...

petalinux2019.2 zcu106 build error

ug1209 1. Create a PetaLinux project using the following command:$petalinux-create -t project -s <path to the directory that hasxilinx-zcu102-v2019.2-final.bsp> petalinux-cr...

Linux中进行单文件内容的复制

文件内容复制的常规方法: 开辟一段空间,不断读取文件的内容并写入另一文件当中,这种方法好在安全,一般在类型允许的最大范围内是安全的,缺点就是复制内容的时间长 一次性复制文件的内容,这种方法必须首先获取当前被复制的文件内容的大小,然后一次性开辟与文件内容大小相同的内存空间,通常为了安全,都必须让大小加1。 读取文件内容的步骤 打开被复制文件(open/fo...

linux文件锁的应用,POSIX,unix标准,linux标准

1. perl,flock加锁。java也能加锁。 2. 先创建文件并打开,才能加锁(写打开?)。 3. 可以用于判断进程是否一直在运行(用另一进程判断),如果锁一直在,则进程在;锁不在,则原进程或意外中断。 4. 可以用于互斥,使得同一时间只有一个脚本运行(一般使用非阻塞模式)。 5. 多进程系统中,文件锁可以用于进程互斥。 6. 为了避免对同一文件读写...