实战 tar 源码包管理 | srpm 源码包安装方法

 示例:源码安装 Nginx (讲解源码安装示例)

        Nginx 同 Apache 一样都是一种 WEB 服务器。基于 REST 架构风格,以统一资源描述符(Uniform 

Resources  Identifier)URI或者统一资源定位符(Uniform  Resources  Locator)URL 作为沟通依据,通过HTTP 协议提供各种网络服务,在此阶段并不对 Nginx 重点讲解,只通过安装 Nginx 学会 tar 源码包安

装,在下阶段会有针对性的 Nginx 讲解。 

  (1)  编译环境如 gcc 和  gcc-c++编译器、make。 

  (2)  准备软件:nginx-1.12.2.tar.gz。 

1.   部署 Nginx 

在部署之前需要解决编译环境、Nginx 依赖关系。 

yum  -y  install  gcc  gcc-c++  make  zlib-devel  pcre  pcre-devel openssl-devel 

pcre:  支持正则表达式,地址重写 rewrite 

 

2.   源码编译 3 部分:  ./configure,make,make install 

# tar xvf nginx-1.12.2.tar.gz    #解压 Nginx 程序压缩包。 

# cd nginx-1.12.2        #切换到解压后 Nginx 程序包目录。 

 

3.   执行预编译(检测环境)并指定安装目录,使用 --prefix=  指定安装 Nginx 预编译时指定安装目录为/usr/local/nginx 

# ./configure --prefix=/usr/local/nginx       

# make -j 4      #编译 -j 4 表示同时开启开个核心进行编译 

# make install    #编译安装 

 

详解源码安装 3 部分。 

 # ./configure 

  (1)  指定安装路径,例如  --prefix=/usr/local/nginx。 

  (2)  启用或禁用某项功能,  例如  --enable-ssl, --disable-filter --with-http_ssl_module。 

  (3)  和其它软件关联,例如--with-pcre。 

  (4)  检查安装环境,例如是否有编译器 gcc,是否满足软件的依赖需求。最终在当前目录下生成:Makefile 

         # make    -j 4      #按 Makefile 文件编译,可以使用-j 4 指定 4 核心 CPU 编译,提升速度。 

         # make install    #按 Makefile 定义的文件路径安装。 

         # make clean     //清除上次的 make 命令所产生的 object 和 Makefile 文件。使用场景:当需要重新执行 configure 时,需要执行 make clean。 

 

安装完,删除源码包  

make    uninstall       

有时删除不干净,所以建议大家安装时,在 configure 步骤添加一个:  --prefix 参数指定安装目录。

这样删除或备份时,直接对删除--prefix 指定的安装目录操作即可。 

 

实战 2:源码编译出错的 5 个种完美解决方法 

(1)  从 Windows 上传 extundelete 文件到 Linux,安装 xmanager v5  或者CRT 

(2)  解压并安装 extundelet 

[root@xuegod63 extundelete-0.2.4]# tar jxvf extundelete-0.2.4.tar.bz2   

[root@xuegod63 ~]# cd extundelete-0.2.4 

[root@xuegod63 ~]# rpm -ivh /mnt/Packages/e2fsprogs-devel-1.41.12-11.el6.x86_64.rpm   

[root@xuegod63 extundelete-0.2.4]# ./configure      #检查系统安装环境 

Configuring extundelete 0.2.4 

configure: error: Can't find ext2fs library 

 

1.   源码编译出错后,常见解决方法(共 5 种方法): 

方法 1:# rpm -ivh ext2fs      #进入本地YUM中查找ext2fs,按两下 tab 键。  一般情况,ext2fs 就是要安装的软件包的名字开头,如果存在自动补全。 

方法 2:# ls *ext2fs*          #有时查找软件包需要完整关键字。 

方法 3:# ls *2fs*           #有时查找软件包需要查找部分关键字。 

方法 4:   上网查找下载相关 rpm 依赖包进行安装,如图  8-4  所示。 

http://www.rpmseek.com/index.html 

image.png

 

图  8-4 rpm 包下载站点 

 

方法 5:    使用 Yum 去搜索。 

# yum search ext2fs 

安装库: 

[root@xuegod63 Packages]# rpm -ivh e2fsprogs-libs-1.41.12-11.el6.x86_64.rpm   

warning: e2fsprogs-libs-1.41.12-11.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY 

Preparing...                                                                                                                       

########################################### [100%] 

 package e2fsprogs-libs-1.41.12-11.el6.x86_64 is already installed 

 

互动:显示库已经安装,但是 configure 时又提示找不到。怎么办? 

解决:安装了库,却显示找不到,这种情况:需要安装库的开发文件 

#rpm -ivh /mnt/Packages/e2fsprogs-devel-1.41.12-11.el6.x86_64.rpm   

 

2.   扩展:技巧 

查看 rpm 包安装后生成的文件: 

[root@xuegod63 Packages]#rpm -qpl e2fsprogs-devel-1.41.12-11.el6.x86_64.rpm | more 

[root@xuegod63 extundelete-0.2.4]# make    -j 4        #编译。 

[root@xuegod63 extundelete-0.2.4]# make install        #安装。 

[root@xuegod63 extundelete-0.2.4]# ls /usr/local/bin/extundelete      #查看安装后的文件。 

/usr/local/bin/extundelete 

 

总结,软件安装方法特点: 

rpm+Yum:安装方便,软件版本低,稳定性好、管理方便,性能稍差。 

源码编译安装:安装复杂,软件版本新,可以定制,稳定性稍差、管理稍差,性能好。 

源码编译安装:主要是安装 LAMP 或 LNMP  架构时,需要用到。 

安装.src.rpm 源码包的方法(了解)     

        srpm:Source RPM  的意思,也就是这个  RPM  档案里面含有原始码( Source Code )。 

        上传 lrzsz-0.12.20-27.1.el6.src.rpm  到 linux 的/root 目录。   

        # rpm -e lrzsz    #先卸载软件包。 

        编译: 

        # rpmbuild --rebuild lrzsz-0.12.20-27.1.el6.src.rpm        # 根 据 将src.rpm 中源码文件编译成可执行的二进制文件。 

        若顺利执行成功则会在 root 用户家目录下生成一个:/root/rpmbuild 目录。在/root/rpmbuild/RPMS/x86_64/目录下生成 lrzsz-0.12.20-27.1.el7.CentOS.x86_64.rpm 这个

rpm 文件。 

        # rpm -ivh rpmbuild/RPMS/x86_64/lrzsz-0.12.20-27.1.el7.CentOS.x86_64.rpm      #安装。 

版权声明:
作者:WaterBear
链接:https://l-t.top/1303.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>