前言

CentOS提供了几种安装软件的方式:

  • 源码安装
  • rpm安装
  • yum安装

源码安装一般为软件官网提供的.tar.bz2tar.gz格式的压缩包,解压后通过编译安装。其可以自定义安装,比如软件选择哪个版本,手动控制开启某些模块,安装在哪个目录等等,但是比较麻烦,不适合新手入门使用。

rpm安装一般为.rpm后缀的安装包,可通过rpm命令一键安装,但是需要手工解决依赖关系。其特点是可以自己制作rpm安装包,将自定义项规划进rpm包中,使安装过程简单并满足自己需求,缺点是制作rpm包麻烦,且要考虑软件依赖关系。

yum安装依靠软件仓库,通过yum命令在线安装软件及其依赖软件包,自动解决依赖关系。且yum安装可以对rpm进行分组,基于包组进行安装。虽然方便,但自定义内容最少,且安装路径默认。yum安装比较适合安装一些不用太多配置的软件包,安装了直接使用就可以了。

通俗点说,就是源码安装相当于手擀面,自己煮,自己打卤,是闲是淡,放多少辅料都自己决定;rpm安装相当于买方便面,直接煮就好了,但需要自己准备餐具和热水;yum安装相当于外卖,买回来只管吃就可以了,煮面的过程商家替你搞定,但问题是口味就看商家了。(比喻不完全恰当,只是要表达这么个意思)

本文主要讲解yum安装及推荐一些软件包。

正文

YUM是“Yellowdog Updater Modified”的缩写,是一个软件包管理器,YUM从指定的地方(相关网站的rpm包地址或本地的rpm路径)自动下载RPM包并且安装,能够很好的解决依赖关系问题。

用法:yum [options] [command] [package ...]

选项:

  • -y 自动回答“yes”
  • -q 静默安装

命令:

  • install 安装,后面接软件包,可接多个
  • restall 重装,后面接软件包,可接多个
  • update 更新,后面接软件包,可接多个。如不接软件包则更新所有软件
  • remove 卸载,后面接软件包,可接多个
  • clean all 清空所有缓存,后面留空
  • makecache 构建缓存,后面留空
  • lis 查看所有软件包,后面留空
  • groupinstall 安装包组,后面接包组
  • groupupdate 更新包组,后面接包组
  • grouplist 显示包组列表,后面留空
  • groupremove 移除包组,后面接包组

PS: 加粗的为特别重要的,需要牢记的。

yum源

yum源:就是yum安装的来源,这个来源指的就是yum仓库。

yum源分为本地yum源和网络yum源。

本地yum源的下载速度肯定要远远快于网络源。而且自己搭建的本地源,可以根据自己需求定制rpm包,收集整理rpm包,甚至是整理为组,使自己安装起来即方便快捷又符合自己需求。

搭建本地yum源则为进阶技巧了,后期有机会再介绍。

网络yum源可以理解为应用商店。因为CentOS默认网络yum源服务器基本都在国外,下载速度很慢,且容易下载失败,所以本文主要介绍的就是将网络yum源服务器修改为国内的镜像站。

下面列出的镜像站也可以用来下载系统镜像,详情去相应网站查看。

最常见的国内镜像站有:

比较推荐的是阿里云,如果使用教育网的也可以选择清华大学。

这里介绍的是阿里云的镜像站替换CentOS 7默认yum源的方法。

repo文件

在使用yum命令的时候系统会自动读取repo文件(repositry匹配文件),然后去仓库(repositry)获取软件。

在Linux下,repo文件都是存放在/etc/yum.repos.d文件夹之中的。

进入该目录,可以看到默认有如下repo文件:

[root@master ~]# cd /etc/yum.repos.d/
[root@master yum.repos.d]# ll
total 32
-rw-r--r--. 1 root root 1664 Apr 29  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Apr 29  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Apr 29  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Apr 29  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Apr 29  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 29  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29  2018 CentOS-Vault.repo

其中CentOS-Base.repo记录的就是默认yum源,有任何yum下载请求,优先检查其中记录的服务器是否有相应软件包提供下载。如果有则直接下载,如果没有则检查其他yum源。

如果想添加其他yum源,则需要将添加的yum源服务器相关内容写入新建的.repo文件中,并存放到/etc/yum.repos.d/目录中。(一般情况下软件的官网都提供其repo文件下载,下载拷贝进/etc/yum.repos.d/目录下即可,如zabbix、nginx等)

我们这里需要替换掉默认yum源,并添加epel源。

PS: EPEL (Extra Packages for Enterprise Linux)源,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS等,里面有非常多的基础源中没有的软件,强烈建议安装。

替换基础源

首先将CentOS-Base.repo备份

再次提醒,修改配置文件最好提前备份,尤其是系统关键配置文件。备份绝对是有百利而无一害的好习惯。

