定制rpm包
来源:互联网 发布:木子软件 官网 编辑:程序博客网 时间:2024/05/16 10:23
1. 安装软件的方式
2017年9月16日 15:01:50 by:wentao
编译安装
优点:
- 可以定制安装目录
- 可以按需开启功能
- 可以定制,不需要网络,可以选择软件版本
缺点:
- 需要合适的编译参数
- MySQL,PHP编译时间过长
- 慢,复杂
yum安装方式
优点:
- 全自动化安装
- 简单,便捷
- 不需要依赖,自动解决依赖问题
缺点:
- 自主性太差
- 需要网络,网络不好下载不了
- 没办法定制软件功能,存放位置固定。存放在系统的各个目录
二进制安装方式
优点:
- 简单,快
缺点:
- 不能定制,包容量大
2. fpm打包工具
支持的源类型,可以从什么类型打包。
dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包
rpm 对rpm进行转换
gem 对rubygem包进行转换
python 将python模块打包成相应的类型
支持的目标类型
rpm 转换为rpm包
deb 转换为deb包
solaris 转换为solaris包
puppet 转换为puppet模块
3. 安装fpm
fpm是ruby写的,因此系统环境需要ruby,且ruby版本号大于1.8.5。
# 安装ruby模块
yum -y install ruby rubygems ruby-devel
# 查看当前使用的rubygems仓库
gem sources list
# 添加淘宝的Rubygems仓库,外国的源慢,移除原生的Ruby仓库
gem sources --add http://gems.ruby-china.org --remove http://rubygems.org/
# 安装fpm,gem从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
查看版本号
root@web03 ~ # fpm --help
Intro
This is fpm version 1.3.3
....
常用参数:
-s 指定源类型
-t 指定目标类型,即想要制作为什么包
-n 指定包的名字
-v 指定包的版本号
-C 指定打包的相对路径 Change directory to here before searching forfiles
-d 指定依赖于哪些包
-f 第二次打包时目录下如果有同名安装包存在,则覆盖它
-p 输出的安装包的目录,不想放在当前目录下就需要指定
--post-install 软件包安装完成之后所要运行的脚本;同--after-install
--pre-install 软件包安装完成之前所要运行的脚本;同--before-install
--post-uninstall 软件包卸载完成之后所要运行的脚本;同--after-remove
--pre-uninstall 软件包卸载完成之前所要运行的脚本;同--before-remove
定制nginx软件包
正常编译安装nginx
useradd -M -u 909 -s /sbin/nologin www
ln -s /application/nginx-1.10.3/ /application/nginx
'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.10.3/ root@web03 scripts # fpm -s dir -t rpm -n nginx -v 1.10.3 -d
定制PHP安装包
./configure --prefix=/application/php-5.5.32 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp --enable-opcache=no^C
定制sersync安装包
解压sersync.zip
unzip sersync_installdir_64bit.zip
将软件移动到/usr/local
mv sersync_installdir_64bit/sersync /usr/local
修改sersync的执行权限
chmod u+x /usr/local/sersync/bin/sersync
编辑安装脚本/server/scripts/sersync_install.sh
#date: 2017/09/19
#author: wen
chkconfig --add sersyncd
chkconfig --level 3 sersyncd on
编辑服务管理脚本:/etc/init.d/sersyncd
#/bin/bash
#date: 2017/09/18 23:56
#author: wen
#des: sersync start
#chkconfig: 235 57 89
. /etc/init.d/functions
if [ $# -ne 1 ];then
echo "Usage:$0 {start|stop|restart|status}"
exit 2
fi
message (){
if [ $? -eq 0 ];then
action "$message" /bin/true
else
action "$message " /bin/false
fi
}
start () {
/usr/local/sersync/bin/sersync -dro /usr/local/sersync/conf/confxml.xml &> /dev/null
serpid=$(pidof sersync)
echo $serpid >/var/run/sersync.pid
message="sersync is runing"
}
stop() {
message="sersync is stop"
kill -9 $(cat /var/run/sersync.pid)
}
restart (){
message="sersync is restart"
stop
sleep 2
start
}
stat () {
if [`ps -ef|grep sersync|wc -l` -lt 2 ];then
echo "sersync is running"
else
echo "sersync is stopping"
fi
}
case $1 in
start)
start
message;;
stop)
stop
message;;
restart)
restart
message;;
status)
stat
message;;
*)
echo "Usage:$0 {stop|start|restart|status}"
esac
对管理sersync服务脚本授权:
chmod u+x /etc/init.d/sersync
打成rpm包
fpm -s dir -t rpm -n sersync -v 1.1 -d 'inotify-tools' --post-install /server/scripts/sersync_install.sh -f /usr/local/sersync /etc/init.d/sersyncd
阅读全文
0 0
- rpm包的定制
- rpm包的定制
- 定制rpm包
- fpm定制化RPM包之nginx rpm包的制作
- 编译一个 RHEL 定制的内核 rpm 包
- 将定制RPM包加入内部Yum Server
- 利用rpmbuild打包定制属于你自己的RPM包
- 将定制RPM包加入内部Yum Server
- 定制RPM包并加入内部Yum Server
- 定制安装Linux(centos)之 裁减rpm包方法
- 手把手带你定制自己的nginx rpm包
- 自动化部署必备技能—定制化RPM包
- rpm包
- rpm包
- RPM 包
- rpm安装src.rpm包
- “ rpm”包和“rpm ”命令
- Linux RPM包使用指南
- IPv4地址分类
- 字符串-朴素的模式匹配算法
- 整死你个妖精,CDN西游捉妖记!
- C#学习回顾笔记八:C#的if条件语句
- 玉炜的iOS开发规范(12.14更新)
- 定制rpm包
- CodeForces
- python 对象池 a=1 b=1 a is b True a=257 b= 257 a is b False
- ubuntu修改主用户名及目录
- CentOS7安装JDK
- Virtualbox虚拟Ubuntu系统扩展磁盘分区
- 第十二章 与Spring集成(一) JavaSE应用
- hadoop入门一(基础搭建环境)
- 【php网页爬虫】php抓取网页数据