7.1-7.4 软件包安装和卸载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.1-7.4 软件包安装和卸载相关的知识,希望对你有一定的参考价值。

7.1 软件包安装和卸载

7.1 安装软件包的三种方法

  • rpm工具

    rpm(Redhat Package Manager)RPM软件包管理器,是以一种数据库记录的方式来将我们所需要的套件安装到Linux主机的一套管理程序。rpm包是预先在Linux机器上编译好并打包好的文件,安装起来非常快捷。但是有一个缺点:安装环境必须与编译时的一致或相当;包与包之间存在着相互依赖的情况,安装或卸载包时需要先把依赖的包安装/卸载,如果依赖的包时系统所必须的,那就不能卸载这个包。

  • yum工具

    yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

  • 源码包

    Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制码并进行安装。其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境;缺点是难度较大。


7.2-7.3 rpm工具

rpm包介绍(准备工作)

挂载系统安装盘镜像(挂载到一个空目录,此处/mnt/目录未使用,所以直接挂载到/mnt/目录下)

[[email protected] ~]# df -h文件系统        容量  已用  可用 已用% 挂载点/dev/sda3        28G  1.3G   27G    5% /
devtmpfs        483M     0  483M    0% /devtmpfs           493M     0  493M    0% /dev/shmtmpfs           493M  6.8M  486M    2% /runtmpfs           493M     0  493M    0% /sys/fs/cgroup/dev/sda1       197M  109M   88M   56% /boottmpfs            99M     0   99M    0% /run/user/0[[email protected] ~]# mount /dev/cdrom /mnt/mount: /dev/sr0 写保护,将以只读方式挂载[[email protected] mnt]# lsCentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[[email protected] Packages]# lsyum-plugin-changelog-1.1.31-40.el7.noarch.rpm
yum-plugin-fastestmirror-1.1.31-40.el7.noarch.rpm
yum-plugin-tmprepo-1.1.31-40.el7.noarch.rpm
yum-plugin-verify-1.1.31-40.el7.noarch.rpm
yum-plugin-versionlock-1.1.31-40.el7.noarch.rpm……(rpm包格式:包名、版本号、发布版本号、平台)

rpm包存放在Packages该文件下!

rpm工具用法

安装rpm包

  • 语法: rpm [options] [参数]

  • Options:

    -i:=install,安装

    -v:可视化

    -h:显示安装进度

    在安装一个rpm包时常用附带选项: --force:强制安装

    --nodeps:=no dependent 无依赖安装(忽视与其他包之间的依赖关系)

实例

  1. 安装一个rpm包(无依赖包)

[[email protected] Packages]# rpm -ivh x86info-1.30-6.el7.x86_64.rpm准备中...                          ################################# [100%]正在升级/安装...   1:x86info-1:1.30-6.el7             ################################# [100%]
  1. 安装一个rpm包(有依赖包)

[[email protected] Packages]# rpm -ivh yp-tools-2.14-3.el7.x86_64.rpm错误:依赖检测失败:
	ypbind 被 yp-tools-2.14-3.el7.x86_64 需要## 即,两个包之间存在依赖关系## 解决办法:①:[[email protected] Packages]# rpm -ivh yp-tools-2.14-3.el7.x86_64.rpm yp-tools-2.14-3.el7.x86_64②:[[email protected] Packages]# rpm -ivh --force yp-tools-2.14-3.el7.x86_64.rpm(添加--force或--nodeps选项即可安装)

说明: 安装有依赖关系的包时,可以先安装其所依赖的包再安装目标包(同时安装存在依赖关系的包),或者使用--force或--nodeps选项进行强行安装(不建议使用)。

升级rpm包

  • 语法: rpm [-U] [包名]

[[email protected] Packages]# rpm -Uvh x86info-1.30-6.el7.x86_64.rpm
Preparing...                          ################################# [100%]
	package x86info-1:1.30-6.el7.x86_64 is already installed

说明: 如果升级一个已经安装的最新版本的包,执行该命令后无任何操作。

卸载一个rpm包

  • 语法: rpm [-e] [包名]

[[email protected] Packages]# rpm -e x86info-1.30-6.el7.x86_64.rpmerror: package x86info-1.30-6.el7.x86_64.rpm is not installed
[[email protected] Packages]# rpm -e x86info

注: 卸载时直接跟报名,无需跟该包的信息;当包之间存在依赖关系时也需要先卸载其依赖包。

查询rpm包

查询已安装的包
  • 语法:

    rpm [-q] [包名] 查询指定包

    rpm [-qa] 查询所有已安装包

实例:

[[email protected] Packages]# rpm -q kmod
kmod-20-9.el7.x86_64
#########################################
[[email protected] Packages]# rpm -qa |head -5trousers-0.3.13-1.el7.x86_64
filesystem-3.2-21.el7.x86_64
net-tools-2.0-0.17.20131004git.el7.x86_64
bind-license-9.9.4-37.el7.noarch
fxload-2002_04_11-16.el7.x86_64
查询已安装包的相关信息
  • 语法: rpm [-qi] [包名]

    i=information

[[email protected] Packages]# rpm -qi filesystem
Name        : filesystem
Version     : 3.2
Release     : 21.el7
Architecture: x86_64
Install Date: Mon May 22 01:19:49 2017Group       : System Environment/Base
Size        : 0……
查询某包所安装的文件
  • 语法: rpm [-ql] [包名]

    l=list

