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 ...
随机推荐
- Nacos集成学习入门
微服务注册中心nacos学习:先尝试使用它,然后撸它源码搞懂它. 在这里整理一下自己之前集成nacos的内容. 我的github地址:https://github.com/mrxiaobai-wen/ ...
- 国内最具影响力科技创投媒体36Kr的容器化之路
本文由1月19日晚36Kr运维开发工程师田翰明在Rancher技术交流群的技术分享整理而成.微信搜索rancher2,添加Rancher小助手为好友,加入技术群,实时参加下一次分享~ 田翰明,36Kr ...
- SAP中使用FTP服务
SAP中简单的FTP技术实现基本上如下几个步骤: 1.SM59建立FTP的RFC destination. 可以通过执行SAP的标准程序RSFTP005,自动创建两个名为SAPFTP何SAPFTPA的 ...
- Docker相关简介以及使用方法
Docker: 可以把它看作是一个软件,在这个软件当中呢,还可以安装其他的软件,还可以把软件所需要的环境依赖一起添加进来,这样让开发人员的程序在不同的环境当中都可以流转起来,避免了程序出现" ...
- 支付宝沙箱环境使用(Alipay Easy SDK ) .Net示例
新版服务端 SDK(Alipay Easy SDK)适用于 Java.C#.PHP 编程语言,对开放能力的 API 进行了更加贴近高频场景的精心设计与裁剪,简化了服务端调用方式,让开发者享受极简编程体 ...
- Vue基础之生命周期函数[残缺版]!
Vue基础之生命周期函数[残缺版]! 为什么说是残缺版呢?! 因为有一些周期函数我并没有学到!所以是残缺版! 01 beforeCreate //在实例初始化之后,数据观测 (data observe ...
- Spring Boot引起的“堆外内存泄漏”排查及经验总结 strace
小结: 检索词:C++内存分配器.jvm内存模型.gdb.内存泄露 https://tech.meituan.com/2019/01/03/spring-boot-native-memory-leak ...
- 洛谷 P3704 SDOI2017 数字表格
题意: 给定两个整数 \(n, m\),求: \[\prod_{i = 1} ^ n \prod_{j = 1} ^ m \operatorname{Fib}_{\gcd\left(n, m\righ ...
- scala中List、Array、ListBuffer、ArrayList、Set
scala中List.Array.ListBuffer.ArrayList.Set 一.List 二.Array 三.LIstBuffer 四.ArrayBuffer 五.Set 一.List Lis ...
- Spark 将DataFrame所有的列类型改为double
Spark 将DataFrame所有的列类型改为double 1.单列转化方法 2.循环转变 3.通过:_* 1.单列转化方法 import org.apache.spark.sql.types._ ...