热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

技巧:从源代码开始升级应用程序

文章标题:技巧:从源代码开始升级应用程序。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  升级也可以很简单
  从源代码开始升级软件也可以很简单,但您应该采取几个预防措施,当您初学编译源代码或者不太熟悉正要安装的源代码档案时尤其应该注意。下面列出了您应该密切注意的几点,但在大多数情况下,升级与最初的编译和安装步骤几乎相同。也就是说,这些步骤包括打开 tar 包、可选的 "./configure"、"make" 和 "make install"。如果您不熟悉这些术语,请首先查看 developerWorks 的 Compilingand installing software from sources 教程,然后再回头阅读本文。
  
  阅读 Changelog
  下载源代码以后,首先熟悉一下软件有哪些新变化 -- 这些变化通常在源代码主目录的 ChangeLog 或 README 文件中列出。您可能发现配置文件设置稍有变化,或者添加了一些新特性。最好在源代码的文档中弄清这些变化,而不要等到以后在这些地方犯了错误再补救。不进行这一步绝对是错误的 -- 另外,既然您花时间来安装这个软件包的新版本,了解一下它包括哪些新特性或修正了哪些错误不是一件好事吗?
  
  升级关键应用程序
  如果您正在升级对许多用户都有影响的应用程序(如繁忙的 Web 服务器上的 Apache),则倍加小心是值得的。如果可能,请首先在非生产机器上安装新版本源代码,并记下使新版本启动并运行所执行的每个步骤。这样,即使您在升级过程中遇到问题,也不会造成什么危害。而且,当您准备对您的生产机器进行升级时,您已经有了要执行的步骤的一个详细列表 -- 从而可以缩短高代价的停机时间。
  
  此外,如果您正在升级关键应用程序,则在非高峰时进行升级总是最佳选择。
  
  按相同的方式进行配置
  当升级应用程序时,人们容易犯的重大错误之一是在 "./configure" 行指定不同的、不兼容的选项,或者在 Makefile 配置中取消了不同行的注释标记。如果您希望执行简单的升级,则请确保软件新版本的配置与当前版本的配置完全相同。
  
  如果当前版本在 /etc 目录下查找它的配置文件,则将新版本配置为同样的方式是较好的选择。别草率从事;如果您在 "./configure" 命令行传递了不同的选项,其结果很可能是,新版本具有明显不同的功能,安装在错误的目录树中,或者在错误的位置查找它的配置文件或数据文件。如果您忘了原来所使用的配置选项或 Makefile 定义,则一定要在编译和安装新版本之前查清楚。为使升级顺利进行,您会希望一开始就获得这些设置。
  
  先备份原来的配置文件再进行安装
  对许多程序包而言,真正的挑战不在编译和安装阶段,而是在您键入 "make install" 之后设置应用程序以使它正常运行的过程中。这通常需要花好几个小时编辑应用程序的配置文件,配置文件通常在 /etc 目录下,并带有常用的 ".conf" 后缀。
  
  当您通过键入 "make install" 来安装程序包的新版本时,大多数 Makefile 不会覆盖磁盘上现有的配置文件 -- 但如果从安全方面来考虑的话,则应该庆幸这一点,而不是对此表示遗憾。如果您没有十分的把握,则一定要备份以前的配置文件!某些配置文件可能需要花几天的时间来重新构建,这随程序包的不同而有所不同。如果配置文件包含加密的口令,则重新构建相当耗时,或者干脆就不可能。
  
  如果您正在计划对您的 Linux 系统进行重大升级,则现在可能是执行全系统备份的好时机。如果您准备升级作为许多程序包正常工作基础的关键系统库或工具,这就显得尤为重要了。全系统备份本身就是很好的主意,我希望您不定期地对系统进行备份。
  
  手头准备好较旧的源代码
  我无意劝阻您将最喜欢的程序升级到最新版本 -- 但新版本的确可能无法工作。"./configure" 或 "make" 可能会崩溃。更糟糕的情况是,包括 "make install" 在内的每个环节都顺利通过,直到实际运行程序时才出现麻烦。多虫的源代码发行版确实存在,这就是之所以在手头保留较旧源代码(以及任何安装步骤)是个好主意的原因,以防较新的源代码不正常。
  
  测试!
  编译和安装是一回事,而确信新软件工作正常完全是另一回事。您一定希望确信您不是在根分区中安装了 500 KB 的垃圾。新版本的配置文件可能需要作少许修改,甚至可能需要大幅修改。如果您正在升级守护程序,请确保当重新启动时您的配置脚本成功地启动了这个新版本。您绝对不希望当您在两周以后重新启动服务器(而且您已经淡忘了该程序的配置细节)时发现任何问题。您可以按照本文中的建议进行操作,但是如果您不测试您的安装,则您正在漏掉最重要的步骤。
推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
author-avatar
上午劳动_951
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有