默认教学计划
931人加入学习
(20人评价)
Linux运维基础
价格 ¥ 599.00
该课程属于 高校公益行 | 网络安全实践训练营 请加入后再学习

编译安装: RPM YUM

 

RPM,一键安装,方便,二进制程序,但存在一下问题:

    1:功能不齐全,功能冗余

    2:版本滞后

因此我们需要自己定制软件包:源代码编译为安装应用程序

 

编译环境:

    gcc:GNU C Complier

    gcc-c++:

    安装编译环境: # yum -y groupinstall "Development Tools"

    

    automake:生成Makefile.in(半成品)文件

    

    autoconf:生成脚本文件configure,在源代码目录中

    

    make:最终使用make进行编译,但其本身并不是编译器,是项目管理工具,按照Makefile文件中的定义的顺序去编译。

 

 

执行编译安装步骤:

    1:获取源代码并解压:

      # tar xf xxx.tar.gz

      # tar xf xxx.tar.bz2

 

    2:执行configure脚本(在源码目录中运行),及错误处理

      功能:1:检查应用程序所需要的编译环境 2:生成Makefile 3:定制应用程序功能

      选项:--help:查看该脚本帮助信息

      --prefix=PATH:定义应用程序安装路径

      --sbin-path=PATH:定义应用程序的二进制程序路径

      --conf-path=PATH:定义应用程序配置文件路径

      --enable--XXXX:开启某项功能(如应用程序支持该功能,但默认不安装)

      --disable--XXX:关闭某项功能(如应用程序支持该功能,默认安装,但是用户不需要)

      --with--XXX:开启某项功能(如应用程序支持该功能,但默认不安装)

      --without--XXX:关闭某项功能(如应用程序支持该功能,默认安装,但是用户不需要)

      --user=USER:指定应用程序执行的用户

      --group=GROUP:执行应用程序执行的组

 

        解决configure错误信息

          1:用without关闭这项功能

          2:安装所需的环境,安装所需环境的devel包

 

    3:make:按照Makefile文件定义的顺序去编译源程序

          -j N:多个线程一起编译

 

    4:make install:安装应用程序

 

 

编译安装完成后工作:

       1、添加应用程序的二进制程序到系统路径: 系统查找 $PATH

  1.1:为二进制程序做链接文件,如:  缺点:占用inode值

     # ln -s /usr/local/tengine/sbin/* /usr/sbin(文件数量较少时采用)

     # ln -s /usr/local/tengine/sbin /usr/sbin/tengine(文件数量较多时采用)

  1.2:修改/etc/profile文件,如添加如下内容:

        PATH=$PATH:/usr/local/tengine/sbin

        然后使其生效:source /etc/profile

  1.3:在/etc/profile.d/目录中建立name.sh的文件,添加如下类似内容:

        PATH=$PATH:/usr/local/tengine/sbin

        重新登录生效

 

        2、添加应用程序的库文件到系统库/usr/lib /usr/lib64:

  2.1:为库文件做链接文件

     # ln -s /usr/local/APP_NAME/lib/* /usr/lib

     # ln -s /usr/local/APP_NAME/lib /usr/lib/APP_NAME

  2.2:在/etc/ld.so.conf.d/目录下建立APP_NAME.conf,把应用程序的库文件位置添加进去:

     /usr/local/app_name/lib

     执行如下命令生效:

     ldconfig

       -v:显示加载库文件过程

 

        3、添加用用程序的头文件到系统头文件 /usr/include:

  3.1:为头文件做链接文件

     # ln -s /usr/local/APP_NAME/include/* /usr/include

     # ln -s /usr/local/APP_NAME/include /usr/include/APP_NAME

 

        4、添加应用程序的帮助信息:

  4.1:man -M PATH bin_name,只是查询,并没有添加

        -M:指定帮助信息的位置

  4.2:man配置文件:系统默认帮助/usr/share/man

      CentOS6:/etc/man.conf添加:

            MANPATH [help_path]

      CentOS7:/etc/man_db.conf添加:

            MANPATH_MAP [help_path]

[展开全文]

1,编译安装步骤

   1,获取源代码

   2,执行configure脚本(源码目录)

   选项

   --help 查看帮助信息

   --prefix=<path> 定义应用程序安装路径

   --sbin-path 定义应用程序二进制程序路径

   --conf-path 配置文件路径

   --enable-XXX 开启某项功能

   --with--XX 开启某项功能

   --without--XX 关闭某项功能

   --user 指定应用程序用户

   --group 指定应用程序组

   3,添加环境变量(/etc/profile)

   4,添加头文件

   5,添加帮助文档

[展开全文]

编译安装——

安装编译环境:

yum -y groupinstall "Develoment Tools"

make 不是编译器,是项目管理工具,按照makefile文件中的定义,去定义软件中功能先后顺序

automake:Makefile.in(半成品)

autoconf:生成脚本文件,configure

 

执行编译安装的步骤;

 

1,获取源代码并解压 

    tar -xf xxx.tar.gz

    tar -xf xxx.tar.bz2

 

2,执行configure脚本(在源代码目录中运行)

功能:检查应用程序所需的编译环境,生成Makefile文件

    --help 帮助信息

    --prefix=PATH 定义应用程序的安装路径

    --sbin-path=PATH 定义应用程序的二进制文件路径

    --conf-path=PATH 定义应用程序的配置文件路径

    --enable--xxxx 开启某项功能(如程序支持该功能,但默认不安装)

    --with--xxx 开启某项功能(如程序支持该功能,但默认不安装)

    --without--xxx 关闭某项功能如程序支持该功能,默认安装,但是用户不需要)

    --user=USER 指定执行程序的用户

    --group=GROUP 程序执行的组

解决configure错误信息

  1,用without关闭这行功能

  2,安装所需的环境,及所需环境的devel包

 

3,make;定义Makefile,按照顺序编译源程序

  -j N 多线程编译

4,make install 安装应用程序

 

编译安装完成后工作:

1,添加二进制程序到系统路径;系统查找 $PATH

    a,为二进制程序做链接文件

         ln -s  /usr/local/tengine/sbin/*  /usr/sbin 链接所有文件

        ln -s /usr/local/tengine/sbin  /usr/sbin/tengine 链接目录

    b,修改/etc/profile文件

    c,在/etc/profile.d/目录建立name.sh文件

2,添加应用程序的库文件到系统库文件路径

库文件:/usr/lib  /usr/lib64

    a,为库文件做链接文件(如上步骤)

    b,在/etc/ld.so.conf.d/目录下建立APP_NAME.conf,把应用程序的库文件位置添加进去。

        执行 ldconfig -v 显示加载库文件过程

3,添加应用程序的头文件到系统头文件路径

系统头文件:/usr/include

    为头文件做链接,如上两步

4,添加应用程序的帮助信息

    a,man -M PATH bin_name ;-M指定帮助信息的位置

    b,man配置文件;系统默认帮助

/usr/share/man

        centos6 :/etc/man.conf添加:MANPATH [ HELP_PATH ]

        centos7 :/etc/man_db.conf 添加:

MANPATH_MAP [ HELP_PATH ]

 

 

 

 

[展开全文]

授课教师

课程特色

视频(102)
下载资料(1)