目录
[1-2-1 安装软件](#1-2-1 安装软件)
[1-2-2 卸载软件](#1-2-2 卸载软件)
[1-2-3 注意事项](#1-2-3 注意事项)
一.什么是软件包
Linux中下载软件有三种:
1.源码下载 2.软件包安装--rpm 3.包管理器yum/apt
- 源码安装 自由可定制,可装最新版;缺点依赖手动处理、编译麻烦、卸载困难。
- rpm 手动安装 二进制离线可用;最大缺陷不会自动处理依赖。
- yum/apt 包管理器 自动解决依赖,管理便捷;
所以这里用yum/apt 包管理器来添加文件
1.1什么是软件包

• Linux下载软件的过程(Ubuntu、Centos、other)

接下来的问题是:Linux中的软件是谁提供的?为什么他们要提供这些软件给我们用?

1.Linux 系统里的软件由谁提供?
分为四大主体:
- 开源软件开发者社区(个人、团队) 比如 bash、vim、nginx、gcc、内核本身,大多由全球志愿者、开源团队开发,发布源代码。
- Linux 发行版厂商(Ubuntu、CentOS、Debian、RedHat) 拿到上游开源源码,编译打包成 rpm /deb,放到官方软件源(仓库)。 我们用
apt/yum安装的软件包,基本都是发行版整理提供。 - 商业公司 谷歌、MongoDB、Redis、JetBrains 等,一部分开源免费、一部分开源 + 商业收费版本。
- 第三方爱好者、第三方源维护者 很多软件官方没放进系统源,志愿者搭建第三方软件源(PPA、epel 源等)。
简单一句话: 原始源代码大多来自全球开源社区;我们通过 apt/yum 安装的二进制软件包,主要由各 Linux 发行版厂商打包维护。
2.、为什么他们免费提供软件给我们使用?
- 开源理念与社区精神(最原始动机)
开源提倡自由使用、修改、分享。开发者喜欢交流技术,希望自己写的程序被更多人使用、测试。 大量用户使用 = 更多人发现 bug、提交补丁、帮忙改进程序,形成正向循环。
-
商业战略(很多公司的核心目的)
-
免费开源软件抢占市场,培养用户习惯;靠技术支持、企业版、增值服务赚钱。 例:RedHat 系统免费使用,但售卖运维支持服务;MongoDB 开源社区版,企业版收费。
-
降低生态成本:公司把工具开源,全世界开发者帮忙完善,不用全部自己雇佣开发人员。
-
扩大生态,绑定技术标准(主要)
像 Nginx、Redis、K8s 开源,大量企业部署后,成为行业事实标准,主导技术发展方向。
- 个人开发者名气、简历背书
程序员把项目开源收获影响力,提升个人知名度,有利于求职、建立行业口碑。
- 高校、科研机构推动
很多操作系统、编译器最初诞生于大学实验室,鼓励学术共享。

由于Linux社区在外国,我们无法通过网络直接访问外国网站,所以就有人将外网的社区软件给镜像的我们国家

开发者开发的软件分为两种:一种是稳定的,一种是扩展文件还不太稳定

1.2yum的具体操作
1-2-1 安装软件
通过 yum,我们可以通过很简单的一条命令完成 gcc 的安装。
# Centos
$ sudo yum install -y lrzsz
# Ubuntu
$ sudo apt install -y lrzsz
- yum/apt 会自动找到都有哪些软件包需要下载,这时候敲 "y" 确认安装。
- 出现 "complete" 字样或者中间未出现报错,说明安装完成。
注意事项:
- 安装软件时由于需要向系统目录中写入内容,一般需要 sudo 或者切到 root 账户下才能完成。
- yum/apt 安装软件只能一个装完了再装另一个。正在 yum/apt 安装一个软件的过程中,如果再尝试用 yum/apt 安装另外一个软件,yum/apt 会报错。
- 如果 yum /apt 报错,请自行百度。
1-2-2 卸载软件
仍然是一条命令:
# Centos
sudo yum remove [-y] lrzsz
# Ubuntu
sudo apt remove [-y] lrzsz
1-2-3 注意事项
关于 yum /apt 的所有操作必须保证主机 (虚拟机) 网络畅通!!! 可以通过 ping 指令验证
ping www.baidu.com
# 当然yum / apt也能离线安装,但是和我们当前无关,暂不关心。