【图文教程】软件包安装和卸载

it2022-05-05  2.2K+

软件包安装和卸载

1. 安装软件包的三种方法2. rpm包介绍3. rpm工具用法4. yum工具用法5. yum搭建本地仓库6. yum更换国内源7. 安装扩展源epel8. yum下载rpm包9. yum新的下载 rpm 的指令10. 扩展

1. 安装软件包的三种方法

rpm包 yum工具 源码包

2. rpm包介绍

rpm 工具类似于 Windows 的 exe 文件,可以直接进行安装,而且安装路径和文件名一般都是固定好的。在 CentOS 和 Red Hat 下的安装包一般称为 rpm 包。yum 是用 Python 开发的工具,yum 相对于 rpm 于一个优势,就是能自动去安装依赖的包。源码包则需要自己将源码编译成二进制可执行的文件,所以源码包是最麻烦的。

虚拟机的光驱能够正常连接,并且放入一个iso镜像文件

挂载光驱

[root@sc ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 cd 进 /mnt/ 目录就可以看到光驱里的文件

这里的 Packages/ 目录里有很多 rpm 包,我们来看看这些 rpm 包的格式 [root@sc mnt]# cd Packages/ [root@sc Packages]# ls

3. rpm工具用法

rpm -ivh 是安装 rpm 包指令 [root@sc Packages]# rpm -ivh zsh-5.0.2-31.el7.x86_64.rpm 准备中... ################################# [100%] 正在升级/安装... 1:zsh-5.0.2-31.el7 ################################# [100%] [root@sc Packages]# rpm -Uvh 是升级 rpm 包指令 [root@sc Packages]# rpm -Uvh zsh-5.0.2-31.el7.x86_64.rpm 准备中... ################################# [100%] 软件包 zsh-5.0.2-31.el7.x86_64 已经安装 [root@sc Packages]# rpm -e 是卸载 rpm 包指令 [root@sc Packages]# rpm -e zsh [root@sc Packages]# rpm -qa 是查询 rpm 安装过的包 [root@sc Packages]# rpm -qa firewalld-filesystem-0.5.3-5.el7.noarch grub2-common-2.02-0.76.el7.centos.noarch kbd-1.15.5-15.el7.x86_64 kbd-legacy-1.15.5-15.el7.noarch tuned-2.10.0-6.el7.noarch tzdata-2018e-3.el7.noarch 。。。。。 rpm -q “包名”,查询指定包是否安装 [root@sc Packages]# rpm -q gpgme gpgme-1.3.2-5.el7.x86_64 [root@sc Packages]# rpm -qi “包名”,查询指定包信息 [root@sc Packages]# rpm -qi vim-enhanced Name : vim-enhanced Epoch : 2 Version : 7.4.160 Release : 5.el7 Architecture: x86_64 Install Date: 20190323日 星期六 225602秒 Group : Applications/Editors Size : 2296666 License : Vim Signature : RSA/SHA256, 20181112日 星期一 224844, Key ID 24c6a8a7f4a80eb5 Source RPM : vim-7.4.160-5.el7.src.rpm Build Date : 20181031日 星期三 035729秒 Build Host : x86-01.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://www.vim.org/ Summary : A version of the VIM editor which includes recent enhancements Description : VIM (VIsual editor iMproved) is an updated and improved version of the vi editor. Vi was the first real screen-based editor for UNIX, and is still very popular. VIM improves on vi by adding new features: multiple windows, multi-level undo, block highlighting and more. The vim-enhanced package contains a version of VIM with extra, recently introduced features like Python and Perl interpreters. Install the vim-enhanced package if you'd like to use a version of the VIM editor which includes recently added enhancements like interpreters for the Python and Perl scripting languages. You'll also need to install the vim-common package. rpm -ql “包名”,列出包安装的文件 [root@sc 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 [root@sc Packages]# rpm -qf “包名”,根据文件绝对路径查看一个文件是由那个包安装的 [root@sc Packages]# rpm -qf /usr/bin/vim vim-enhanced-7.4.160-5.el7.x86_64 [root@sc Packages]#

4. yum工具用法

yum (全称为 Yellow dogUpdater, Modified) 是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

使用 yum 安装 rpm 包的时候能自动去安装依赖的包,而且只需要写包名即可 [root@sc Packages]# yum install texlive

由上图可见,依赖的包有两百多个,如果使用 rpm 包安装的话得一个个去安装,估计没人也有耐心和时间手动安装两百多个包吧,所以 yum 工具最大的优势就是在这里,能够自动去安装依赖的包。

使用 yum list 命令可以列出可用的 rpm 包 [root@sc Packages]# yum list #列出可以安装的包都有那些

查看 yum 仓库的配置文件,里面有很多核心文件 [root@sc Packages]# ls /etc/yum.repos.d/ CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo [root@sc Packages]# ls /etc/yum.repos.d/CentOS-Base.repo #查看最核心的文件 [root@sc Packages]# cat /etc/yum.repos.d/CentOS-Base.repo

yum search ,搜索 “指令” 跟相关的包 [root@sc Packages]# yum search vim #这个命令搜索比较模糊,会把跟 vim 相关的命令的包都列出来 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.tuna.tsinghua.edu.cn * updates: mirrors.tuna.tsinghua.edu.cn ============================================================================ N/S matched: vim ============================================================================= protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions vim-X11.x86_64 : The VIM version of the vi editor for the X Window System vim-common.x86_64 : The common files needed by any version of the VIM editor vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements vim-filesystem.x86_64 : VIM filesystem layout vim-minimal.x86_64 : A minimal version of the VIM editor 名称和简介匹配 only,使用“search all”试试。 从列出的包里,更精准的搜索跟命令相关的包

使用 yum 工具安装 rpm 包,不想被询问加 -y [root@sc Packages]# yum install -y vim -enhanced #不想被询问加 -y yum grouplist 列出可用的组 [root@sc Packages]# yum grouplist 已加载插件:fastestmirror 没有安装组信息文件 Maybe run: yum groups mark convert (see man yum) Loading mirror speeds from cached hostfile * base: mirrors.zju.edu.cn * extras: mirror.jdcloud.com * updates: mirror.jdcloud.com 可用的环境分组: 最小安装 基础设施服务器 计算节点 文件及打印服务器 基本网页服务器 虚拟化主机 带 GUI 的服务器 GNOME 桌面 KDE Plasma Workspaces 开发及生成工作站 可用组: 传统 UNIX 兼容性 兼容性程序库 图形管理工具 安全性工具 开发工具 控制台互联网工具 智能卡支持 科学记数法支持 系统管理 系统管理工具 完成 [root@sc Packages]# LANG=en #变成英文 [root@sc 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.tuna.tsinghua.edu.cn * extras: mirrors.tuna.tsinghua.edu.cn * updates: mirrors.tuna.tsinghua.edu.cn Available Environment Groups: Minimal Install Compute Node Infrastructure Server File and Print Server Basic Web Server Virtualization Host Server with GUI GNOME Desktop KDE Plasma Workspaces Development and Creative Workstation Available Groups: Compatibility Libraries Console Internet Tools Development Tools Graphical Administration Tools Legacy UNIX Compatibility Scientific Support Security Tools Smart Card Support System Administration Tools System Management Done yum groupinstall 可以安装某个可用组 [root@sc Packages]# yum groupinstall 'Virtualization Host' #安装某个组,如果是一个单词可以不加任何字符,如果全名称中间有空格需要加单引号

yum卸载包 [root@sc Packages]# yum remove vim

yum update 升级指令,后面加包名,如果不加包名,会把系统所有的 rpm 包,包括系统,内核全部升级,这个操作往往是刚安装完系统去操作,如果已经安装了一些服务,搭建了一些环境,就不要随意升级了,可能会出问题 [root@sc Packages]# yum update #后面加包名,不加包名会把系统,内核都升级,很危险!!! 检索某个命令的 rpm 包,例如我要检索 vim 命令的 rpm 包,前提条件是没安装过 vim 这个包,不知道全包名,找两个相同一样的,或者多个相同一样的,那肯定就是包名了 [root@sc Packages]# yum provides "/*/vim" 或者 [root@sc ~]# yum provides */vim #也可以根据指令搜索包名

5. yum搭建本地仓库

讲义 • 挂载镜像到/mnt目录 • cp -r /etc/yum.repos.d /etc/yum.repos.d.bak • rm -f /etc/yum.repos.d/* • vim /etc/yum.repos.d/dvd.repo //内容如下 [dvd] name=install dvd baseurl=file:///mnt enable=1 gpgcheck=0 • yum clean all • yum list

因为 yum 需要联网连接一个资源才能下载、检索 rpm 包,而搭建本地库可以预防在没有网络情况,也可以通过本地库去安装一些包。

配置本地仓库的思路: 1.需要把 centos7 的 iso 镜像加载倒光驱,把光驱挂载到 /mnt 目录下,即可查看; 2.需要把之前电脑的 yum 源仓库配置文件 copy 一份,仓库配置文件在 /etc/yum.repo/ ; 3.把源仓库配置文件删除; 4.新建一个 dvd.repo 仓库的文件,把配置文件写入; 5.使用 yum clear all 清除 yum 源的缓存; 6.之后即可使用本地 yum 源;

准备一个镜像文件挂载到 /mnt 目录下,备份 /etc/yum.repos.d/ 这个目录为 /etc/yum.repos.d.bak [root@sc Packages]# cp -r /etc/yum.repos.d/ /etc/yum.repos.d.bak [root@sc Packages]# 删除 /etc/yum.repos.d/ 目录下的所有文件 [root@sc Packages]# cd /etc/yum.repos.d [root@sc yum.repos.d]# ls CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo CentOS-fasttrack.repo [root@sc yum.repos.d]# rm -fr ./* [root@sc yum.repos.d]# 在 /etc/yum.repos.d/ 目录下创建一个 dvd.repo 文件,在 dvd.repo 文件中写入以下内容 [root@sc yum.repos.d]# vi dvd.repo [dvd] name=install dvd #注释 baseurl=file:///mnt #光驱挂在路径 enable=1 #源是否可用,1表示可用,0表示不可用 gpgcheck=0 #是否检测,0表示不检测 清除之前 yum 仓库中的缓存 [root@sc yum.repos.d]# yum clean all #清除缓存 Failed to set locale, defaulting to C Loaded plugins: fastestmirror Cleaning repos: dvd Other repos take up 138 M of disk space (use --verbose for details) 列出本地仓库的包 [root@sc yum.repos.d]# yum list [root@sc yum.repos.d]# yum list |less #加管道用 less 看一下

实验,尝试安装本地仓库的包 GConf2.x86_64 3.2.6-8.el7 dvd [root@sc yum.repos.d]# yum install GConf2 Failed to set locale, defaulting to C Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package GConf2.x86_64 0:3.2.6-8.el7 will be installed --> Processing Dependency: /usr/bin/killall for package: GConf2-3.2.6-8.el7.x86_64 --> Running transaction check ---> Package psmisc.x86_64 0:22.20-15.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================= Package Arch Version Repository Size ================================================= Installing: GConf2 x86_64 3.2.6-8.el7 dvd 1.0 M Installing for dependencies: psmisc x86_64 22.20-15.el7 dvd 141 k Transaction Summary ================================================= Install 1 Package (+1 Dependent package) Total download size: 1.1 M Installed size: 6.8 M Is this ok [y/d/N]: y Downloading packages: ------------------------------------------------- Total 3.2 MB/s | 1.1 MB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : psmisc-22.20-15.el7.x86_64 1/2 Installing : GConf2-3.2.6-8.el7.x86_64 2/2 Verifying : psmisc-22.20-15.el7.x86_64 1/2 Verifying : GConf2-3.2.6-8.el7.x86_64 2/2 Installed: GConf2.x86_64 0:3.2.6-8.el7 Dependency Installed: psmisc.x86_64 0:22.20-15.el7 Complete!

6. yum更换国内源

CentOS 自带 yum 仓库源网址是国外的网址,所以从国内下载国外网址的 rpm 包有时候会很慢或者无法下载,这时可以更换国内的 yum 仓库源来解决这个问题。

删除 /etc/yum.repos.d 目录下的 dvd.repo 文件(如果没创建过本地源仓库就不用做这一步) [root@sc Packages]# cd /etc/yum.repos.d [root@sc yum.repos.d]# ls dvd.repo [root@sc yum.repos.d]# rm -fr dvd.repo [root@sc yum.repos.d]# ls [root@sc yum.repos.d]# 把之前在 /etc/ 备份的 /yum.repos.d.bak 文件拷贝回来(如果没创建过本地源仓库就不用做这一步) [root@sc yum.repos.d]# cp ../yum.repos.d.bak/* . [root@sc yum.repos.d]# ls CentOS-Base.repo CentOS-Media.repo CentOS-CR.repo CentOS-Sources.repo CentOS-Debuginfo.repo CentOS-Vault.repo CentOS-fasttrack.repo [root@sc yum.repos.d]# [root@sc yum.repos.d]# rm -f CentOS-Base.repo #删除之前的源文件 [root@sc yum.repos.d]# ls CentOS-CR.repo CentOS-Media.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-fasttrack.repo CentOS-Vault.repo 使用 wget 命令或者用 curl 命令下载 163 的源或者 aliyuan,因为上一步我把 CentOS-Base.repo 文件给删掉了,所以只能使用 curl 命令

163国内源 或者 aliyuan:

注意:刚把外国源删除,所以 yum 不了 wget 这个命令 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

注意:只能使用 curl -O 这个命令来安装 yum 源 curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo curl -O http://mirrors.aliyun.com/repo/Centos-7.repo curl -O http://mirrors.aliyun.com/repo/Centos-8.repo

[root@sc yum.repos.d]# curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1572 100 1572 0 0 16618 0 --:--:-- --:--:-- --:--:-- 16723 [root@sc yum.repos.d]# ls CentOS7-Base-163.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo [root@sc yum.repos.d]# vim CentOS7-Base-163.repo

最后可以使用 yum list 查看一下可用的 rpm 包。

[root@sc yum.repos.d]# yum install -y zsh 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 zsh.x86_64.0.5.0.2-31.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ================================================= Package 架构 版本 源 大小 ================================================= 正在安装: zsh x86_64 5.0.2-31.el7 base 2.4 M 事务概要 ================================================= 安装 1 软件包 总下载量:2.4 M 安装大小:5.6 M Downloading packages: zsh-5.0.2-31.el7.x86_64.rpm | 2.4 MB 00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : zsh-5.0.2-31.el7.x86_64 1/1 验证中 : zsh-5.0.2-31.el7.x86_64 1/1 已安装: zsh.x86_64 0:5.0.2-31.el7 完毕! 安装 wget 命令 [root@sc yum.repos.d]# yum install -y wget 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 wget.x86_64.0.1.14-18.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ================================================= Package 架构 版本 源 大小 ================================================= 正在安装: wget x86_64 1.14-18.el7 base 547 k 事务概要 ================================================= 安装 1 软件包 总下载量:547 k 安装大小:2.0 M Downloading packages: wget-1.14-18.el7.x86_64.rpm | 547 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : wget-1.14-18.el7.x86_64 1/1 验证中 : wget-1.14-18.el7.x86_64 1/1 已安装: wget.x86_64 0:1.14-18.el7 完毕!

7. 安装扩展源epel

因为仅有一个 163 的基础 yum 源,所以可能会有一些 rpm 包是仓库里没有的,需要安装扩展源来下载一些仓库里没有的 rpm 包。

安装 epel-release 扩展源 [root@sc yum.repos.d]# yum install -y epel-release 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 epel-release.noarch.0.7-11 将被 安装 --> 解决依赖关系完成 依赖关系解决 =========================================================================================================================================================================== Package 架构 版本 源 大小 =========================================================================================================================================================================== 正在安装: epel-release noarch 7-11 extras 15 k 事务概要 =========================================================================================================================================================================== 安装 1 软件包 总下载量:15 k 安装大小:24 k Downloading packages: epel-release-7-11.noarch.rpm | 15 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : epel-release-7-11.noarch 1/1 验证中 : epel-release-7-11.noarch 1/1 已安装: epel-release.noarch 0:7-11 完毕! [root@sc yum.repos.d]# ls #现在有 9 个文件了 CentOS7-Base-163.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo epel-testing.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo epel.repo [root@sc yum.repos.d]# cat epel.repo [epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-debuginfo] name=Extra Packages for Enterprise Linux 7 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux 7 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 使用 yum list 列出可用的 rpm 包,会发现包增加了很多,可以使用 grep 过滤一下看得比较直观

8. yum下载rpm包

因为本地 yum 仓库的 rpm 包有限,所以有很多 rpm 包需要在网络上下载。但是我希望把 rpm 包下载到本地,下一次再使用就不需要到网络上下载了,所以我们需要用 yum 下载 rpm 包到本地,下载 rpm 包时要确保这个包没有下载过,不然系统就会提示已经下载过了

查看下载之后,存放 rpm 包的路径

ls /var/cache/yum/x86_64/7/base/packages/

下载 rpm 包时可以通过 --downloaddir 指定 rpm 的存放路径,例如我放在 tmp 目录下

yum install zsh --downloadonly --downloaddir=/tmp/

如果要下载的 rpm 包已经安装了,会出现以下提示

如果需要下载已经安装了的 rpm 包可以使用 reinstall 命令

yum reinstall vim-enhanced --downloadonly --downloaddir=/tmp/

9. yum新的下载 rpm 的指令

在生产环境当中,有的时候如果碰到像银行这种只有内网,没有外网的情况,那运维人员需要先下载好包到 U 盘里去,再安装到服务器当中。

安装 yum-utils 插件 [root@sc ~]# yum install -y yum-utils 使用命令 yumdownloader 来下载 rpm 包到本地

如果在官网上下载了一个 rpm 包,下载到 linux 机器上了,如果要安装用 rpm -ivh 这个命令,也可以用 yum 指令安装

这样做的好处是:如果下载的包有其他依赖的包,yum 可以直接去源仓库自动下载其他 rpm 包

[root@sc tmp]# yum localinstall zsh-5.0.2-31.el7.x86_64.rpm

10. 扩展

yum保留已经安装过的包 http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml搭建局域网yum源 https://blog.csdn.net/miouqi/article/details/73159297搭建一个局域网http的yum源 http://blog.lishiming.net/?p=500

最新回复(0)