Rpm and Yum
Introduction
另见apt-get
rpm 是由红帽公司开发的软件包管理方式, 使用 rpm 我们可以方便的进行软件的安装, 查询, 卸载, 升级等工作.
yum(Yellow dog Updater, Modified), 在 Fedora 和 RedHat 下进行关于 rpm 包的软件包管理器, 类似 ubuntu 下的 apt-get.
基於 RPM 包管理, 能够从指定的服务器自动下载 RPM 包并且安装, 可以自动处理依赖性关系, 并且一次安装所有依赖的软体包, 无须繁琐地一次次下载, 安装.
yum
搜索包
定向搜索命令:yum search package1
List 搜索命令:
- 列出所有可安装的包:yum list
- 列出某个包的可安装版本:yum list
- 列出组信息:yum grouplist
- 列出所有可更新的包:yum list updates
- 列出所有已安装的包:yum list installed
- 列出所有已安装但是不在 yum 仓库中的软件包:yum list extras
- 列出某个软件包提供了哪些文件:yum provides
包信息
- 命令:yum info
- 列出所有包的信息: yum info
Uninstall
- 删除指定包:yum remove
- 清空 yum 保存的所有: yum clean all
- 清空保存的数据信息: yum clean metadata
Install
- 普通安装:: sudo yum install
- 重新安装: sudo yum -y reinstall
- 本地安装(安装已经下载到本地的 rpm 包): sudo yum -y localinstall
Update
- 列出更新清单: sudo yum check-update
- 安装所有更新软件: sudo yum update
- 安装指定软件: sudo yum update
rpm
RPM(RedHat Package Management)
包格式
软件包名 + 软件版本号 + (系统发行号,系统名) + 硬件架构或者硬件平台, (name-version-release.arch.rpm)
对应包 gd-devel-2.0.35-11.el6.x86_64.rpm:
- 软件包名:主包名-gd,分包名-devel
- 版本号:2.0.35(2 为主版本,0 为次版本,35 为修订号)
- 系统信息:11.el6(11 为发行号,el6 位 RHEL6)
- 硬件架构:64 X86 平台(i386,i686,noarch 表示软件包和硬件架构无关,通用)
通用性
- 不同系统下编译好的 rpm 仅仅适用于当前系统环境,如上面所述的 2RH 标识仅仅适用于 2RH 系统
- 对于 src.rpm 发行的软件包,安装时还需要进行本地编译,所以是通用的。
命令格式
rpm 【选项】 【rpm 软件包名】
初始化 rpm 数据库
- rpm –initdb
- rpm –rebuilddb %:需要花费大量的时间
包查询
1 | # 格式: |
Uninstall and Upgrade
- 卸载: rpm -e 软件包名
- 本地安装: rpm -i 软件包名
- 网络安装: rpm -ivh http 或者 ftp 地址
- 包校验: rpm -Va 软件包名
- 升级包: rpm -Uvh 软件包名
Install by src.rpm
rpmbuild 安装:
1 | # 编译安装 |
解包并通过 rpmbuild 安装:
1 | # 解包: |
解包并通过源码安装:
1 | # 解包 |
rpmbuild
目录结构
- BUILD:编译前,解压包之后的文件存放目录
- BUILDROOT:编译后的所有.obj 文件存放目录
- RPMS:打包结束后,生成的 rpm 包存放目录
- SOURCES:源码包的存放目录
- SPECS:.spec 脚本的存放目录
- SPRMS:.src.rpm 的存放目录
Command
格式: rpmbuild 【选项】 【包名.spec|tar 包|源码包】
选项:
1 | 从文件<specfile>建立包; |
specfile 操作命令:
1 | rpm -bp a.src.rpm 解开源码包、打补丁 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 狂想写作本!
评论