如何安装.src.rpm软件包

一、安装.src.rpm软件包

有些软件包是以.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即可安装完成。

 

二、rpmbuild命令使用
Usage: rpmbuild [OPTION...]
*使用命令:rpmbuild ·[OPTION]
Build options with [ <specfile> | <tarball> | <source package> ]:
*建立包的选项有:[ 从文件<specfile>建立 |从 <tarball>包建立 |从 <source package>包建立]
*从文件<specfile>建立

  -bp      build through %prep (unpack sources and apply patches) from <specfile>
              * -bp 从<specfile>文件的%prep段开始建立(解开源码包并打补丁)
  -bc      build through %build (%prep, then compile) from <specfile>
              *-bc 从<specfile>文件的%build
  -bi       build through %install (%prep, %build, then install) from <specfile>

  -bl       verify %files section from <specfile>
              *检查<specfile>文件的%files段
  -ba      build source and binary packages from <specfile>
              *建立源码和二进制包
  -bb      build binary package only from <specfile>
              *只建立二进制包
  -bs      build source package only from <specfile>
              *只建立源码包

*从 <tarball>包建立

  -tp      build through %prep (unpack sources and apply patches) from <tarball>

  -tc      build through %build (%prep, then compile) from <tarball>

  -ti       build through %install (%prep, %build, then install) from <tarball>

  -ta      build source and binary packages from <tarball>
             *建立源码和二进制包
  -tb      build binary package only from <tarball>
             *只建立二进制包
  -ts      build source package only from <tarball>
             *只建立源码包

*从 <source package>包建立

  --rebuild  
            build binary package from <source package>
             *建立二进制包
  --recompile
           build through %install (%prep, %build, then install) from <source package>


*rpmbuild的其他使用项

  --buildroot=DIRECTORY  override build root
                                          *确定以root目录建立包
  --clean                           remove build tree when done
                                          *完成打包后清除BUILD下的文件目录
  --nobuild                       do not execute any stages of the build
                                          *不进行BUILD的阶段
  --nodeps                       do not verify build dependencies
                                          *不检查建立包时的关联文件
  --nodirtokens 
         generate package header(s) compatible with (legacy) rpm[23] packaging

  --rmsource                   remove sources when done
                                       *完成打包后清除sources
  --rmspec                      remove specfile when done
                                       *完成打包后清除specfile
  --short-circuit              skip straight to specified stage (only for c,i)
                                      *跳过
  --target=CPU-VENDOR-OS       
         override target platform
             *确定包的最终使用平台

Common options for all rpm modes:
*所有rpm都可使用的选项

  -D, --define='MACRO EXPR'     define MACRO with value EXPR
                                               *预定义
  -E, --eval='EXPR'          print macro expansion of EXPR
                                         *显示大量EXPR扩展信息
  --macros=<FILE:...>    read <FILE:...> instead of default file(s)
                                         *读<FILE:...>文件代替默认文件
  --nodigest                   don't verify package digest(s)
                                         *不检查包的说明信息
  --nosignature              don't verify package signature(s)
                                        *不检查包的签名信息
  --rcfile=<FILE:...>        read <FILE:...> instead of default file(s)
                                        *读<FILE:...>文件代替默认文件
  -r, --root=ROOT           use ROOT as top level directory (default: "/")
                                        *使ROOT为最高级别的路径
  --querytags                 display known query tags
                                       *显示已知的有疑问的地方
  --showrc                      display final rpmrc and macro configuration
                                        *显示最终的配置信息
  --quiet                         provide less detailed output
                                        *提供少量的信息
  -v, --verbose               provide more detailed output
                                        * 提供大量的详细的信息
  --version                     print the version of rpm being used
                                        *显示rpm包的版本

Options implemented via popt alias/exec:
*附加选项

  --dbpath=DIRECTORY   use database in DIRECTORY
                                         
  --with=<option>          enable configure <option> for build
                                         *建立时允许配置的选项
  --without=<option>     disable configure <option> for build
                                        *建立时不允许配置的选项

Help options:
*帮助选项

  -?, --help                    Show this help message
                                   * 显示帮助信息
  --usage                       Display brief usage message
                                   *显示使用方法的信息


三、在Linux系统中RPM 命令参数使用详解

1、安装

命令格式:

rpm -i ( or --install) options file1.rpm ... fileN.rpm

参数:

file1.rpm ... fileN.rpm 将要安装的RPM包的文件名

详细选项:

