设为首页 收藏本站
查看: 1220|回复: 0

lnmp的rpm包制作

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-1 08:58:27 | 显示全部楼层 |阅读模式
lnmp的rpm包制作
说明:1. lnmp 即,linux、niginx、mysql、php 所组成的web服务环境。
           2. 制作lnmp的rpm包可以节省因编译源码包所浪费的大量的时间和精力,也便于实现运维的自动化。   
           3. 此lnmp包,除了启动脚本,所有文件都同一安装在/usr/local/lnmp目录下面。有一个同一的启动脚本 lnmp,启动和停止服务直接/etc/init.d/lnmp  start/stop 即可。也可以单独运行各自的脚本。
           5. 以下是我自己编写的rpm包的 spec文件,可以直接使用。
            


%define prefix  /usr/local/lnmp
Name:           lnmp
Version:        1.0
Release:        1%{?dist}
Summary:        Web Integrated Environment for lnmp
Group:          System Environment/Base
License:        LCPL
URL:            http://www.yonchin.org
Source0:        lnmp-1.0.tar.gz
Source1:        libunwind-1.1.tar.gz
Source2:        gperftools-2.0.tar.gz
Source3:        libxml2-2.6.30.tar.gz
Source4:        libmcrypt-2.5.8.tar.bz2
Source5:        zlib-1.2.8.tar.gz
Source6:        libpng-1.6.2.tar.gz
Source7:        jpegsrc.v9.tar.gz
Source8:        freetype-2.5.0.1.tar.bz2
Source9:        gd-2.1.0-preview.tar.gz
Source10:       pcre-8.33.tar.bz2
Source11:       nginx-1.5.1.tar.gz
Source12:       mysql-5.6.12.tar.gz
Source13:       php-5.5.0.tar.gz
Source14:       lnmp
Source15:       nginx
Source16:       php-fpm
Source17:       mysqld
Source18:       nginx.conf
Source19:       php-fpm.conf
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%description
nginx+mysql+php

%prep
%setup -q -b 1 -b 2 -b 3 -b 4 -b 5 -b 6 -b 7 -b 8 -b 9 -b 10 -b 11 -b 12 -b 13

%build
cd ../libunwind-1.1
./configure --prefix=%{prefix}/gperftools \
--disable-dependency-tracking \
CFLAGS="-O3 -fPIC"
make -j3

cd ../gperftools-2.0
./configure --prefix=%{prefix}/gperftools \
--enable-frame-pointers \
--disable-dependency-tracking \
CFLAGS="-O3 -fPIC"
CFLAGS=-fPIC
make -j3

cd ../libxml2-2.6.30
./configure --prefix=%{prefix}/libxml2 \
CFLAGS="-O3 -fPIC"
make -j3

cd ../libmcrypt-2.5.8
./configure --prefix=%{prefix}/libmcrypt \
CFLAGS="-O3 -fPIC"
make -j3

cd ../zlib-1.2.8
./configure --prefix=%{prefix}/zlib
make -j3

cd ../libpng-1.6.2
./configure --prefix=%{prefix}/libpng \
CFLAGS="-O3 -fPIC"
make -j3

cd ../jpeg-9
./configure --prefix=%{prefix}/jpeg9 \
        CFLAGS="-O3 -fPIC"
make -j3

cd ../freetype-2.5.0.1
./configure --prefix=%{prefix}/freetype \
CFLAGS="-O3 -fPIC"
make -j3

cd ../gd-2.1.0
./configure --prefix=%{prefix}/gd2 \
        --with-zlib=%{prefix}/zlib \
        --with-png=%{prefix}/libpng \
        --with-jpeg=%{prefix}/jpeg9 \
        --with-freetype=%{prefix}/freetype \
        LDFLAGS="-L%{prefix}/libpng/lib/ -L%{prefix}/zlib/lib/" \
        CFLAGS="-O3 -fPIC"
make -j3

cd ../pcre-8.33
./configure --prefix=%{prefix}/pcre
        CFLAGS="-O3 -fPIC"
make -j3

cd ../nginx-1.5.1
./configure --prefix=%{prefix}/nginx \
        --with-http_flv_module \
        --with-http_stub_status_module \
        --with-google_perftools_module \
        --with-http_gzip_static_module \
        --with-pcre-jit
make -j3

cd ../mysql-5.6.12
cmake . -DCMAKE_INSTALL_PREFIX=%{prefix}/mysql -DMYSQL_DATADIR=%{prefix}/mysql/data -DMYSQL_UNIX_ADDR=%{prefix}/mysql/data/mysql.sock   -DEFAULT_CHARSET=utf8   -DEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSET=all -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_READLINE=1 -DWITH_ZLIB=bundled -DWITH_TCP_PORT=3306 -DMYSQL_USER=mysql
make -j3
                             
