zoukankan      html  css  js  c++  java
  • linux 源码编译与卸载

    Linux下正常的编译安装/卸载

    源码的安装一般由3个步骤组成:

    • 配置(configure)
    • 编译(make)
    • 安装(make install)。

    在执行以上命令时需安装依赖包: 

    yum install curl-devel expat-devel openssl-devel zlib-devel gcc gcc-c++

    configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。

    其中--prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

    如果配置了--prefix,如:

    $ ./configure --prefix=/usr/local/linuxidctest

    安装后的所有资源文件都会被放在/usr/local/linuxidctest目录中,不会分散到其他目录。

    使用--prefix选项的另一个好处是方便卸载软件或移植软件

    • 当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载干净;
    • 移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)

    当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令。

    make install PREFIX=path

    这里PREFIX必须大写,其实绝大部分情况下 make install 都不能再指定 PREFIX 了,因为大部分程序都会 configure 时得到的 prefix 写入 config.h,然后在编译时编译到可执行文件内部,以便在执行时读取资源文件等。

    这样在编译完毕后,就不能再修改 prefix 了。只有运行时不需要资源文件的小工具,才可能在安装的时候随意选择 PREFIX,或者具有 loader 的大程序,在执行时通过 loader 传入路径……

    关于卸载

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

    一个临时目录重新安装一遍,如:

    $ ./configure --prefix=/tmp/to_remove && make install

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

    转载:https://www.linuxidc.com/Linux/2019-03/157703.htm

  • 相关阅读:
    oldboy_09_03day_test1
    oldboy_09_03day
    java消息队列
    es6语法([...arr], set/map数据结构,数组扩展,箭头函数等)
    Angular 2 Expression Changed After It Has Been Checked Exception
    jQuery之Deferred对象详解
    js面向对象:Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
    Angular 4.x 动态创建组件
    JS中this的四种用法
    typescript主键自增长
  • 原文地址:https://www.cnblogs.com/xiangbing123/p/14810643.html
Copyright © 2011-2022 走看看