美文网首页
第五周(rpm和yum等相关内容)

第五周(rpm和yum等相关内容)

作者: 佐岸的咖啡 | 来源:发表于2018-09-10 21:47 被阅读0次

    1.简述rpm与yum命令的常见选项,并举例

    rpm的相关命令和选项

    • rpm命令: rpm [OPTIONS] [PACKAGE_FILE]
      • 安装: -i, --install
      • 升级: -U, --update,-F, --freshen
      • 卸载: -e, --erase
      • 查询: -q, --query
      • 校验: -v, --verify
      • 数据库维护: --builddb, --initdb
    • 安装:
      • rpm {-i|--install} [install-options] PACKAGE_FILE...
        • rpm -ivh PACKAGE_FILE....
        • GENERAL OPTIONS:
          • -v: VERBOSE,详细信息
          • -vv: 更详细的输出
        • [install-options]:
          • -h: hash marks输出进度条;每个#表示2%的进度;
          • --test: 测试安装,检查并报告依赖关系及冲突消息等;
          • --nodeps: 忽略依赖关系;不建议;
          • --replacepkgs: 重新安装
          • 注意: rpm可以自带脚本;
            • 四类: --noscripts
              • preinstall: 安装过程开始之前运行的脚本, %pre, --nopre
              • postinstall: 安装过程完成之后运行的脚本, $post, --nopost
              • preuninstall: 卸载过程真正开始执行之前运行的脚本, %preun, --nopreun
              • postuninstall: 卸载过程完成之后运行的脚本, %postun, --nopostun
          • --nosignature: 不检查包签名信息, 不检查来源合法性
          • --nodigest: 不检查包完整性信息
    • 升级:
      • rpm {-U|--update} [install-options] PACKAGE_FILE...
      • rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
        • -U: 升级或安装;
        • -F: 只是升级;
        • rpm -Uvh PACKAGE_FILE...
        • rpm -Fvh PACKAGE_FILE...
          • --oldpackage: 降级;
          • --force: 强制升级;
        • 注意:
          • (1)不要对内核做升级操作; Linux支持多内核版本并存,因此,直接安装新版本内核;
          • (2)如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;
    • 卸载:
      • rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts][--test] PACKAGE_NAME ...
        • --allmatches: 卸载所有匹配指定名称的程序包的各版本;
        • --nodps: 忽略依赖关系
        • --test: 测试卸载, dry run模式
    • 查询:
      • rpm {-q|--query} [select-options] [query-options]
      • [select-options]
        • PACKAGE_NAME: 查询指定的程序包是否已经安装,及其版本;
        • -a, --all: 查询所有已经安装过的包;
        • -f FILE: 查询指定的文件由哪个程序包安装生成;
        • -p, --package PACKAGE_FILE: 用于实现对未安装的程序包执行查询操作;
        • --whatprovides CAPABILITY: 查询指定的CAPABILITY由哪个程序包提供;
        • --whatrequires CAPABILITY: 查询指定的CAPABILITY被哪个包所依赖;
      • [query-options]
        • --changelog: 查询rpm包的changelog
        • -l, --list: 程序安装生成的所有文件列表;
        • -i, --info: 程序包相关的信息,版本号、大小、所属的包组,等等;
        • -c, --configfiles: 查询指定的程序包提供的配置文件;
        • -d, --docfiles: 查询指定的程序包提供的帮助文档;
        • --provider: 列出指定的程序包提供的所有的CAPABILITY;
        • -R, --requires: 查询指定的程序包的依赖关系;
        • --scripts: 查询程序包自带的脚本片段;
      • 用法:
        • qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
        • qpi PACKAGE FILE, -qpl, -qpc, -qpd
    • 校验:
      • 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

    yum命令的常见选项

    参数选项 解释说明
    repolist [all|enabled|disabled] 显示仓库列表
    list [...] 显示程序包
    1.yum list [all | glob_exp1] [glob_exp2] [...]
    2.yum list {available|installed|updates} [glob_exp1] [...]
    install package1 [package2] [...] 安装程序包
    reinstall package1 [package2] [...] 重新安装
    update [package1] [package2] [...] 升级程序包
    downgrade package1 [package2] [...] 降级程序包
    check-update 检查可用升级
    remove | erase package1 [package2] [...] 卸载程序包
    info [...] 查看程序包information
    provides | whatprovides feature1 [feature2] [...] 查看指定的特性是由哪个程序包所提供
    clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 清理本地缓存
    makecache [fast] 构建缓存
    search string1 [string2] [...] 以指定关键字搜索程序包名及summary信息
    deplist package1 [package2] [...] 查看指定包所依赖的capabilities
    history [info|list|stats] 查看yum事务历史
    group 包组管理的相关命令
    1.groupinstall group1 [group2] [...]
    2.groupupdate group1 [group2] [...]
    3.grouplist [hidden] [groupwildcard] [...]
    4.groupremove group1 [group2] [...]
    5.groupinfo group1 [...]
    6.search string1 [string2] [...]

    2、自建yum仓库,分别为网络源和本地源

    第一、如何自建本地yum源仓库
    • 先查看目前服务器上所拥有的yum源仓库
    [root@Centos7 ~]#yum repolist
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: centos.ustc.edu.cn
     * extras: centos.ustc.edu.cn
     * updates: centos.ustc.edu.cn
    repo id                                     repo name                                      status
    base/7/x86_64                               CentOS-7 - Base                                9,911
    extras/7/x86_64                             CentOS-7 - Extras                                402
    updates/7/x86_64                            CentOS-7 - Updates                             1,333
    repolist: 11,646
    
    • 查看目前所有的yum源仓库,并对其进行备份
    [root@Centos7 yum.repos.d]#mkdir backup
    [root@Centos7 yum.repos.d]#ll
    total 36
    drwxr-xr-x. 2 root root 4096 Sep 11 01:21 backup
    -rw-r--r--. 1 root root 1664 Apr 29 00:35 CentOS-Base.repo
    -rw-r--r--. 1 root root 1309 Apr 29 00:35 CentOS-CR.repo
    -rw-r--r--. 1 root root  649 Apr 29 00:35 CentOS-Debuginfo.repo
    -rw-r--r--. 1 root root  314 Apr 29 00:35 CentOS-fasttrack.repo
    -rw-r--r--. 1 root root  630 Apr 29 00:35 CentOS-Media.repo
    -rw-r--r--. 1 root root 1331 Apr 29 00:35 CentOS-Sources.repo
    -rw-r--r--. 1 root root 4768 Apr 29 00:35 CentOS-Vault.repo
    [root@cherry yum.repos.d]# mv CentOS-* backup
    
    • 创建cdrom挂载点,并挂载本地镜像iso文件
    [root@Centos7 ~]#mkdir /mnt/cdrom
    [root@Centos7 ~]#mount -r /dev/cdrom /mnt/cdrom
    
    • 配置本地镜像文件
    [root@Centos7 ~]#cd /etc/yum.repos.d/
    [root@Centos7 yum.repos.d]#ll
    total 4
    drwxr-xr-x. 2 root root 4096 Sep 11 01:22 backup
    [root@Centos7 yum.repos.d]#vim /etc/yum.repos.d/CentOS_local.repo
    [local]
    name=CentOS7 local_source
    baseurl=file:///mnt/cdrom
    gbgcheck=0
    enabled=1
    
    
    • 配置缓存
    [root@Centos7 ~]#yum clean all
    [root@cherry yum.repos.d]# yum makecache
    [root@cherry yum.repos.d]# yum repolist
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    repo id                                repo name                                           status
    local                                  CentOS7 local_source                                9,911
    repolist: 9,911ed
    

    第二、如何自建网络yum源

    第一种方案,直接修改repo源,和上述本地方案类似,最后一步配置页面做一下更改;

    [root@Centos7 yum.repos.d]#vim /etc/yum.repos.d/CentOS_local.repo
    [network]
    name=CentOS7 network_source
    baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
    gbgcheck=0
    enabled=1
    

    第二种方案通过安装http或ftp服务构建;

    • 安装httpd网络服务
    [root@cherry ~]# yum install httpd
    
    • 启动httpd服务,并测试是否能通过ip正常打开
    [root@cherry yum.repos.d]# systemctl start httpd
    
    • 进入html的文件目录创建1级和2级子目录
    [root@cherry ~]# cd /var/www/html
    [root@cherry html]# mkdir -pv httpd/1/2
    
    • 把镜像光盘挂载到1级目录下
    [root@cherry html]# mount -r /dev/cdrom /var/www/html/httpd/1
    

    3、简述at和crontab命令,制定一个脚本每周三的凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00

    at [OPTION]...TIME

    • TIME:
      • HH:MM [YYYY-mm-dd]
      • noon, midnight, teatime
      • tomorrow
      • now+#
        • UNIT: minutes,hours,days,OR weeks
    • at的作业有队列,用单个字母表示,默认都使用a队列
    • 常用队列:
      • -l: 查看作业队里,相当于atq
      • -f: /PATH/FROM/SOMEFILE; 从指定文件中读取作业任务,而不用再交互式输入;
      • -d: 删除指定的作业,相当于atrm;
      • -c: 查看指定作业的具体内容;
      • -q QUEUE: 指明队列;

    crontab命令:

    • crontab [-u user] [-l | -r | -e] [-i]
      • -e: 编辑任务
      • -l: 列出所有任务
      • -r: 移除所有任务;即删除/var/spool/cron/USERNAME文件;
      • -i: 在使用-r选项移除所有任务时提示用户确认;
      • -u user: root用户可为指定用户管理cron任务;

    10 3,5 0 0 3 /usr/bin/echo "The present time is $(date "+%F %H:%m:%S")."

    4、简述sed常用操作命令,并举例

    • sed [OPTION]... script [input-file]...
      • script:
        • 地址定界编辑命令
      • 常用选项:
        • -n: 不输出模式空间中的内容至屏幕;
        • -e script, --expression=script: 多点编辑;
        • -f /PATH/TO/SED_SCRIPT_FILE
          • 每行一个编辑命令;
        • -r, --regexp-extended: 支持使用扩展正则表达式;
        • -i[SUFFIX], --in-place[=SUFFIX]: 直接编辑原文件;
      • 地址定界:
        • (1)空地址: 对全文进行处理;
        • (2)单地址:
          • :指定行;

          • /pattern/: 被此模式匹配到的每一行;
        • (3)地址范围
          • ,#:

          • ,+#:

          • , /pat1/, /pat2/

        • (4)步进: ~
          • 1~2: 所有奇数行
          • 2~2: 所有偶数行
      • 编辑命令:
        • d: 删除
        • p: 显示模式空间中的内容;
        • a \text: 在行后面追加文本"test",支持使用\n实现多行追加;
        • i \text: 在行前面追加文本"test",支持使用\n实现多行追加;
        • c \text: 把匹配到的行替换为此处指定的文本"test";
        • w /PATH/TO/SOMEFILE: 保存模式空间匹配到的行至指定的文件中;
        • r /PATH/FROM/SOMEFILE: 读取指定文件的内容至当前文件被模式匹配到的行后面;实现文件合并;
        • =: 为模式匹配到的行打印行号;
        • !: 条件取反;
          • 地址定界!编辑命令;
        • s///: 查找替换,其分隔符可自行指定,常用的有s@@@,s###等;
          • 替换标记:
            • g:全局替换
            • w:/PATH/TO/SOMFILE: 将替换成功的结果保存至指定文件中
            • p:显示替换成功的行
      • 高级编辑命令:
        • h: 把模式空间中的内容覆盖至保持空间中
        • H: 把模式空间中的内容追加至保持空间中
        • g: 把保持空间中的内容覆盖至模式空间中
        • G: 把保持空间中的内容追加至模式空间中
        • x: 把模式空间中的内容与保持空间中的内容互换
        • n: 覆盖读取匹配到的行的下一行至模式空间中
        • N: 追加读取匹配到的行的下一行至模式空间中
        • d: 删除模式空间中的行
        • D: 删除多行模式空间中的所有行

    相关文章

      网友评论

          本文标题:第五周(rpm和yum等相关内容)

          本文链接:https://www.haomeiwen.com/subject/bimegftx.html