本文章为原创,如有转载,请注明出处
1. yum命令
yum 命令:用于添加/删除/更新RPM包,自动解决包的依赖问题以及系统更新升级
参数
-e [error level], --errorlevel=[error level] 错误输出级别
-q, --quiet 安静的操作
-t 忽略错误
-R[分钟] 设置等待时间
-y 自动应答yes
--skip-broken 忽略依赖问题
--nogpgcheck 忽略GPG验证
check-update 检查可更新的包
clean all 清除全部
clean packages 清除临时包文件(/var/cache/yum 下文件)
clean headers 清除rpm头文件
clean oldheaders 清除旧的rpm头文件
deplist 列出包的依赖
list 可安装和可更新的RPM包
list installed 已安装的包
list extras 已安装且不在资源库的包
info 可安装和可更新的RPM包 信息
info installed 已安装包的信息(-qa 参数相似)
install[RPM包] 安装包
localinstall 安装本地的 RPM包
update[RPM包] 更新包
upgrade 升级系统
search[关键词] 搜索包
provides[关键词] 搜索特定包文件名
reinstall[RPM包] 重新安装包
repolist 显示资源库的配置
resolvedep 指定依赖
remove[RPM包] 卸载包
AI 代码解读
- 例子
1,安装
[root@localhost ~]# yum install php53 #安装php5.3 [root@localhost ~]# yum groupinstall "MySQL Server" #安装mysql数据库组
AI 代码解读
2,更新和升级
[root@localhost ~]# yum update #全部更新 [root@localhost ~]# yum update php53 #更新php [root@localhost ~]# yum check-update #检查可更新的程序 [root@localhost ~]# yum upgrade php53 #升级php53 [root@localhost ~]# yum groupupdate "MySQL Server" #升级mysql服务组
AI 代码解读
3,查找和显示
[root@localhost ~]# yum info php53 #查看php53的安装信息 [root@localhost ~]# yum list #列出所有可安装的程序包 [root@localhost ~]# yum list php53 #列出所有php53的程序包 [root@localhost ~]# yum groupinfo "MySQL Server" #查看mysql服务组的,相关安装包 [root@localhost ~]# yum deplist php53 #查看php53依赖情况
AI 代码解读
4,删除
[root@localhost ~]# yum remove php53 #删除php53 [root@localhost ~]# yum groupremove "MySQL Server" #删除mysql服务组
AI 代码解读
5,清除缓存
[root@localhost ~]# yum clean packages #清除缓存目录下的软件包 [root@localhost ~]# yum clean headers #清除缓存目录下的 headers [root@localhost ~]# yum clean oldheaders #清除缓存目录下旧的 headers [root@localhost ~]# yum clean, yum clean all #清除所有
AI 代码解读
2. rpm
rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装、升级和删除软件包的工作变得容易,并且具有查询、验证软件包的功能。与图形化工具相比,使用命令行可以获得更大的灵活性。以下的例子都以example-1.2.3-1.i386.rpm代表对象软件包的名称
AI 代码解读
- 安装选项
命令格式: 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 资料库存所在的路径为
AI 代码解读
- 删除选项
命令格式: rpm -e ( or --erase) options pkg1 ... pkgN 参数 pkg1 ... pkgN :要删除的软件包 详细选项 --test 只执行删除的测试 --noscripts 不运行预安装和后安装脚本程序 --nodeps 不检查依赖性 通用选项 -vv 显示调试信息 --root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装 程序都会安装到这个目录下 --rcfile 设置rpmrc文件为 --dbpath 设置RPM 资料库存所在的路径为
AI 代码解读
- 升级选项
命令格式 rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm 参数 file1.rpm ... fileN.rpm 软件包的名字 详细选项 -h (or --hash) 安装时输出hash记号 (``#'') --oldpackage 允许"升级"到一个老版本 --test 只进行升级测试 --excludedocs 不安装软件包中的文档文件 -F, --freshen=+ 如果软件包已经安装,升级软件包 --includedocs 安装文档 --replacepkgs 强制重新安装已经安装的软件包 --replacefiles 替换属于其它软件包的文件 --force 忽略软件包及文件的冲突 --percent 以百分比的形式输出安装的进度。 --noscripts 不运行预安装和后安装脚本 --prefix 将软件包安装到由 指定的路径下 --ignorearch 不校验软件包的结构 --ignoreos 不检查软件包运行的操作系统 --nodeps 不检查依赖性关系 --ftpproxy 用 作为 FTP代理 --ftpport 指定FTP的端口号为 通用选项 -v 显示附加信息 -vv 显示调试信息 --root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下 --rcfile 设置rpmrc文件为 --dbpath 设置RPM 资料库存所在的路径为
AI 代码解读
- 查询选项
命令格式: rpm -q ( or --query) options 参数: 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 资料库存所在的路径为
AI 代码解读
- 校验已安装的软件包
命令格式: rpm -V ( or --verify, or -y) options 参数 pkg1 ... pkgN 将要校验的软件包名 软件包选项 -p Verify against package file -f 校验所属的软件包 -a Verify 校验所有的软件包 -g 校验所有属于组 的软件包 详细选项 --noscripts 不运行校验脚本 --nodeps 不校验依赖性 --nofiles 不校验文件属性 通用选项 -v 显示附加信息 -vv 显示调试信息 --root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下 --rcfile 设置rpmrc文件为 --dbpath 设置RPM 资料库存所在的路径为
AI 代码解读
- 校验软件包中的文件
语法: rpm -K ( or --checksig) options file1.rpm ... fileN.rpm 参数: file1.rpm ... fileN.rpm 软件包的文件名 Checksig--详细选项 --nopgp 不校验GPG签名 通用选项 -v 显示附加信息 -vv 显示调试信息 --rcfile 设置rpmrc文件为
AI 代码解读
- 其它rpm选项
--rebuilddb 重建RPM资料库 --initdb 创建一个新的RPM资料库 --quiet 尽可能的减少输出 --help 显示帮助文件 --version 显示RPM的当前版本
AI 代码解读
例子
[root@localhost ~]# rpm -ivh ipchains-1.3.6-1.i386.rpm #安装包,并显示详细进度 [root@localhost ~]# rpm -i ftp://ftp.xxx.xxx #在线安装 [root@localhost ~]# rpm -Va #校验所有的rpm包,查找丢失的文件 [root@localhost ~]# rpm -qf /usr/bin/who #查找一个文件属于哪个rpm包 [root@localhost ~]# rpm -qpi mon-0.37j-1.i386.rpm #列出一个rpm包的描述信息 [root@localhost ~]# rpm -qpl mon-0.37j-1.i386.rpm #列出一个rpm包的文件信息 [root@localhost ~]# rpm -Uvh ipchains-1.3.6-1.i386.rpm #升级包 [root@localhost ~]# rpm -q httpd #查看httpd的安装包 [root@localhost ~]# rpm -e httpd #移除安装包 [root@localhost ~]# rpm -qi httpd #得到httpd安装包的信息 Name : httpd Relocations: (not relocatable) Version : 2.2.3 Vendor: CentOS Release : 45.el5.centos.1 Build Date: 2011年05月04日 星期三 18时54分56秒 Install Date: 2011年06月29日 星期三 08时05分34秒 Build Host: builder10.centos.org Group : System Environment/Daemons Source RPM: httpd-2.2.3-45.el5.centos.1.src.rpm Size : 3281960 License: Apache Software License Signature : DSA/SHA1, 2011年05月04日 星期三 20时31分28秒, Key ID a8a447dce8562897 URL : http://httpd.apache.org/ Summary : Apache HTTP 服务器 Description : The Apache HTTP Server is a powerful, efficient, and extensible web server. [root@localhost ~]# rpm -ql httpd #列出httpd中有哪些文件 [root@localhost ~]# rpm -qa #列出所有已安装的包
AI 代码解读
3. createrepo
createrepo用以创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据
- 基本用法
基本语法:createrepo [option] <directory> 常用参数详解 -u --baseurl <url> 指定Base URL的地址 -o --outputdir <url> 指定元数据的输出位置 -x --excludes <packages> 指定在形成元数据时需要排除的包 -i --pkglist <filename> 指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。 -n --includepkg 通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。 -q --quiet 安静模式执行操作,不输出任何信息。 -g --groupfile <groupfile> 指定本地软件仓库的组划分,范例如下: createrepo -g comps.xml /path/to/rpms 注意:组文件需要和rpm包放置于同一路径下。 -v --verbose 输出详细信息。 -c --cachedir <path> 指定一个目录,用作存放软件仓库中软件包的校验和信息。当createrepo在未发生明显改变的相同仓库文件上持续多次运行时,指定cachedir会明显提高其性能。 --update 如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减,则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。 -p --pretty 以整洁的格式输出xml文件。 -d --database 该选项指定使用SQLite来存储生成的元数据,默认项。
AI 代码解读
- 例子
$ mkdir -p /yum/centos/6/ #创建本地源目录
$ createrepo -p -d -o /yum/centos/6/ix86_64 /yum/centos/6/ix86_64 #初始化源目录,产生repodata
AI 代码解读
4. rpm和srpm
RPM: RedHat Package Manager
优点:
- 由于已经编译完成并且打包完毕,所以软件传输与安装上很方便
- 由于软件信息都已经记录在Linux主机的数据库上,很方便查询,升级,卸载。
缺点:
- 软件安装环境必须跟打包时的环境需求一致或者相当。
- 需要满足软件的依赖属性需求
- 卸载的时候需要小心,最底层不能先删除,否则会造成系统问题。也就是最后安装先卸载。
SRPM: Source RPM
使用必须将该软件以RPM管理的方式先编译,此时SRPM会编译成RPM文件。
文件格式 | 文件名格式 | 直接安装与否 | 内含程序类型 | 可否修改参数并编译 |
---|---|---|---|---|
RPM | xxx.rpm | 可 | 已编译 | 不可 |
SRPM | xxx.src.rpm | 不可 | 未编译的源代码 | 可 |
rp-xxxx - 3.1 - 5 .i386 .rpm
软件名称 软件的版本信息 发布次数 硬件平台 扩展名