Linux
01.系统维护
CPU
内存
drop_cache为什么有些不释放
swap交换分区
磁盘
lvm磁盘扩容
文件夹加密ecryptfs-utils
linux挂载ISCSI磁盘
创建lvm
fstab挂载文件系统
systemd.mount
存储故障
曲线为目录配置限额
lvm缩容
进程
如何找到某一个正在运行的进程?
CRIU进程快照
网络
TCP连接的10种状态
Ubuntu禁用ipv6
close_wait数量过多阻塞网络连接
IP地址与二进制转换
支持ACME的DNS服务器PowerDNS
系统
CentOS版本及对应默认内核版本
修改shell语言
系统启动流程
cgroup
CentOS7升级内核并开启BBR
配置内核参数优化linux
更新grub2默认启动的内核
CentOS-SCLo源
修改键盘映射
Debian12升级时内核编译错误
timesync(ntp)
内核
drop_caches
软件
更新openssl
GUI
Gnome Workspace Names
02.系统安全
Auditd审计服务配置
ssh登陆免公钥验证
恶意脚本处置
2023挖矿脚本m0nad
为ssh服务添加多因子认证
03.基本概念
Out Of Memory
70.QEMU
磁盘格式转换
80.LFS
90.常用脚本
使用except修改操作系统密码
init.d脚本模板
shell脚本判断参数数量
安装oh-my-zsh
systemd脚本模板
端口测试
适用于truenas的ipv6阿里云ddns脚本
更新nginx白名单
将文件改名为md5值
djvu转换为pdf并ocr
99.常用命令
man page中命令后的数字释义
tcpdump
nslookup
nc
rsync
awk
sed
echo
rm
tar
chage
auditctl
ausearch
ab
openssl
parted
find
date
firewall-cmd
sort
vmstat
nice-调整进程的优先级
top
taskset-进程绑定CPU核心
iptables
iostat
sysctl
tr
rpmbuild
转载nginx.spec含说明
安装使用rpmbuild
unpacked files found
grep
vimtutor
tlinux - tos
snmpwalk
chattr
本文档使用 MrDoc 发布
-
+
首页
转载nginx.spec含说明
原地址 [nginx rpm打包spec文件](https://www.ropon.top/283.html "nginx rpm打包spec文件") ``` #RPM包名称,文件中可使用%{name}调用。 Name: nginx #RPM包版本号,文件中可使用%{version}调用 Version: 1.16.0 #打包特定版本号,常指第几次打包,其中dist centos6下是.el6,centos7下是.el7。 Release: 1%{?dist} #RPM包摘要,简单描述RPM包 Summary: %{name}-%{version} RPM #prefix: /usr/local/%{name}-%{version} Group: applications/web License: GPL URL: https://nginx.org #指定构建需要的源代码,多个源码包,使用Source1,2...,n Source0: %{name}-%{version}.tar.gz Source1: openssl-1.1.1a.tar.gz Source2: pcre-8.42.tar.gz Source3: zlib-1.2.11.tar.gz #_tmppath是/var/tmp #安装或编译时虚拟目录 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) #制作rpm包时所需依赖 BuildRequires: gcc-c++ #安装rpm包时所需依赖 #Requires: gcc-c++ perl pcre-devel openssl openssl-devel Packager: ropon@west.cn #autoreqprov用来指定自动产生RPM依赖关系 AutoReqProv: no %define _runuser www %define _rungroup www %define _wwwdir /home/wwwroot %define _logsdir /home/weblogs %define _default_dir /home/wwwroot/default %define _vhost_dir /home/panel/vhost %define _prefix /usr/local/%{name}-%{version} %define nginxpath /usr/local/nginx #setup 不加任何选项,仅将软件包打开。 #setup -n newdir 将软件包解压在newdir目录。 #setup -c 解压缩之前先产生目录。 #setup -b num 将第num个source文件解压缩。 #setup -T 不使用default的解压缩操作。 #setup -T -b 0 将第0个源代码文件解压缩。 #setup -c -n newdir 指定目录名称newdir,并在此目录产生rpm套件。 #RPM包详细描述 %description %{name} %{version} #构建前的准备 %prep %setup -b 0 %setup -b 1 %setup -b 2 %setup -b 3 #构建 %build ./configure --prefix=%{_prefix} \ --user=%{_runuser} \ --group=%{_rungroup} \ --with-http_stub_status_module \ --with-http_v2_module \ --with-http_ssl_module \ --with-http_gzip_static_module \ --with-http_realip_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-openssl=../openssl-1.1.1a \ --with-pcre=../pcre-8.42 \ --with-zlib=../zlib-1.2.11 \ --with-pcre-jit make %{?_smp_mflags} #安装 %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} #rpm安装前执行的脚本 %pre id -u %{_runuser} >/dev/null 2>&1 [ $? -ne 0 ] && useradd -M -s /sbin/nologin %{_runuser} [ ! -d %{_wwwdir} ] && mkdir -p %{_wwwdir} [ ! -d %{_logsdir} ] && mkdir -p %{_logsdir} chown -R %{_runuser}:%{_rungroup} %{_wwwdir} #rpm安装后执行的脚本 %post service nginx stop mv %{nginxpath} %{nginxpath}_bak ln -sf %{_prefix} %{nginxpath} wget -O /etc/systemd/system/nginx.service http://panel.ropon.top/panel/lnmp/init.d/nginx.service.txt sed -i "s@/usr/local/nginx@%{_prefix}@g" /etc/systemd/system/nginx.service systemctl enable nginx wget -O %{_prefix}/conf/nginx.conf http://panel.ropon.top/panel/lnmp/config/nginx.txt sed -i "s@/data/wwwroot/default@%{_wwwdir}/default@" %{_prefix}/conf/nginx.conf sed -i "s@/data/wwwlogs@%{_logsdir}@g" %{_prefix}/conf/nginx.conf sed -i "s@^user www www@user %{_runuser} %{_rungroup}@" %{_prefix}/conf/nginx.conf [ ! -d %{_default_dir} ] && mkdir -p %{_default_dir} [ ! -d %{_vhost_dir} ] && mkdir -p %{_vhost_dir} wget -O /etc/logrotate.d/nginx http://panel.ropon.top/panel/lnmp/config/nginxlogs.txt sed -i "s@/data/wwwlogs@%{_logsdir}@g" /etc/logrotate.d/nginx ln -sf %{_vhost_dir} %{_prefix}/conf/vhost wget -O %{_default_dir}/index.html http://panel.ropon.top/panel/lnmp/config/index.txt sleep 1 wget -O %{_default_dir}/phpinfo.php http://panel.ropon.top/panel/lnmp/config/phpinfo.txt [ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=%{_prefix}/sbin:\$PATH" >> /etc/profile [ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep %{_prefix} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=%{_prefix}/sbin:\1@" /etc/profile source /etc/profile service nginx start #rpm卸载前执行的脚本 %preun service nginx stop systemctl disable nginx id -u %{_runuser} >/dev/null 2>&1 [ $? -eq 0 ] && userdel %{_runuser} #卸载后执行的脚本 %postun Deldir() { [ -d $1 ] && rm -rf $1 } Delfile() { [ -f $1 ] && rm -rf $1 } Deldir %{_wwwdir} Deldir %{_logsdir} Deldir %{_vhost_dir} Deldir %{_prefix} rm -r %{nginxpath} Delfile /etc/systemd/system/nginx.service Delfile /etc/logrotate.d/nginx %clean rm -rf %{buildroot} %files %defattr(-, %{_runuser}, %{_rungroup}) %attr(744, %{_runuser}, %{_rungroup}) %{_prefix}/* %changelog ```
zhangky
2021年9月1日 17:00
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码