🪐🪐🪐欢迎来到程序员餐厅💫💫💫
主厨:邪王真眼
主厨的主页:Chef's blog
所属专栏:青果大战linux
总有光环在陨落,总有新星在闪烁
Linux下的三种软件安装方法
源代码安装
下载到程序的源代码, 并进行编译, 得到可执行程序
- 缺点:
1.你要自己寻找正规的安装源,万一不小心下载了个山寨的甚至病毒呢?
2.软件的源码有多个文件组成,易丢失
3.同一个软件又有不同版本,你还要去找适合本地的的软件版本
4.用户还要自己搭建相关环境进行配置,比如你跑代码要有编译器(例如vs)、或许还要自己安装库(如easyX),
rpm包安装
有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.
- 缺点:
虽然代码已经帮你编译好了,可是环境还要自己配置,那具体还需要哪些软件、哪些库以及对应的哪些版本都要你自己来解决
yum安装(唯一真神)
yum(Yellow dog Updater, Modified)是Linux 下非常常用的一种包管理器 . 主要应用在 Fedora,RedHat, Centos等发行版上 .
yum的安装是全自动化的,完全不需要你操心任何一个过程,其可以自动判断一个软件要去哪个地方下载,自动下载好配套软件。因此yum是当前主流的软件安装方式。
它解决了安装源、安装版本、安装依赖三个问题
Linux软件生态
首先明白我们在手机上或电脑上要下载一款软件,有两个必要条件
1.是你手上有硬件设备(手机平板电脑等)
2.有人提供了软件的下载方式
接着我们就可以在类似于应用商店的地方打开wifi下载软件了(如下图)
我们的Linux和window是同理的
知其然知其所以然,下面我们来讨论来几个问题
- 软件是谁写的
- 为什么把软件是无偿提供出来的
- 回答一
公司或者个人组织
对于第二个问题我们就要好好谈谈Linux生态了
Linux下的软件:
我们发现我们不能在Linux下打王者、原神、LoL等游戏,事实上很多widow上的软件无法装在linux系统上接着我们也知道使用window的是大众,而使用linux的大多和程序员有关,面向的群体不同所需的软件自然也不同,linux下的软件主要是方便学生或工作者学习工作用的而不是娱乐的。
生态健康是什么
思考问题:你的老板说我们公司要用操作系统,让你去市场上考察考察,那么请问你的考察标准是什么?
- 该操作系统的获取来源是否足够多,足够官方
- 是否稳定、安全
- 有没有成熟、活跃的社区
- 成熟的文档
- 背后有没有丰富的软件生态
- 大公司也在用哦~~
以上称之为生态健康
社区的竞争
接着我们知道,不同的linux的内核之间没有太大区别,区别在于社区,比如Centos的社区以公司为主力,ubuntu的主力则是学生,他们之间是存在竞争的,为了赢得竞争就要让自己的社区生态变得更好,怎么变好?买更好的服务器,鼓励自己社区的程序员们创建更好的软件以吸引别人,要知道操作系统都有人写,软件肯定也有。
但是搞服务器要花钱啊,包括维持社区运行也有开销,可我们都知道Linux是开源的,不花钱的,那这些钱谁来处呢,难道管理员自掏腰包?我们刚刚也说了不同社区之间会竞争,然后会分出高下,好的社区会出名,会有更多更好的公司来使用他们的操作系统,而这些公司会捐款!!!
是的,朋友,没有白票。这也好理解,我知道你家操作系统好,我也知道你要钱,没钱就干不下去,那我就分出我的一部分利益给你让你继续搞下去,我则可以继续用你的操作系统,要是大家都白嫖,那这些好的操作系统(运行成本高)就会倒闭,那公司们只能取用不好的操作系统,这样一来损失更大,所以选择了捐款实现共赢
综上所述,社区有钱进行维护和开发,所以我们就有免费的、好用的软件啦!
Yum三板斧
注意事项
关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!!!
yum list
- 基础功能:
罗列出当前一共有哪些软件包.
指令展示:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ yum list
- 进阶功能:
用grep进行筛选,选出我们的目标软件。
我们以目标软件lrzsz举例
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ yum list | grep lrzsz
lrzsz.x86_64 0.12.20-36.el7 @base
lrzsz功能:
这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件 . 安装完毕之后可以通过拖拽的方式将文件上传过去。在此我输入yum list | grep lrzsz(由于我不是root所以前面加了个sudo提权)
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ sudo yum list|grep 'lrzsz'
lrzsz.x86_64 0.12.20-36.el7 base
对于终端显示的这行信息:
1.lrzsz是我们要下载的软件
2.x86_64表示该软件在64位操作系统下运行
3.0.12.20-36是该软件版本号
4.el7表示Centos7
5.base是软件提供方,类似于 "小米应用商店", "华为应用商店" 这样的概念
- 扩展:
一般软件提供方有两种,即base和epel
- base:基本软件源,这里面的软件都是经过筛选,比较稳定的软件
- epel:扩展软件源,一般都是新软件,这些软件刚发布需要经过一定时间的测试,来发现一些问题,epel内部的软件经过一定时间后变得稳定了,而且比较好用,就会进入base
yum install
功能:下载软件
输入指令:
sudo yum install lrzsz
yum 会自动找到都有哪些软件包需要下载, 这时候敲 "y" 确认安装.
出现 "complete" 字样, 说明安装完成.
当然。如果你不想让它问你而是直接下载完软件,那就加上-y
- 注意事项**:**
- 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
- yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.
- 如果 yum 报错, 请自行百度
yum remove
指令格式:yum remove XXX(软件名)
比如我要删掉lrzsz,执行
yum remove lrzsz
同样的,会向你展示该软件的信息,然后向你确认是否删除,输入y表示yes,n表示no
如果不希望它询问,直接删除,加上-y选项即可。
sudo yum remove -y lrzsz
yum源
- 提出问题:
yum怎么直到如何下载对应软件的
我们要下载一个东西可以直接在浏览器里搜索它的官网,例如vs编译器
Linux也是同理,yum的身份就像是手机里的应用商店,它存储的有对应软件的下载地址,我们可以在/etc/yum.repos.d下查看
repos:仓库 d:目录
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ll /etc/yum.repos.d
total 12
-rw-r--r-- 1 root root 2523 Aug 4 2022 CentOS-Base.repo
-rw-r--r-- 1 root root 675 May 20 18:02 CentOS-Base.repo.copy
-rw-r--r-- 1 root root 230 Apr 2 19:20 epel.repo
我们打开其中的CentOS-Base.repo,可以看到大量网址
在该目录下,会存储大量的网址,yum会到对应的网址内部查找软件,并且筛选合适的版本自动下载到你Linux主机上。
这些称为yum源,在此常用的yum源有阿里云、网易、清华源等等
yum源分为官方yum源和扩展yum源
前者经过层层删选,稳定安全值得信赖,后者还未完全通过测试,安全性不被官方认可
-
如何安装扩展源:
yum install -y -epal-release
-
修改yum源
如果你用的是云服务器的linux那你的yum源大概率是国内的,但如果是虚拟机那他默认的yum源就是国外的了,因为网站在国外所以你的访问所都会较慢,为了解决这个问题,我们可以更新yum源。
1.首先跳转到yum源所处目录下:
cd /etc/yum.repos.d
2.做好备份,为了更新失败时切换回去
cp CentOS-Base.repo CentOS-Base.repo.backup
下载新的yum源
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清除原来的缓存
yum clean all
加载现在的缓存
yum makecache
最后可以试着安装软件看看有无错误
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z yum.repos.d]$ sudo yum install lrzsz
现在你把yum源更新了,但不想要了,想换回去,咋办
1.删除该yum源(你也可以以防万一备份一下)
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z yum.repos.d]$ sudo cp CentOS-Base.repo CentOS-Base.repo.copy1
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z yum.repos.d]$ sudo rm -rf CentOS-Base.repo
2.把原本的拷贝文件再复制一份,文件名是CentOS-Base.repo
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z yum.repos.d]$ sudo cp CentOS-Base.repo.copy CentOS-Base.repo
3.删除原来的yum缓存
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z yum.repos.d]$ sudo yum clean all
4.加载新的yum源缓存
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z yum.repos.d]$ sudo yum makecache
成功啦!!!
今天学习了linux的yum知识以及相关指令,下去一定要好好练习哦。