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

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等相关内容))