Linux系统升级的经验之谈

运维 系统运维
当我们使用Linux一段时间以后,自然不会满足总是在没有任何变化的系统中工作,而是渴望能象在Windows系统中一样,不断对自己的Linux进行升级。另一方面,Linux本身就是一个开放的系统,每天都会有新的软件出现,Linux发行套件和内核也在不断更新。在这样的情况下,学会对Linux(包括系统本身和各种软件)进行升级就显得非常迫切了。

  当我们使用Linux一段时间以后,自然不会满足总是在没有任何变化的系统中工作,而是渴望能象在Windows系统中一样,不断对自己的Linux进行升级。另一方面,Linux本身就是一个开放的系统,每天都会有新的软件出现,Linux发行套件和内核也在不断更新。在这样的情况下,学会对Linux(包括系统本身和各种软件)进行升级就显得非常迫切了。

  在Linux环境下,升级的对象可以是一般的软件,可以是编译器,也可以是系统的内核,甚至是系统本身。下面,我就分别讲讲对不同对象的升级方法。

  1.升级一般软件

  一般来说,升级应用软件是比较简单的,因为你不用太在意升级后对其他软件的影响(如果是升级系统,情况就不一样了)。首先,你必须找到希望升级的新版本。你可以在Linux的专门站点上寻找自己中意的软件。然后就是使用各种下载工具将软件下载到指定目录中。下载的软件大部分是以tar打包的gzip压缩文件。

  在处理这些软件之前最好使用tar tvf 或 tar ztvf 命令看看下载下来的文件中包含了一些什么文件。因为得到的软件可能是二进制文件也可能是源码,使用上述的命令可以看看究竟是哪一种文件。

  如果是二进制文件,一般可以直接将包打开,然后删除相应的老文件就可以了。

  如果是源文件则要留心包里面是否有帮助和安装文件(readme / install / help)等等。然后将软件打开到指定的目录中去,仔细看看帮助和安装文件中的提示和安装约定,再进行安装工作。这时,安装工作意味着要对源代码进行编译。首先要对Makefile文件进行修改,修改的内容和修改的方法在软件包中的相关文件中往往可以找到,另外有的时候软件包里会包含一个shell程序configure,执行它可以省不少时间。对makefile处理完以后,就可以使用make命令来编译指定的文件。最后用make install命令将软件安装到自己的计算机上。

  2.升级编译器

  我们可以先用"gcc -v"命令看看自己当前的gcc版本,然后决定是否要进行升级。当我们需要对自己的gcc、连接器、汇编器以及各种头文件和函数库进行升级的时候,我们就可以到相关站点上获得对应的软件包,然后在指定目录下开打,同时删除(覆盖)原来的老文件就可以了。

  3.升级函数库

  因为升级后要重新指定库的连接,所以函数库是比较麻烦的。我们知道,Linux系统的库文件分为档案库和共享库两种类型。档案库的文件一般是libx.a,而共享库的文件一般是libx.so.version,升级函数库时必须使用新的版本的。a和。so.version文件替换老版本的对应文件。对。a文件来说非常容易,只要将新文件拷进指定的目录,覆盖原来的文件就可以了。但是我们对共享库进行操作的时候就要特别小心了。绝不能简单地将新文件拷到一个目录下,然后删除旧的文件。因为有可能旧的函数库正在为某个程序所使用。我们必须保证每个程序都能够正确地找到共享库。简单的将,当我们将新版本的共享库文件放到指定目录下以后,使用ln命令来完成:

  ln –sf /usr/lib/libdb.so.new("new"指新的版本号) /usr/lib/libdb.so.old("old"是原有的文件) ;比如: /usr/lib/libdb.so.2原来指向的文件是/usr/llib/libdb.so.2.0.1,现在有一个新文件 /usr/lib/libdb.so.2.78.1,我们可以这样处理:ln –sf /usr/lib/libdb.so.2.78.1 /usr/lib/libdb.so.2 ;然后,我们才能将/usr/lib/libdb.so.2.0.1文件进行删除。

  4.系统升级

  最简单的升级方法当然是……一张cd-rom里就可以将整个系统完全包括了。当然,这样的升级方法比较费事,同时,每一次升级都意味着原来的文件有可能丢失,因此,完全没有必要总是将系统重新安装一次。每一个Linux发行套件其实都是记录升级情况的文件。比如slackware中有一个changelog.txt文件,按时间顺序记录了slackware的更新状况。而在RedHat中则是/redhat-4.2/updates/00readme.errata.我们可以从这些文件中看出是不是需要进行升级。然后找到相应部分的软件包,使用installpkg filename或者rpm –U filename来将软件包安装在计算机上。

责任编辑:黄丹 来源: 中国IT实验室
相关推荐

2012-05-23 09:43:59

Linux升级经验

2010-04-30 14:31:58

Unix系统

2010-04-22 18:07:28

Aix系统维护

2009-12-23 10:07:57

学习WPF

2009-11-09 17:06:38

WCF选择绑定

2009-12-17 18:12:31

Ruby框架应用

2009-12-09 16:58:03

PHP strtoti

2010-03-02 17:48:35

WCF寻址报头

2018-07-13 10:18:28

Linux服务器经验

2010-05-31 14:56:11

2010-07-26 15:36:59

CCNP

2009-11-02 15:16:07

VB.NET编程

2020-01-10 18:25:00

Go语言JavaScript编程语言

2010-04-29 12:09:42

Unix服务器

2009-11-05 15:50:25

WCF behavio

2009-11-16 15:32:05

PHP数组函数

2010-05-10 18:18:46

Unix系统

2010-08-09 14:28:04

职业生涯

2009-03-20 17:14:57

2009-06-16 08:49:51

点赞
收藏

51CTO技术栈公众号