义乌网站建设电话,体育网站建设需求,wordpress数据库响应时间过长,做自己移动端网站自定义rpm包#xff0c;还是有逼格和实际生产环境的意义的。 (下面的文档有的代码由于博客排版的问题导致挤在了一起#xff0c;需要自己判别#xff09; 安装FPM fpm是ruby写的#xff0c;因此系统环境需要ruby#xff0c;且ruby版本号大于1.8.5。 # 安装ruby模块 yum -y… 自定义rpm包还是有逼格和实际生产环境的意义的。 (下面的文档有的代码由于博客排版的问题导致挤在了一起需要自己判别 安装FPM fpm是ruby写的因此系统环境需要ruby且ruby版本号大于1.8.5。 # 安装ruby模块 yum -y install ruby rubygems ruby-devel # 添加淘宝的Rubygems仓库移除原生的Ruby仓库 gem sources --addhttps://gems.ruby-china.org/ --remove https://rubygems.org/ # 安装fpmgem从rubygem仓库安装软件类似yum从yum仓库安装软件。首先安装低版本的json高版本的json需要ruby2.0以上然后安装低版本的fpm够用。 gem install json -v 1.8.3 gem install fpm -v 1.3.3 # 上面的2步安装仅适合CentOS6系统CentOS7系统直接使用gem install fpm一步搞定。 FPM参数 常用的几个参数如下,详细使用见fpm –help -s 指定源类型 -t 指定目标类型即想要制作为什么包 -n 指定包的名字 -v 指定包的版本号 -C 指定打包的相对路径 Change directory to here before searching forfiles -d 指定依赖于哪些包 -f 第二次打包时目录下如果有同名安装包存在则覆盖它 -p 输出的安装包的目录不想放在当前目录下就需要指定 --vendor 供应商 --description 注释信息 --post-install 软件包安装完成之后所要运行的脚本 --pre-install 软件包安装完成之前所要运行的脚本 --post-uninstall 软件包卸载完成之后所要运行的脚本 --pre-uninstall 软件包卸载完成之前所要运行的脚本 定制nginx的RPM包实例 1. 在打包机器上先安装一次nginx yum -y install pcre-developenssl-devel useradd nginx -M -s /sbin/nologin tar xf nginx-1.8.0.tar.gz cd nginx-1.8.0 ./configure --usernginx --groupnginx --prefix/application/nginx-1.8.0 --with-http_ssl_module--with-http_stub_status_module make make install ln -s /application/nginx-1.8.0/application/nginx 2. 编写脚本 mkdir /server/scripts/ -p cd /server/scripts/ 软件包卸载前、卸载后的脚本可以根据情况是否编写不编写问题也不大。但是rpm安装后的脚本是必须的。 vim nginx_post_install.sh #编写一个rpm安装后需要执行的脚本 #!/bin/bash useradd nginx -M -s /sbin/nologin ln -s /application/nginx-1.8.0 /application/nginx chmod x /etc/init.d/nginx chkconfig --add nginx echo PATH/application/nginx/sbin:$PATH /etc/profile.d/nginx.sh 准备个启动脚本如下 vi /etc/init.d/nginx #! /bin/sh # chkconfig: 2345 55 25 # Description: Startup script fornginx webserver on Debian. Place in /etc/init.d and PATH/application/nginx/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin NAMEnginx NGINX_BIN/application/nginx/sbin/$NAME CONFIGFILE/application/nginx/conf/$NAME.conf PIDFILE/application/nginx/logs/$NAME.pid case $1 in start) echo -n Starting $NAME... if netstat -tnpl | grep -q nginx;then echo $NAME (pid pidof $NAME)already running. exit 1 fi $NGINX_BIN -c $CONFIGFILE if [ $? ! 0 ] ; then echo failed exit 1 else echo done fi ;; stop) echo -n Stoping $NAME... if ! netstat -tnpl | grep -q nginx;then echo $NAME is notrunning. exit 1 fi $NGINX_BIN -s stop if [ $? ! 0 ] ; then echo failed. Use force-quit exit 1 else echo done fi ;; status) if netstat -tnpl | grep -q nginx; then PIDpidof nginx echo $NAME (pid $PID) isrunning... else echo $NAME is stopped exit 0 fi ;; force-quit) echo -n Terminating $NAME... if ! netstat -tnpl | grep -q nginx;then echo $NAME is notrunning. exit 1 fi kill pidof $NAME if [ $? ! 0 ] ; then echo failed exit 1 else echo done fi ;; restart) $0 stop sleep 1 $0 start ;; reload) echo -n Reload service $NAME... if netstat -tnpl | grep -q nginx; then $NGINX_BIN -s reload echo done else echo $NAME is not running,cant reload. exit 1 fi ;; configtest) echo -n Test $NAME configurefiles... $NGINX_BIN -t ;; *) echo Usage: $0{start|stop|force-quit|restart|reload|status|configtest} exit 1 ;; esac 3. 打包 fpm -s dir -t rpm -n nginx -v 1.8.0 --vendor OPSCompany --description Nginx for Company,Build in 2016/11/28 -d pcre-devel,openssl-devel --post-install /server/scripts/nginx_post_install.sh -f /application/nginx-1.8.0 /etc/init.d/nginx # 注意我们可以操作前修改下主机名这样打包出来的Build Host就会跟着改变。 4. 安装rpm包 rpm命令安装会报错如下例 rpm -ivh nginx-1.8.0-1.x86_64.rpm 但会在缺少pcre-devel时候报错需要先yum安装依赖才能安装rpm包。 yum命令安装rpm包 yum -y localinstall nginx-1.8.0-1.x86_64.rpm 这个命令会自动先安装rpm包的依赖然后再安装rpm包。 其他 我们可以将其他的一些常用软件如redis、mongodb、redis等都这样定制好安装路径和配置文件这样安装就方便多了。 本文转自 lirulei90 51CTO博客原文链接http://blog.51cto.com/lee90/1877420如需转载请自行联系原作者