[root@master ~]# mv /etc/yum.repos.d/CentOS-Base.repo{,.bak.ks.20181104} 

[root@master ~]# ll /etc/yum.repos.d/
total 32
-rw-r--r--. 1 root root 1664 Apr 29  2018 CentOS-Base.repo.bak.ks.20181104
-rw-r--r--. 1 root root 1309 Apr 29  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Apr 29  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Apr 29  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Apr 29  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 29  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29  2018 CentOS-Vault.repo

下载阿里云repo文件

[root@master ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0  24622      0 --:--:-- --:--:-- --:--:-- 24980

[root@master ~]# ll /etc/yum.repos.d/
total 36
-rw-r--r--. 1 root root 2523 Nov  4 13:43 CentOS-Base.repo
-rw-r--r--. 1 root root 1664 Apr 29  2018 CentOS-Base.repo.bak.ks.20181104
-rw-r--r--. 1 root root 1309 Apr 29  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Apr 29  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Apr 29  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Apr 29  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 29  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29  2018 CentOS-Vault.repo

PS: 因为最小化安装CentOS 7,所以不带wget命令,所以使用curl命令下载。

下载epel源

同理,epel默认服务器也在国外,咱们epel源也采用阿里云的镜像。

[root@master ~]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   664  100   664    0     0   8658      0 --:--:-- --:--:-- --:--:--  8736

[root@master ~]# ll /etc/yum.repos.d/
total 40
-rw-r--r--. 1 root root 2523 Nov  4 13:43 CentOS-Base.repo
-rw-r--r--. 1 root root 1664 Apr 29  2018 CentOS-Base.repo.bak.ks.20181104
-rw-r--r--. 1 root root 1309 Apr 29  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Apr 29  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Apr 29  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Apr 29  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 29  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29  2018 CentOS-Vault.repo
-rw-r--r--. 1 root root  664 Nov  4 13:57 epel.repo

生成缓存

[root@master ~]# yum makecache
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
......
# 中间大段内容省略,其中有可能出现FAILED或ERROR,忽略即可。
Metadata Cache Created

更新软件

[root@master ~]# yum -y update
......
# 中间大段内容省略
Complete!

PS: 说实话我是有点强迫症的,不更新难受。但大家请注意,在生产环境,如果软件使用上没有问题或没有开发提的需求,尽量不要更新软件。最新的软件不一定是最好的,虽然有可能修复之前的bug,但有可能产生新的bug。已经出现且解决掉的bug不可怕,新出现的未知bug才可怕。如有需求,尽量使用yum update PACKAGE更新单个软件包。

安装软件

使用yum -y install PACKAGE来进行安装。

[root@master ~]# yum -y install sl

sl就是传说中的“跑火车”,可以测试epel源是否成功,因为基础源是没有sl这个命令的。该命令也称为Linux中的hello world。安装好的朋友可以输入sl看看效果。

这里推荐几个软件包:

  • tree 树形显示目录结构
  • lrzsz SSH客户端与服务器上传下载文件命令
  • vim 编辑器
  • lsof 列出所有打开的文件(通常用来查看端口)
  • wget 非交互式下载
  • bash-completion 命令TAB补全
  • ntpdate 同步网络时间
  • net-tools CentOS 6及之前的命令ifconfig、netstat、route等命令包
  • screen 管理远程会话(非常实用的一个命令,抽时间一定要好好介绍这个命令)

PS: Linux中输入路径时可以在输入前面几个字母后,按TAB补全;如果前面的字母不唯一,多次按TAB可以查看以前面字母开头的文件(目录)列表。bash-completion包可以使输入命令时也可以用TAB补全。安装完bash-completion需要从新连接终端才能生效。

Linux 应该保持最小化安装原则,如果确实不需要这个软件包的话,建议还是当需要时再安装。

再介绍两个好玩的命令,这些命令实在没啥用,就是好玩……

cowsay

[root@master ~]# yum -y install cowsay

[root@master ~]# cowsay My name is gaoqichen.
 _______________________
< My name is gaoqichen. >
 -----------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

[root@master ~]# cowthink hahaha
 ________
( hahaha )
 --------
        o   ^__^
         o  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

banner

[root@master ~]# yum -y install banner

[root@master ~]# banner Hello

#     #  #######  #        #        #######
#     #  #        #        #        #     #
#     #  #        #        #        #     #
#######  #####    #        #        #     #
#     #  #        #        #        #     #
#     #  #        #        #        #     #
#     #  #######  #######  #######  #######

结语

yum源还是相当有必要修改一下的,下载快了好多。

好了动起来吧!

Enjoy it!

Last modification:February 20th, 2022 at 07:31 am
If you think my article is useful to you, please feel free to appreciate