linux系统命令的收集 第七部分

软件包操作(2个命令)

本文介绍RHEL7的软件包管理

 

RHEL7下主要有RPM和YUM这两种包管理:

 1.rpm ( RPM Package Manager rpm包管理器)
 【命令作用】管理rpm包 (安装时无法自动解决软件包的依赖关系)
 【命令语法】rpm(选项)(参数)
 【常用选项】
  -i<rpm软件包> 指定要安装的软件包
  -v 显示安装过程
  -h软件安装时列出标记
  -e<rpm软件包> 指定要卸载的软件包
  -q 查询软件包是否安装
  -a 查询需所有的软件包
  -i 显示软件包相关信息
  -l 显示软件包的文件列表
 【参数说明】rpm软件包名(安装,卸载要接全名)
 【命令示例】
  安装软件包httpd-2.2.15-59.el6.x86_64.rpm
  rpm -ivh httpd-2.2.15-59.el6.x86_64.rpm
  卸载软件包httpd-2.2.15-59.el6.x86_64.rpm
  rpm -evh httpd-2.2.15-59.el6.x86_64.rpm
  查询httpd是否安装
  rpm -q  httpd
  rpm -qa httpd
  查看httpd安装内容
  rpm -ql httpd

  • YUM使用简单但需要联网,YUM会去网上的YUM包源去获取所需要的软件包并获取该包依赖的其他包
  • RPM的需要的操作精度比较细,需要我们做的事情比较多,需要自己安装依赖

 

RPM

金沙官网线上 1

下面会以虚拟机进行RMP包管理

命令:rpm
作用:安装、卸载、升级和管理软件
语法:rpm [选项]
准备实验环境:挂载光驱到/mnt目录

