使用源码进行安装和卸载软件:

常见源代码的压缩包的解压方式:

  • .tar.gz 格式 : tar xzf
  • .tar.bz2 格式 : tar xjf
  • .tar.xz 格式 : tar xJf

正常的编译安装/卸载:

  • 源码的安装一般由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命令。

关于卸载:

如果没有配置--prefix选项,源码包也没有提供make uninstall,则可以通过以下方式可以完整卸载:

找一个临时目录重新安装一遍,如:
 $ ./configure --prefix=/tmp/delete/ && make install 

然后遍历/tmp/delete/的文件,删除对应安装位置的文件即可(因为/tmp/delete/里的目录结构就是没有配置--prefix选项时的目录结构)。

以下是遍历删除相应文件的脚本:

#! /bin/bash

function delete() {
    if [ -f $1 ]; # 判断是否是文件
        then
        rm -vf "/usr/local/"$1
    elif [ -d $1 ]; # 判断是否是目录
    then
        for file in `ls $1`
        do
            delete $1"/"$file
        done
    fi
}

for dir in `ls .`
do
    delete $dir
done

复制以上内容到 delete.sh, chmod +x delete.sh  加上可执行权限,在/tmp/delete/目录下执行./delete.sh即可。

原文地址:https://www.cnblogs.com/tongyishu/p/12058247.html