cd ../php-5.5.0
./configure --prefix=%{prefix}/php \
        --with-config-file-path=%{prefix}/php/etc \
        --with-mysql=%{prefix}/mysql \
        --with-libxml-dir=%{prefix}/libxml2 \
        --with-mcrypt=%{prefix}/libmcrypt \
        --with-zlib-dir=%{prefix}/zlib \
        --with-png-dir=%{prefix}/libpng \
        --with-jpeg-dir=%{prefix}/jpeg9 \
        --with-freetype-dir=%{prefix}/freetype \
        --with-gd \
        --with-mysqli=%{prefix}/mysql/bin/mysql_config \
        --without-iconv \
        --enable-fpm \
        --enable-opcache \
        --enable-soap \
        --enable-mbstring=all \
        --enable-sockets \
        CFLAGS="-O3 -fPIC"
make -j3


%install
rm -rf $RPM_BUILD_ROOT
cd ../libunwind-1.1
make install DESTDIR=$RPM_BUILD_ROOT
cd ../gperftools-2.0
make install DESTDIR=$RPM_BUILD_ROOT
cd ../libxml2-2.6.30
make install DESTDIR=$RPM_BUILD_ROOT
cd ../libmcrypt-2.5.8
make install DESTDIR=$RPM_BUILD_ROOT
cd ../zlib-1.2.8
make install DESTDIR=$RPM_BUILD_ROOT
cd ../libpng-1.6.2
make install DESTDIR=$RPM_BUILD_ROOT
cd ../jpeg-9
make install DESTDIR=$RPM_BUILD_ROOT
cd ../freetype-2.5.0.1
make install DESTDIR=$RPM_BUILD_ROOT
cd ../gd-2.1.0
make install DESTDIR=$RPM_BUILD_ROOT
cd ../pcre-8.33
make install DESTDIR=$RPM_BUILD_ROOT
cd ../nginx-1.5.1
make install DESTDIR=$RPM_BUILD_ROOT
cd ../mysql-5.6.12
make install DESTDIR=$RPM_BUILD_ROOT
cd ../php-5.5.0
make install INSTALL_ROOT=$RPM_BUILD_ROOT
install -p -m 0755 -D %{SOURCE14} %{buildroot}%{_initrddir}/lnmp
install -p -m 0755 -D %{SOURCE15} %{buildroot}%{_initrddir}/nginx
install -p -m 0755 -D %{SOURCE16} %{buildroot}%{_initrddir}/php-fpm
install -p -m 0755 -D %{SOURCE17} %{buildroot}%{_initrddir}/mysqld
install -p -m 0644 -D %{SOURCE18} %{buildroot}%{prefix}/nginx/conf/nginx.conf
install -p -m 0644 -D %{SOURCE19} %{buildroot}%{prefix}/php/etc/php-fpm.conf

%pre
if [ $1 = 1 ];then
/usr/sbin/groupadd nginx
/usr/sbin/groupadd mysql
/usr/sbin/useradd -r nginx -g nginx -s /sbin/nologin
/usr/sbin/useradd -r mysql -g mysql -s /sbin/nologin
fi
%post
if [ $1 = 1 ];then
/sbin/chkconfig --add lnmp
cat >/etc/profile.d/lnmp.sh<<EOF
PATH=$PATH:%{prefix}/libpng/bin:%{prefix}/mysql/bin
EOF
source /etc/profile &>/dev/null
cat >/etc/ld.so.conf.d/lnmp.conf<<EOF
/usr/local/lnmp/libpng/lib
/usr/local/lnmp/jpeg9/lib
/usr/local/lnmp/zlib/lib
/usr/local/lnmp/freetype/lib
/usr/local/lnmp/libxml2/lib
/usr/local/lnmp/libmcrypt/lib
/usr/local/lnmp/gperftools/lib
/usr/local/lnmp/pcre/lib
/usr/local/lnmp/gd2/lib
EOF
/sbin/ldconfig
ln -sv /usr/local/lnmp/zlib/include/* /usr/include/
              ln -sv  /usr/local/lnmp/zlib/lib/* /usr/lib/
fi
%postun
/usr/sbin/userdel nginx &>/dev/null
/usr/sbin/userdel mysql &>/dev/null
/bin/rm -f /etc/profile.d/lnmp.sh &>/dev/null
/bin/rm -f /etc/ld.so.conf.d/lnmp.conf &>/dev/null

%clean
rm -rf $RPM_BUILD_ROOT
                                    
%files
%defattr(-,root,root,-)
%doc
/usr/local/lnmp/freetype/
/usr/local/lnmp/gd2/
/usr/local/lnmp/gperftools/
/usr/local/lnmp/jpeg9/
/usr/local/lnmp/libmcrypt/
/usr/local/lnmp/libpng/
/usr/local/lnmp/libxml2/
/usr/local/lnmp/mysql/
/usr/local/lnmp/php/
/usr/local/lnmp/nginx/
/usr/local/lnmp/pcre/
/etc/rc.d/init.d/


%changelog
*  Fri Jul 2013 Mr.Yang  <yonchin@126.com>  - 1.0.1
- LNMP


可能错误及解决方法:
1. 遇到/usr/lib/rpm/check-rpaths 找不到路径问题
解决方法:
       删除$HOME/.rpmmacros  文件中的%__arch_install_post   /usr/lib/rpm/check-rpaths   /usr/lib/rpm/check-buildroot 这一行即可。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-72640-1-1.html 上篇帖子: 实现高可用LAMP 下篇帖子: 快速搭建LNMP+FTP网站 制作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表