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. Angular 的性能优化

    目录 序言 变更检查机制 性能优化原理 性能优化方案 小结 参考 序言 本文将谈一谈 Angular 的性能优化,并且主要介绍与运行时相关的优化.在谈如何优化之前,首先我们需要明确什么样的页面是存在性 ...

  2. android 使用SQLite的基本操作

    Android操作数据库SQLite使用sql语句基本操作 1:自定义自己的SQLiteOpenHelper public class DBHelper extends SQLiteOpenHelpe ...

  3. PHP审计之class_exists与任意实例化漏洞

    PHP审计之class_exists与任意实例化漏洞 前言 发现PHP的一些漏洞函数挺有意思,跟着七月火师傅的文章来学习. class_exists函数 函数说明 class_exists:(PHP ...

  4. 题解 ABC216H Random Robots

    link Solution 考虑一个不合法方案,它一定最后位置的逆序对数不为 \(0\),而且可以发现的是,存在对称方案使得最后逆序对数奇偶性不同,所以我们如果加上 \((-1)\)^{\sigma( ...

  5. MyBatis概念和”安装“

    MyBatis概念 MyBatis的前身就是iBatis,本是apache的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且 ...

  6. HCNP Routing&Switching之BGP邻居建立条件、优化和认证

    前文我们了解了BGP相关概念.AS相关概念以及BGP邻居类型.基础配置等,相关回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15370838.html:今天我们 ...

  7. 免费 CDN 玩法 —— 文件一键上传到 NPM

    前言 unpkg.jsdelivr 等站点可加速 NPM 包文件,适合作为个人网站或演示案例的免费 CDN. 虽然上传文件到 NPM 很简单,创建 package.json 然后 npm publis ...

  8. WeakMap与Map,使用WeakMap实现深拷贝循环引用问题

    1.Map可以使用任意类型的key值,不限字符串,对象等. 2.WeakMap只能使用对象作为key值,是弱引用,当从WeakMap中移除时,会自动垃圾回收 3.Object只能用基本类型作为key值 ...

  9. noj->电子老鼠走迷宫

    00 问题 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路.电子老鼠可以在路上向上.下.左.右行走,每一步走一个格子.现给定一个起 ...

  10. 如何将jdk12的源码导入idea

    如何将jdk12的源码导入idea中 一 首先,在idea中新建一个java工程 接着,在本地找到jdk所在的文件目录,进入jdk目录,找到javasrc目录或者一个src.zip的压缩包, 在向下或 ...