建议在安装线上的生产服务器软件包时都用源码安装,这是因为源码安装可以自行调整编译参数,最大化地定制安装结果。这里以MySQL 5线上环境的编译安装来说明之,其编译参数如下所示:

./configure-prefix=/usr/local/mysql -without-debug

-without-bench -enable-thread-safe-client -enable-assembler

-enable-profiling-with-mysqld-ldflags=-all-static-

with-client-ldflags=-all-static-with-charset=latin1-

with-extra-charset=utf8,gbk -with-innodb -with-csv-storage

-engine -with-federated-storage-engine-with-mysqld-user=mysql

-without-embedded-server-with-server-suffix=-community-with-unix-socket-path=/usr/local/mysql/sock/mysql.sock &&

make && make install

在安装MySQL时,源码安装与rpm安装相较,其特点如下:

我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码。

根据不同的软件平台环境调整相关的编译参数(源码安装不仅适用于rhel/centos,其他系统像FreeBSD、Solaris、Ubuntu等一样适用)。

可针对特定的应用场景选择需要什么组件或不需要什么组件。

同一台主机上可以安装多个MySQL(rpm安装则仅能安装一个MySQL)。

根据需要存储的数据内容选择只安装需要的字符集。

理论上源码静态编译方式安装效率会高一点,但到底比rpm方式高多少得看具体情况,一般在5%左右。

某次在线上环境工作,我用yum卸载一个软件包时遇到了极其危险的情况,这里也跟大家分享一下:当时,yum remove自动卸载了许多这个软件包自身依赖的系统包,导致系统崩溃了,SSH不能登录,并且SCP及RSYNC也都不能用了,幸亏FTP命令还能用, 所以数据很快被FTP传到其他服务器上了,但系统已经彻底崩溃,只有重装了。如果是源码安装的软件包就没有这种危险,需要卸载时只需要删除软件包安装的目 录即可。

综上所述,源码安装的好处如下:

最大的好处就是可以自行调整编译参数,最大化地定制安装结果。

源码安装可以选择最新的软件包,而Linux系统(包括FreeBSD)自带的软件包一般都是最稳定的版本,但不能保证是最新的。

相对而言,源码安装的性能是最优异的。

源码包安装的软件卸载时极为方便和简单,更重要的是,它比较安全,尤其是对线上的生产环境而言。

迁徙也比较方便,如果不涉及系统库文件,复制到另一台机器上也可以使用。

这里也简单介绍一下在Linux/Unix下安装软件的源码三部曲,在后面我们会经常看到它们的身影。

./configure

make

make install

./configure是用来检查环境变量及配置编译选项的,make是用来将源代码编译成二进制文件的,而make install则会将make编译出来的文件安装到指定位置(或默认位置)。

在本节中,我们从服务器的硬件选择、安装及内核等方面对单机服务器的性能进行了优化,不过对于网站和系统来说,单机优化对整体性能提升的作用毕竟有限,整体性能提升主要靠服务器的高可用和高扩展性来实现,这部分内容在后面的章节中再来说明。