-h (or --hash) 安装时输出hash记号 (``#'')

--test 只对安装进行测试,并不实际安装。

--percent 以百分比的形式输出安装的进度。

--excludedocs 不安装软件包中的文档文件

--includedocs 安装文档

--replacepkgs 强制重新安装已经安装的软件包

--replacefiles 替换属于其它软件包的文件--force 忽略软件包及文件的冲突

--noscripts 不运行预安装和后安装脚本

--prefix 将软件包安装到由 指定的路径下

--ignorearch 不校验软件包的结构

--ignoreos 不检查软件包运行的操作系统

--nodeps 不检查依赖性关系

--ftpproxy 用 作为 FTP代理

--ftpport 指定FTP的端口号为

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为

例子:

1>.安装软件

rpm -ivh *.rpm

若系统提示此软件已安装过或因其他原因无法继续安装,但若我们确实想执行安装命令,可以在 -ivh后加一参数“-replacepkgs”。

2>.在线安装

rpm -i ftp://ftp.* *.rpm

ftp://ftp.*是地址 *.rpm软件包

2、删除卸载

命令格式:

rpm -e ( or --erase) options pkg1 ... pkgN

参数

pkg1 ... pkgN :要删除的软件包

详细选项

--test 只执行删除的测试

--noscripts 不运行预安装和后安装脚本程序

--nodeps 不检查依赖性

通用选项

-vv 显示调试信息

--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为

例子:

1.卸载软件

rpm -e *.rpm

3、升级

命令格式

rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm

参数

file1.rpm ... fileN.rpm 软件包的名字

详细选项

-h (or --hash) 安装时输出hash记号 (``#'')

--oldpackage 允许"升级"到一个老版本

--test 只进行升级测试

--excludedocs 不安装软件包中的文档文件

--includedocs 安装文档

--replacepkgs 强制重新安装已经安装的软件包

--replacefiles 替换属于其它软件包的文件

--force 忽略软件包及文件的冲突

--percent 以百分比的形式输出安装的进度。

--noscripts 不运行预安装和后安装脚本

--prefix 将软件包安装到由 指定的路径下

--ignorearch 不校验软件包的结构

--ignoreos 不检查软件包运行的操作系统

--nodeps 不检查依赖性关系

--ftpproxy 用 作为 FTP代理

--ftpport 指定FTP的端口号为


通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为

例子:

1>.升级软件

rpm -uvh *.rpm

注意:此时的文件名必须是要升级软件的升级补丁

4、查询

命令格式:

rpm -q ( or --query) options pkg1 ... pkgN

参数:

pkg1 ... pkgN :查询已安装的软件包

详细选项

-p (or ``-'') 查询软件包的文件

-f 查询属于哪个软件包

-a 查询所有安装的软件包

--whatprovides 查询提供了 功能的软件包

-g 查询属于 组的软件包

--whatrequires 查询所有需要 功能的软件包

信息选项

显示软件包的全部标识

-i 显示软件包的概要信息

-l 显示软件包中的文件列表

-c 显示配置文件列表

-d 显示文档文件列表

-s 显示软件包中文件列表并显示每个文件的状态

--scripts 显示安装、卸载、校验脚本

--queryformat (or --qf) 以用户指定的方式显示查询信息

--dump 显示每个文件的所有已校验信息

--provides 显示软件包提供的功能

--requires (or -R) 显示软件包所需的功能

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为

1>.查询一个包是否被安装

rpm -q *.rpm

2>. 查看软件包里的内容

rpm -qpi *.rpm

3>.查看软件包将会在系统里安装哪些部分

rpm -qpl *.rpm

4>.快速判定某个文件属于哪个软件包

rpm -qf *.rpm

5>.列出所有被安装的rpm 软件包

rpm –qa

5、校验已安装的软件包

命令格式:

rpm -V ( or --verify, or -y) options pkg1 ... pkgN

参数

pkg1 ... pkgN 将要校验的软件包名

软件包选项

-p Verify against package file

-f 校验所属的软件包

-a Verify 校验所有的软件包

-g 校验所有属于组 的软件包

详细选项

--noscripts 不运行校验脚本

--nodeps 不校验依赖性

--nofiles 不校验文件属性

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为

例子:

1>.列出所有损坏的文件

rpm -Va *.rpm

6、校验软件包中的文件

语法:

rpm -K ( or --checksig) options file1.rpm ... fileN.rpm

参数:

file1.rpm ... fileN.rpm 软件包的文件名

Checksig--详细选项

--nopgp 不校验PGP签名

通用选项

-v 显示附加信息

-vv 显示调试信息

--rcfile 设置rpmrc文件为

7、其它RPM选项

--rebuilddb 重建RPM资料库

--initdb 创建一个新的RPM资料库

--quiet 尽可能的减少输出

--help 显示帮助文件

--version 显示RPM的当前版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值