1、源码包安装服务的注意事项

(1)安装服务选择哪种软件包?(建议)

  • 如果软件包是给大量客户提供访问,建议使用源码包安装,如LAMP环境搭建,因为源码包效率更高。
  • 如果软件包是给Linux底层使用,或只给少量客户访问,建议使用RPM包安装,因为RPM包简单。

如果不考虑软件效率,用哪种方式都可以。

(2)源码包是从哪里来的?

  • RPM包是光盘中直接包含的,所以不需要用户单独下载。
  • 而源码包是通过官方网站下载的,如果需要使用,是需要单独下载的。

(3)是否可以在系统中即安装RPM包的Apache,又安装源码包的Apache?

答案是可以,因为两种安装方法安装的Apache,安装位置是不一样的。

例如:

提示:上图文件的位置一定要记下来,有好处。

说明:

  • service命令能启动RPM包安装方式安装的软件,是因为service命令会搜索/etc/rc.d/init.d/目录下启动命令。
  • 我可以把源码包安装后启动文件/usr/1ocal/apache2/bin/apachectl,拷贝到/etc/rc.d/init.d/目录下,service命令就可以用了。
  • 但是,不推荐上面这种做法。因为软件的安装位置不同,是区分RPM安装还是源码包安装最好的方式。

    Red Hat 6是这样,Red Hat 7中有所改变。)

(4)生产服务器上,是否会同时安装两种Apache?

当然不会,因为系统中只有一个80端口,所以你只能启动一个Apache,装多个只能浪费资源。我们建议安装源码包的Apache。

服务是可以修改端口号的:

  • 如果服务是给大量客户端访问的,不建议更换端口,因为用户就找不到了。
  • 如果服务是给内部人员使用,建议改换端口,因为更加安全。

2、源码包安装服务的过程

我们来解释一下源码包安装的具体步骤。

步骤1:下载软件包。

httpd-2.2.9.tar.gz

步骤2:解压缩源码包。

[root@localhost ~]# tar -zxvf httpd-2.2.9.tar.gz

步骤3:进入源码包的解压目录。

如下图所示:

步骤4:./configure编译前准备

这一步主要有三个作用:

  • 在安装之前需要检测系统环境是否符合安装要求。
  • 定义需要的功能选项。./configure支持的功能选项较多,可以执行./configure --help命令查询其支持的功能。

    一般都会通过./configure --prefix=安装路径来指定安装路径。
  • 把系统环境的检测结果和定义好的功能选项写入Makefile文件,后续的编译和安装需要依赖这个文件的内容。

    需要注意的是,configure不是系统命令,而是源码包软件自带的一个脚本程序,所以必须采用

    ./configure方式执行(./代表在当前目录下)。

步骤5:make编译

  • make命令会调用gcc编译器,并读取Makefile文件中的信息进行系统软件编译。
  • 编译的目的就是把源码程序转变为能被Linux识别的可执行文件,这些可执行文件保存在当前目录下。
  • 编译过程较为耗时,需要有足够的耐心。

步骤6:make clean:清空编译内容(非必需步骤)。

如果在./configuremake编译中报错,那么我们在重新执行命令前一定要记得执行make clean命令,它会清空Makefile文件或编译产生的.o头文件。

注意:源码包报错

  • 安装过程必须停止。
  • 在最后几行是否出现nowarningerror关键字,有则说明出现错误。

步骤7:make install:编译安装

这才是真正的安装过程,一般会写清楚程序的安装位置。如果忘记指定安装目录,则可以把这个命令的执行过程保存下来,以备将来删除使用。

注意:只有这步执行了,如果指定了安装的文件夹,才开始创建。这个时候如果安装报错,除了需要执行上边的make clean命令,还需要手动的把安装目录给删除掉,才是彻底清空,然后才能重新安装软件。

提示:绝大多数的源码包安装步骤都是和上边一样的,有不一样的单独记一下即可,或者安装的时候查看一下文档也行。

总结:源码包安装出现错误很难解决。所以自己使用服务的时候,能用RPM包安装的尽量用RPM包安装。

3、源码包安装服务的删除

源码包没有删除命令,如果需要删除,直接删除安装目录即可。

4、源码包安装服务的启动

在软件的解压缩目录下就有软件的安装说明,位置如下:

文件内容如下:

说明:

  • $ ./configure --prefix=PREFIX : 编译准备
  • $ make : 编译
  • $ make install : 安装
  • $ PREFIX/bin/apachectl start : 启动,是在安装目录下(PREFIX)的bin/apachectl start

5、源码包安装服务的关闭

命令为:软件安装目录/bin/apachectl stop

