源码包安装程序

  使用源码包来安装服务程序具有两个优势。

源码包的可移植性非常好,几乎可以在任何Linux系统中安装使用,而RPM软件包是针对特定系统和架构编写的指令集,必须严格地符合执行环境才能顺利安装(即只会去“生硬地”安装服务程序)。

使用源码包安装服务程序时会有一个编译过程,因此可以更好地适应安装主机的系统环境,运行效率和优化程度都会强于使用RPM软件包安装的服务程序。也就是说,可以将采用源码包安装服务程序的方式看作是针对系统的“量体裁衣”。

  一般来讲,在安装软件时,如果能通过Yum软件仓库来安装,就用Yum方式;反之则去寻找合适的RPM软件包来安装;如果是在没有资源可用,那就只能使用源码包来安装了。

  使用源码包安装服务程序的过程看似复杂,其实在归纳汇总后只需要4~5个步骤即可完成安装。

  第1步:下载及解压源码包文件。为了方便在网络中传输,源码包文件通常会在归档后使用gzip或bzip2等格式进行压缩,因此一般会具有.tar.gz与.tar.bz2的后缀。要想使用源码包安装服务程序,必须先把里面的内容解压出来,然后再切换到源码包文件的目录中:

[root@linuxprobe ~]# tar xzvf FileName.tar.gz

[root@linuxprobe ~]# cd FileDirectory

  第2步:编译源码包代码。在正式使用源码包安装服务程序之前,还需要使用编译脚本针对当前系统进行一系列的评估工作,包括对源码包文件、软件之间及函数库之间的依赖关系、编译器、汇编器及连接器进行检查。我们还可以根据需要来追加--prefix参数,以指定稍后源码包程序的安装路径,从而对服务程序的安装过程更加可控。当编译工作结束后,如果系统环境符合安装要求,一般会自动在当前目录下生成一个Makefile安装文件。

[root@linuxprobe ~]# ./configure --prefix=/usr/local/program

  第3步:生成二进制安装程序。刚刚生成的Makefile文件中会保存有关系统环境、软件依赖关系和安装规则等内容,接下来便可以使用make命令来根据Makefile文件内容提供的合适规则编译生成出真正可供用户安装服务程序的二进制可执行文件了。

[root@linuxprobe ~]# make

  第4步:运行二进制的服务程序安装包。由于不需要再检查系统环境,也不需要再编译代码,因此运行二进制的服务程序安装包应该是速度最快的步骤。如果在源码包编译阶段使用了--prefix参数,那么此时服务程序就会被安装到那个目录,如果没有自行使用参数定义目录的话,一般会被默认安装到/usr/local/bin目录中。

[root@linuxprobe ~]# make install

  第5步:清理源码包临时文件。由于在安装服务程序的过程中进行了代码编译的工作,因此在安装后目录中会遗留下很多临时垃圾文件,本着尽量不要浪费磁盘存储空间的原则,可以使用make clean命令对临时文件进行彻底的清理工作。

[root@linuxprobe ~]# make clean

  卸载程序:make uninstall

