zoukankan      html  css  js  c++  java
  • 源码编译安装软件包

    1、准备编译环境,Linux中绝大多数软件的源码都是用C语言写的,少部分用C++或其他语言编写。因此想要编译源代码需要先按照gcc编译器和gcc-c++编译器。

    # 安装编译器和常用库
    yum groupinstall -y "Development tools"
    yum install -y gcc gcc-c++ autoconf automake make
    yum instlal zlib zlib-devel openssl openss-devel pcre pcre-devel
    

    2、获取源码包

    # 网络下载源码包,源码包一般是tar压缩包格式,通俗称之为tarball。
    # 如nginx源码包
    wget http://nginx.org/download/nginx-1.18.0.tar.gz
    

    3、解压

    # 解压tarball
    tar xvf nginx-1.18.0.tar.gz -C /tmp
    

    4、编译环境检查

    软件开发者会写好一个检查环境的程序放在tarball中,通常叫做configure或者config。主要功能的有:

    • 检查是否有合适的编译器可以编译本源码。
    • 检查是否已经存在该软件所需的依赖库,或其他需要的软件。
    • 检查操作系统是否适合该软件,包括Linux的内核版本。
    • 检查内核的表头定义文件(header include)是否存在。
    • 定义安装时的功能选项。
    • 把系统环境的检查结果和定义好的功能选项写入Makefile文件,后续的编译和安装都需要依赖这个文件。
    # 进入源码包,运行configure
    cd /tmp/nginx-1.18.0/
    ./configure --prefix=/usr/local/nginx-1.18.0
    # 常用选项有:
    	--prefix=/usr/local/PATH    # 定义安装路径
    	--enable-    	# 启用某功能
    	--disable-    	# 禁用某功能
    	--help    		# 查询帮助信息
    	
    一般情况下,都应该将软件安装至/usr/local目录下以程序包名+版本号命名的目录中,这样方便统一管理。
    

    5、编译和编译安装

    编译和编译安装都是使用make这个命令,make会调用编译器,并读取Makefile文件中的信息进行系统软件编译。

    make # 编译
    按Makefile文件编译,可以使用-j选项指定多颗CPU编译。
    make install # 编译安装
    
    # 通常为了方便,我们可以将两条命令写一起
    make && make install
    

    整个过程不保错,即为安装成功。

    安装过程中,如果出现 ”error“ 或 ”warning“ 且安装过程停止,表示安装失败。如果仅出现警告信息,但安装过程还在继续,这并不是安装失败,顶多使软件部分功能无法使用。

    如果在执行 “./configure” 或 ”make“ 编译中报错停止,通常情况下都是因为缺少某些依赖库,按报错信息安装依赖库即可。然后在重新执行 “./configure” 之前,要先运行 make clean 命令,它会清空Makefile文件或编译产生的 ".o" 头文件,清空后再编译安装

    卸载源码安装的软件包

    在安装源码包时,我们指定了安装路径为/usr/local目录下,源码包的卸载只需要找到软件的安装位置,直接删除其所在目录即可,不会遗留任何文件。需要注意的时,在删除前应先将软件停止服务。

    rm -rf /usr/local/nginx-1.18.0
    
  • 相关阅读:
    强制隐藏android键盘
    百度地图3.7.1和传感器的应用
    百度地图3.7.1获取当前的位置,并自定义自身位置的图标
    百度地图3.7.1的卫星地图,实时交通的改变
    百度地图3.7.1的配置
    RecyclerView的ListView显示效果
    单元测试
    自定义侧滑菜单
    synchronized关键字的用法
    Android 开发中R文件的丢失
  • 原文地址:https://www.cnblogs.com/ChiRou/p/13920519.html
Copyright © 2011-2022 走看看