Linux尚学堂笔记(四)

来源:互联网 发布:剑三成女捏脸数据下载 编辑:程序博客网 时间:2024/04/29 18:41

 

 

Linux尚学堂笔记(四)

查看用户信息的命令:/etc/passwd来查看;也可以通过finger ftp来查看。

Linux下常用的软件安装有两种不同的形式。第一种安装文件名为xxx.tar.gz;另一种安装文件名为xxx.i386.rpm.以第一种方式发行的软件多为以源码形式发送的;第二种方式则是直接以二进制形式发送的。

对于第一种,安装方法如下:

  1 .首先,将安装文件拷贝至你的目录中。例如,如果你是以root身份登录上的,就将软件拷贝至/root中。

  #cp xxx.tar.gz /root

  2 .由于该文件是被压缩并打包的,应对其解压缩。命令为:

  #tar xvzf 2004109124523.htm.tar.gz

  3. 执行该命令后,安装文件按路径,解压缩在当前目录下。用ls命令可以看到解压缩后的文件。通常在解压缩后产生的文件中,有"Install"的文件。该文件为纯文本文件,详细讲述了该软件包的安装方法。

  4.执行解压缩后产生的一个名为configure的可执行脚本程序。它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备。命令为: #./configure

  5.检查通过后,将生成用于编译的MakeFile文件。此时,可以开始进行编译了。编译的过程视软件的规模和计算机性能的不同,所耗费的时间也不同。命令为: #make.

  6.成功编译后,键入如下的命令开始安装:

  #make install

  7.安装完毕,应清除编译过程中产生的临时文件和配置过程中产生的文件。键入如下命令:

  #make clean

  #make distclean

  至此,软件的安装结束。

  对于第二种,其安装方法要简单得多。

  同第一种方式一样,将安装文件拷贝至你的目录中。然后使用rpm来安装该文件。命令如下:

rpm -i 2004109124523.htm.i386.rpm

rpm将自动将安装文件解包,并将软件安装到缺省的目录下。并将软件的安装信息注册到rpm数据库中。参数i的作用是使rpm进入安装模式。

软件的卸载

  1.软件的卸载主要是使用rpm来进行的。卸载软件首先要知道软件包在系统中注册的名称。键入命令:

  #rpm -q -a

  即可查询到当前系统中安装的所有的软件包。   2. 确定了要卸载的软件的名称,就可以开始实际卸载该软件了。键入命令:

  #rpm -e [package name]

  即可卸载软件。参数e的作用是使rpm进入卸载模式。对名为[package name]的软件包进行卸载。由于系统中各个软件包之间相互有依赖关系。如果因存在依赖关系而不能卸载,rpm将给予提示并停止卸载。你可以使用如下的命令来忽略依赖关系,直接开始卸载:

  #rpm -e [package name] -nodeps

解决linux软件包的依赖关系:

 那么Linux操作系统中如果遇到这种软件包依赖关系的话,该如何处理呢?在谈这个具体的解决措施之前,我先跟大家说说在哪些情况下容易出现软件包的依赖关系问题。

  一是在操作系统安装的时候,没有选择全部的软件包。大部分时候出于安全或者其他方面的原因,Linux系统管理员往往不会选择安装全部的软件包。而只是安装一些运行相关服务所必要的软件包。但是有时候系统管理员可能并不清楚哪些软件包是必须要装的,否则后续的一些服务将无法启动;而那些软件包则是可选的。由于在系统安装的时候很难一下子弄清楚这些内容,故在Linux系统安装完毕后,再部署其他一些软件包的时候,就容易出现这个问题。

  二是在Linux服务器上追加其他的一些应用服务时,容易出现类似的问题。如有一次企业需要使用一个Oracle数据库,我就在原先的文件服务器上安装Oracle数据库。但是在Linux操作系统上安装Oracle服务器是一个很头疼的问题,需要安装不少的软件包。而我一开始部署Linux文件服务器的时候又不知道后来需要安装Oracle数据库,故不少的软件包都没有装。而且后来发现,不少的软件包其实在Linux安装盘中还没有,需要自己到网上去下。所以,如果要在原先已经部署好的Linux服务器中追加一些应用服务时,很容易出现这个软件包的依赖问题。

  一、根据错误提示信息在安装光盘中寻找。

  在安装软件包时如果遇到软件依赖关系问题时,通常情况下系统都会提示相关的信息。如提示“libgd.so.1.8 is needey by php-4.2.2-17”等等。这就表示安装PHP程序时,需要先安装libgd.so软件包。当遇到这个问题时,我建议系统管理员可以根据这个提示信息,先从Linux系统的安装盘中查找一下是否有这个软件包。

  如上图所示,在Linux安装盘中的RPMS目录下面就存放着大量的软件包。通常情况下,像上面的libgd.so等常见的软件包都可以从这个光盘中找到。所以系统管理员根据系统的错误提示信息,就可以了解到安装某个软件之前先要安装那个软件包。然后从系统光盘中找到这个软件包,并进行安装即可。另外需要说明的是,向RedHat操作系统,如果采用的是CD安装盘,则其可能有很多张光盘。而这些软件包往往不是存储在一张CD光盘中的。不过可以肯定的是,每张光盘下都会有RPMS这个目录。当系统管理员不知道某个软件包存储在哪个盘中的话,则可以一张张的找过去。虽然比较麻烦一点,但是大部分情况下都会有收获的。

