Linux软件包,常见的格式包括有rpm,deb,tar,gz,tgz,zip,bz2等等。几乎每个linux软件都会提供tar的格式的软件包,因为这种格式的软件包任何版本的linux都支持,所以大家至少要了解tar和rpm的使用方法。至于deb可用alien工具转换成tgz或rpm方式。bz2可用bunzip2解包即可。
一、RPM文件的安装
RPM 是RedHat Package Manager(RedHat软件包管理工具)的缩写.
  RPM文件在Linux系统中的安装最为简便。以著名的图像处理软件XV为例:
  在Terminal中,基本的安装指令如下:
  rpm -i  xv-3.10a-13.i386.rpm
  如果你的连网速度足够快,也可以直接从网络上安装应用软件,只需要在软件的文件名前加上适当的URL路径:
  rpm -i  ftp:///xx/xx.i386.rpm
  作为一个软件包管理工具,RPM管理着系统已安装的所有RPM程序组件的资料。我们也可以使用RPM来卸载相关的应用程序。
  rpm -e xv
  RPM的常用参数还包括:
  -vh:显示安装进度;
  -U:升级软件包;
  -qpl:列出RPM软件包内的文件信息;
  -qpi:列出RPM软件包的描述信息;
  -qf:查指定文件属于哪个RPM软件包;
  -Va:校验所有的RPM软件包,查丢失的文件;
  更为详尽的参数及其用法可以查看RPM的帮助文档。
  在X-Window中,RPM文件的图形化安装及管理方式对用户来说,显得更为友好。在kde上先安装好kpackage后,安装rpm仅仅是按一下鼠标就可以了,比windows 98更方便。但是这必须先安装kde.
我还是介绍更常用的方法吧,仍以XV软件为例,在Linux的文件管理器中到xv-3.10a-13.i386.rpm文件之后,用鼠标右击它,在弹出菜单中就可以到专为RPM软件包准备的三个指令:Show Info、Upgrade、Install。
  选择“Show Info”之后,我们将可以看到如图所示的软件包信息窗口。窗口分为三个部分,顶端显示的是软件名、大小、创建及安装日期以及开发者网站等相关信息;在中间的方框内,是关于软件的概述;而下面显示的则是软件包内包含的所有文件及其路径信息,它会告诉你软件包内的各个文件将被安装到系统的哪些目录中,
留意这些信息的好处是,你可以很容易地到启动程序的路径。
  此时点击底部的“Install”或者“Upgrade”按钮之后,将开始进行软件的安装或者升级,此时还会弹出一个提示安装进度的窗口。
  RPM软件包较之于其他类型的软件包,有着许多优势,但是并不是说RPM软件的安装都是一帆风顺的。常见的错误包括试图安装一个已经安装好了的软件、所要安装的软件需要其他软件或者系统库文件的支持(此时应该先行安装这些相关软件或者系统库文件)等,情形都和Windows类似。
二,tar的安装
、tar.Z、tgz、bz2等文件格式要先解压为tar后再用tar解包安装。解压缩及解包指令举例简述如下:
  1.解:tar zxf
  2.解xx.tar.Z:tar zxf xx.tar.Z
  3.解xx.tgz:tar
  4.解xx.bz2:bunzip2 xx.bz2
  5.解xx.tar:tar xf xx.tar
  解包后得到的一堆文件,通常都会存放在一个目录里面。视软件作者的不同,有些会是已经编译好的程序,更多的则是需要自己再行编译的源代码。进入相应目录后,使用“ls -F -color”指令,可执行程序将会以带“*”标记的亮绿显示,对于已编译好的程序,直接键入带路径的指令行即可运行程序。
        建议解压后先阅读说明文件,应该先用vi等文书编辑器阅读一下软件目录中的Readme、Install等重要的相关文档,在这里你会到软件详尽的编译步骤及注意事项,可以了解安装有哪些需求,有必要时还需改动编译配置。
有些软件包的源代码在编译安装后可以用make install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf 软件目录名”命令来进行干净彻底的卸载。与其它安装方式相比,需要用户自己编译安装是最难的,它适合于使用Linux已有一定经验的人,一般不推荐初学者使用。
通常的编译步骤会是这样:
  ./configure
  make
  make install(需要取得root身份才能执行此指令)
