前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。
要设置云服务器,我们需要做的第一件事就是安装操作系统。目前来看,一般都是 Linux 操作系统。从历史上看,Windows 服务器和其他类型的 Unix 在特定的商业环境中都很流行,但由于 Linux 的广泛支持、免费或灵活的许可以及服务器计算中的普遍存在,现在几乎每个人都运行 Linux。有许多可用的 Linux 发行版,每个发行版都有自己的维护者,有些由商业提供商支持,有些则没有。以下各节详细介绍的发行版是一些用于运行云服务器的最流行的操作系统。
Ubuntu是最流行的服务器和台式机 Linux 发行版之一。新的 Ubuntu 版本每六个月发布一次,新的Ubuntu长期支持版本每两年发布一次,支持五年。大多数有关 Linux 的教学内容都都是 Ubuntu,因为它很受欢迎,而且可用支持的广泛性也是其青睐的一个重要因素。
Debian是Ubuntu 的上游,这意味着它的核心架构决策通常会影响 Ubuntu 版本,并且它使用与 Ubuntu 相同的**.deb包格式和apt
包管理器。由于其保守的封装选择和缺乏商业支持,Debian 在生产服务器中并不那么受欢迎。然而,许多用户选择 Debian 是因为它的可移植性以及它可以作为不同平台上许多其他 Linux 发行版的基准,包括最流行的 Raspberry Pi 操作系统Raspbian 。**
Red Hat Enterprise Linux或RHEL是最流行的商业支持的 Linux 发行版。与 Debian 系列不同,它使用**.rpm**软件包和一个名为 dnf
的软件包管理器,以及自己的工具生态系统。出于许可原因,红帽仅在有商业支持协议的情况下使用。
Rocky Linux是 Red Hat 的下游,就像 Ubuntu 是 Debian 的下游一样,与 RHEL 不同的是,它像大多数其他 Linux 发行版一样可以免费使用,这使其成为已采用 Red Hat 工具但可能不使用 Red Hat 商业版的用户的流行选择支持。此前,名为CentOS 的发行版扮演了与 Rocky Linux 相同的角色,但其发布模式正在发生变化。Rocky Linux 版本与 RHEL 版本密切相关,并且大多数文档可以在两者之间共享。
Fedora Linux是 Red Hat 的上游,与 Ubuntu 一样,也用于桌面环境和服务器。Fedora 是大多数 RHEL 生态系统软件包以及 Gnome 桌面环境的事实上的开发家园, Gnome桌面环境被 Ubuntu 和其他操作系统默认使用。
Arch Linux是另一个流行的以桌面为中心的 Linux 发行版,它既不是 Debian 也不是 Red Hat Linux 家族的成员,但提供了自己独特的打包格式和工具。与其他发行版不同,它不使用任何类型的发行版本控制 - 它的软件包始终是最新的。因此,不建议将其用于生产服务器,但它提供了出色的文档,并且对于知识渊博的用户来说非常灵活。
Alpine Linux是一个最小的 Linux 发行版,默认情况下不提供许多常用工具。历史上已经有许多 Linux 发行版都是为了这个目标而创建的。Alpine 通常用于现代容器化部署(例如 Docker),我们的软件可能需要虚拟化操作系统才能运行,但需要保持其整体占用空间尽可能小。除非尝试构建容器原型,否则我们通常不会直接在 Alpine Linux 中工作。
以前,发行版之间在init system、窗口管理器和其他库的选择上存在更多差异,但几乎所有主要 Linux 发行版现在都对systemd和其他此类工具进行了标准化。
还有许多其他 Linux 发行版,但目前大多数其他发行版都可以与这七个发行版联系起来进行理解。从这个概述中我们可以看出,Linux 发行版的大多数选择标准将归结为:
选择发行版取决于偏好,但如果我们在云中工作并且对 Red Hat 生态系统没有任何生产要求,Ubuntu 是一个流行的默认选择。我们还可以从面向 Web 的包存储库中查看给定发行版的可用包。例如,Ubuntu 22.04“Jammy Jellyfish”软件包托管在Ubuntu.com 的 Jammy 部分下。
大多数 Linux 发行版在创建、发现和安装第三方软件包(无法从存储库自己的软件包源中获得的软件包)方面也存在显着差异。Red Hat、Fedora 和 Rocky Linux 除了官方软件包外,通常只使用一些流行的第三方软件包存储库,以符合其更权威、更注重生产的方法。其中之一是Enterprise Linux或EPEL的额外软件包。由于 RHEL 生态系统对商业支持的软件包和不支持商业支持的软件包进行了区分,因此 Ubuntu 上开箱即用的许多常见软件包将要求我们配置 EPEL 才能将它们安装在 Red Hat 上。在这种情况和许多其他情况下,哪些软件包可以从我们的发行版自己的存储库上游获得,通常比其他任何事情都更重要的是权威性和维护责任的问题。许多第三方软件包来源受到广泛信任,它们可能超出了我们的发行版维护人员的范围。
Ubuntu 允许个人用户创建PPA或个人软件包存档,以维护第三方软件以供其他人安装。然而,同时使用太多 PPA 可能会导致不兼容的问题,因为 Debian 和 Ubuntu 软件包都有特定的版本要求,因此 PPA 维护者需要相当紧密地匹配 Ubuntu 的上游更新。Arch Linux 有一个用于用户提交的软件包的存储库,恰当地称为 Arch 用户存储库或AUR,虽然相比之下他们的方法看起来更混乱,但如果我们使用数十个第三方软件包,在实践中会更方便。
还可以通过Homebrew或Docker安装第三方软件,从而避免增加系统包管理器的复杂性。尽管“Docker 化”或容器化部署在磁盘使用和安装开销方面可能效率低下(这是 Alpine Linux 需要考虑的地方),但它们可以跨发行版移植,并且不会对系统施加任何版本控制要求。但是,默认情况下,系统包管理器未安装的任何包可能不会收到自动更新,这应该是另一个考虑因素。
在本文中,我们回顾了为云选择 Linux 发行版时的一些最重要的注意事项。Docker 和其他容器引擎现在的广泛使用意味着选择发行版对于我们能够运行的软件的影响并不像过去那么大。然而,它仍然是我们如何获得软件支持的重要因素,并且在我们扩展生产基础设施时应该是一个重要的考虑因素。