Linux下软件的安装

今天突然想给自己的虚拟机装点软件,可是发现自己以前只会装tar.gz的安装包,今天记一下其他的安装方法。

一、 解析Linux应用软件安装包:

通常Linux应用软件的安装包有三种:
  1. tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。
  2. rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。
  3. dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。

而且,大多数Linux应用软件包的命名也有一定的规律,它遵循:
名称-版本-修正版-类型
例如:   

  1. software-1.2.3-1.tar.gz 意味着:
       软件名称:software
       版本号:1.2.3
       修正版本:1
       类型:tar.gz,说明是一个tar包。
  2. sfotware-1.2.3-1.i386.rpm
       软件名称:software
       版本号:1.2.3
       修正版本:1
       可用平台:i386,适用于Intel 80x86平台。
       类型:rpm,说明是一个rpm包。
       注:由于rpm格式的通常是已编译的程序,所以需指明平台。在后面会详细说明。

二、 了解包里的内容:

一个Linux应用程序的软件包中可以包含两种不同的内容:

 1. 一种就是可执行文件,也就是解开包后就可以直接运行的。在Windows中所 有的软件包都是这种类型。安装完这个程序后,你就可以使用,但你看不到源程序。而且下载时要注意这个软件是否是你所使用的平台,否则将无法正常安装。

 2. 另一种则是源程序,也就解开包后,你还需要使用编译器将其编译成为可执行文件。这在Windows系统中是几乎没有的,因为Windows的思想是不开放源程序的。
 通常,用tar打包的,都是源程序;而用rpm、dpkg打包的则常是可执行程序。一般来说,自己动手编译源程序能够更具灵活性,但也容易遇到各 种问题和困难。而相对来说,下载那些可执行程序包,反而是更容易完成软件的安装,当然那样灵活性就差多了。所以一般一个软件总会提供多种打包格式的安装程 序的。你可以根据自己的情况来选择。

三、 搞定使用tar打包的应用软件

  1. 安装:
    整个安装过程可以分为以下几步:

 - 取得应用软件:通过下载、购买光盘的方法获得;
 - 解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar –xvzf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包;
 - 阅读附带的INSTALL文件、README文件;
 - 执行“./configure”命令为编译做好准备;
 - 执行“make”命令进行软件编译;
 - 执行“make install”完成安装;
 - 执行“make clean”删除安装时产生的临时文件。
好了,到此大功告成。我们就可以运行应用程序了。但这时,有的读者就会问,我怎么执行呢?这也是一个Linux特色的问题。其实,一般来说, Linux的应用软件的可执行文件会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这个软件的 INSTALL和README文件,一般都会有说明。

  1. 卸载:
     通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。
    那么是不是说就不能够卸载呢!其实也不是,有两个软件能够解决这个问题,那就是Kinstall和Kife,它们是tar包安装、卸载的黄金搭档。

四、 搞定使用rpm打包的应用软件

rpm可谓是Redhat公司的一大贡献,它使Linux的软件安装工作变得更加简单容易。

  1. 安装:
    我只需简单的一句话,就可以说完。执行:
    rpm –ivh rpm软件包名
    更高级的,请见下表:
       rpm参数 参数说明
       -i 安装软件
       -t 测试安装,不是真的安装
       -p 显示安装进度
       -f 忽略任何错误
       -U 升级安装
       -v 检测套件是否正确安装
    这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。
  2. 卸载:
    我同样只需简单的一句话,就可以说完。执行:
      rpm –e 软件名
    不过要注意的是,后面使用的是软件名,而不是软件包名。例如,要安装software-1.2.3-1.i386.rpm这个包时,应执行:
    rpm –ivh software-1.2.3-1.i386.rpm
    而当卸载时,则应执行: rpm –e software。

  
另外,在Linux中还提供了象GnoRPM、kpackage等图形化的RPM工具,使得整个过程会更加简单。这些软件的具体应用,笔者会另行文介绍。

五、 搞定使用deb打包的应用程序

