RPM安装命令总结

在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件。Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装。RPM 有五种操作模式,分别为:安装、卸载、升级、查询和验证

1)用RPM安装软件包,最简单的命令如下:

1 #rpm -i example.rpm 安装 example.rpm 包;
2 #rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;
3 #rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度


2)删除已安装的软件包
要卸载软件包example,只需输入以下这行命令:

1 # rpm -e example

注意:软件包名是example,而不是rpm文件名"example.rpm"。

3)升级软件包
升级软件类似于安装软件:

1 # rpm -Uvh example.rpm

用户要注意的是:rpm会自动卸载相应软件包的老版本。如果老版本软件的配置文件通新版本的不兼容,rpm会自动将其保存为另外一个文件,用户会看到下面的信息:

saving /etc/example.conf as /etc/example.conf.rpmsave

这样用户就可以自己手工去更改相应的配置文件。
另外如果用户要安装老版本的软件,用户就会看到下面的出错信息:

# rpm -Uvh example.rpm

examle packag example-2.0-l(which is newer) is already installed

error:example.rpm cannot be installed

 安装rpm到指定目录

rpm -ivh --prefix=路径 FILE.rpm


如果用户要强行安装就使用-oldpackage参数。

4)查询软件包
用户可以用rpm -q在rpm的数据库中查询相应的软件,rpm会给出软件包的名称,版本,发布版本号,例如:

1 # rpm -q example

下面是查询时可以使用的特定参数:
-a   :查询目前系统安装的所有软件包。
-f 文件名   :查询包括该文件的软件包。
-F   :同-f参数,只是输入是标准输入(例如 find /usr/bin | rpm -qF)
-q 软件包名   : 查询该软件包
-Q   :同-p参数,只是输入是标准输入(例如 find /mnt/cdrom/RedHat/RPMS | rpm -qQ)
下面是输出时的格式选择:
-i 显示软件包的名称,描述,发行,大小,编译日期,安装日期,开发人员等信息。
-l 显示软件包包含的文件
-s 显示软件包包含的文件目前的状态,只有两种状态:normal和missing
-d 显示软件包中的文档(如man,info,README等)
-c 显示软件包中的配置文件,这些文件一般是安装后需要用户手工修改的,例如:sendmail.cf,passwd,inittab等
如果用-v参数就可以得到类似于ls -l的输出

5)用rpm校验软件包

1 rpm -Vf 需要验证到包

 


rpm 实用技巧! 
1)用户可以通过FTP来安装软件包。如果用户能够连上网络,想安装某个新的软件包时,可以直接用它的URL地址来安装: 
比如:现在在ftp.linuxsir.com/pub/linux/redhat/RPMS/下有这个文件包:foo-1.0-1.i386.rpm,那就可以用这样的命令:

1 # rpm -i ftp.linuxsir.com/pub/linux/redhat/RPMS/foo-1.0-1.i386.rpm 

 

来安装,也可以查询! 

2)如果用户不小心误删了几个文件,但不确定到底是那些文件,想对整个系统进行校验,以了解哪些部分可能已经损坏,可以用:

1 # rpm -Va 

 

3)如果用户碰到一个人不出来的文件,想要知道它是属于那一个软件包的话,可以这样做:

1 # rpm -qf /usr/X11R6/bin/xjewel 

 

结果会得到以下信息:

xjewel-1.6-1 


4)如果用户得到一个新的RPM文件,却不清楚它的内容;或想了解某个文件包将会在系统里安装那些文件,可以这样做:

1 # rpm -qpi koules-1.2-2.i386.rpm 

 结果会获得很多信息.

 

本文参考自以下文章:

http://www.cnblogs.com/nuke/archive/2009/03/03/1402067.html

http://www.jb51.net/LINUXjishu/10984.html

http://os.51cto.com/art/201001/177866.htm

http://linux.vbird.org/linux_basic/0520rpm_and_srpm.php#rpmmanager_dir

### 关于 RPM 安装命令的常见问题及解决方法 #### 1. **RPM 包缺失** 当尝试使用 `rpm` 命令安装软件时,如果系统提示缺少某些依赖项,则可能是由于目标 RPM 文件本身缺乏必要的依赖关系。可以通过以下方式解决问题: - 使用 `--nodeps` 参数忽略依赖检查并强制安装: ```bash rpm -ivh --nodeps package_name.rpm ``` 这种方法虽然可以绕过依赖检测,但在实际应用中可能导致功能异常或不稳定[^1]。 - 更推荐的方式是利用 `yum` 或 `dnf` 工具来处理依赖关系: ```bash yum localinstall package_name.rpm ``` 此命令能够自动解析并下载所需的依赖项[^2]。 --- #### 2. **权限不足** 如果执行 `rpm` 命令时报错 “permission denied”,则可能是因为当前用户不具备足够的权限。此时应切换到超级用户模式或者使用 `sudo` 提升权限: ```bash sudo rpm -ivh package_name.rpm ``` --- #### 3. **文件冲突** 有时在安装过程中会出现文件已存在的情况,这是因为新旧版本之间可能存在重叠文件。可以选择覆盖现有文件继续安装: ```bash rpm -Uvh --replacefiles package_name.rpm ``` 上述参数允许替换已经存在的文件而不中断安装过程[^3]。 --- #### 4. **数据库损坏** 偶尔会遇到 RPM 数据库损坏的情形,表现为无法正常操作任何 RPM 软件包管理活动。对此可采取修复措施如下: - 首先备份原始数据以防万一丢失重要信息; - 清理重建 RPM 数据库结构: ```bash rm -rf /var/lib/rpm/__db* rpm --rebuilddb ``` --- #### 5. **配置错误 – MySQL 特殊案例** 对于像 MySQL 这样的复杂服务组件来说,除了基本的应用层面上述提到的各种状况之外还会有额外需要注意的地方比如网络访问控制设定不当等问题。例如设置远程登录账户授权时需确保语法无误并且刷新权限表生效: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 这里展示了如何开放所有主机对 root 用户完全控制权的同时也强调了密码安全的重要性[^4]。 --- ### 总结 以上列举了几类典型的基于 Linux 平台之上运用 RPM 技术实施应用程序部署期间可能出现的技术障碍连同对应的处置策略。希望这些指导能帮助您更顺利地完成日常运维工作中的各项任务!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值