《linux就该这么学》课堂笔记20 LNMP架构部署动态网站环境的更多相关文章

  1. 《Linux就该这么学》培训笔记_ch20使用LNMP架构部署动态网站环境

    <Linux就该这么学>培训笔记_ch20使用LNMP架构部署动态网站环境 文章最后会post上书本的笔记照片. 文章主要内容: 源码包程序 LNMP动态网站架构 配置Mysql服务 配置 ...

  2. 第20章 使用LNMP架构部署动态网站环境

    章节概述: 本章节将从Linux系统的软件安装方式讲起,带领读者分辨RPM软件包与源码安装的区别.并能够理解它们的优缺点. Nginx是一款相当优秀的用于部署动态网站的服务程序,Nginx具有不错的稳 ...

  3. Linux中什么是动态网站环境及如何部署

    当谈论起网站时,我们可能听说过静态和动态这两个词,但却不知道它们的含义,或者从字面意思了解一些却不知道它们的区别. 这一切可以追溯到网站和网络应用程序,Web应用程序是一个网站,但很多网站不是Web应 ...

  4. 《Linux就该这么学》自学笔记_ch22_使用openstack部署云计算服务环境

    <Linux就该这么学>自学笔记_ch22_使用openstackb部署云计算服务环境 文章主要内容: 了解云计算 Openstack项目 服务模块组件详解 安装Openstack软件 使 ...

  5. Linux就该这么学(3)-管道符、重定向与环境变量(学习笔记)

    1.Linux命令与文件读写操作有关的重定向技术: 学习目标:主要解决输出信息的保存问题. 标准覆盖输出重定向: 标准追加输出重定向 错误覆盖输出重定向 错误追加输出重定向 输入重定向 标准输入(ST ...

  6. 二十四、Hadoop学记笔记————Spark的架构

    master为主节点 一个集群中可能运行多个application,因此也可能会有多个driver DAG Scheduler就是讲RDD Graph拆分成一个个stage 一个Task对应一个Spa ...

  7. linux运维、架构之路-Lnmp架构部署

    一.Lnmp架构原理 二. Lnmp架构软件安装 1.Nginx安装脚本 #!/bin/bash useradd -s /sbin/nologin -M www mkdir -p /server/to ...

  8. LInux 就该这么学 笔记分享

    看了Linux就该这么学的前部分书,觉得写的还可以,就在网上找了下面这个同学写的笔记,觉得很详细,所以保存地址,供以后查阅参看.这里对作者表示感谢!!! 博客地址: https://www.cnblo ...

  9. Linux就该这么学笔记

    https://www.linuxprobe.com/========================================================================= ...

随机推荐

  1. Tableau 练习题

    1.练习一 1. 提出问题:对某个学校或者一个城市的教育水平进行评估,或者多个学校的教育水平进行比较 指标:学生考试成绩 根据考试成绩高低判断教育水平:影响因素:学生餐饮,从多个维度分析,各城市在不同 ...

  2. SQL Server 迁移数据库 (一)导入和导出

    今天正好换服务器,记录一下迁移数据库的过程. 以前经常用备份还原法,今天试试‘SQL Server 2016 导入和导出数据’这个看怎么玩. 1. 建数据库结构 1.1 在需要迁移的数据库名字上右击, ...

  3. VMWARE在UEFI下启动PE.ISO

    1.编辑虚拟机设置→选项→高级→通过EFI而非BIOS引导勾选. 2.虚拟机→电源→打开电源时进入固件,进入之后修改光驱为第一引导. 3.挂载PE.ISO,启动时虚拟机顶部出现Press any ke ...

  4. 虚拟路由冗余(VRRP)协议

    1. 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还 ...

  5. springcloud2.x之management.security.enabled=false报错处理

    1. springcloud1.5.x的消息总线配置是 # RabbitMq的地址.端口,用户名.密码 spring.rabbitmq.host=localhost spring.rabbitmq.p ...

  6. Python __name__的使用

    __name__是什么 * __开头代表是系统变量; * __name__ 是标识模块名字的系统变量. 当前模块是主模块时, 模块名就是"__main__"; 当模块是被调用(im ...

  7. Java Scala获取所有注解的类信息

    要想获取使用指定注解的类信息,可借助工具: org.reflections.Reflections 此工具将Java反射进行了高级封装,Reflections 通过扫描 classpath,索引元数据 ...

  8. C#用mouse_event模拟鼠标点击的问题

    1.首先添加using System.Runtime.InteropServices; 2.为鼠标添加模拟点击的各种参数 //鼠标事件  因为我用的不多,所以其他参数没有写 1 2 3 4 5 6 7 ...

  9. iOS组件化实现方案

    作者原文iOS组件化 - 路由架构从0到1实战  合伙呀 1.CTMediator作为路由中间件 2.基础UI组件以pod形式引入,并且能够独立运行调试 3.基础工具组件以pod形式引入,并且能够独立 ...

  10. 基础知识---IEnumerable、ICollection、IList、IQueryable

    一.定义 IEnumerable public interface IEnumerable<out T> : IEnumerable ICollection public interfac ...