本系列文章为尚硅谷武晟然老师的Linux入门教程学习笔记,前面的系列文章链接如下
Linux入门教程:P3->Linux文件系统
Linux入门教程:P4->Vim编辑器
Linux入门教程:P5->网络配置
Linux入门教程:P6->系统管理
Linux入门教程:P7->Shell介绍
Linux入门教程:P8->文件目录类
Linux入门教程:P9->时间日期类
Linux入门教程:P10->用户权限类
Linux入门教程:P11->文件查找类
Linux入门教程:P12->压缩解压类
Linux入门教程:P13->磁盘管理类
Linux入门教程:P14->进程管理类
不同系统的软件管理
①Windows可以在网上下载软件安装包进行安装。如果要更新的话,往往就是这些软件自己提供的在线更新。如果要卸载的话,统一到系统的控制面板里边去做相应的软件卸载。
②Linux对软件的管理比较统一,有自己的软件包管理工具,把所有软件的打包、安装、更新、卸载等操作全部统一管理起来。
RPM
概述: RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe。是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
RPM包的名称格式: Apache-1.3.23-11.i386.rpm
----apache
软件名称
----1.3.23-11
软件的版本号,主版本和此版本
----i386
是软件所运行的硬件平台,Intel 32位处理器的统称
----rpm
文件扩展名,代表RPM包
rpm -qa
(功能描述:查询所安装的所有 rpm 软件包)q
代表query,a
代表all。-i
:i代表information,可以展示出rpm软件包的详细信息示例
执行命令
rmp -qa
,可以看到安装了许多rmp包。
我们可以看到在系统中安装了Firefox浏览器
于是使用rpm -qa | grep firefox
命令进行筛选,可以看到firefox安装包如下。
这里的信息太少了,可以使用rpm -qi firefox
命令查看详细信息。
rpm -e RPM软件包
rpm -e --nodeps 软件包
-e
:卸载软件包--nodeps
:这里的deps代表dependence,即卸载软件时不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。示例
使用命令
rpm -e firefox
卸载掉火狐浏览器。这里有一些警告,指有一些特定的配置文件、语言相关的文件没有找到,这个没影响。
现在再去虚拟机里面看,可以发现没有firefox浏览器了。
-i
:install,安装-v
:- -verbose,显示详细信息-h
:- -hash,进度条--nodeps
:安装前不检查依赖示例
问题: 安装操作需要RPM安装包的全名,所以必须把那个安装文件要提供进来。这里面就涉及到一个问题:我们现在要安装火狐的话,有对应的安装文件吗?
答: 有的。因为当前这个系统安装好后,Firefox就自动安装好了,很显然这个安装文件在安装光盘里边。我们通过lsblk
可以看到光盘挂载在/run/media/root/CentOS 7 x86_64
下面。
我们进入挂载目录,可以看到里面有个Packages文件夹。我们进入,然后使用ls | grep firefox
可以看到有firefox包。
于是使用rpm -ivh firefox-68.10.0-1.el7.centos.x86_64.rpm
安装火狐浏览器。
最后可以看到又有firefox图标了。
yum诞生的背景
前面我们介绍了Linux中软件包管理工具RPM的使用过程,我们会发现一个很大的问题:在安装过程中,某一个软件可能有依赖关系。比如我们想要安装的A软件涉及到了对B软件和对C软件的依赖,而B和C又涉及对其他软件的依赖。所以我们会发现这就很麻烦,需要将依赖一层一层地安装好。所以我们希望有一个统一的一键安装方式,我们想要下载某一个软件的时候,直接按钮一点,不管有什么依赖关系直接全部下下来就完事了。在Linux命令行里边同样有类似的工具,可以一键化的进行软件的下载以及配置依赖关系,这就是大名鼎鼎的yum。
yum
YUM(全称为 Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装。可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装,如下图所示。
①基本语法
yum [选项] [参数]
②选项说明
-y
对所有提问都回答“yes”
③参数说明
install
安装 rpm 软件包
update
更新 rpm 软件包
check-update
检查是否有可用的更新 rpm 软件包
remove
删除指定的 rpm 软件包
list
显示软件包信息
clean
清理 yum 过期的缓存
deplist
显示 yum 软件包的所有依赖关系
示例
通过
yum list | grep firefox
可以看到firefox安装包情况。第一个是我们已经安装好的版本,下面两个是检测到可用于更新的版本。
我们可以把老版本进行卸载,然后再安装一个新版本。使用yum -y remove firefox
卸载掉firefox,然后通过yum list
和rpm -q
再次查看firefox安装包的情况,可以看到只有可以更新的安装包了。
使用yum -y install firefox
安装火狐浏览器
可以看到已经是最新的版本了
更换yum源
默认情况下官方的镜像网站网速可能会比较慢,我们可以把它指定成国内的源,如阿里云、网易对应的镜像服务器。这时我们需要修改
/etc/yum.repos.d/
目录下的repos
文件。我们使用less命令查看该文件:
可以看到:
①默认的源地址
②我们可能会想到默认源网站连接起来会比较慢,它是在国外的,但是前面我们看到整个下载安装过程其实是非常快的。这是因为前面有一行注释,当前系统判断当前机器的IP地址是在哪个位置,然后它就会直接在地理上选择一个距离我们最近的一个镜像服务器,然后去进行更新。我们查看刚才的安装过程,可以看到使用的实际上是阿里云的源。
手动指定源:
①安装wget,用来从指定的URL下载文件
yum install wget
②在/etc/yum.repos.d/
目录下,备份默认的 repos 文件
cp CentOS-Base.repo CentOS-Base.repo.backup
③下载网易163或者是aliyun的repos文件,任选其一。
wget http://mirrors.aliyun.com/repo/Centos-7.repo
//阿里云
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
//网易163
我们这里下载阿里云的repos文件,可以看到下载成功了,/etc/yum.repos.d/
目录下有这个文件了。
④使用下载好的repos文件替换默认的repos文件。例如用Centos-7.repo替换CentOS-Base.repo
mv Centos-7.repo CentOS-Base.repo
⑤清理旧缓存数据,缓存新数据
yum clean all
yum makecache
yum makecache 就是把服务器的包信息下载到本地电脑缓存起来