水可载舟,亦可覆舟!


1、 介绍

  在Linux操作系统中,常用的软件有RPM包软件包,src.rpm格式的软件包(源码),以源代码发布的软件包以及.bin格式软件包和绿色软件。如果采用.rpm格式的软件,同一软件针对不同的Linux发行版有不同的RPM包,相互依赖关系会经常出现不可预料的错误,但安装过程很简单,源码软件包不依赖具体的发行版本和操作系统内核,但安装此软件的主机上应有对应的开发工具(GCC)和内核代码程序支持,而且安装过程要稍微复杂一些,.bin格式文件可以直接运行安装,绿色软件包则可以直接使用。

2、  内容

.rpm

  Linux发行版本都使用某中形式的软件包管理安装,更新和卸载软件,这种方法与直接从源代码安装相比,具有以下优点。

A    软件包易于安装和卸载

B    易于更新已安装的软件包。

C    易于保护配置文件

D    易于跟踪已安装文件

rpm 包根据不同的操作系统内核和处理器架构编译过的,因此,不同的操作系统内核版本和处理器架构都需要自己独立的RPM包

  rpm 全称Red Hat Package Manager(Red Hat包管理器)。其本质上就是一个包,包含可以立即在特定处理器架构和操作系统内核上安装和运行的Linux软件,大多数Linux RPM软件包的命名有一定的规律,其命名规则如下所示:

名称-版本-修正版-类型

Software-1.2.1-i386.rpm

.src.rpm

.deb

.tar.gz     .tar.Z     .tar.bz2             .tarz

.bin

安装系统软件包(讲解图形界面的安装)

redhat-config-packages

RPM软件包管理

安装RPM软件包

命令格式:

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 <path> 将软件包安装到由 <path> 指定的路径下   #制定安装目录,有些脚本不许制定位置
--ignorearch     不校验软件包的结构
--ignoreos       不检查软件包运行的操作系统
--nodeps         不检查依赖性关系
--ftpproxy <host>    用
<host> 作为 FTP代理  
--ftpport <port>     指定FTP的端口号为 <port

通用选项

-v   显示附加信息
-vv 显示调试信息
--root <path> 让RPM将<path>指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile <rcfile> 设置rpmrc文件为 <rcfile>  
--dbpath <path>    设置RPM 资料库存所在的路径为 <path>

二、删除

命令格式:

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

参数

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

详细选项

--test      
只执行删除的测试
--noscripts 不运行预安装和后安装脚本程序
--nodeps     不检查依赖性

通用选项

-vv           
显示调试信息
--root <path> 让RPM将<path>指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile <rcfile> 设置rpmrc文件为 <rcfile>
--dbpath <path>    设置RPM 资料库存所在的路径为 <path>

三、升级

命令格式

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

四、查询

命令格式:

rpm -q ( or --query) options

参数:

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

详细选项

-p <file>(or ``-'') 查询软件包的文件
-f <file>           
查询<file>属于哪个软件包
-a                  
查询所有安装的软件包
--whatprovides <x>   查询提供了 <x>功能的软件包  
-g <group>           查询属于<group> 组的软件包
--whatrequires <x> 查询所有需要 <x> 功能的软件包

信息选项

<null> 显示软件包的全部标识
-i 显示软件包的概要信息
-l 显示软件包中的文件列表
-c 显示配置文件列表
-d 显示文档文件列表
-s 显示软件包中文件列表并显示每个文件的状态
--scripts 显示安装、卸载、校验脚本
--queryformat (or --qf) 以用户指定的方式显示查询信息
--dump 显示每个文件的所有已校验信息  
--provides 显示软件包提供的功能
--requires (or -R) 显示软件包所需的功能

五、校验已安装的软件包

命令格式:

rpm -V ( or --verify, or -y)
options

参数

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

软件包选项

-p <file> Verify against
package file <file>  
-f <file> 校验<file>所属的软件包
-a Verify 校验所有的软件包
-g <group> 校验所有属于组 <group>   的软件包

详细选项

--noscripts 不运行校验脚本  
--nodeps     不校验依赖性
--nofiles    不校验文件属性

六、校验软件包中的文件

语法:

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

参数:

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

Checksig--详细选项

--nopgp 不校验PGP签名

通用选项

-v   显示附加信息
-vv 显示调试信息
--rcfile <rcfile> 设置rpmrc文件为 <rcfile>

七、其它RPM选项

--rebuilddb 重建RPM资料库
--initdb     创建一个新的RPM资料库
--quiet      尽可能的减少输出
--help       显示帮助文件
--version    显示RPM的当前版本

3、实例演示

rpm –ivh mysoftware-1.2-i386.rpm

//安装 rpm软件包  -i
install   安装软件  -v
verify 检测套件是否正确安装

//-h hash 安装时在屏幕依次打印标识(即#符号)显示安装进步

rpm –qpi mysoftware-1.2-i386.rpm

//查询某一个rpm文件的信息命令

rpm –Uvh mysoftware-1.2-i386.rpm

//需要更新的软件

rpm –e mysoftware

//卸载软件名

单独删除一个rpm时系统可能会提示错误,尤其是系统上有相关的程序依赖于它时。

这时可以用—force选项重新安装。

rpm –ivh –force mysoftware-1.2-i386.rpm

查询软件包安装情况

rpm –qa            //查询当前系统所有安装的rpm包

rpm –qa | grep softwarename      //查询当前系统是否安装了某软件包

rpm –qa | grep telnet              //查询当前系统是否安装了telnet

rpm –qal mysoftware-1.2-i386.rpm    //查看rpm包在系统中安装的文件的详细信息,可以使用-l参数

  目前rpm有两种模式,一种是已经过编码的(i386.rpm).这种软件包只能用于对应平台(如i386.rpm软件包起处理器只能是i386的);

