select基本用法和软件包管理

一、select语句

    select语句在脚本中用于创建菜单,按数字顺序排列的菜单项显示在标准输出上,并用PS3提示符,等待用户输入。用户输入菜单中的某个数字,执行相应的命令,并被保存在内置变量REPLY中。

用法:

    select NAME [in WORDS … ;] do COMMANDS; done

注意:

    select默认无限循环,因此,要配合break或ctrl+c退出循环,或配合exit退出脚本。

blob.png

    select可以与case配合使用

blob.png

二、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 

blob.png

原创文章,作者:zhanghuanyu,如若转载,请注明出处:http://www.178linux.com/37984

(2)
zhanghuanyuzhanghuanyu
上一篇 2016-08-21
下一篇 2016-08-21

相关推荐

  • 设计模式(九)外观模式Facade(结构型)

    1. 概述      外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统的外观模式设计。 2.…

    Linux干货 2015-07-06
  • 推荐-Corosync + Pacemaker 搭建高可用Httpd服务

    Corosync + Pacemaker 搭建高可用Httpd服务 实验描述 1.两个测试节点,分别为node5.redhat.com和node6.redhat.com地址分别为172.16.100.5和172.16.100.62.集群服务为httpd,利用nfs做共享存储,NFS地址为172.16.0.254,NFS已经共享出了一个/www/htdocs目…

    系统运维 2016-04-05
  • N22-第一周博客作业

    1、计算机的组成和及其功能? 计算机由硬件,操作系统,软件三大部分组成。 硬件: 计算机系统中所使用的电子线路和物理设备,主要由中央处理器( CPU )、存储器、外部设备(输入输出设备、I/O设备)及总线等组成。 a、中央处理器(CPU)的主要功能是根据存储器内的程序 ,逐条地执行程序所指定的操作。中央处理器的主要组成部分是:数据寄存器、指令寄存器、指令译码…

    Linux干货 2016-08-15
  • 作业-第二周

    1、linux常用文件管理命令 ls rm chmod touch mv cp 2、echo $? 如果返回0则成功,其他失败 3、 mkdir /tmp/{a,b}_{c,d} mkdir -p /tmp/mylinux/bin /tmp/mylinux/boot/ /tmp/mylinux/boot/grup /tmp/mylinux/dev \ /tm…

    Linux干货 2016-06-23
  • FHS文件结构

    我们在前面学习的过程中有了解到,linux的发现版有很多种类型,那么如果每个版本都有着自己的想法去配置文件应该放置的目录,那么将造成管理上的困扰,于是为了解决这个问题,就有了FHS标准。 1.1 FHS 结构 1.1.1 软件的概念 之前,我们提到过,一个完整的计算机系统应该有两部分组成,即:计算机系统=软件+硬件。没有软件的硬件,计算机只不过是一堆只会发热…

    Linux干货 2016-10-27
  • 马哥教育网络19期+第十八周课程练习

    1、为LNMP架构添加memcached支持,并完成对缓存效果的测试报告; LNMP的安装过程不再赘述. # yum install -y memcached # cat /etc/sysconfig/memcached  PORT="11211" &nbsp…

    Linux干货 2016-09-19

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 10:35

    文章对rpm工具的常见用法和选项总结的很精细,也很用心,对于rpm包管理工具而言,其最重要的是查询选项,这也是最丰富的地方,需要多加练习熟练掌握。