[[email protected] Packages]# rpm -ql vim-enhanced/etc/profile.d/vim.csh/etc/profile.d/vim.sh/usr/bin/rvim/usr/bin/vim/usr/bin/vimdiff/usr/bin/vimtutor
查看某文件的安装包
  • 语法: rpm [-qf] [文件绝对路径]

[[email protected] Packages]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-1.el7_3.1.x86_64

即,通过其绝对路径查询到其安装包,当不知道其绝对路径时,使用which命令查询。

反引号命令

反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。即,在命令行上把Linux命令放在反引号中,这个命令会首先被执行,然后将其结果作为为该命令行的一个参数。

[[email protected] Packages]# rpm -qf `which cd`bash-4.2.46-20.el7_2.x86_64

说明: 先执行“which cd”命令,其次将“which cd”的结果作为“rpm -qf”的参数执行该命令。


7.4 yum工具用法

列出所有rpm包

  • 语法: yum list

[[email protected] Packages]# yum list 
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.aliyun.com
 * updates: mirrors.tuna.tsinghua.edu.cn
Installed Packages
NetworkManager-libnm.x86_64                1:1.4.0-12.el7              @anaconda
NetworkManager-team.x86_64                 1:1.4.0-12.el7              @anaconda
zsh.x86_64                                        5.0.2-25.el7_3.1                    updates  
zsh-html.x86_64                                   5.0.2-25.el7_3.1                    updates  
zziplib.i686                                      0.13.62-5.el7                       base     
zziplib.x86_64                                    0.13.62-5.el7                       base   
……Exiting on Broken Pipe

说明: 第一列是包名,第二列是版本号,第三列是库,库所在位置有“@”表示已安装;“updates”表示已安装,有新版本,需要升级;其他的表示可安装但还未安装的rpm包。

  • yum配置文件

[[email protected] Packages]# ls /etc/yum.repos.d/CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Sources.repo  CentOS-fasttrack.repo
CentOS-CR.repo    CentOS-Media.repo      CentOS-Vault.repo
  • 配置文件base的信息

[[email protected] Packages]# cat /etc/yum.repos.d/CentOS-Base.repo# CentOS-Base.repo#……[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7……

说明: 该文件下有rpm包所在库base的镜像地址信息!

搜索rpm包

  • 语法: yum search [关键词]

[[email protected] Packages]# yum search vimFailed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.aliyun.com
 * updates: mirrors.tuna.tsinghua.edu.cn====================================== N/S matched: vim =============================
golang-vim.noarch : Vim plugins for Go
protobuf-vim.x86_64 : Vim syntax highlighting 
vim-minimal.x86_64 : A minimal version of the VIM editor

  Name and summary matches only, use "search all" for everything.

说明: 使用该命令搜索时会列出所有包含‘vim’(关键词)的信息,不精确,为了只搜索相关rpm包,可用如下方法:

[[email protected] Packages]# yum list |grep vim
Failed to set locale, defaulting to C
vim-common.x86_64                          2:7.4.160-1.el7_3.1         @updates vim-enhanced.x86_64                        2:7.4.160-1.el7_3.1         @updates vim-filesystem.x86_64                      2:7.4.160-1.el7_3.1         @updates vim-minimal.x86_64                         2:7.4.160-1.el7             @anaconda

说明: grep表示过滤。

列出rpm包组

  • 语法: yum grouplist

[[email protected] Packages]# yum grouplist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.aliyun.com
 * updates: mirrors.tuna.tsinghua.edu.cn
Available Environment Groups:
   Minimal Install
   Compute Node……Available Groups:
   Compatibility Libraries   Console Internet Tools……Done

安装rpm包

  • 语法: yum install [-y] [包名]

  • 说明: 如果不加‘-y’选项,则会以与用户交互的方式安装。首先是列出需要安装的rpm包,然后会问用户是否需要安装,输入‘y’则安装,输入‘n’则不安装,这样太麻烦,所以直接加上‘-y’选项,省略与用户之间的交互。

安装rpm包组

语法: yum groupinstall [-y] [包的组名] 如果不知道组名,可用yum grouplist查看(注:进行安装时只能用英文名)。

卸载rpm包

  • 语法: yum remove [-y] [包名]

  • 说明: ‘-y’选项同install的用法,需要注意的是,在使用该命令进行卸载时会将目标文件所依赖的所有包同时删除,所以要谨慎使用!

升级rpm包

  • 语法: yum update [-y] [包名]

  • 说明: 如果不加包名,则会升级系统内所有包以及系统本身(慎用,一般只在刚安装完系统时使用)。

yum provides(该命令的作用是通过已知命令名称来搜索其rpm包名。)

用法:

[[email protected] Packages]# yum provides “/*/vim”

说明: 因为该命令位置不确定,所以进行搜索时使用‘*’(通配符)来代表其路径。


以上是关于7.1-7.4 软件包安装和卸载的主要内容,如果未能解决你的问题,请参考以下文章

centos7 怎么卸载软件php

Arch系Linux安装和卸载软件包的方法

安装和卸载软件包

VB仿WINDOWS 卸载程序获取已安装软件列表

安装与卸载软件rpm,yum

Linux学习(十八)软件安装与卸载(一)rpm和yum安装与卸载软件