linux程序包管理

对第五周学习的内容进行总结

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

rpm命令

rpm命令用来手动安装rpm格式的程序包,使用格式为

  • rpm [option] path/to/rpmfile
  1. -i安装选项
  • 使用格式rpm -i[installopition] path/to/rpmfile
  • -h选项 : 使用#来显示安装进度
  • -v选项 : 显示安装过程
  • -vv选项 : 显示更详细的安装过程比-v更详细,按需求使用
  • –test选项 : 不进行实际安装操作,而是进行安装环境的测试,可以查看安装是否可以成功
  • –nodeps选项 : 忽略依赖关系,这样即使安装成功,也可能由于依赖关系造成运行问题
  • –replacepkgs选项 : 覆盖安装
  • –force选项 : 强制安装
  • 对于新安装程序包,常用的操作是rpm -ivh path/to/rpmfile
  1. 升级选项
  • -U : 升级安装或全新安装
  • -F : 升级安装
  • 同安装选项一样,常用组合有-Uvh -Fvh
  • 同安装选项一样,也可以使用–test –nodeps选项
  • –oldpackage选项 : 降级安装旧版本程序包 rpm -U –oldpackage path/to/rpmfile
  1. 卸载
  • -e : 卸载已安装的rpm程序,使用 rpm -e packagename
  • 使用-e进行卸载时也可以使用–test –nodeps选项
  • –allmatches选项 : 卸载所有匹配的安装,例如一个rpm程序的多个版本
  • 对于卸载,需要注意的是如果程序包的配置文件在安装后被修改过,则卸载时并不会删除这些文件,而是将它们重命名(加后缀 .rpmsave)
  1. 查询
  • 使用格式rpm -q[queryoption] [packagename] [file]
  • 直接使用rpm -q packagename… : 查询某程序包是否安装,包名可以是多个
  • -i选项 : info显示程序包简要信息 rpm -qi packagename
  • -a选项 : 显示已安装的程序包列表 rpm -qa
  • -f选项 : 后跟一个文件,查询此文件是由哪个程序包生成的 rpm -qf filename
  • -p选项 : 查询某个未安装的程序包,可与i选项连用 rpm -qpi packagename 查询rpm仓库中指定的未安装程序包的简要信息
  • -l选项 : 显示某个程序包生成的文件列表 rpm -ql packagename
  • -c选项 : 显示某程序包生成的配置文件 rpm -qc packagename
  • -d选项 : 显示某程序包生成的帮助文件 rpm -qd packagename
  • –provides选项 : 显示程序包提供的capabilities
  • –requires选项 : 显示程序包所依赖的capabilities
  • –scripts选项 : 查询程序包安装或卸载时执行的脚本,这些脚本可以分为以下4类:
    • preinstall : 程序包安装之前执行的脚本
    • postinstall : 程序包安装完成之后执行的脚本
    • preuninstall : 程序包卸载之前执行的脚本
    • postuninstall : 程序包卸载之后执行的脚本
  1. 校验
  • rpm -V packagename : 验证程序包安装之后生成的文件是否发生了改变
  • 程序包合法性验证
    • 先导入验证密匙文件 rpm –import path/to/key-file
    • 再使用命令验证程序包 rpm -K path/to/packagefile
  1. 创建rpm包管理数据库,创建的数据库文件保存路径为/var/lib/rpm下
  • –initdb : 初始化数据库,当rpm包管理数据库不存在时新建它
  • –rebuilddb : 重建数据库,无论之前数据库是否存在
  • –dbpath DIRECTORY : 可以指明建立的数据库文件保存路径,即改变默认的/var/lib/rpm,例如 rpm –rebuilddb –dbpath /var/rpmdb

yum命令

