有些软件包的特性是编译者选定的,如果编译未选定此特性,将无法使用。rpm包的版本落后于源码包。
 因此需要定制安装,也就是手动编译安装。

编译需要编译环境。

编译的过程如下:

1.下载源码

2.执行 tar -xf

3.cd到源码文件夹内

4. ./configure

--prefix=/path/to/somewhere 指定软件安装路径

--sysconfdir=/path/to/configurefile_path 指定配置文件路径

这一步有两个目的:

检查用户选定的编译特性

检查编译环境

5.make (编译)

6. make install (安装)

7.修改环境变量PATH,以便能够识别此程序的二进制文件路径

修改/etc/profile文件或者在/etc/profile.d/目录下建立一个.sh为名称后缀的文件,在里面定义export PATH=&PATH:/PATH/TO/SOMEWHERE

8.默认情况下,系统搜索库文件的路径/lib,/usr/lib,如果要增添额外的搜寻路径,则在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径名直接写至此文件中:

接着执行ldconfig命令重新搜索库文件

-v用来显示重新搜索库的过程,顺便就看见了系统中的库

9.头文件:

系统默认找头文件的地方:/usr/include

所以要增加头文件搜寻路径,使用链接进行:

两种方式

eg:

ln -s /user/local/tengine/include/* /usr/include(文件链接)

或者

ln -s  /user/local/tengine/include/ /usr/include/tengine(目录链接)

10.man文件路径

安装好后的软件定的man文件在 --prefix 路径下的man目录,而系统到/usr/share/man找man文档

所以加入新的man文档可以这么做:

(1).man -M /PATH/TO/MAN_DIR COMMAND

(2).在 /etc/man.config中添加一条MANPATH

linux rpm包的编译的更多相关文章

  1. linux RPM包安装、更新、删除等操作命令简明总结, 如何查看yum安装的软件路径 ?

    rpm -ivh package.rpm 安装一个rpm包rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告rpm -U package.rpm 更新一个 ...

  2. linux rpm包

    rpm包,软件包,程序包,以.rpm结尾的包 我们刚开始安装的Linux系统是最小化安装(minimol),只安装系统,不安装不必要的软件包 刚开始vim,ifconfig,tree等命令都没有,当然 ...

  3. 《linux源代码包的编译安装》RHEL6

    linux下源代码包的编译安装其实没那么复杂. 我是win7系统装的虚拟机,就简单说下: 举个简单的例子: http://www.openssl.org/ 这是openssl的官网,下载openssl ...

  4. MySQL5.6.36 linux rpm包安装配置文档

    一.卸载自带mysql,删除MySQL的lib库,服务文件 [root@localhost ~]#rpm -qa|grep mysql qt-mysql-4.6.2-26.el6_4.x86_64 m ...

  5. l【linux】linux rpm包命名规范

    RPM包的一般格式为:name-version-arch.rpmname-version-arch.src.rpm name:软件包名称.version:带有主.次和修订的软件包版本.arch:硬件平 ...

  6. Linux rpm包管理工具

    1.什么是rpm包 是一种编译好的二进制软件包,安装速度快. 2.rpm包命名 el6:软件包用于在Red Hat 6.x, CentOS 6.x, and CloudLinux 6.x进行安装 el ...

  7. linux rpm包管理 yum管理

    1. 软件包的管理 RPM的定义:RPM就是Red Hat Package Manger(红帽软件包管理工具)的缩写. RPM包不需要编译,本身就是二进制,而源码包需要先编译成系统识别的二进制文件,才 ...

  8. Linux rpm包安装不了

    有时候会发现安装rpm包时会报错,解决办法: 到rpm包所在目录执行 createrepo -v ./   这个命令 然后会生成一个repodate这个目录,然后在进行安装rpm就可以了!

  9. Linux rpm包安装MySQL数据库问题总结

    1.安装包准备 2.按顺序安装以下安装包 一定要按顺序安装,因为前面的包是后面包的依赖 [root@iz2ze1bzpi3orra8lboxqiz mysql]# rpm -ivh Percona-S ...

随机推荐

  1. Ubuntu 16.04主题美化和软件推荐

    http://www.linuxidc.com/Linux/2016-09/135165.htm http://www.techweb.com.cn/network/system/2015-11-20 ...

  2. DuiVision开发教程(18)-弹出窗

    DuiVision的弹出窗体类CDlgPopup,是菜单.下拉列表等控件的父类,也能够单独使用,用于创建弹出窗体.弹出窗体默认是非激活状态下自己主动关闭,比如鼠标点击到弹出窗体外面的区域,弹出窗体就会 ...

  3. RealProxy AOP过滤方法的参数

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

  4. NHibernate二级缓存(第十一篇)

    NHibernate二级缓存(第十一篇) 一.NHibernate二级缓存简介 NHibernate由ISessionFactory创建,可以被所有的ISession共享. 注意NHibernate查 ...

  5. JSP 表单处理向服务器提交信息

    JSP 表单处理 我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理.浏览器中使用 GET 和 POST 方法向服务器提交数据. GET 方法 GET方法将请求的编码信息添加在网址后面, ...

  6. js读取json包装的map集合

    后台 Map<String,Integer> map = new HashMap<>(); map.put("你好1", 1); map.put(" ...

  7. 关于移动端border 1像素在不同分辨率下边显示粗细不一样的处理

    最近开发发现一个很有趣的问题  就是我如果给一个元素加上一个像素的 border 在不同的分辨率的情况下显示的不同 在高清屏幕(尤其是ios 喽 不鄙视国产) 据说在6plus下会变成3px  这个我 ...

  8. 由浅到深理解ROS(3)-命名空间

    全局命名空间: /rosout前面的反斜杠“/”表明该节点名称属于全局命名空间.之所以叫做全局名称因为它们在任何地方(包括代码.命令行工具.图形界面工具等的任何地方)都可以使用.无论这些名称用作众多命 ...

  9. yii2.0 console执行php守护进程

    //该方法只需执行一次public function actionIndex(){ $pid =pcntl_fork();//在当前进程中生成一个新的子进程 //$pid会有三种形式 $pid==-1 ...

  10. 爬虫入门【6】Selenium用法简介

    Selenium 是什么? 一句话,自动化测试工具.它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器. 如果你在这些浏览器里面安装一个 Selenium 的插件, ...