Linux下载与安装软件(了解)

软件安装

1、软件安装的方法

Linux下软件安装有几种方法。

第一种方法是直接用源代码 进行安装。但是会出现编译好的代码无法运行的问题。可能的原因是当前源代码调用了第三方库,而我们并没有一起下载安装下来。

第二种方法是使用rpm包 。rpm包一般是由别人提供的已经编译好的二进制文件,可能进一步做好了压缩工作,解压即可使用。使用rpm包也有缺点,首先rpm也可能出现上面直接用源代码的第三方库缺失 的问题;其次rpm包可能不是官方提供的,可能会出现一些意外软件恶意捆绑的情况(下了一个全家桶),甚至出现其它更严重的安全问题。

第三种方法,就是使用诸如yum, apt之类的包管理器。我们推荐使用包管理器下载软件。

2、什么是包管理器

Linux的包管理器,类似智能手机的应用商店。

以前智能手机刚流行的时候,我们通常要去浏览器上搜索软件并下载。在浏览器上下载软件,是有风险的,比如会感染病毒、下载到了恶意软件等。

后来,一些手机厂商开始在他们生产的手机上提供"应用商店"这样一类app/应用程序。应用商店本质上是一种客户端软件,应用商店连接着包含应用软件的后端服务器。用户使用时可以使用应用商店,连接后端服务器,进行软件的下载与安装。

包管理器,就像Linux下的应用商店,本质上也是一种客户端程序。包管理器连接了软件包(软件及第三方库的打包)的服务器。我们需要下载安装软件时就可以使用包管理器连接软件包服务器,从而下载安装我们需要的软件。

Linux那么多软件是怎么来的呢?我们就需要了解Linux的生态。

3、Linux生态

我们如何评价一款操作系统的好坏?

答案是看操作系统的生态是否完善。

如果一款操作系统:

  • 内核稳定且功能完善
  • 支持很多常用的软件及应用程序
  • 定期维护和更新,出现问题能够及时解决
  • 官方网站上有文档对操作系统功能和特性等进行详细介绍,并会随着操作系统的更新,及时更新文档
  • 社区论坛供使用者讨论当前出现的问题,及解决的方法
  • 有一批数量较多的针对性的用户

那么我们就可以认为这款操作系统是一个好的操作系统。

一款操作系统诞生之后,最重要的事请就是有越来越多的人使用。开发者为了保证自己的操作系统被更多人使用,就必须参与维护操作系统的生态,比如定期维护和更新操作系统、更新文档、在社区论坛上交流收集问题并尝试解决,还有开发、维护和更新软件

当然不仅仅是开发者自己去搞软件,一些爱好者,或者公司企业的工程师也可以进行软件的开发、维护和更新。

当开发软件的人员将软件研发出来后,一些服务器的厂商可能会提供服务器给他们,方便他们维护更新旧的软件,或者继续研发新的软件。

4、配置文件

软件被做出来放在软件包服务器上了。我们要想下载软件,那么我们的云服务器就要去软件包服务器中下载软件。那么我们的云服务器是如何找到对应的软件包服务器的?

我们的云服务器内部,有一个东西叫配置文件,配置文件保存了目标服务器的下载链接

输入指令:cat /etc/apt/sources.list即可观察到下载链接。

5、镜像

软件包服务器是找到了,可是还有一个比较严肃的问题:软件包服务器,或者说包含最近新出来的一些软件的服务器,绝大多数都在国外。而我国是采取了相关的封控措施的,导致境外网站的响应时间很长,甚至不响应。

这时,一些高校、研究所,还有企业,就会干两件事:

  • 将国外软件包服务器上的一些新式软件,经检测、审核和相关处理之后,拷贝到国内的软件包服务器上
  • 将Linux服务器上原来的可能提供国外服务器链接的配置文件,替换 成提供国内服务器链接的配置文件

其中,拷贝软件到国内的软件包服务器上的行为,叫做镜像

6、软件依赖

下载一个软件,可能依赖多个第三方库:

yum, apt包管理器就会将软件和软件依赖的第三方库一起"打包"下载,很好地解决了软件依赖的问题。

7、包管理器的使用

以当前的Ubuntu版本为例,Ubuntu的包管理器是apt。

查看系统版本:cat /etc/os-release

查找软件包:apt search [软件包名称]

给出详细信息:apt show [软件包名称]

安装:[sudo] apt install [-y] [软件包名称]

  • 注意执行这条安装指令之后,软件包就可以直接使用了,这意味着包管理器apt同时完成了下载和安装,非常方便
  • -y选项:无需询问直接执行

卸载:[sudo] apt remove [-y] [软件包名称]

而对于CentOS系统,可以将上面指令中的apt换成yum。如果报错,则可以借助其他工具查阅正确的指令。

8、关于包管理器使用的几个问题

如何知道自己想要安装什么软件包?

这个就要看情况了。

Linux上可以存在多个用户,那么需要下载多个相同的软件包吗?

不需要,只需要下载一个软件包。同时Linux下如果正在进行一个软件包的下载安装,那么就不能再去下载另一个软件包,否则会报错。

下载软件时,apt会去配置文件中寻找下载链接。

Ubuntu的配置文件是sources.list,可以使用指令cat /etc/apt/sources.list查看下载链接。

稳定软件源 vs 扩展软件源

一部分软件经过数年甚至数十年的迭代更新,其功能已经很完善,性能也已经很稳定,所以开发者将这些完善的软件专门放在一些服务器上,这些软件包服务器就是稳定软件源;而一些新开发的软件,功能还不是很完善,性能也不是很稳定,开发者就将这些软件放在另一些服务器上,这些服务器就叫做扩展软件源。

Ubuntu的稳定软件源是:source.list

Ubuntu的扩展软件源是:source.list.d(这其实是一个目录,在我的机器上是空的)

软件源更新

软件源更新,本质上就是在网络上获取最新的配置文件,然后更换旧有的配置文件。

如果我们使用的是云服务器,我们就不需要担心这些,因为云服务器厂商会帮我们做好。

而如果一些人使用的是虚拟机,可能就需要更新软件源。

结语

本文已结束。要点为:

  • yum / apt的使用
  • 软件包服务器
  • yum / apt本质上是一个客户端
  • yum / apt包含配置文件
相关推荐
jufeng13072 小时前
【系列:MiniKV 原理剖析 · 第 2 篇】
linux·c++·软件工程
王琦03182 小时前
Linux的管理程序
linux·运维·服务器
Crazy________3 小时前
Redis02:库切换、监控与安全配置
linux·redis·云原生·mybatis
Eloudy3 小时前
给 Linux 加新硬盘的挂载命令
linux·运维·服务器
三言老师3 小时前
ss高效查看网络连接端口实操
linux·运维·服务器·网络
三言老师3 小时前
traceroute路由追踪实操
linux·运维·服务器·网络
我是小灰灰吖3 小时前
Ubuntu 22.04 切换为 X11 会话以解决 QT 桌面程序兼容性问题
linux·qt·ubuntu
荒--4 小时前
kali 操作基础(二)
linux·网络
XH华4 小时前
Linux系统第四章:工具的学习
linux·运维·学习