正文开始@Assassin
Linux下安装软件的方式可以简单归类为三类:
Yum(Yellow dog Updater, Modified) 是由Duke University团队修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于RPM包管理的字符前端软件包管理器。能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux、CentOS所采用
维基百科
可供Yum下载的软件包包括Fedora本身的软件包以及源自rpmfusion(页面存档备份,存于互联网档案馆)等非官方软件仓库的软件包,全部是由Linux社区维护的,并且基本是自由软件。所有的包都有一个独立的GPG签名,主要是为了用户的系统安全。对于Fedora core 4及更高版本的用户,来自新软件仓库的签名是自动导入并安装的。
维基百科
yum是一个在Fedora、RedHat以及CentOS中的前端软件包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装,可以简单地类比为手机中的应用商店,如App Store;
小贴士: 一个服务器同一时刻只允许进行一次yum安装操作,不能在同一时刻同时安装多个软件,可能会报错;
yum是从服务器上下载RPM包,类似于跨网络进程间通信,所以在下载时必须联网,可以通过ping指令判断当前云服务器是否联网:
[Assassin@Ninghai ~]$ ping -c 3 baidu.com
命令:yum list
功能:列出所有可安装的软件清单
[Assassin@Ninghai ~]$ yum list | less
yum list:
罗列出可供下载的全部软件,列出所有可安装的软件清单
这里简单补充一哈:
使用yum list配合grep查找lrzsz:
[Assassin@Ninghai ~]$ yum list | grep lrzsz
lrzsz 是一个提供 XMODEM / YMODEM / ZMODEM文件传输协议的Unix通信包工具;需要注意的是,zmodem协议不能处理超过4G的文件;lrzsz可以将Windows当中的文件上传到Linux当中,也可以将Linux当中的文件下载到Windows当中,实现云服务器和本地机器之间进行信息互传;
yum list | grep lrzsz:
yum list 会列出所有可安装的软件包信息,该信息通过管道 | 作为 grep 命令的标准输入,进而筛选出lrzsz软件包
命令:sudo yum install [软件包名]
功能:安装对应的软件
这里以安装lrzsz工具为例:
[Assassin@Ninghai ~]$ sudo yum install lrzsz
安装软件过程中,有时会出现让我们确认是否安装的提示,如下图所示:
在 yum install 后加上 -y 选项即可跳过询问步骤,对应到这里就是:
[Assassin@Ninghai ~]$ sudo yum install -y lrzsz
接下来 yum 工具会自动帮我们安装好相应的软件,并解决好依赖关系;
小贴士:
实现本地机器和云服务器之间的文件互传:
① 云服务器发送文件至本地主机:
命令:sz [文件名]
功能:将云服务器上的文件下载到本地机器的指定文件夹
[Assassin@Ninghai test]$ sz test.cpp
② 本地主机发送文件至云服务器:
命令:rz -E 或者 rz
功能:将本地机器上的指定文件上传到云服务器
BTW: rz命令也可使用拖拽的方式完成,注意:lrzsz工具一般是用来互传小文件,且传输速率也不是很快,建议大一点的文件还是使用xftp来传输嗷,毕竟是专业的:
命令:sudo yum remove [软件名]
功能:将对应软件从本机上移除,不能再使用软件对应的功能
这里依旧以卸载lrzsz为例:
[Assassin@Ninghai test]$ sudo yum remove lrzsz
命令:yum search [软件名]
功能:查找指定的软件包,具有关键字模糊匹配功能
依旧是以搜索lrzsz为例:
[Assassin@Ninghai test]$ yum search lrzsz
[Assassin@Ninghai test]$ yum search lrz
命令:yum check-update
功能:列出所有可更新的软件清单
[Assassin@Ninghai ~]$ yum check-update
命令:sudo yum update
功能:更新所有可更新的软件
[Assassin@Ninghai ~]$ sudo yum update
更新软件包需要 sudo 提升权限或者root用户执行
Update Completed:
也可指定更新软件包:yum update [package_name]
命令:yum clean all
功能:清除缓存目录下的软件包及旧的headers
EPEL是企业版 Linux 附加软件包的简称,EPEL是一个由Fedora特别兴趣小组创建、维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目
EPEL 的软件包通常不会与企业版 Linux 官方源中的软件包发生冲突,或者互相替换文件。EPEL 项目与 Fedora 基本一致,包含完整的构建系统、升级管理器、镜像管理器等;
epel-release是第三方源,用来弥补 yum 官方源更新较为滞后的一个扩展源
[Assassin@Ninghai test]$ sudo yum install -y epel-release
国内有许多优秀的yum源,如网易163源,阿里云源,搜狐源,清华源,中国科大源等,将yum官方源设置为国内源可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到;
这里介绍将yum源更换为阿里云源:
① yum源位于/etc/yum.repos.d/CentOS-Base.repo
,先查看一下:
② 换源前先备份,以便出错时能及时恢复;将CentOS-Base.repo重命名为CentOS-Base.repo.bak:
[Assassin@Ninghai yum.repos.d]$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
③ 下载阿里云源 http://mirrors.aliyun.com/repo/Centos-7.repo,将下载好的文件重命名为CentOS-Base.repo:
注意,自己的机器是centos 7就下载Centos-7.repo,对应好自己的版本
[Assassin@Ninghai yum.repos.d]$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者:
[Assassin@Ninghai yum.repos.d]$ curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
小贴士:wget中是 -O,大写的O,不是0;curl中是 -o,小写的o;为了避免出错建议直接copy
④最后清除缓存即可:
[Assassin@Ninghai yum.repos.d]$ yum clean all # 清除系统所有的yum缓存
[Assassin@Ninghai yum.repos.d]$ yum makecache # 生成yum缓存