- 浏览: 217522 次
- 性别:
- 来自: 深圳
最新评论
-
daijope:
...
mysql创建数据库后出现Access denied for user 'root'@'%' to database ‘xxxx’ -
szgaea:
本人博客记录在工作中遇到的一些问题的解决方案,都是现场解决后的 ...
如何为已安装php扩展安装mbstring -
56553655:
可以执行,我没看清楚
如何为已安装php扩展安装mbstring -
56553655:
老兄,你照这个命令再试一下是否成功
如何为已安装php扩展安装mbstring -
JeffreyHsu:
有用!!!
ie通过window.open下载excel,结果是直接打开excel乱码
如何将apache源码打成rpm安装包
一、简述
如果你对RPM没有什么好印像的话,我相信原因就是它的过复杂的包依赖关系。
但如果自己动手来编绎RPM包的话,这个问题你可以很痛愉快的进行控制
如果你有一个很好的软件版本控制系统的话,你完全可以把你所有要用的软件包都编绎成RPM, 这样可以提高一些常规软件部署效率,比如apache mysql这样的软件。
本次目标:在新装的一台centos 5.4 x86_64位系统上生成根据apache的源码包生成个apache的rpm文件,当然你也可以生成多个文件(这个由spece 的%files 关建字控制)
httpd-2.2.14-mkrss.x86_64.rpm
httpd-manual-2.2.14-mkrss.x86_64.rpm
mod_ssl-2.2.14-mkrss.x86_64.rpm
难点:稍微要注意的就是编写spec 文件,如果你愿意可以自己来写,如果不愿意思,网上也有很多直接生成SPEC文件的工具,(关于工具本例不做研究)
如果想自己写却又不知道如何下手,可以从src.rpm包里获得相应的spec文件然后进行改,也是一个不错的切入点。
操作过程
要从一个普通的机器上,成功编绎一个RPM包,基本上有以下过程
1.配置这台机器为RPM预编译环境
2.下载相关的软件包
3.规划软件包的安装及相关配置
4.动手进编写spec文件
5.开始编绎
6.检验你所编绎的包是不是按你的要求生成
二、配置RPM预编译环境
编绎RPM 实际上就是把源码包进行编绎安装后,再把这些安装好的软件进行打包的一个过程.所以基本上所有编绎源码所需要的和所依赖的软件包这里都需要, 然后另外再安装一套RPM 打包工具。可以直接通过YUM 进行安装
yum groupinstall “Development Libraries” “Development Tools”
通过:rpm -q rpm-build rpm 如果可以看到已安装以下两个软件,基本上rpm预编译环就配置好了。
rpm-build-4.4.2.3-18.el5
rpm-4.4.2.3-18.el5
which rpmbuild
/usr/bin/rpmbuild
三、下载相关的软件包
1.下载httpd
http://archive.apache.org/dist/httpd/httpd-2.2.14.tar.gz(官网最新版httpd-2.2.15.tar.gz)
2.下载官方补丁
当然如果你还有其它的补丁可以一并下载回来。
http://archive.apache.org/dist/httpd/patches/apply_to_2.2.14/CVE-2009-3555-2.2.patch
http://archive.apache.org/dist/httpd/patches/apply_to_2.2.14/CVE-2010-0425.patch
3.官方提供的最新版src.rpm
http://apache.freelamp.com/httpd/binaries/rpm/SRPMS/httpd-2.2.3-1.src.rpm
四.规划软件包的安装及相关配置
1、第一步根据自己的需要或者喜欢来确定编绎参数
如本例中的的APACHE 是将会在后的使用中添加php模块,所以编绎是必需要加–enable-so参数,最终本例中编绎时的参数如下:
./configure -C \
--prefix=/usr/local/apache2 \
--enable-static-support \
--enable-static-htpasswd \
--enable-static-htdigest \
--enable-static-rotatelogs \
--enable-static-logresolve \
--enable-static-ab \
--enable-static-checkgid \
--enable-dir \
--enable-status \
--enable-so \
--enable-env \
--enable-mime \
--enable-cgi \
--enable-deflate \
--enable-rewrite \
--enable-setenvif \
--enable-distcache \
--enable-proxy \
--enable-cache --enable-mem-cache \
--enable-file-cache --enable-disk-cache \
--enable-mods-shared="authz-host log-config ssl proxy proxy-connect \
proxy-http proxy-ftp alias userdir mime asis \
negotiation actions authn_file authn_default \
authz_groupfile authz_user authz_default auth_basic \
autoindex include filter env setenvi dav dav-fs "\
2.把所有的补丁文件及源码包放到/usr/src/redhat/SOURCE ,所有相关的文件,比如以下事先经过配置的文件都需要放入。
httpd.init httpd.conf httpd-autoindex.conf httpd-default.conf
httpd-info.conf httpd-mpm httpd-vhosts.conf
4.动手进编写spec文件
spec 文件是以一种混合了宏语言、shell 命令以及描述文本的方式书写的。在 spec 文件中,数字符号 (#) 用来表示注释,与绝大多数其他 Unix 配置文件中是一样的,spec 文件基本上可以分成6小部份来进行编写,通过下面一个简单的例子来说明
第一部份:定义相关变量,比如下语句定义了contentdir这个变量为的值为/usr/local/apache2/htdocs
%define contentdir /usr/local/apache2/htdocs
第二部分:描述RPM包的一些基本信息(可通过关建字rpm spec 进行详细了解)
Summary: Apache HTTP Server
Name: httpd
Version: 2.2.14
Release: mkrss%{?dist}
URL: http://httpd.apache.org/
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
License: Apache Software License
Group: System Environment/Daemons
BuildRoot: %{_tmppath}/%{name}-root
Provides: httpd-mmn = %{mmn}
通过Souce和patch加编号列出你需要添加进RPM里的一些文件及需要打的补丁
span style="color: #ff0000;">Source1: httpd-vhosts.conf
Source2: httpd.conf
Patch20: httpd-2.2.14-release.patch
%description #包描述
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
第三部份:解压软件包打补丁(以%prep开始)
%prep
%setup -q
%patch21 -p1 -b .xfsz
第四部份:开始进行编绎过程以(%build开始)
%build
./configure -C \
--prefix=/usr/local/apache2 \
make
第五部份:安装编绎好的软件到临时目录(以%install开始)这个部份可以写脚本修改安装好的文件,比如可以把自己事件修改好的httpd.conf文件替换这个安装到临时目录中的文件。
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
/usr/sbin/useradd -c "daemon" -u 48 \
-s /sbin/nologin -r -d %{contentdir} daemon 2> /dev/null || :
%clean
rm -rf $RPM_BUILD_ROOT
第六部份:把安装到临时目录下地文件打包进RPM 以(%files 开始)
%files
%dir %{prefix}/* (把安装到临时目录下的所有文件打包)
%changelog
关于spec 文件的相关参考资料:
http://www.chinalinuxpub.com/doc/howto/RPM-HOWTO-6.html http://www.redhat.com/docs/books/max-rpm/max-rpm-html.tar.bz2
最终本人的httpd.spec 文件如下 可在这里下载
五、开始编绎并生成RPM包
1、rpmbuild简单使用,(可用man rpmbuid 进行详细了解)
-bl verify %files section from <specfile>
*检查<specfile>文件的%files段
-ba build source and binary packages from <specfile>
*建立源码和二进制包
-bb build binary package only from <specfile>
*只建立二进制包
-bs build source package only from <specfile>
*只建立源码包
2、执行rpmbuild -ba httpd.spec 文件,顺例完成的话会在/usr/src/redhat/RPMX/x86_64 下生成
httpd-2.2.14-mkrss.x86_64.rpm, httpd-manual-2.2.14-mkrss.x86_64.rpm,mod_ssl-2.2.14-mkrss.x86_64.rpm
六、对生成的RPM 包进行验证
发表评论
-
PrettyTime是一个开源的时间格式化类库
2015-03-02 16:24 714PrettyTime是一个开源的时间格式化类库。它能够将时间格 ... -
移动网关代码
2012-03-27 11:55 2214移动发送短信的状态报告 ISMG向SP送交状态报告中的STA ... -
Oracle MTS
2012-03-18 12:07 920关于Oracle的MTS 一、 ... -
rmi spring resin启动出错
2012-02-19 01:32 1991[00:30:36,734] [ContextLoader,2 ... -
[转]ngnix完整配置
2012-02-18 12:29 2078#用户 用户组 user www www; ... -
常用数据库命令
2012-02-02 15:19 1072show engine innodb status\G; s ... -
myisam类型的表自动修复的方法
2011-12-21 17:23 1305myisam类型的表极容易损坏,下面介绍一种自动修复myisa ... -
mysql备份表的几种方式
2011-12-08 09:55 4417#!/bin/bash # 记录时间 T=$(date + ... -
oracle管理员密码忘了
2011-11-21 17:03 1182Oracle WEB管理平台访问地址: http://loca ... -
oracle锁一些知识
2011-10-28 00:43 4696表级锁共具有五种模式,如下所示。 行级排他锁(Row Exc ... -
常用linux命令
2011-10-21 16:52 877查看进程使用句柄数 lsof -n |awk '{pri ... -
mysql创建数据库后出现Access denied for user 'root'@'%' to database ‘xxxx’
2011-09-14 10:55 36421create database test1; 创 ... -
oracle自动备份
2011-09-06 16:30 1055#!/bin/bash source /home/ora ... -
oracle管理的一些常用令
2011-09-06 16:29 1121sqlplus /nolog conn / as sysdb ... -
Linux 系统下oracle服务自启动简单配置
2011-08-03 11:52 1405Linux 系统下oracle服务自启动简单配置 1、实例启 ... -
linux安装oracle实录
2011-08-02 00:24 1284安装企业版的Oracle 10g 1、检查是否需要的包都存在 ... -
关于struts2的验证问题
2011-07-18 21:35 842自我感觉struts2的验证比struts1的验证做得还 ... -
struts2 开发过程中遇到的一些问题及解决办法
2011-07-15 23:25 11891、在进行form validate时,若form中有下拉框的 ... -
Resin使用struts2标签错误解决com.caucho.jsp.JspParseException: javax/xml/ws/WebServiceRef
2011-07-08 15:16 2596MyEclipse+Resin使用struts2标签错误解 ... -
[转载记录]系统的UIM卡介绍
2011-06-21 16:48 1138系统的UIM卡介绍 目前CDMA终端在全球绝大多 ...
相关推荐
此外,Docker-1.7.0.tar.gz文件可能包含的是Docker的源码或者一个非RPM方式的安装包。如果你选择手动编译安装,首先需要解压文件,然后按照官方文档的指引进行编译和安装。这种方式虽然更灵活,但通常需要更多步骤和...
在Linux环境中,从源码编译Apache HTTPD是理解其工作原理、自定义配置和确保与系统组件兼容性的好方法。 首先,Apache HTTPD 2.4系列的一个显著特点是模块化的架构。源码包中包含了许多核心模块,如mod_http(处理...
标题中的“Apache-OpenOffice-4.1.1-Linux-x86-64-install-rpm-en-US.tar”指的是Apache OpenOffice的4.1.1版本的安装包,专为64位Linux操作系统设计,采用RPM(Red Hat Package Manager)格式,并且是英文版。...
在本教程中,我们将详细介绍如何在CentOS 6.8环境下,通过源码安装的方式设置一个完整的LAMP环境。 首先,我们需要理解每一个组件的作用: 1. **Linux**:作为操作系统,CentOS 6.8是一个稳定且广泛使用的发行版,...
webmin-2.102-1.noarch.rpm : 适用于 rhel / CentOS/ fedora 发行版的安装文件 webmin-2.102-minimal.tar.gz : 迷你版本安装源码包 webmin-2.102.tar.gz : 完整版安装源码包 demo.jpeg : 安装后的演示截图文件
Apache APISIX是一款高性能、轻量级的API网关,它提供了一种高效的方式来管理和路由API请求。在给定的“apisix-2.13.1离线安装包.zip”中,包含了针对CentOS 7操作系统的离线安装文件,使得用户无需联网也能进行安装...
CRMsh和Pacemaker支持多种资源代理,这意味着它们可以与各种服务(如Apache、NFS、MySQL等)集成。通过编写自定义的资源代理,可以将其他服务纳入集群管理。 9. **安全与权限管理**: 在生产环境中,理解CRMsh和...
1. **解压安装包**:将下载的"greenplum-db-4.2.2.4安装包"解压到适当目录,例如 `/usr/local/src`。 2. **配置环境**:编辑`bashrc`或`bash_profile`文件,设置`GREENPLUM_HOME`变量指向解压后的目录,并添加到PATH...
Apache的安装同样需要源码下载,解压后配置并编译安装,通常需要配置HTTPD服务器的配置文件httpd.conf,设置监听端口、日志文件路径等参数。此外,还需要安装与MySQL连接的PHP扩展,如php-mysql,以便PHP可以访问...
本压缩包"常用linux安装包.zip"包含了几个在Linux环境下常见的软件安装包,包括Java开发环境(JDK)、Web服务器(Apache Tomcat)、内存数据库(Redis)、关系型数据库(MySQL)、静态文件服务器(Nginx)。下面将对...
3. 下载并解压安装包:例如,使用`wget`下载libxml源码,然后用`tar -zxvf libxml-1.8.17.tar.gz`解压。 4. 配置、编译和安装:进入解压后的目录,运行`./configure`,`make`,然后`sudo make install`。 5. 对于PHP...
离线安装包对于没有互联网连接或者网络环境受限的环境尤其有用。在这个场景下,我们将详细介绍如何在CentOS 7系统上离线安装Subversion。 首先,我们来了解安装Subversion所需的依赖包。`apr-1.5.1.tar.gz`和`apr-...
4. **启动Apache服务**:使用命令 `service httpd start` 启动Apache服务,并将其设为开机自启。 #### 五、安装PHP解释器 1. **下载并解压PHP安装包**:`php-5.2.6.tar.gz`。 2. **配置编译选项**:根据需求配置...
- 解压Apache源码包并重命名 - 使用`./configure`进行配置,设置Apache的安装路径和端口号,如`--prefix=/usr/local/apache --with-port=8000` - 编译并安装Apache 5. **PHP与Apache的集成** - 解压PHP源码包...
- 设定最大磁盘空间,这将决定虚拟机硬盘的大小。 - 配置Network Adapter参数,根据网络需求选择合适的模式,如NAT或桥接模式。 2. **安装Linux发行版:** - 设置完成后,虚拟机会自动创建Red Hat Enterprise ...
2、安装apache 所需要的rpm安装包(本次实验为源码安装,也可以用yum安装 看自己需求) rpm -ivh apr-1.4.8-3.el7.x86_64.rpm rpm -ivh apr-devel-1.4.8-3.el7.x86_64.rpm rpm -ivh cyrus-sasl-devel-2.1.26-20.el7_...
1. 将Weblogic10的安装包`server100_linux32.bin`复制到根目录,并赋予执行权限。 2. 运行安装命令`./server100_linux32.bin`,根据提示进行图形或文本安装,确保BEA HOME设置为`/usr/local/bea`。 3. 安装完成后,...
在源码安装前,需要卸载系统中可能存在的Apache、MySQL和PHP的RPM安装包,以避免冲突。使用`rpm –qa | grep httpd/mysqld/php`查询并用`yum remove`卸载。 3. **关闭SELinux和防火墙** - 为了确保安装顺利,需要...
对于基于RPM的系统(如CentOS/RHEL),使用: ```bash sudo yum groupinstall "Development Tools" ``` 2. **下载源码包**: 使用`wget`或浏览器下载httpd、apr和apr-util的源码包到一个目录,例如`/usr/local...
- 配置Apache或Nginx以支持Zabbix前端,将`/usr/share/zabbix/`作为webroot的一部分。 - 访问`http://your_server_ip/zabbix`,使用在SQL脚本中创建的默认用户名`Admin`和密码`zabbix`登录。 - 在Web界面中配置...