Redhat系列
初体验软件包和依赖关系
本篇软件安装学习是针对RedHat一族的linux发行版
软件包
在windows下安装软件一般使用“安装程序”
一般是以.exe结尾的可执行程序,双击即可执行
一般也会把软件安装到Program Files中
CentOs下也有类似的程序,单不称之为‘安装程序’
称之为 “软件包” ,英语是Package
一个软件包其实是软件的所有文件的压缩包
是二进制形式的,包含了安装软件的所有指令
在Redhad一族中,软件包的后缀名为.rpm
rpm是Red Hat Package Manager的缩写,表示红帽软件包管理器
centos作为Redhat一员,也是用.rpm的软件包
像是Ubunti,Debian等是.deb后缀
那么思考一下.rpm格式的软件包和windows下的.exe的安装程序类似吗?
确实很像,但是其实他们的运行方式是不同的
软件包管理包括了 依赖关系 的管理
软件包不需要我们通过搜索引擎找到并下载
几乎所有的.rpm软件包存放在相同的地方,称之为软件仓库(repository)
依赖关系
通常来说,很少有一个软件可以单独运行在Linux上运行
也就是说它不依赖于其他程序
一个软件经常需要使用其他程序或其他程序的片段(称之为库)
一个软件依赖其他程序,这就是依赖关系
比如说,Linux下类似Photoshop的软件GIMP,它是不能单独运行的
GIMP的正常运作需要调用图片读取的库(例如读取一个JPG图片)
往往依赖关系还有下层依赖关系,环环相扣
Redhat的包管理系统非常智能,会为你自动打理依赖
软件仓库
Linux选择一个集中存放软件的地方,这一优势得益于他的开源性
Linux的软件基本都是开源自由的,任何人都可以分发、传播软件
只要遵守一定软件协议,把这些软件这集中存放在某个地方是可行的
这个公共库,为大家提供软件使用
软件仓库的概念
但是提出个疑问?加入全球的Linux用户都到同一个地方去下载软件,那么存放这个软件的那个服务器不就死机了吗?
所以,其实软件仓库不只是存放在一台服务器上
全球有很多个软件仓库(也就是有很多服务器)
大部分的软件仓库里的软件都是一样的,只不过是拷贝而已
有一些特别的软件仓库,会存放其他软件仓库没有的软件
所以一般建议用户使用离自己所在地较近的软件仓库的服务器
管理软件仓库
用默认的官方版本没有太大坏处,但是有时候会卡
所以我们要学习如何切换软件仓库
Centos系统使用的软件仓库的列表是记录在一个文件中
要编辑的那个包含软件仓库列表的文件是
/etc/yum.repos.d/CentOs-Base.repo
这个文件是系统文件,只能被root用户修改


根据不同的分类对应不同的仓库地址
【base】是基本的
【update】升级的
等等
那么我们会问,我怎么知道其他软件仓库的服务器地址呢?
切换CentOS的软件源
CentOs官方的源列表
网址是https://www.centos.org/download/mirrors/
有时候CentOS默认的yum源不一定是国内镜像源,导致yum在线安装及更新速度不是很理想。这时候就需要将yum源设置为国内镜像站点,国内主要开源的开源镜像站点就应该是网易和阿里云了。
详细可参考 link
修改CentOs默认yum源为mirrors.163.com
1.首先备份系统自带yum源配置文件
[root@zhao-laptop ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2.下载阿里云的yum源配置文件到/etc/yum.repos.d/
CentOS7
[root@zhao-laptop ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3.运行yum makecache生成缓存
[root@zhao-laptop ~]# yum makecache
此时查看,/etc/yum.repos.d/CentOS-Base.repo,已经更改成我们的aliyun了

可以随自己切换为华为,网易,清华大学的yum源,都是可以的
小结
package
package:包的意思,是软件的二进制安装包
类似windows中软件的安装程序
dependency
dependency:依赖的意思
一个软件包可能需要其他的软件包作为运行的基础
这就是一种依赖关系
repository
repository:软件仓库
就是存放软件的服务器
我们从这些服务器上下载软件
包管理工具
在CentOS中,我们可以使用图形界面的软甲包管理

也可以使用终端管理软件包
终端的软件包管理命令一般是用yum
yum是CentOS中的默认包管理工具,也用于Red hat一族
yum的基本命令
yum update/upgrade:更新软件包
update和upgrade基本没有区别
他们都对软件进行升级,页都对内核进行升级(重启进入行的
内核,uname -r查看)
唯一的区别是yum update不删除旧包
而yum upgrade删除旧包
在生产环境中最好使用yum update,因为可以防止旧软件包依赖而出现问题
非root用户下用sudo yum update/upgrade
yum search:搜索软件包
yum install:安装软件包
yum remove xxx 或者 yum autoremove xxx
常用终端的软件包命令
有的软件包可能并没有被包含在官方源中,你可能只能去它的官网去下载它.rpm结尾的软件包,下载到本地之后我们可以用rpm命令来安装
```
sudo rpm -i *.rpm : 用于安装
sudo rpm -e 包名:用于卸载
本地的也可以用sodu yum localinstall *.rpm来安装本地软件包
sudo yum remove 包名来卸载
总结
大部分的Linxu发行版都提供了集中式的软件包下载和安装方式
因此软件安装比windows下来的要简单的多
这些被集中存放的服务器被称为软件仓库repository
在centos下,我们可以使用图形界面的软件包管理来安装软件
也可以用终端命令来安装软件
yum命令族
重点
晚安,努力的路上请照顾好自己

被折叠的 条评论
为什么被折叠?