mysql 编译安装与rpm安装的区别_编译安装与RPM安装的区别相关推荐

  1. matlab安装好 启动总是闪退_在Ubuntu16.04下安装MATLAB2017b

    1. 前言 最近在折腾Ubuntu系统的高端机子,matlab这家伙的交互和可视化太方便了!于是想在Linux下安装matlab,在各个版本中,matlab2017的性价比是非常高的,因此选择安装介个 ...

  2. 网和aoe网的区别_运动内衣与普通内衣有什么区别?运动内衣里面还需要穿文胸吗? 小家生活网20201002 11:03:04...

    阅读本文前,请您先点击上面的"蓝色字体可以说爱情就是他们最大的软肋.不会在双鱼女那出现.在对于周边的亲戚时.她们那种温柔大方的气势.更符合妈妈的需求.整双腿没有视觉连贯性.但唯独感情这件事一 ...

  3. 安卓开发板烧写程序与安装软件的区别_在开发板上安装Android

    一.安装串口调试工具 开发Linux驱动程序无法像开发Android应用程序直接在Eclipse中开发,但是可以通过串口来通信.所以就需要安装串口调试工具,在这儿我们使用的串口调试工具是minicom ...

  4. 与安装应用签名不同怎么解决_天堂巴比伦 安卓游戏安装失败怎么解决

    首先,我们一定要注意自己的手机安卓系统的版本,一般情况下,如果是中低端配置的安卓手机,一般加载的是安卓2.0以上的版本:如果是中高端配置的手机,一般加载的是安卓4.0以上的版本,因此我们在下载安卓版本 ...

  5. python安装后无法运行任何软件_为啥我按照python安装教程,总说无法启动此程序,因为计算机中丢失?...

    展开全部 这是你windows操作系统文件丢失造成的,和python无关. 首先去网上搜索下载api-ms-win-crt-process-l1-1-0.dll文件,下载完毕后62616964757a ...

  6. 28和lba48命令格式区别_编译Sass(命令行)

    本文作者:开课吧无忧 图文编辑:开三金 sass编译有很多种方式,如命令行编译模式.编辑器自动编译.编译软件koala.sass-loader等. 今天我们就先来看第一种:命令行编译 刚才我在test ...

  7. python安装后找不到目录_将python setup.py安装到其他路径中找不到已安装的packag

    我有一个测试设置文件,它是我为一个简单的"hello world"脚本创建的.我有一个名为mytest的包,它有一个函数hello.现在,我有一个非常简单的setup.py.如果我 ...

  8. mysql内连接和外连接的区别_内连接、外连接的区别

    先来看一下,内连接的语法: SELECT  XXX FROM XXX INNER JOIN XXX ON XXX; 这里 INNER 可以省略,在上一篇博客中我们对于笛卡尔积现象的研究中(http:/ ...

  9. 安装西门子博图一直重启_博图软件更新安装老是提示重启,咋解决啊-工业支持中心-西门子中国...

    更新的时候会自动添加你删除的那个注册表,所以需要多删几次,出现了就删除,如果等提示重启了,那就只能等到重启后再删了.建议需要升级到哪个版本直接去下载哪个版本的升级包,比在线升级快,省事儿. 本回答有1 ...

最新文章

  1. 图融合GCN(Graph Convolutional Networks)
  2. 线程安全的集合类、CopyOnWrite机制介绍(转)
  3. 益老而弥坚:软件开发哲学反思录
  4. linux下根据进程查找文件启动文件
  5. TECH4ALL科技架起联结外界的桥梁,助力人与自然和谐共生
  6. linux cat 重定向,Linux命令(cp mv cat和重定向)(示例代码)
  7. 【报告分享】2021年Z世代“潮力量”洞察报告.pdf(附下载链接)
  8. headfirst设计模式(2)—观察者模式
  9. C/C++编程(尾积相乘)
  10. [译]Chipmunk教程 - 5 跟踪球体的运动
  11. Microsoft SQL Server 2008 R2 软件安装
  12. 黄绿色——五色配色篇
  13. 微信小程序笔记——处理小程序页面栈限制(小程序wx.navigateTo封装)
  14. LibreCAD的基本使用
  15. Matlab R2019a Win64位 迅雷下载链接
  16. vs2005无法附加进程
  17. Android APK反编译教程
  18. ceph rbd mysql_Ceph实践之rbd
  19. python处理数据之xlwings库学习
  20. ocp认证考试报名_大连OCP认证考试中心

热门文章

  1. 光动能表怎么维护_男士手表什么牌子好,男士手表品牌推荐, 天梭、阿玛尼、西铁城、天王表、罗西尼、卡西欧男手表推荐...
  2. python ndarray append_9-Python-NumPy数组元素的添加与删除
  3. c语言程序设计课件数组,数组(C语言程序设计)课件
  4. matlab axis 用法,MATLAB中regionprops的用法
  5. mysql 分析服务_MySQL分析服务器状态_MySQL
  6. inputstream 初始化_如何完美回答面试官问的Mybatis初始化原理!
  7. 计算机原理转移指令题,转移指令计算机原理.pdf
  8. 怎么知道自己是否适合计算机专业,事实:我怎么知道我的旧计算机是否适合win7或win10?...
  9. 单片机全局有必要封装_C语言开发单片机为什么大多数都采用全局变量的形式?...
  10. html5 输入框有值无效,HTML5基础 input required 输入框内必须有内容