前言
CentOS提供了几种安装软件的方式:
- 源码安装
- rpm安装
- yum安装
源码安装一般为软件官网提供的.tar.bz2
或tar.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!