yum命令可以更智能的管理和安装rpm程序包,它可以自动处理程序包之前的依赖关系,使用起来更加方便。

  1. yum的配置文件
  • 全局配置文件/etc/yum.conf

  • 各repository的配置文件
    文件为/etc/yum.d/*.repo

  1. yum命令的使用
  • yum install package1 [package2]… 从仓库源安装安装程序包
    根据配置文件的默认设置,如果某程序包存在多个版本,可能会默认安装最新的版本,如果需要安装指定版本需要指明package的版本
  • -y选项 安装卸载时可以使用该选项,例如yum install -y packagename 安装时就不需要在交互时手动回答yes了
  • –disablerepo= 安装时禁用某repository
  • –enablerepo= 安装时启用某repository
  • –nogpgcheck 安装时禁止gpgkey校验
  • yum reinstall package1 [package2]… 重新安装程序包(可以覆盖安装)
  • yum update package1 [package2]… 升级安装程序包
  • yum downgrade package1 [package2]… 降级安装程序包
  • yum check-update 检查有哪些升级程序包可用
  • yum {remove | erase} package1 [package2]… 卸载程序包,卸载时会将依赖于指定要卸载的程序包的相关程序包也卸载
  • yum localinstall /path/to/rpmfile … 安装本地的程序包文件,安装时也会智能判断依赖关系
  • yum localupdate /path/to/rpmfile … 升级安装本地的程序包文件
  • yum list [all|available|installed|updates|extras|obsoletes] [glob_exp1]… 查看yum仓库列表,按需求使用选项和glob表达式
  • yum grouplist [hidden] [groupwildcard] 显示包组列表,按需使用选项(如是否显示隐藏和使用组通配符等)
  • yum provides|whatprovides feature1 [feature2]… 查看指定的特性(可以是个文件)是由哪个程序包提供的
  • yum deplist package1 [package2]… 查看指定程序包依赖的capabilities
  • yum info package1 … 显示包简要信息
  • yum groupinfo group1 … 显示包组的简要信息
  • yum groupinstall group1 … 安装包组
  • yum groupupdate group1 … 升级安装包组
  • yum groupremove group1 … 卸载包组
  • yum repolist [all|enabled|disabled] 显示yum仓库列表
  • yum clean [all|packages|metadata|expire-cache|rpmdb|plugins] 清楚yum缓存数据
  • yum makecache 手动创建yum缓存

CentOS下自建yum仓库,分别为网络源和本地源

通过vim命令创建repo文件
网络yum源

本地yum源

查看所有yum源验证效果,可以看到上面添加的2个yum源已经成功

简述at和crontab命令

at命令

at命令用于设置一次性的任务计划,其只执行一次就结束。

at命令是由atd服务提供的:

  • CentOS6可以使用 service atd start 来启动该服务
  • CentOS7可以使用 systemctl start atd.service 来启动该服务
  1. 命令使用格式 : at [option] TIME

  • -l选项 : 也可以使用atq,效果等同,都是显示所有当前用户的at任务列表
  • -d选项 : 也可以使用atrm,效果等同,都是删除一个at任务列表中的at任务
  • -c选项 : 打印任务内容到标准输出
  1. TIME的格式
  • HH:MM [date] : 其中的date可以是具体年月日(例如2017-12-31),也可以是英文表示的日子(例如December 31),甚至时间上也可以简化表示(明天下午2点:2pm tomorrow)
  • HH:MM + #(minutes|hours|days|weeks) : 某时刻加一个相对时间表示法(例如2pm + 3days三天后的下午2点)
  1. 实例

crontab命令

crontab可以设置周期性任务计划。它是由crond服务来实现的。

  1. 系统cron任务
  • 它是通过编辑配置文件/etc/crontab来实现的

  • 时间表示的4个方式
    • 时间位上的*表示每个有效的取值

    • 时间位上出现*/# 表示相应的位上每#个间隔一次

    • 时间位上#-# 表示连续时间

    • 时间位上#,# 表示离散的时间点

  • command执行的结果,默认会以邮件的形式发送给用户,如果不想接收邮件,可以使用输出重定向command &> /dev/null
  1. 用户cron任务
  • 用户的cron任务配置文件: /var/spool/cron/路径下与用户同名的文件
  • 使用crontab命令来编辑用户cron任务
    • crontab -e : 直接进入编辑文件
    • crontab -l : 列出已经定义的所有任务
    • crontab -r : 清空列表中的所有任务

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

sed是一种行编辑器,它可以使用正则表达式进行模式匹配。它在处理文本时,会逐行进行处理,先将当前处理的行存储在一个临时缓冲区“模式空间”(pattern space)中,接着用sed命令进行处理,处理完成后,默认将结果送至标准输出,然后在继续处理下一行,直至文本的末尾。默认操作下sed不会改变文件的内容,如果想保存sed处理后的结果,可以使用输出重定向。

 

sed.png
  1. 命令格式
    sed [options] ‘command’ file(s)
    sed [options] -f scriptfile file(s)
  2. 参数
  • -e script1 -e script2 : -e选项可以指定多条命令执行
  • -f scriptfile : -f选项可以从文件中读取命令执行操作,同样可以指定多个文件处理
  • -n选项 : 仅显示sed命令处理后的结果
  • -r选项 : 支持扩展的正则表达式
  • -i选项 : 直接修改源文件
  1. sed命令

关于n, N这两个命令的执行方式是容易搞错的地方,可以参考下面的图示

 

sed_n1.png

 

sed_n2.png

 

sedN2.png
  1. sed处理文本示例

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:/90765

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达注册  万达招商  万达娱乐直属  华宇招商  万达娱乐开户  万达注册  万达娱乐开户  万达招商QQ  万达开户  万达娱乐直属