1. 首页
  2. 服务器

linux下安装 rpm,tar管理软件包详解

rpm是一个功能十分强大的软件包管理系统,它使得linux下的安装,升级和删除软件包的工作非常简单易行,并且还有查询,验证软件包的功能。与图形化工具相比,使用命令的方式理灵活,更强大。
下面介绍的内容 都 以 example.1.2.3-1.i386 软件包为例来介绍安装,升级,更新用查询等操作和安装使用.
1:安装,升级和更新
rpm -i 安装一个新的软件包。
rpm -U 升级一个系统中已有的软件包,如果不存在就进行安装。
rpm -F 更新一个软件包,如果软件包不存在就不进行安装。
通常这几项还往往配合其它的一些参数使用,比如显示安装过程中的信息及显示安装进度等:
-v 选项表示安装时显示各种信息,如安装路径及安装了什么内容。
-h 选项将会在rpm安装时显示安装的进度条,这可以监视系统安装进程。
因此,一般想要安装软件包,最常用的命令形式就是联合使用-Uvh三个参数,以前面介绍的安装软件包example为例,输入软件包安装命令:
[root@localhost root]# rpm -Uvh example-1.2.3-1.i386.rpm
其中 example-1.2.3-1.i386.rpm 是软件包的全名,用 1.2.3 -1表示软件包的版本,i386表示软件包适用于x86系统。
2:删除
删除一个软件包的命令是:
[root@localhost root]# rpm -e example
需要注意,这里删除使用的是软件名而不是软件包的全名。
3:查询
不仅可以查询系统中已经安装的rpm软件包,还可以查询某个rpm软件包安装 文 件中包含的文件清单。
  1)列出用户已经安装的rpm软件包
        如果想查询在系统中安装的软件包信息,或是确定某个软件包是否安装,使用 rpm -qa(query all),即可查询已经安装的软件包列表;
       如果是查看某个已经安装的软件包,如example的信息,则使用rpm -q example.
  2)查看一个rmp包中包括的文件
        查看某个软件包中包含的文件清单,有两种情况:
如果是未安装的软件包example,则使用
[root@localhost root]# rpm -qlp example-1.2.3-1.i386.rpm
如果是已安装的软件包,则使用
[root@localhost root]# rpm -pl example
  3)确定某个文件属于哪个rpm包
        如果遇到了不认识的文件,想要找出它属于那个软件包,则首先记录这个文件的完整路径,然后使用如下命令:
[root@localhost root]# rpm -qf  filename
-qf 选项表示查询文件,filename需要完整的文件路径。
  4)查询rpm包的用途
       有的rpm包会利用附加信息来包含它的用途信息,这样用户可以更方便 地在安装或使用时查询每个软件包的用途,版本等信息,命令如下:
[root@localhost root]# rpm -qip example-1.2.3-1.i386.rpm
4:验证
验证一个软件包,就是比较原始包和已安装包中文件的信息。具体来说,这些信息包括每个文件的大小,MD5校验和访问许可权,类型以及所属的用户和组等。
使用命令选项-V可以验证一个包,常用的情况有以下几种:
   a:验 证包含某个特殊文件的软件包,输入命令
[root@localhost root]# rpm -Vf example
    b:验证所有已安装的软件包
[root@localhost root]# rpm -Va
在linux下更通用的一种软件安装方式是 *.tar.gz/*.bz2形式的二进制软件包。这类软件包是用tar工具打包,用gzip/bzip2压缩的,安装时要先解压缩,然后按如下的步骤进行安装.这类软件包为了能够在多种操作系统中使用,通常需要在安装时进行本地编译,然后产生可用的二进制文件。
1:获得软件
应用软件可以从网上下载,购买光盘或者是其它渠道获得,现在主要是从网上下载。
2:解压
一般的tar包,都会再做一次压缩,为的是更小更容易下载,常见的是用gzip压缩,用命令 tar -zxvf  *.tar.gz ,就可完成解压或解包文件。
3:阅读附带的install和readme文件
通常tar包会包含名为install和readme的文件,提示用户安装及编译的过程。
4:执行 ./configure 命令为编译做准备
这一步通常是用来设置编译器及确定其它相关的系统参数。
5:运行make
经过 ./configure 后,将会产生用于编译用 的MakeFile,这时运行make命令,真正开始编译;
6:make install
这一步会把编译产生的可执行文件复制到正确的位置。
7:清除临时文件
运行 make clean
安装的命令如何执行,一般都会在install和readme文件中有说明,通常产生的可执行文件会被安装到/usr/local/bin目录下。
tar包的安装,用户可以自己编译安装源程序,虽然配置灵活,但是会出现许多的问题,它适合linux有一定经验的用户,不推存初学者使用。。


rpm -ivh [install_options] package
       --prefix ;
              This  sets  the  installation  prefix to ; for
              relocatable packages.
       --relocate ;=;
              For relocatable packages, translates the files that
              would be put in ; to ;.
       --badreloc
              To  be  used  in  conjunction with --relocate, this
              forces the relocation even  if  the  package  isn't
              relocatable.
       --noorder
              Don't reorder the packages for an install. The list
              of packages would normally be reordered to  satisfy
              dependancies.
有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时 
需要进行编译。这类软件包有两种安装方法, 
方法一: 
1.执行rpm -i your-package.src.rpm 
2. cd /usr/src/redhat/SPECS 
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件 
4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录 
5. ./configure 这一步和编译普通的源码软件一样,可以加上参数 
6. make 
7. make install 
方法二: 
1.执行rpm -i you-package.src.rpm 
2. cd /usr/src/redhat/SPECS 
前两步和方法一相同 
3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件 
这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等) 
在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。 
执行rpm -i new-package.rpm即可安装完成。

如何不安装但是获取rpm包中的文件 
使用工具rpm2cpio和cpio 
rpm2cpio xxx.rpm | cpio -vi 
rpm2cpio xxx.rpm | cpio -idmv 
rpm2cpio xxx.rpm | cpio --extract --make-directories 
参数i和extract相同,表示提取文件。v表示指示执行进程 
d和make-directory相同,表示根据包中文件原来的路径建立目录 
m表示保持文件的更新时间。 

原创文章,作者:夜风博客,如若转载,请注明出处:https://www.homedt.net/11578.html

联系我们

联系QQ:28575315