学完指令篇,接下来学工具篇,工具篇包括: yum,vim,gcc,g++,gdb,make/makefile,git
本文重点围绕以下展开:
- yum的整个生态
- yum三板斧:list install remove
- linux服务器和软件都由谁来提供?
- yum源为什么有国内和国外之分?
- yum源如何配置的问题
谈Linux之前,让我们先了解一下windows/Android下软件的生态:(商业生态)
1.安装软件的本质,必须把对应的软件包从远端服务器上通过网络下载到本地(我的电脑上)
2.软件包一般是由企业,组织或者个人为了获取某种利益而提供;对于电脑一般发布在官网上,对于手机,软件开发商还得把自己的软件发布到手机开发商的服务器上.
3.下载软件包的途径:电脑—>官网 手机—>应用商店
Linux下软件的生态:(开源生态)
因为Android就是基于Linux开发,所以Linux的整个生态类似Android,Linux下的软件包管理器Yum就类似Android下的应用商店,内置了对应服务器中软件的下载链接,并保存再相应的文件中,我们在下载时并不需要关心这一点.
yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器,软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系,通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
通过yum安装,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
当我们有某种功能需求时,我们从互联网上了解到所需下载的安装包后,可以尝试在yum list中查看是否支持安装此软件包
穷举支持下载的所有软件安装包:yum list
过滤查看是否支持安装指定软件包:yum list | grep list
安装的本质就是把安装包拷贝到指定的目录中,这涉及到目录的权限问题:
- sudo 提权安装
- root安装
值得注意的是:yum安装的软件不同于后面我们讲的vim配置,一旦安装,任何用户都可以使用
安装并询问:yum install 软件包全称/软件包名
强制安装不询问:yum install -y 软件包全称/软件包名
例如安装sl.x86_64安装包:
安装和卸载类似
卸载并询问:yum remove 软件包全称/软件包名
强制卸载不询问:yum remove -y 软件包全称/软件包名
查看lrzsz: yum list | grep lrzsz
下载安装lrzsz:yum install -y lrzsz
rz上传:从客户端(windows)到服务器(linux)命令:
rz
sz下载:从服务器(linux)到客户端(windows)命令:
sz filename
Linux软件生态大部分都是国外搞的,所以有一些服务器因为一些原因,.比如服务器离我们太远,或者拦截原因,导致出现访问不了的情况.
所以有高校或者企业就会花点钱,买几台腾讯云或阿里云服务器,把国外的软件拷贝到拷贝到买来的服务器中,于是就有了国内的软件服务器.这就是所谓的镜像
所以我们可通过镜像完成国内的软件服务器的搭建问题,但我们之前讲过Linux下yum内置了对应服务器提供的软件下载路径,如果这个东西不重新配置的话,下载安装包还是得从国外下载,所以要完成Linux软件生态的本土化,我们还需要提供一套国内的下载链接配置文件,这也就是配置yum源(具体如何配置且接着往下看)
为什么我们要做yum源的配置?
如果原yum源配置文件里的下载链接是国外的,我们一般要配置yum源为国内的下载链接,这样访问起来不容易被“墙”掉,这也是为什么我们推荐使用国内的下载链接的原因!
拓展:
- 虚拟机默认的yum源是在国外下载,而国外下载相比于国内下载是比较慢的,所以我们会重新配置yum源。即配置yum源的主要原因就是下载速度的问题。
- 然而,我们购买的腾讯云或者阿里云服务器一般是腾讯云或阿里云已经帮我们配置好了.
找到yum源配置文件:
cd /etc/yum.repos.d.
ll
yum源配置文件:
CentOS-Base.repo
注意: linux只认该文件名的文件作为yum源配置文件.
vim打开yum源文件:
vim CentOS-Base.repo
从上面我们可以看到我这里原生yum源是腾讯云帮我们已经配置好的~~
担心新手在yum源配置问题上出错,最好在配置yum源的时候,对原来的yum源进行备份.
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_tmp
wget https://mirrors.aliyun.com/repo/Centos-7.repo
mv Centos-7.repo CentOS-Base.repo
加粗样式