卸载可用:make uninstall 或 手动删除
  编译完成之后,在当前目录或者是名为src的子目录下,可以很容易地发现软件的可执行程序。至此,软件的安装便告一段落。
三、关于src源代码文件包
  Linux软件的源代码src是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码bin并进行安装,其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境,缺点是难度较大,一般不适合初学者使用。
  怎么知道一个/bz2包是二进制文件包呢还是源代码包?要分辨它到底是什么最好的办法就是查看包里的文件清单,使用命令tar ztvf *.解压缩及解包后,进入新生成的目录下。
源代码包里的文件往往会含有种种源代码文件,头文件*.h、c代码源文件*.c、C++代码源文件*.cc/*.cpp等;而二进制包里的文件则会有可执行文件(与软件同名的往往是主执行文件),标志是其所在路径含有名为bin的目录(仅有少数例外)。
        如果是src.tar可在解包后,在新生成的目录下编译,方法前面已介绍过了,现在讲一讲src.rpm的安装和协载:
  安装:rpm -rebuild xx.src.rpm
     cd /usr/src/redhat/RPMS/
     rpm -ivh *.rpm
     卸载:rpm -e xx
  说明:rpm --rebuild *.src.rpm命令将源代码编译并/usr/src/redhat/RPMS下生成二进制的rpm包,然后再安装该二进制包即可。
  1、源代码包的安装
     tar -zvxf (解压)
     cd xx
     ./configure (配置) ----./configure --help(查看configure选项)
     make (编译)
     make install (安装)
     make clean (卸载)
   注:典型的源代码包可以这样安装,但不都是这样,如webmin 要执行其目录下./setup.sh进入交互式配置安装,卸载用uninstall程序,具体如果不清楚看要安装的包下的README文件,这里提醒configure的配置需要注意。
  2、RPM包的安装
     RPM软件包的一个例子:
     foo-1.0-1.i386.rpm
   其中包括软件包的名称(foo),版本号(1.0),发行号(1),和硬件平台(i386)。
 (1)安装
   # rpm -ivh foo-1.0-1.i386.rpm
   foo
   >>>>###
   A. 软件包已被安装
   # rpm -ivh foo-1.0-1.i386.rpm
   foo package foo-1.0-1 is already installed
   error: foo-1.0-1.i386.rpm cannot be installed
linux安装oracle数据库(rpm方式安装)
   如果你仍旧要安装该软件包,你可以在命令行上使用--replacepkgs 选项,这将忽略该错误信息。
   B. 文件冲突
   如果要安装的软件包中有一个文件已在安装其它软件包时安装,会出现以下错误信息:
   # rpm -ivh foo-1.0-1.i386.rpm
   foo /usr/bin/foo conflicts with file from bar-1.0-1
   error: foo-1.0-1.i386.rpm cannot be installed
   要想让RPM 忽略该错误信息, 请使用--replacefiles 命令行选项
   C.未解决依赖关系
   RPM软件包可能依赖于其它软件包, 在安装了特定的软件包之后才能安装该软件包。
   # rpm -ivh bar-1.0-1.i386.rpm
   failed dependencies:
   foo is needed by bar-1.0-1
   你必须安装完所依赖的软件包,才能解决这个问题。如果想强制安装 (但是,这样安装后的软件包未必能正常运行),请使用-nodeps 命令行选项。
  (2) 卸载
     # rpm -e foo
   注意:这里使用软件包的名字foo,而不是软件包文件的名字“foo-1.0-1.i386.rpm”.
   如果其它软件包依赖于你要卸载的软件包,卸载时则会产生错误信息。如:
     # rpm -e foo
     removing these packages would break dependencies:
     foo is needed by bar-1.0-1
   要想RPM忽略该错误信息继续卸载的话 (但是,依赖于该软件包的程序可能无法运行), 请使用-nodeps 命令行选项。
  (3)升级
     # rpm -Uvh foo-2.0-1.i386.rpm
     foo
     >>>>>>#

发表评论