# 源码安装包

有时候我们安装一个软件，官方没有rpm包，也不能yum的时候，我们还很采用源码安装。

## 1.下载编译的软件

```bash
[root@localhost src]# yum install gcc gcc++
```

## 2.下载需安装的软件源码

```bash
[root@localhost src]# curl -O http://nginx.org/download/nginx-1.15.2.tar.gz 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1001k  100 1001k    0     0  13608      0  0:01:15  0:01:15 --:--:-- 28154
```

## 3.解压并进入目录

```bash
[root@localhost src]# tar -xvf nginx-1.15.2.tar.gz
[root@localhost src]# cd nginx-1.15.2
[root@localhost nginx-1.15.2]#
```

## 4.编译安装

```bash
# 1.生成编译文件
[root@localhost nginx-1.15.2]# ./configure \
>--prefix=/usr/local/nginx # 指定安装路径
...
[root@localhost nginx-1.15.2]# echo $?
1 # echo $? 查看上一次命令运行结果是否正确，大于0都是错误，原因是参数错误
[root@localhost nginx-1.15.2]# ./configure \
>--prefix=/usr/local/nginx \
>--with-pcre 
...
[root@localhost nginx-1.15.2]# echo $?
1 # 又是错误，缺少依赖文件
...
[root@localhost nginx-1.15.2]# yum install pcre-delvel zlib-devel # 源码安装缺少的文件大部分都是带devel结尾的
[root@localhost nginx-1.15.2]# ./configure \
>--prefix=/usr/local/nginx \
>--with-pcre 
...
[root@localhost nginx-1.15.2]# echo $?
0 # 成功了
# 2.编译
[root@localhost nginx-1.15.2]# make
[root@localhost nginx-1.15.2]# echo $?
0 
# 3.安装
[root@localhost nginx-1.15.2]# make install
[root@localhost nginx-1.15.2]# echo $?
0 
[root@localhost nginx-1.15.2]# ls /usr/local/nginx/ # 编译安装成功
conf  html  logs  sbin
```

> 编译最好中最好每一步都使用 echo $? 来检查错误

编译安装的步骤就三步：

1. 生成编译文件：./configure
2. 编译：make
3. 安装：make install
