一、select语句
select语句在脚本中用于创建菜单,按数字顺序排列的菜单项显示在标准输出上,并用PS3提示符,等待用户输入。用户输入菜单中的某个数字,执行相应的命令,并被保存在内置变量REPLY中。
用法:
select NAME [in WORDS … ;] do COMMANDS; done
注意:
select默认无限循环,因此,要配合break或ctrl+c退出循环,或配合exit退出脚本。
select可以与case配合使用
二、rpm
rpm(RedHat Package Manager)类似于windows中的“添加/删除程序功能”,rpm执行安装包分为二进制包和源代码包,其中二进制包可以直接安装在程序中,,而源代码包将会由rpm自动编译、安装。源代码包一般以src.rpm作为后缀。
安装:
rpm {-i|–install} [INSTALL-OPTIONS] PACKAGE_FILE…
-v 详细显示
-vv 更加详细显示
-h 用#显示程序包执行进度
[install-options]
–test: 测试安装,但不真正执行安装;dry run模式
–nodeps:忽略依赖关系
–replacepkgs | replacefiles
–nosignature: 不检查来源合法性
–nodigest:不检查包完整性
–noscipts:不执行程序包脚本片断
%pre: 安装前脚本; –nopre
%post: 安装后脚本; –nopost
%preun: 卸载前脚本; –nopreun
%postun: 卸载后脚本; –nopostun
升级
rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
rpm {-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安装有旧版程序包,则“升级”如果不存在旧版程序包,则“安装”
freshen:安装有旧版程序包,则“升级”如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …
–oldpackage:降级
–force: 强行升级
注意:
(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此 ,对直接安装新版本内核
(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本 的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而 把新版本的文件重命名(FILENAME.rpmnew)后保留
包查询
rpm {-q|–query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作;
–whatprovides CAPABILITY:查询指定的CAPABILITY 由哪个包所提供
–whatrequires CAPABILITY:查询指定的CAPABILITY被 哪个包所依赖
rpm2cpio 包文件|cpio –itv 预览包内文件
rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件
[query-options]
–changelog:查询rpm包的changelog
-c: 查询程序的配置文件
-d: 查询程序的文档
-i: information
-l: 查看指定的程序包安装后生成的所有文件;
–scripts:程序包自带的脚本片断
-R: 查询指定的程序包所依赖的CAPABILITY;
–provides: 列出指定程序包所提供的CAPABILITY;
卸载:
rpm {-e|–erase} [–allmatches] [–nodeps] [-noscripts] [–notriggers] [–test] PACKAGE_NAME …
包校验
rpm {-V|–verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P capabilities differ
包来源合法性验正及完整性验正:
完整性验正:SHA256
来源合法性验正:RSA
公钥加密:
对称加密:加密、解密使用同一密钥;
非对称加密:密钥是成对儿的
public key: 公钥,公开所有人
secret key: 私钥, 不能公开
导入所需要公钥:
rpm -K|checksig rpmfile 检查包的完整性和签名
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7 rpm -qa gpg-pubkey*
rpm数据库
数据库重建
/var/lib/rpm
rpm {–initdb|–rebuilddb}
initdb: 初始化 如果事先不存在数据库,则新建之 否则,不执行任何操作
rebuilddb:重建 无论当前存在与否,直接重新创建数据库
三、yum的配置
yum(Yellow dog Updater,Modifid)是linux中shell前端的软件包管理器,基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且依次安装所有以来的软体包。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。
yum客户端配置文件
/etc/yum.conf:为所有仓库提供公共配置
/etc/yun.repos.d/*.repo:为仓库的指向提供配置
仓库指向定义:
[repositoryID] 软件源名称
namee=Some name for this repository 仓库名称
baseurl=url://path/to/repository/ 源镜像地址
enabled={1|0} 是否启用源
gpgcheck={1|0} 是否进行gpg的校验下载的rpm包
gpgkey=URL 用于定义gpg校验的密钥
enablegroups={1|0}
failovermethod={roundrobin|priority}
默认为:roundrobin,意为随机挑选镜像服务器中的地址;
priorty,表示顺序选择地址
cost= 默认为1000
原创文章,作者:zhanghuanyu,如若转载,请注明出处:http://www.178linux.com/37984
评论列表(1条)
文章对rpm工具的常见用法和选项总结的很精细,也很用心,对于rpm包管理工具而言,其最重要的是查询选项,这也是最丰富的地方,需要多加练习熟练掌握。