Linux源码包安装程序
★安装OS时,建议提前安装开发组件
CentOS 6:Development Tools、Server Platform Development
CentOS 7:Development Tools、Development and Creative Workstation
★configure脚本(# ./configure [option…])
常用选项:
--help:获得其支持使用的选项
--prefix=/PATH/TO/SOMEWHERE:指定默认安装位置;默认为/usr/local/;
--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;
--enable-FEATURE[=ARG]:开启指定特性以及安装路径;默认开启时无须指定;
--disable-FEATURE:关闭指定特性;默认关闭时无须指定;
--with-PACKAGE[=ARG]:安装指定依赖包以及其安装路径;
--without-PACKAGE:不安装指定依赖包;
--with-function :启用某功能
--without-function :禁用某功能
例如:
#cd ../httpd-2.2.27/
# ./configure --sysconfdir=/etc/httpd --prefix=/usr/local/apache2 --with-apr=/usr
▪编译参数
--prefix=/PATH:指明安装路径;
--sysconfdir=/PATH:指明配置文件路径;不指明,默认在安装路径下;
--enable-so:表示启用DSO动态模块加载机制;
--enable-ssl:启用支持ssl功能;
--enable-mods-shared=most:表示动态的编译进来大多数的模块;如果使用--enable-mods-shared=all,则指动态的编译所有的模块。
--with-apr=/PATH:指明apr程序包的路径;不使用=指明路径会在默认路径查找;
--with-apr-util=/PATH:指明apr-util程序包的路径;
--with-mpm=prefork:指明默认使用的MPM模块;
★说明:
静态编译:将module直接在安装的过程中放到apache中,当apache使用module的时候,就可以直接使用了。
动态编译:将module引入到apache之中,在使用的时候才会真正的去加载(通过LoadModule命令)
--with.....:表示依赖的包,不指明路径,编译安装时会到默认路径下找;
--without.....:不依赖的包;
--enable.....:启用特性;
--disable.....:禁用特性;
-----------------------------------------------------------------------------
★事前准备:
在使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境,它需要具备C语言、C++语言、Perl语言的编译器,以及各种常见的编译支持函数库程序。因此请先配置妥当Yum软件仓库,然后把下面列出的软件包安装上:
yum install -y apr* autoconf automake bison bzip2 bzip2* compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
【编译安装】
(1)下载及解压源码包文件。
#tar xzvf FileName.tar.gz
#cd FileDirectory
(2)编译源码包代码。可以根据需要追加--prefix参数,以指定稍后源码包程序的安装路径。当编译工作结束后,如果系统环境符合安装要求,一般会自动在当前目录下生成一个Makefile安装文件。
#./configure --prefix=/usr/local/program
(3)生成二进制安装程序。使用make命令来根据Makefile文件内容提供的合适规则编译生成真正可供用户安装服务程序的二进制可执行文件。
#make
(4)运行二进制的服务程序安装包。如果在源码包编译阶段使用了--prefix参数,那么服务程序就会被安装到那个目录,一般默认安装到/usr/local/bin目录中。
#make install
(5)清理源码包临时文件。由于在安装服务程序的过程中进行了代码编译的工作,在安装后目录中会遗留下很多临时垃圾文件,使用make clean命令对临时文件进行清理工作。
#make clean
-----------------------------------------------------------------------------
【安装后的配置】
(1) 将二进制程序目录添加至PATH文件变量中,否则只能使用绝对路径才能运行程序。
编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
例如:
#export PATH=$PATH:/usr/local/apache2/bin
#vim /etc/profile.d/apache2.sh
export PATH=$PATH:/usr/local/apache2/bin
(2) 导出库文件路径。
编辑/etc/ld.so.conf.d/NAME.conf,添加新的库文件所在的目录至此文件中;
例如:/usr/local/apache2/lib
ldconfig -v:重新加载库文件路径,并查看;
ldconfig -p:查看已加载所有库文件路径;
例如:
#vim /etc/ld.so.conf.d/httpd.conf
/usr/local/apache2/lib
# ldconfig -v
# ldconfig -p | grep apache
(3) 导出头文件。
/usr/include/目录下,创建软链接;
ln -s target_dir soft_link ##可以导出一个目录为所有文件链接,也可为每一个头文件导出一个链接,然后把创建的链接输出到/usr/include/目录下,或者直接复制头文件至/usr/include/目录;
例如:
#ln -sv /usr/local/apache2/include /usr/include/httpd
‘/usr/include/httpd’ -> ‘/usr/local/apache2/include’
(4) 导出man手册。
Centos7是在/etc/man_db.conf的40到50行之间,添加一个MANPATH参数(Centos6可能是/etc/man.config);
例如:
#vim /etc/man_db.conf
MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man
执行命令查看:manpath
-----------------------------------------------------------------------------
Linux源码包安装程序的更多相关文章
- Linux源码包安装过程及注意事项
众做周知RedHat Linux使用RPM包管理器安装rpm包,但是RPM包是由红帽编译打包的,通常相对于最新版落后了很多,甚至可能缺少我们所要使用的功能.如果你需要定制想要的软件功能.自定义安装路径 ...
- linux 源码包安装拾遗
源码包安装和apt-get/yum的区别 安装前的区别:概念上的区别 rpm和dpkg包是经过编译过的包,并且其安装位置由厂商说了算,厂商觉得安装在哪里合适,就会装在哪里,而源码包则是没有经过编译的文 ...
- Linux源码包安装和脚本安装
能够先 vi INSTALL 看看安装过程. 1.源码包安装 2.脚本安装
- Linux 源码包安装过程
安装准备 安装gcc编译器 下载源码包 源代码保存位置:/usr/local/src/ 软件安装位置:/usr/local/ 解压缩下载的源码包 进入解压缩目录 软件配置与检查:./configure ...
- Linux源码编译安装程序
一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...
- Linux源码包安装apache(httpd)
我这里实验是用的CentOS7 #事先先检查一下自己的linux是否安装apache [root@localhost ~]#rpm –q httpd #如果已安装则先卸载原来的apache [root ...
- Linux 系统下用源码包安装软件
Linux系统下用源码包安装软件 by:授客 QQ:1033553122 下载源码安装包,解压或者直接双击打开(如果有安装zip或rar等压缩/解压缩软件的话),查找相关的安装说明文件,一般是READ ...
- Linux yum源码包安装和卸载
Linux 下的绝大多数源码包都是用 C 语言编写的,还有少部分是用 C++ 等其他程序语言编写的.所以,要想安装源码包,必须安装 C 语言编译器 gcc(如果是用 C++ 编写的程序,则还需要安装 ...
- 『学了就忘』Linux软件包管理 — 47、Linux源码包的安装和卸载
目录 1.源码包安装服务的注意事项 2.源码包安装服务的过程 3.源码包安装服务的删除 4.源码包安装服务的启动 5.源码包安装服务的关闭 1.源码包安装服务的注意事项 (1)安装服务选择哪种软件包? ...
随机推荐
- Java实现RSA密钥对并在加解密、加签验签中应用的实例
一.项目结构 二.代码具体实现 1.密钥对生成的两种方式:一种生成公钥私文件,一种生成公钥私串 KeyPairGenUtil.java package com.wangjinxiang.genkey. ...
- Repeater 实现 OnSelectedIndexChanged
在Repeater中使用DropDownList的方法 在Repeater中使用DropDownList的方法 以下代码并不完整,只记录了关键的方法 aspx代码中 假设这是一个用户管理的系统的模 ...
- PHP 类的命名空间 和自动载入
PHP 类的自动载入有两种方法,__autoload() 和 spl_autoload_register() ,就是在PHP代码中new一个类的时候,会自动触发,将类的类名包括命名空间作为参数传进入方 ...
- #WEB安全基础 : HTTP协议 | 0x10 扩展HTTP报文结构概念和内容编码
#以后的知识都是HTTP协议的扩展,如果精力有限可以选择暂时忽略,注意只是暂时忽略,以后的东西同样重要 HTTP传输数据时可以直接传输也可以对数据进行编码,由于编码在计算机内运行,所以会占用一些CPU ...
- 关于MapReduce二次排序的一点解答
上一篇博客说明了怎么自定义Key,而且用了二次排序的例子来做测试,但没有详细的说明二次排序,这一篇说详细的说明二次排序,为了说明曾经一个思想的误区,特地做了一个3个字段的二次排序来说明.后面称其为“三 ...
- Spring Boot:快速入门
上一篇讲述什么是Spring Boot,这一篇讲解怎么使用IDE工具快速搭建起来独立项目. 一.构建方式 快速搭建项目有三种方式,官方也有答案给到我们: 二.构建前准备 想要使用IDE运行起来自己的S ...
- Mysql千万级大数据量查询优化
来源于:https://blog.csdn.net/A350204530/article/details/79040277 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 ord ...
- 游戏引擎——cocos2d-x
Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的.这是一个C++ Cocos2d-iPhone项目的版本.Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x ...
- Jmeter之Redis读写
Jmeter之Redis读写 奔跑的小小鱼 关注 0.2 2019.03.21 18:25* 字数 1330 阅读 45评论 0喜欢 1 Jmeter插件访问Redis共有3种方式: 1)通过自已 ...
- Class打包成jar
Class打包成jar 现在我的文件夹的目录在: C:\Users\linsenq\Desktop\cglibjar 我要把位于这个目录下的所有文件夹以及这个文件夹下的.class文件打成jar包 第 ...