这是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得更早,所以在各种版本的Linux都常见到。而debian的包管理器dpkg则 只出现在Debina Linux中,其它Linux版本一般都没有。我们在此就简单地说明一下:

  1. 安装
      dpkg –i deb软件包名
      如:dpkg –i software-1.2.3-1.deb
  2. 卸载
       dpkg –e 软件名
      如:dpkg –e software

六、软件的安装

  —- Linux下软件的安装主要有两种不同的形式。第一种安装文件名为filename.tar.gz。另一种安装文件名为 filename.i386.rpm。以第一种方式发行的软件多为以源码形式发送的。第二种方式则是直接以二进制形式发行的。i386即表示该软件是按 Inter 386指令集编译生成的。
  —- 对于第一种,安装方法如下:
  —- 首先,将安装文件拷贝至你的目录中。例如,如果你是以root身份登录上的,就将软件拷贝至/root中。
  —- #cp filename.tar.gz /root
  —- 由于该文件是被压缩并打包的,所以,应对其解压缩。命令为:
  —- #tar xvzf filename.tar.gz
  —- 执行该命令后,安装文件按路径,解压缩在当前目录下。用ls命令可以看到解压缩后的文件。通常在解压缩后产生的文件中,有名为”INSTALL”的文件。该文件为纯文本文件,详细讲述了该软件包的安装方法。
  —- 对于多数需要编译的软件,其安装的方法大体相同。执行解压缩后产生的一个名为configure的可执行脚本程序。它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备。命令为:
  —- #./configure
  —- 如果检查过程中,发现有错误,configure将给予提示,并停止检查。你可以跟据提示对系统进行配置。再重新执行该程序。检查通过后,将生成用于编译 的MakeFile文件。此时,可以开始进行编译了。编译的过程视软件的规模和计算机的性能的不同,所耗费的时间也不同。命令为:
  —- #make
  —- 成功编译后,键入如下的命令开始安装:
  —- #make install
  —- 安装完毕,应清除编译过程中产生的临时文件和配置过程中产生的文件。键入如下命令:
  #make clean
  #make distclean
  至此,软件的安装结束。
  —- 对于第二种,其安装方法要简单的多。
  —- 同第一种方式一样,将安装文件拷贝至你的目录中。然后使用rpm来安装该文件。命令如下:
  —- #rpm -i filename.i386.rpm
  —- rpm将自动将安装文件解包,并将软件安装到缺省的目录下。并将软件的安装信息注册到rpm的数据库中。参数i的作用是使rpm进入安装模式。
  —- 另外,还有一些Linux平台下的商业软件。在其安装文件中,有Setup安装程序,其安装方法同Windows平台下的一样。如:Corel WordPerfect。
  软件的卸载
  —- 软件的卸载主要是使用rpm来进行的。卸载软件首先要知道软件包在系统中注册的名称。键入命令:
  —- #rpm -q -a
  —- 即可查询到当前系统中安装的所有的软件包。参数q的作用是使rpm进入查询命令模式。参数a是查询模式的子参数,意为全部(ALL)。查询到的信息较多,可使用less人屏显示。
  —- 确定了要卸载的软件的名称,就可以开始实际卸载该软件了。键入命令:
  —- #rpm -e [package name]
  —- 即可卸载软件。参数e的作用是使rpm进入卸载模式。对名为[package name]的软件包进行卸载。由于系统中各个软件包之间相互有依赖关系。如果因存在依赖关系而不能卸载,rpm将给予提示并停止卸载。你可以使用如下的命 令来忽略依赖关系,直接开始卸载:
  —- #rpm -e [package name] -nodeps
  —- 忽略依赖关系的卸载可能会导致系统中其它的一此软件无法使用。你可以使用
  —- #rpm -e [package name] -test
  —- 使rpm进行一次卸载预演,而不是真正卸载。这样可以使你检查一下软件是否存在有依赖关系。卸载过程中是否有错误。


Linux下软件的安装
https://chujian521.github.io/blog/2018/09/23/Linux下软件的安装/
作者
Encounter
发布于
2018年9月23日
许可协议