一种是末经过编码的(src.rpm),这种软件包没有固定的应用平台限制,而且操作方便,用户可以根据内核和Linux开发工具重新编译,用户必须在当前系统中安装Linux内核和开发工具).对于.src.rpm 安装过程如下所示:]

rpm –ivh Filename.src.rpm                    //解压软件包系统自动解压到/usr/src/redhat/SPECS文件夹

cd /usr/src/redhat/SPECS

rpmbuild –bb filename. Spec               //编译软件包,解压到/usr/src/redhat/RPMS/i386  自动

cd /usr/src/redhat/RPMS/i386

rpm –ivh /usr/src/regflag/RPMS/i386/filename.rpm

使用源代码安装:

tar文件    tar
xf xxx.tar

gz文件     tar
zxvf xxx.tar.gz

bz2文件    tar xjvf xxx.tar.bz2

源码编译安装

./configure         
//配置

make   // 调用make ,编译程序

make install  //安装源代码

make clean   //删除安装时产生的临时文件

make uninstall     
//卸载软件

文件的安装xxx.bin

chmod +x xxx.bin  && ./bin

rpm基本命令参考的更多相关文章

  1. RPM包制作教程

    一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...

  2. rpm安装软件(需管理员权限)

    常用命名规范 linux-1.2.0-30.e16.i686.rpm rpm基本命令 安装rpm -i software.rpm 卸载rpm -e software 升级rpm -U software ...

  3. mongodb 的一些基本命令以及 导入、导出,待更新

    基本命令参考: https://blog.csdn.net/cckevincyh/article/details/78702674 导入导出参考:https://blog.csdn.net/djy37 ...

  4. 制作RPM包

    RPM包制作过程 1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制作的对象 ...

  5. RPM软件管理

    1.源代码形式 绝大多数软件都是以源代码形式发布的:     因为开源的理念是不重复造轮子:让其它不以商业为目的人都能修改这个软件:   源代码一般会被打包成tar.gz的压缩归档文件: 程序源代码需 ...

  6. 如何打一个RPM包

    如何打一个RPM包 参考链接:RPM打包原理.示例.详解及备查 前言 本文只是一个RPM安装的例子,并没有对RPM做比较详尽的叙述,更为详尽的讲解,可以在上面的链接中找到. RPM是啥? RPM(Re ...

  7. Ftp服务端安装-Linux环境

    目的 为什么要搭建FTP服务器,进入maven仓库下载Jar包时点击相应的链接进去会看到目录结构,这个就是ftp站点.可以随意的下载. 环境 Linux系统为CentOS6.5 安装步骤 查询是否已安 ...

  8. CentOS系统 yum 安装 iftop实时流量监控工具

    一. 不多说其他的无用话题.直接看步骤: 1.要安装某个工具,首先得知道这个工具需要依赖包. eg:iftop 就依赖 以下这几个依赖包(不清楚工具依赖什么包“Google.百度”). flex   ...

  9. RHEL6.5中完成播放音乐的“大业”

    参考文章:http://ylw6006.blog.51cto.com/470441/589964 感谢:ylw6006@51CTO 首先,费了不少劲去找到三个文件(还要对应版本el6.i686或el6 ...

随机推荐

  1. 也给我的E420拆机清清灰尘

    用了两年,天气燥热,是得拆开清理下了,E430清理非常方便,拆开后面挡板就行,E420就麻烦很多,需要全部拆下,关于E420的拆机网上已经有非常详细的教程了,我这里做一些补充,有兴趣的同学欢迎参考. ...

  2. 奇怪吸引子---Arneodo

    奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...

  3. leetcode Roman Integer

    class Solution { public: int romanToInt(string s) { if (s.length() < 1) return 0; map<char,int ...

  4. iOS开发-消息通知机制(NSNotification和NSNotificationCenter)

    iOS中委托模式和消息机制基本上开发中用到的比较多,一般最开始页面传值通过委托实现的比较多,类之间的传值用到的比较多,不过委托相对来说只能是一对一,比如说页面A跳转到页面B,页面的B的值改变要映射到页 ...

  5. SQL 2008 R2 收缩日志,不用修改简单模式

    BACKUP LOG jmd8 TO DISK = N'C:\jmd8_20140429014500.trn' WITH NOREWIND, NOUNLOAD USE [JMD8]GODBCC SHR ...

  6. google map放大缩小地图去除 ctrl+,直接用鼠标放大缩小

    如图,最近突然需要ctrl+鼠标滚动,才可以放大缩小地图: 这个问题也困扰了我很久,这个解决办法也是在看到一个帖子才发现的,所以记录一下,如图: map = new google.maps.Map(d ...

  7. qt文字改变方向

    QPainter painter(this);             QFont font("Courier", 24);             painter.setFont ...

  8. 让App中增加LruCache缓存,轻松解决图片过多造成的OOM

    上次有过电话面试中问到Android中的缓存策略,当时模糊不清的回答,如今好好理一下吧. Android中普通情况下採取的缓存策略是使用二级缓存.即内存缓存+硬盘缓存->LruCache+Dis ...

  9. 强化学习之Q-learning简介

    https://blog.csdn.net/Young_Gy/article/details/73485518 强化学习在alphago中大放异彩,本文将简要介绍强化学习的一种q-learning.先 ...

  10. linux下性能分析命令[总结]

    1.前言 在linux下开发程序,为了追求高性能,经常需要测试程序的性能,包括cpu.内存.io.网络等等使用情况.liunx下提供了众多命令方便查看各种资源的使用情况.经常用的有ps.top.fre ...