『学了就忘』Linux软件包管理 — 47、Linux源码包的安装和卸载的更多相关文章

  1. 『学了就忘』Linux服务管理 — 79、源码包安装的服务管理

    目录 1.源码包服务的启动管理 2.源码包服务的自启动管理 3.让源码包服务被服务管理命令识别 1.源码包服务的启动管理 # 通过源码包的安装路径,找到该服务的启动脚本, # 也就是获得该服务的启动脚 ...

  2. 『学了就忘』Linux软件包管理 — 40、Linux系统软件包介绍

    目录 1.Linux系统软件包分类 2.源码包说明 3.二进制包说明 4.RPM包的优缺点 4.RPM包的两种安装方法 5.总结 1.Linux系统软件包分类 Linux系统下的软件包只有源码包和二进 ...

  3. 『学了就忘』Linux基础 — 15、了解Linux系统的目录结构

    目录 1.一级目录说明 (1)一级目录列表 (2)/bin/和/sbin/目录说明 (3)/boot/目录说明 (4)/lib/和/lib64/目录说明 (5)/lost+found/目录说明 (6) ...

  4. 『学了就忘』Linux日志管理 — 92、日志轮替

    目录 1.日志文件的命名规则 2.logrotate配置文件说明 3.logrotate配置文件的主要参数 1.日志文件的命名规则 日志轮替最主要的作用就是把旧的日志文件移动并改名,同时建立新的空日志 ...

  5. 『学了就忘』Linux日志管理 — 93、日志轮替补充

    目录 1.把自己的日志加入日志轮替 (1)操作方式 (2)示例 2.logrotate命令 1.把自己的日志加入日志轮替 使用RPM包方式安装服务的日志会自动的加入logrotate轮替,一般不需要你 ...

  6. Linux学习笔记15—RPM包的安装OR源码包的安装

    RPM安装命令1. 安装一个rpm包rpm –ivh 包名“-i” : 安装的意思“-v” : 可视化“-h” : 显示安装进度另外在安装一个rpm包时常用的附带参数有:--force : 强制安装, ...

  7. Linux——【rpm、yun、源码包】安装

    RPM包或者安装源码包 在windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续“下一步”即可,然而linux系统下安装一个软件似乎并不那么轻松,因为我们不是在图形界面下.所以我们要 ...

  8. Linux系列(37) - 源码包与RPM包区别(1)

    源码包是不能使用[service]命令来启动服务,因为源码包的安装位置由用户指定 源码包一般安装在: /usr/local/软件名/ ,源码包安装的服务,只能用绝对路径进行服务的管理 rpm包安装后, ...

  9. 『学了就忘』Linux基础命令 — 30、find命令详细说明

    目录 1.find命令的基本信息 2.find命令基本使用 3.按照文件大小搜索 4.按照修改时间搜索 5.按照权限搜索 6.按照所有者和所属组搜索 7.按照文件类型搜索 8.逻辑运算符 (1)-a: ...

随机推荐

  1. HTML选择器的权重(优先级)

    选择器的优先级主要用于样式发生冲突的情况下 选择器范围越小,优先级越高 行内样式>id选择器>类选择器>标签选择器>通用选择器 这里涉及一个权重值的问题,权重值越高,优先级越大 ...

  2. 理解ASP.NET Core - 选项(Options)

    注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 Options绑定 上期我们已经聊过了配置(IConfiguration),今天我们来聊一聊O ...

  3. mapboxgl 纠偏百度地图

    缘起 之前分享了mapboxgl 互联网地图纠偏插件,插件当时只集成了高德地图. 文章发布后,有小伙伴在后台留言,希望插件也能支持百度地图. 刚好国庆假期有时间就研究了一下. 插件加载瓦片原理 首先, ...

  4. Go语言核心36讲(Go语言基础知识四)--学习笔记

    04 | 程序实体的那些事儿(上) 还记得吗?Go 语言中的程序实体包括变量.常量.函数.结构体和接口. Go 语言是静态类型的编程语言,所以我们在声明变量或常量的时候,都需要指定它们的类型,或者给予 ...

  5. 题解 最长道路tree

    题目传送门 题目大意 给出一个\(n\)个点的树,每个点有点权,定义一条链的贡献为该链的点数乘上链上的权值和,求出树上所有链中的权值最大值. \(n\le 5\times 10^4\) 思路 算是我入 ...

  6. .NET 分布式系统架构(有转载部分)

    一.设计目的 搭建一个大型平台需要综合考虑很多方面,不单纯是软件架构,还包括网络和硬件设备等.由于现代大部分应用建设都面临用户多.高并发.高可用的需求,传统软件架构已不能满足需求,需要支持分布式软件架 ...

  7. 每日一题,是否存在(c语言)

    每日一题:1.是否存在 是否存在描述猫咪非常喜欢饼干,尤其是字母饼干.现在,她得到一些字母饼干,她希望选择他们中的一些拼写某些单词. 你的任务是确定她是否可以拼出自己想要的单词. 输入输入包含若干测试 ...

  8. python jinja2初见

    吸取了长城杯的教训,学习python-web迫在眉睫. 正常难度的python_template_injection,由于现在没学面向对象,理解原理比较困难,所以先使用简单版复现:并附上正常版的常用p ...

  9. 性能利器 Takin 来了!首个生产环境全链路压测平台正式开源

    6 月 25 日,国内知名的系统高可用专家数列科技宣布开源旗下核心产品能力,对外开放生产全链路压测平台产品的源代码,并正式命名为 Takin. 目前中国人寿.顺丰科技.希音.中通快递.中国移动.永辉超 ...

  10. [no_code团队]项目介绍 & 需求分析 & 发布预测

    项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 团队项目选择 我们在这个课程的目标是 在团队合作中提升软件开发水平 这个作业在哪个具体方面帮助我们实现目标 进行项目 ...