Linux-源码安装及FPM打包
源码安装
这里举例Nginx的源码安装,需要前往Nginx官网找到稳定版本源码安装包下载。
## 源码安装nginx
# 0.安装依赖
[root@wqh nginx-1.16.1]# yum install -y gcc gcc-c++ glibc zlib-devel pcre-devel openssl-devel
# 1.下载nginx源码包
[root@wqh ~]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
# 2.解压
[root@wqh ~]# tar xf nginx-1.16.1.tar.gz
[root@wqh ~]# cd nginx-1.16.1
# 3.生成,--prefix 即安装路径
[root@wqh nginx-1.16.1]# useradd nginx -s /sbin/nologin -M
[root@wqh nginx-1.16.1]# ./configure --prefix=/app/nginx-1.16.1 --user=nginx --group=nginx
# 4.编译
[root@wqh nginx-1.16.1]# make
# 5.安装
[root@wqh nginx-1.16.1]# make install
# 6.检测配置文件有没有语法错误
[root@wqh sbin]# /app/nginx-1.16.1/sbin/nginx -t
nginx: the configuration file /app/nginx-1.16.1/conf/nginx.conf syntax is ok
nginx: configuration file /app/nginx-1.16.1/conf/nginx.conf test is successful
# 7.启动nginx
[root@wqh sbin]# /app/nginx-1.16.1/sbin/nginx
# 8.检测80端口
[root@wqh sbin]# netstat -lntup|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13468/nginx: master
# 9.做软连接
[root@wqh nginx-1.16.1]# ln -s /app/nginx-1.16.1 /app/nginx
制作RPM包(使用FPM工具)
FPM是一个该死的软件包管理器,主要是用来构建软件包(deb,rpm等等)。使用fpm命令需要一些依赖,
主要是ruby、rubygems和ruby-devel,如果我们构建的是rpm包,那还需要rpm-build这个依赖包。
FPM的工具在国内难以下载,我在博客的后台暂存了一份fpm工具包,点击下载即可(FPM工具包)
# 先了解一下fpm命令
fpm:制作rpm包命令
-s:dir # 打目录
-t:rpm # 把目录打成rpm包
-n:nginx # 软件名字叫nginx
-v:1.16.1 # 软件的版本号
-d: # 指定nginx的依赖包
-f: # 指定要达成rpm包的目录路径
--post-install # 指定rpm包安装完成之后要执行的脚本
--pre-install # 指定rpm包安装之前,要执行的脚本
## 制作rpm包(用fpm 工具)
[root@wqh ~]# mkdir fpm
[root@wqh ~]# mv fpm-1.3.3.x86_64.tar.gz fpm
[root@wqh fpm]# cd /root/fpm/
# 1. 解压
[root@wqh fpm]# tar xf fpm-1.3.3.x86_64.tar.gz
# 2.安装ruby
[root@wqh fpm]# yum -y install ruby rubygems ruby-devel rpm-build # 都是gem命令的依赖包,rpm-build是制作rpm包的依赖包
# 3.查看gem的源
[root@wqh fpm]# gem sources --list
*** CURRENT SOURCES ***
https://rubygems.org/
# 4.更换阿里云的源 先移除国外源
[root@wqh fpm]# gem sources --remove https://rubygems.org/
# 5.更换阿里云的源, 添加阿里云的源
[root@wqh fpm]# gem sources -a https://mirrors.aliyun.com/rubygems/
# 6.使用gem命令安装当前目录下所有的.gem文件
[root@wqh fpm]# gem install *.gem
# 7.写出安装rpm之后要执行的脚本,此处为简略版本,后面有详细版本
[root@wqh ~]# vi /root/nginx.sh
#!/bin/bash
useradd nginx -s /sbin/nologin -M
ln -s /app/nginx-1.16.1 /app/nginx
# 8.使用fpm打包
[root@wqh fpm]# fpm -s dir -t rpm -n nginx -v 1.16.1 -d 'zlib-devel,gcc,glibc,pcre-devel,glibc,openssl-devel,gcc-c++' --post-install /root/nginx.sh -f /app/nginx-1.16.1/
安装rpm后要执行的脚本(优化版)
[root@wqh ~]# vi nginx.sh
#!bin/bash
## 判断nginx用户是否存在,若不存在则创建,若存在则提示已经创建
id nginx &>/dev/null
if [ $? -ne 0 ];then
useradd nginx -r -M -s /sbin/nologin
echo "creating user nginx..."
else
echo "user nginx has been created,nothing to do."
fi
## 创建目录 nginx-1.16.1 的软链接,方便使用
ln -s /app/nginx-1.16.1 /app/nginx &>/dev/null
## 创建system文件,以便于对nginx使用systemctl命令管理
cat > /usr/lib/systemd/system/nginx.service << eof
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/app/nginx/logs/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /app/nginx/logs/nginx.pid
ExecStartPre=/app/nginx/sbin/nginx -t
ExecStart=/app/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
[Install]
WantedBy=multi-user.target
eof
## 添加环境变量,以便于用nginx执行文件启动nginx,安装完需要source一下或者重新登录
cat > /etc/profile.d/nginx.sh << eof
export PATH="/app/nginx/sbin/:$PATH"
eof
Linux-源码安装及FPM打包的更多相关文章
- Linux源码安装JDK1.8
Linux源码安装Java 1.到官网下载 jdk-8u131-linux-x64.tar.gz 官网地址:http://www.oracle.com/technetwork/java/javase/ ...
- mysql-5.5 for linux源码安装
mysql-5.5 for linux源码安装 1.使用Yum安装依赖软件包 # yum install -y gcc gcc-c++ gcc-g77 autoconf automake bison ...
- linux源码安装mysql,shell编程学习,ubuntu
一.mysql安装 以源码安装的方式编译和安装Mysql 5.6. 1.卸载旧版本 rpm -qa | grep mysql 检查是否有旧版本 查询结果:mysql-libs-5.1.73-7.el6 ...
- Linux源码安装软件
Linux环境下 源码编译安装软件 ==== 1. 下载,步骤略 ==== 2. 验证,部分官方下载同时提供签名,MD5,sha1,sha256等校验信息. $ gpg --verify gnupg- ...
- Linux 源码安装 FFmpeg
加班次数频繁,已经快一年没有写博了.由于此次在项目中使用到了 FFmpeg 来处理音视频,顾记录下在 Linux 系统中源码安装 FFmpeg 以便不时之需. 1. 安装 yasm yasm 是一个汇 ...
- linux源码安装软件的一般方法
rhel系统貌似安装不了xmgrace,配置的时候居然说要那个M*tif库.百度了一下,需要openmotif库,然后用root账户想要用yum安装一下这个库,搞了好久没搞懂.后面搞明白了,原因竟是因 ...
- Linux 源码安装Ansible 参考篇
Ansible 源码搭建配置 近期在学习自动化运维相关技术,文章主要模拟内网情况下对Ansible的安装演示,源码安装较为繁琐.枯燥,尤其是在实际安装过程中可能出现各式各样的问题,所有在安装过程中尽量 ...
- Linux源码安装RabbitMQ高可用集群
1.环境说明 linux版本:CentOS Linux release 7.9.2009 erlang版本:erlang-24.0 rabbitmq版本:rabbitmq_server-3.9.13 ...
- Linux源码安装mysql步骤
创建文件夹: mkdir /usr/local/webserver 安装必要依赖包 yum -y install gcc gcc-c++ make ncurses-devel安装cmake ...
随机推荐
- 工作记录:记一次线上ZK掉线问题排查
目录 问题的发现 zk的情况以及分析 总结 问题的发现 最早问题的发现在于用户提的,用户提出他支付时支付失败,过了一会儿再试就好了,于是翻日志,查询到当时duboo调用出现了下类错误: [TraceI ...
- ABAP中SQL语句,指定索引(oracle)
①常用的两种方法: 1.指定使用全表扫描:%_HINTS ORACLE 'FULL(table_name)' 表示扫描整个表 2.指定索引:%_HINTS ORACLE 'INDEX("ta ...
- 使用Spring的RestTemplate进行接口调用
引自:http://www.zimug.com/ 1.常见的http服务的通信方式 经常使用的方式有HttpClient.OkHttp.RestTemplate.其中RestTemplate是一种更优 ...
- CentOS 7.4通过rpm包离线安装 Mysql8.0并部署主从复制(附从库备份脚本)
一. 部署MySQL (两个节点都做) 下载 rpm包 wget https://goodrain-pkg.oss-cn-shanghai.aliyuncs.com/mysql8.rpm tar xv ...
- centos系统磁盘扩容
1.查看磁盘空间大小,使用df -h 命令. 2. 增加磁盘空间,例如下图使用VM虚拟机增加的方式.物理机直接安装挂载上去. 3. 使用fdisk /dev/sda, 创建新分区. 4.重启Linux ...
- Java SPI机制详解
Java SPI机制详解 1.什么是SPI? SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制.SPI是一种动态替换发现的机制, 比如有个 ...
- gitignore 不起作用的解决办法 不再跟踪 让.gitignore生效,跟踪希望被跟踪的文件
实践 # https://git-scm.com/docs/gitignore https://git-scm.com/docs/gitignore 不跟踪log目录下的所有文件,但需要保留这个文件夹 ...
- css水平、垂直居中的写法
水平居中 行内元素: text-align: center 块级元素: margin: 0 auto position:absolute +left:50%+ transform:translateX ...
- 在Ubuntu安装kubernetes
一.安装Docker 1. 配置Docker docker安装完成后需要配置cgroup驱动为systemd来增强稳定性 sudo vim /etc/docker/daemon.json { &quo ...
- 使用Robo 3T操作MongoDB数据库
安装Robo 3T连接MongoDB数据库教程:https://blog.csdn.net/baidu_39298625/article/details/98845789 在IDEA中用三个jar包链 ...