Chinaunix首页 | 论坛 | 博客
  • 博客访问: 132852
  • 博文数量: 18
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 174
  • 用 户 组: 普通用户
  • 注册时间: 2014-09-30 10:35
文章分类

全部博文(18)

文章存档

2016年(1)

2015年(13)

2014年(4)

我的朋友

分类: LINUX

2015-07-12 19:46:39

一、解析Linux应用软件安装包
通常Linux应用软件的安装包有三种:

tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。
rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。
dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。

同时查看怎么软件安装的,源码安装的话可以看 configure 的日志;rpm 等包方式的话,就要查其中的数据库了,比如 rpm -q 进行查询.

此外大多数Linux应用软件包的命名也有一定的规律,它遵循:
名称-版本-修正版-类型
例如:
software-1.2.3-1.tar.gz 意味着:
软件名称:software
版本号:1.2.3
修正版本:1
类型:tar.gz,说明是一个tar包。
sfotware-1.2.3-1.i386.rpm
软件名称:software
版本号:1.2.3
修正版本:1
可用平台:i386,适用于Intel 80x86平台。
类型:rpm,说明是一个rpm包。
注:由于rpm格式的通常是已编译的程序,所以需指明平台。
对于software-1.2.3-1.deb就请大家自己练习一下。

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

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

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

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

四、搞定使用rpm打包的应用软件
rpm可谓是Redhat公司的一大贡献,它使Linux的软件安装工作变得更加简单容易。更多的内容可以参考RPM的命令帮助。
安装
eg.执行:
rpm –ivh rpm软件包名

常用的rpm参数说明
安装

-i 安装软件
-t 测试安装,不是真的安装
-p 显示安装进度
-f 忽略任何错误
-U 升级安装
-v 检测套件是否正确安装
这些参数可以同时采用。

查询
-q  <== 查询(查询本机已经安装的包时不需要版本名称)
   -qi   #查询被安装的包的详细信息(information)
   -qa | grep dhcp  <== 列出所有被安装的rpm package 
   -qc 列出配置文件(/etc下的文件)
   -qd 列出帮助文件(man)
   -ql dhcp     <== 查询指定 rpm 包中的文件列表
   -qf /bin/ls  <== 查询哪个库里包含了 ls 文件(注意,需要安装了 /bin/ls 后才能查到)
   -qp < rpm package name>  <== 根据rpm包查询(.rpm 文件),可以接其他参数(如i查详细信息,l查文件列表 等)
   -qR 列出需要的依赖套件 

卸载
我同样只需简单的一句话,就可以说完。执行:
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版本一般都没有。我们在此就简单地说明一下:

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

卸载
dpkg –e 软件名
如:
dpkg –e software

六、suse11SP3上手动安装内核源码rpm包实例

首查看包是否安装,可以查看此时没有安装

点击(此处)折叠或打开

  1. linux-fr7v:~ # rpm -e kernel-source
  2. linux-fr7v:~ #

下载kernel-source-3.0.76-0.11.1.x86_64.rpm上传到当前系统,接着安装内核源码

点击(此处)折叠或打开

  1. linux-fr7v:~ # rpm -ivh kernel-source-3.0.76-0.11.1.x86_64.rpm
  2. Preparing... ########################################### [100%]
  3.    1:kernel-source ########################################### [100%]
  4. linux-fr7v:~ #

再次查看,此时已经安装成功


点击(此处)折叠或打开

  1. linux-fr7v:~ # rpm -qa kernel-source
  2. kernel-source-3.0.76-0.11.1
  3. linux-fr7v:~ #


查询安装包详细信息


点击(此处)折叠或打开

  1. linux-fr7v:~ # rpm -qi kernel-source
  2. Name : kernel-source Relocations: /usr/src
  3. Version : 3.0.76 Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany
  4. Release : 0.11.1 Build Date: Fri Jun 14 05:48:45 2013
  5. Install Date: Sat Mar 29 07:53:40 2014 Build Host: drnek
  6. Group : Development/Sources Source RPM: kernel-source-3.0.76-0.11.1.src.rpm
  7. Size : 440870585 License: GPL v2 only
  8. Signature : RSA/8, Fri Jun 14 05:59:42 2013, Key ID e3a5c360307e3d54
  9. Packager : http://bugs.opensuse.org
  10. URL : http://www.kernel.org/
  11. Summary : The Linux Kernel Sources
  12. Description :
  13. Linux kernel sources with many fixes and improvements.

  14. Source Timestamp: 2013-06-14 10:21:43 +0200
  15. GIT Revision: ccab9909db1e966cc92984736d4366ba4d1249a5
  16. GIT Branch: SLE11-SP3-GMC-respin
  17. Distribution: SUSE Linux Enterprise 11


查询依赖的组件


点击(此处)折叠或打开

  1. linux-fr7v:~ # rpm -qR kernel-source
  2. coreutils
  3. sed
  4. rpmlib(VersionedDependencies) <= 3.0.3-1
  5. /bin/sh
  6. rpmlib(PartialHardlinkSets) <= 4.0.4-1
  7. rpmlib(PayloadFilesHavePrefix) <= 4.0-1
  8. rpmlib(CompressedFileNames) <= 3.0.4-1
  9. rpmlib(PayloadIsLzma) <= 4.4.6-1
  10. linux-fr7v:~ #


列出帮助文件


点击(此处)折叠或打开

  1. linux-fr7v:~ # rpm -qd kernel-source
  2. /usr/share/doc/packages/kernel-source/README.SUSE
  3. linux-fr7v:~ #


参考链接:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/12/2208205.html
阅读(2143) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~