一、解析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包实例
首查看包是否安装,可以查看此时没有安装
-
linux-fr7v:~ # rpm -e kernel-source
-
linux-fr7v:~ #
下载kernel-source-3.0.76-0.11.1.x86_64.rpm上传到当前系统,接着安装内核源码
-
linux-fr7v:~ # rpm -ivh kernel-source-3.0.76-0.11.1.x86_64.rpm
-
Preparing... ########################################### [100%]
-
1:kernel-source ########################################### [100%]
-
linux-fr7v:~ #
再次查看,此时已经安装成功
-
linux-fr7v:~ # rpm -qa kernel-source
-
kernel-source-3.0.76-0.11.1
-
linux-fr7v:~ #
查询安装包详细信息
-
linux-fr7v:~ # rpm -qi kernel-source
-
Name : kernel-source Relocations: /usr/src
-
Version : 3.0.76 Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany
-
Release : 0.11.1 Build Date: Fri Jun 14 05:48:45 2013
-
Install Date: Sat Mar 29 07:53:40 2014 Build Host: drnek
-
Group : Development/Sources Source RPM: kernel-source-3.0.76-0.11.1.src.rpm
-
Size : 440870585 License: GPL v2 only
-
Signature : RSA/8, Fri Jun 14 05:59:42 2013, Key ID e3a5c360307e3d54
-
Packager : http://bugs.opensuse.org
-
URL : http://www.kernel.org/
-
Summary : The Linux Kernel Sources
-
Description :
-
Linux kernel sources with many fixes and improvements.
-
-
Source Timestamp: 2013-06-14 10:21:43 +0200
-
GIT Revision: ccab9909db1e966cc92984736d4366ba4d1249a5
-
GIT Branch: SLE11-SP3-GMC-respin
-
Distribution: SUSE Linux Enterprise 11
查询依赖的组件
-
linux-fr7v:~ # rpm -qR kernel-source
-
coreutils
-
sed
-
rpmlib(VersionedDependencies) <= 3.0.3-1
-
/bin/sh
-
rpmlib(PartialHardlinkSets) <= 4.0.4-1
-
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
-
rpmlib(CompressedFileNames) <= 3.0.4-1
-
rpmlib(PayloadIsLzma) <= 4.4.6-1
-
linux-fr7v:~ #
列出帮助文件
-
linux-fr7v:~ # rpm -qd kernel-source
-
/usr/share/doc/packages/kernel-source/README.SUSE
-
linux-fr7v:~ #
参考链接:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/12/2208205.html
阅读(2158) | 评论(0) | 转发(0) |