FPM制作rpm包
admin
2023-03-24 09:41:26
0


#软件信息

#FPM github :https://github.com/jordansissel/fpm

#FPM documentation :https://fpm.readthedocs.io/en/latest/


#FPM源类型与目标类型

Things that should work

Sources:
gem (even autodownloaded for you)
python modules (autodownload for you)
pear (also downloads for you)
directories
tar(.gz) archives
rpm
deb
node packages (npm)
pacman (ArchLinux) packages


Targets:
deb
rpm
solaris
freebsd
tar
directories
Mac OS X .pkg files (osxpkg)
pacman (ArchLinux) packages


FPM常用参数:

-s    指定源类型

-t    指定目标类型

-n    指定包的名字

-v    指定包的版本号

-C    指定打包的相对路径

-d    指定依赖于哪些包

--url URI    给该包添加URL  (default: "http://example.com/no-uri-given")

-f         第二次包时目录下如果有同名安装包存在,则覆盖它;

-p      :制作的rpm安装包存放路径,不想放在当前目录下就需要指定;

--post-install FILE   软件包安装完成之后所要运行的脚本;

--pre-install FILE     软件包安装完成之前所要运行的脚本;

--post-uninstall FILE   软件包卸载完成之后所要运行的脚本;

--pre-uninstall FILE    软件包卸载完成之前所要运行的脚本;

--prefix:    制作好的rpm包默认安装路径;

--after-remove FILE          软件包卸载完成后要运行的脚本

--before-remove FILE          软件包卸载完成前要卸载的脚本


#安装FPM

[root@KVM_1 ~]# yum install -y ruby rubygems ruby-devel
[root@KVM_1 ~]# gem sources --add http://gems.ruby-china.org/ --remove https://gems.ruby-china.org/
[root@KVM_1 ~]# gem sources -l
*** CURRENT SOURCES ***

http://gems.ruby-china.org/
[root@KVM_1 ~]#
[root@KVM_1 ~]# gem install fpm
[root@KVM_1 ~]# yum install -y rpm-build


#编译安装Nginx

[root@KVM_1 ~]# wget http://mirrors.sohu.com/nginx/nginx-1.13.0.tar.gz
[root@KVM_1 ~]# tar -xf nginx-1.13.0.tar.gz 
[root@KVM_1 ~]# cd nginx-1.13.0/
[root@KVM_1 nginx-1.13.0]# yum install -y pcre pcre-devel openssl openssl-devel gcc-c++
[root@KVM_1 nginx-1.13.0]# useradd -s /usr/sbin/nologin -M nginx
[root@KVM_1 nginx-1.13.0]# ./configure --with-http_stub_status_module --with-http_ssl_module --prefix=/usr/local/nginx  --user=nginx --group=nginx
[root@KVM_1 nginx-1.13.0]# make && make install
[root@KVM_1 nginx-1.13.0]# cd
[root@KVM_1 ~]# /usr/local/nginx/sbin/nginx 
[root@KVM_1 ~]# curl -I 192.168.174.134
HTTP/1.1 200 OK
Server: nginx/1.13.0
Date: Wed, 10 May 2017 19:52:20 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Wed, 10 May 2017 19:50:48 GMT
Connection: keep-alive
ETag: "59136f18-264"
Accept-Ranges: bytes

[root@KVM_1 ~]# /usr/local/nginx/sbin/nginx -s quit


#编写软件包安装后要执行的命令的脚本

[root@KVM_1 ~]# cat /root/nginx_init.sh 
#!/bin/bash
 
useradd -s /sbin/nologin -M  nginx 

echo '[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
' > /usr/lib/systemd/system/nginx.service
[root@KVM_1 ~]#chmod +x /root/nginx_init.sh


#打包rpm

[root@KVM_1 ~]# fpm -s dir -t rpm -n nginx -v 1.13.0 -d 'pcre,pcre-devel,openssl,openssl-devel' --post-install /root/nginx_init.sh -f /usr/local/nginx
#参数解释
-s 源类型 此处为 目录
-t 目标类型 此处为 rpm
-n 软件包名  此处为 nginx
-v 版本号   此处为 1.13.0
-d 依赖包  此处为 pcre,pcre-devel,openssl,openssl-devel
--post-install 安装软件包后要执行的脚本 此处为 /root/nginx_init.sh
-f 强制覆盖
/usr/local/nginx 要被打包的目录
#
#打包完成后会在当前目录生成 rpm包
[root@KVM_1 ~]# ls
anaconda-ks.cfg  nginx-1.13.0.tar.gz   nginx_init.sh  nginx-1.13.0  nginx-1.13.0-1.x86_64.rpm


#测试

[root@KVM_1 ~]# hostname
KVM_1
[root@KVM_1 ~]# scp nginx-1.13.0-1.x86_64.rpm 192.168.174.135:/media/
[root@KVM_1 ~]# ssh 192.168.174.135
[root@KVM_2 ~]# hostname
KVM_2
#配置YUM源
[root@KVM_2  ~]# cat /etc/yum.repos.d/local.repo 
[local]
name=local
baseurl=file:///media/
gpgcheck=0
enabled=1
[root@KVM_2 ~]# mount /dev/cdrom /mnt/
[root@KVM_2 ~]# cp /mnt/* /media/
[root@KVM_2 ~]# cd /media/
#更新YUM仓库
[root@KVM_2 media]# createrepo -v ./
[root@KVM_2 media]# yum makecache
[root@KVM_2 media]# yum list | grep nginx
nginx.x86_64                               1.13.0-1                    local   
pcp-pmda-nginx.x86_64                      3.10.6-2.el7                local    
#安装nginx
[root@KVM_2 media]# yum install -y nginx
[root@KVM_2 media]# systemctl start nginx
[root@KVM_2 media]# systemctl status nginx
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2017-05-11 04:00:07 CST; 12s ago
     Docs: http://nginx.org/en/docs/
  Process: 4681 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
  Process: 4679 ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
 Main PID: 4684 (nginx)
   CGroup: /system.slice/nginx.service
           ├─4684 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
           └─4685 nginx: worker process

May 11 04:00:07 KVM_2 systemd[1]: Starting nginx - high performance web server...
May 11 04:00:07 KVM_2 nginx[4679]: nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
May 11 04:00:07 KVM_2 nginx[4679]: nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
May 11 04:00:07 KVM_2 systemd[1]: Started nginx - high performance web server.

[root@KVM_2 media]# netstat -lntup | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4684/nginx: master  

[root@KVM_2 media]# curl -I 192.168.174.135
HTTP/1.1 200 OK
Server: nginx/1.13.0
Date: Wed, 10 May 2017 20:01:14 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Wed, 10 May 2017 20:14:24 GMT
Connection: keep-alive
ETag: "591374a0-264"
Accept-Ranges: bytes


#至此nginx FPM 打包完成



上一篇:shell小知识

下一篇:DHCP服务器配置

相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...