不过如果采用这个方法有一个限制。像安装Oracle这种大型的应用软件就不怎么适用。因为安装这种大型的软件本身就比较花费时间。如果等到安装失败之后再根据错误提示来安装软件包的话,则重复来重复去会浪费很多的时间,而且也会让系统产生很多的垃圾文件。为此除非是一些小型的软件包,否则的话,最好还是根据下面我要介绍的方法来做,以节省软件安装的时间。

二、参考官方的文档。

  通常情况下,一些软件的官方文档会说明安装它们的软件需要哪些软件包。如在安装Oracle数据库时,就必须需要安装不少的软件包。到底需要安装哪些软件包,在Oracle的官方网站上都会有详细的说明。我在安装Oracle数据库时,就先安装这个说明,一一来验证Linux系统中是否安装了这些软件包。如果没有安装的话,就马上装上去。此时各位Linux系统管理员不要抱着侥幸心理,已经不安装不会有大问题,这是大错特错了。对于Oracle公司官方网站建议的软件包在Oracle数据库系统安装之前必须一五一十的安装上去。否则的话轻则导致数据库安装失败,重者的话会导致后续数据库运行不稳定。

其实不光是Oracle数据库系统,其他的一些应用软件对Linux系统都会有类似的要求。它们要求在安装它们的应用软件之前,Linux系统必须安装有某些软件包,否则的话安装就会失败。所以我建议各位Linux系统管理员,在安装这些软件之前,最好先到官方网站上去寻找类似的文档,然后对照文档的内容去验证Linux系统是否安装了这些软件包。如此的话就可以避免软件包依赖关系的问题。另外,在网络上也可以寻找到很多有用的价值。有些安装过这个软件的Linux系统管理员,会把自己安装过程中系统遇到的软件包依赖关系列举出来,会一一说明需要先安装哪些软件包。这些网络上的文档虽然其专业性可能没有官方提供的文档那么专业。但是对我们来说也具有很大的参考价值。

三、从专业网络上查询。

  为了正确安装某些软件包,需要安装一些文件。可是有时候系统管理员可能根据系统的提示还不能够确定到底安装哪些软件包才会有这些文件。特别是对于一些不常用的软件包或者系统管理员第一次接触的软件包往往会遇到这种问题。此时,系统管理员就可以到一些专业的网站上去查询。这里我给大家介绍一个很不错的网站,即http://rpmfind.net。系统管理员只需要在这个网站搜索的地方输入需要的文件名字,如libgd.so,则搜索结果中就会显示需要安装哪个软件包才具有这个文件。找到这个软件包的名字之后,只需要从光盘或者网络上下载这个软件包进行安装即可。当然,在安装这些软件包的时候,可能还会遇到其他软件包依赖关系的问题。如安装php软件包需要libgd.so文件,而这个文件属于gb软件包。但是在安装gb软件包时,可能这个软件包跟其他软件包又具有依赖关系,又需要安装其他软件包才行。此时系统管理员就需要耐心的一一按顺序进行解决了。

  可见大部分情况下,在遇到软件包依赖关系问题的时候,操作系统提供的文件名字与软件包名字都会有直接的联系。有可能文件的名字就是软件包的名字。但是有些时候文件的名字与软件包的名字会相差甚远。此时大部分系统管理员可能光凭文件名字无法找到对应的软件包。此时就需要借助笔者上面谈到的一些专业网站,去查询软件包的名字了。

另外我还有一个小建议。当系统管理员安装了某个软件之后,如果存在软件包之间的依赖关系,则最好能够拿本子或者通过其他手段记录下来。因为在以后的工作中很有可能还会需要安装这些软件。如此的话,在下次安装的时候就不用这么麻烦了。可以对照以前的笔记直接安装需要的软件包。毕竟在同一个地方摔倒多次不是什么光彩的事情。

 

 

 

原创粉丝点击