[root@administrator ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@administrator ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
/dev/mapper/rhel-root  49746196 3297648  46448548   7% /
devtmpfs                1001236       0   1001236   0% /dev
tmpfs                   1016776     156   1016620   1% /dev/shm
tmpfs                   1016776    9156   1007620   1% /run
tmpfs                   1016776       0   1016776   0% /sys/fs/cgroup
/dev/sda1                508588  143104    365484  29% /boot
tmpfs                    203356       4    203352   1% /run/user/42
tmpfs                    203356       8    203348   1% /run/user/1000
/dev/sr0                3947824 3947824         0 100% /mnt

 2.yum (Yellowdog Updater Modified 黄色狗的更新修改)
 【命令作用】管理rpm包 (安装时会自动解决依赖关系)
 【命令语法】yum [选项](yum参数)(参数)
 【常用yum参数】
   install  安装软件包
金沙官网线上,   remove 卸载软件包
   list 显示软件包信息
   update  更新软件包
   repolist  生成已配置yum仓库列表
 【常用选项】
  -y 对所有问题都回答yes
 【参数说明】rpm软件包名
 【命令示例】
  安装软件包httpd-2.2.15-59.el6.x86_64.rpm
  yum -y  install  httpd
  卸载软件包httpd-2.2.15-59.el6.x86_64.rpm
  yum -y remove httpd

安装软件

安装zsh-5.0.2-14.el7.x86_64.rpm

金沙官网线上 2
| 选项 | 说明 |
| :------------- | :------------- |
| -i | 安装软件包 |
| --nodeps | 不验证软件包依赖 |
| -v | 输出详细信息 |
| -h | 软件包安装的时候列出哈希标记 |

[root@administrator ~]# rpm -ivh /mnt/Packages/zsh-5.0.2-14.el7.x86_64.rpm
warning: /mnt/Packages/zsh-5.0.2-14.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zsh-5.0.2-14.el7                 ################################# [100%]

查看安装好的zsh(shell):

[root@administrator ~]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
/bin/zsh

rpm支持网络安装:

[root@administrator ~]# rpm -ivh http://mirrors.kernel.org/centos/7/cloud/x86_64/openstack-kilo/centos-release-openstack-kilo-1-2.el7.noarch.rpm

 

查询软件

使用rpm查询软件时下列选项要和-q选项组合使用

通过rpm命令查询一个rpm包是否安装了,也是要通过rpm 数据库来完成的
所以我们要经常用下面的两个命令来初始化rpm 数据库

[root@administrator ~]# rpm --initdb 
[root@administrator ~]# rpm --rebuilddb 

注:这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题

选项 说明
-a 查询所有已安装的软件包
-p 查询软件包(通常用来看下还未安装的软件包)
-l 显示软件包中的文件列表
-f 查询文件所属软件包
-d 查询软件包的文档所在位置
-c 显示被标注为配置文件的文件列表

通常可以配合管道 | more 来使用,使得结果更易读

[root@administrator ~]# rpm -qa zsh
zsh-5.0.2-14.el7.x86_64
[root@administrator ~]# rpm -ivh /mnt/Packages/zsh-5.0.2-14.el7.x86_64.rpm
warning: /mnt/Packages/zsh-5.0.2-14.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                          ################################# [100%]
    package zsh-5.0.2-14.el7.x86_64 is already installed
[root@administrator ~]# which zsh
/usr/bin/zsh
[root@administrator ~]# rpm -qf /usr/bin/zsh 
zsh-5.0.2-14.el7.x86_64
[root@administrator ~]# rpm -qf `which zsh`
zsh-5.0.2-14.el7.x86_64

如果使用rpm安装因为依赖没有安装而出错,可以使用下面的命令查询依赖,然后安装需要的依赖再执行该包的安装

[root@administrator ~]# rpm -qpR /mnt/Packages/zsh-5.0.2-14.el7.x86_64.rpm 

 

升级软件

选项 说明
-U 升级软件
加上--oldpackage则是降级软件
[root@administrator ~]# rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm 
warning: /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                          ################################# [100%]
    package lrzsz-0.12.20-36.el7.x86_64 is already installed

 上一部分 压缩和归档操作

卸载软件

选项 说明
-e 卸载软件
[root@administrator ~]# rpm -evh zsh
Preparing...                          ################################# [100%]
Cleaning up / removing...
   1:zsh-5.0.2-14.el7                 ################################# [100%]

如果有依赖关系,您也可以用--nodeps 忽略依赖的检查来删除
但尽可能不要这么做,最好用软件包管理器systerm-config-packages来删除或者添加软件
使用chsh -l查看发现zsh已经被卸载掉

[root@administrator ~]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

从软件包抽取文件

当在linux中,修复系统时明确知道是丢了哪个文件,但是在此时强制安装丢失文件相应的rpm包时又会出现很多依赖关系提示。
我们只需要这个丢掉的文件而已,可以找到丢失文件的相关rpm包,然后用cpio及rpm2cpio组合,把文件提取出来,然后再复制到丢失文件的相应位置

命令:rpm2cpio
作用:将rpm包中的文件抽取成cpio文件
语法:rpm2cpio rpm包文件名

命令:cpio
作用:cpio命令是通过 重定向 的方式将文件进行打包备份,还原恢复的工具。它可以解压以“.cpio”或者“.tar”结尾的文件
语法:cpio [选项] 文件名或者设备名 路径

选项 说明
-o 将文件拷贝打包成文件或者将文件输出到设备上
-i 将打包文件解压或者将设备上的备份还原到系统
-t 查看cpio打包的文件内容或者输出到设备上的文件内容
-v 显示打包过程中的文件名称
-d 在cpio还原文件的过程中,自动的建立相应的目录
-c 一种较新的存储方式
-B 让默认的Blocks可以增大到5120 bytes,默认Blocks为512 bytes
这样做的好处是可以加快存取速度

将/etc下的所有普通文件都备份到宿主目录下的etc.cpio文件中

[root@administrator ~]# find /etc/ -type f | cpio -ocvB > etc.cpio 

源代码安装

.src.rpm结尾的文件,这些文件是由软件的源代码包装而成的
用户要安装这类RPM软件包,必须使用命令:
rpm --recompile vim-4.6-4.src.rpm #这个命令会把源代码解包并编译、安装它,如果用户使用命令
rpm --rebuild vim-4.6-4.src.rpm  #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm 的RPM软件包

YUM

基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系
并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
基于C/S架构

本文由金沙官网线上发布于操作系统,转载请注明出处:linux系统命令的收集 第七部分

您可能还会对下面的文章感兴趣: