状态:已弃用
本文介绍了不再受支持的 CentOS 版本。 如果您目前正在运行运行 CentOS 6 的服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。
原因:CentOS 6 已于 2020 年 11 月 30 日结束生命周期 (EOL) ,不再接收安全补丁或更新。 因此,不再维护本指南。
请参阅:本指南可能仍可用作参考,但可能不适用于其他 CentOS 版本。 如果可用,我们强烈建议使用为您正在使用的 CentOS 版本编写的指南。
以下教程可能很有趣,因为它概述了如何在 CentOS 7 服务器上安装 Python 3 以及 pip
和 virtualenv
:
介绍
通常,作为开发人员,您将在一定程度上负责管理您的应用程序运行的服务器。 在选择操作系统时,尤其是在生产环境中,选择诸如 CentOS 之类的合理选择可能是未来的诱人(安全)赌注。
但是,当您开始使用 CentOS 时,您会惊讶地发现 Python 仍然是 2.6 版(甚至是 2.4.3),并且它不应该被部署的应用程序使用,因为它是为系统保留的。
在这篇 DigitalOcean 文章中,我们将讨论如何在不破坏系统默认 2.6(或 2.4)的情况下下载和设置 Python(2.7.6 和 3.3.3)。 重要的是不要参与其中,因为 YUM 等关键系统工具依赖于它。 此外,我们将安装两个流行的必备 Python 伴侣 pip 和 virtualenv。
完成后,您将能够在 CentOS 6.4 或 5.8 VPS 上同时使用任一版本的 Python,创建和使用虚拟环境,最后下载和管理每个版本的 Python 包。
CentOS 及其设计选择
在开始安装之前,让我们先谈谈 CentOS。
为什么 CentOS 附带旧版本的应用程序?
CentOS 源自 RHEL(Red Hat Enterprise Linux)。 这两个发行版的目标客户包括企业,这些企业需要系统以最稳定的方式启动并运行多年。
因此,这里的主要原因是对系统稳定性的渴望,通过提供经过测试和更稳定的应用程序版本来实现。 “如果没有损坏,就不要修复它”背后的理念在这里得到了广泛应用。
为什么部署库/应用需要单独安装?
CentOS 默认没有自带很多工具,提供的工具都是系统应用使用的(比如 YUM)。 如果您希望在现在或将来都不会破坏任何东西的情况下保持系统平稳运行,那么在更改或修改它们或它们的依赖项之前必须格外小心。
不要假设操作系统附带的工具是供您使用的,并开始养成自行设置所需的一切的习惯。
使用这个简单易学的教程,您将能够使用 Python 的 any 版本,它还将教您如何从源代码安装几乎任何其他应用程序。
准备系统并安装 Python
与您将遇到的许多其他应用程序一样,在 CentOS 上安装 Python 包括几个(简单)阶段,从更新系统开始,然后实际获取任何所需版本的 Python,然后继续设置过程。
记住: 你可以通过查看 Releases 页面查看所有可用的 Python 版本。 使用此处的说明,您应该能够安装其中的任何一个或全部。
注意: 本指南应适用于 CentOS 6.5 版本以及 5.8 和 6.4。
更新默认 CentOS 应用程序
在开始安装之前,让我们确保更新默认系统应用程序以提供最新版本。
运行以下命令以 更新 系统应用程序:
yum -y update
为开发安装准备系统
CentOS 发行版很精简——也许,有点 太 精简——这意味着它们没有附带许多您可能需要的流行应用程序和工具。
这是一个有意的设计选择。 然而,对于我们的安装,我们将需要一些库和工具(即 开发[相关]工具)默认不发货。 因此,我们需要在继续之前下载并安装它们。
使用包管理器 yum 有两种方法可以在您的系统上获取开发工具:
选项#1(不推荐)包括下载这些工具(例如 make、gcc 等) 一个接一个 。 接下来是尝试开发一些东西,并且很可能在中途遇到错误 - 因为你会忘记另一个包,所以你将切换回下载。
推荐和明智的做法是遵循 选项 #2:只需使用 yum 软件组通过单个命令下载一堆工具。
百胜软件集团
YUM 软件组由捆绑在一起的常用工具(应用程序)组成,通过执行单个命令并声明 组名称 ,可以同时下载所有工具。 使用 YUM,您甚至可以同时下载多个组。
我们所讨论的组是 Development Tools。
如何在 CentOS 上使用 YUM 安装开发工具
—
为了获得必要的开发工具,运行以下命令:
yum groupinstall -y development
或者;
yum groupinstall -y 'development tools'
注意: 以前的(较短的)版本可能不适用于旧的 CentOS 发行版。
要下载一些方便的附加软件包:
yum install -y zlib-dev openssl-devel sqlite-devel bzip2-devel
记住: 尽管是可选的,但这些“方便”的工具对于您将来会遇到的大多数任务来说都是非常必要的。 除非预先安装它们,否则 Python 在编译期间将无法链接到它们。
Python 从源代码安装过程
在我们的系统上设置 Python 将包括 3 个阶段和 4 个工具:
- 下载压缩源代码包(wget),
- 从这个包(tar)中提取文件,
- 配置和构建应用程序(autoconf(配置)/制作)。
GNU wget
GNU 的“wget”是一个用于通过各种协议(例如 HTTP、FTP)下载文件的应用程序。 尽管旧版本的 CentOS 缺少它,但它现在默认提供。
wget 的示例用法:
wget [URL]
GNU焦油
GNU 的 Tar 基本上是一个文件归档创建和操作工具。 使用各种可用选项,可以创建压缩包并在以后提取它们。
tar 的示例用法:
tar [options] [arguments]
GNU autoconf 和 GNU make
GNU autoconf 和 make 是两个不同的工具,(主要)一起用于在构建和安装应用程序之前配置源代码。
我们会:
- 安装前使用./configure配置一切
- 之前使用make连接库和源
- 使用 make install - 在我们的例子中是 altinstall - 构建(编译)源代码以创建二进制文件并按照使用
./configure
的配置在我们的系统上安装应用程序。
要了解有关 autoconf 的更多信息,请考虑阅读 其手册 。
要了解有关 make 的更多信息,请考虑阅读 其手册 。
下载、构建(编译)和安装 Python
在本节中,给出的所有说明都可用于下载任何版本的 Python。 您只需用您需要的版本(例如 “3.3.3”)。 您可以同时安装和使用多个版本。 虽然,您需要在执行期间指定它们的版本(即 而不是 python,您将需要使用 python2.7 或 python3.3)。
下载源档案
让我们从检索包含 Python 源代码的(压缩)存档开始。 我们将定位 --version 2.7.6
。
wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
版本 3.3.3 的示例:
wget http://www.python.org/ftp/python/3.3.3/Python-3.3.3.tar.xz
【可选步骤】【X16X】【X20X】工具:
该文件使用 XZ 库压缩。 您的系统可能没有它,具体取决于其版本。 如果是这种情况,请运行以下命令来安装 XZ 库:
yum install xz-libs
提取压缩源存档
此过程包括两个步骤:首先解码 XZ 存档,然后提取 tar。
# Let's decode (-d) the XZ encoded tar archive: xz -d Python-2.7.6.tar.xz # Now we can perform the extraction: tar -xvf Python-2.7.6.tar
版本 3.3.3 的示例:
xz -d Python-3.3.3.tar.xz tar -xvf Python-3.3.3.tar
配置和安装
— 在构建源代码之前,我们需要确保所有依赖项都存在并准备好环境。 这是通过使用 ./configure
为我们处理任务自动实现的。
# Enter the file directory: cd Python-2.7.6 # Start the configuration (setting the installation directory) # By default files are installed in /usr/local. # You can modify the --prefix to modify it (e.g. for $HOME). ./configure --prefix=/usr/local
版本 3.3.3 的示例:
cd Python-3.3.3 ./configure
这个过程应该毫无问题地执行——因为我们已经下载了所有必要的工具和应用程序。 完成后,我们将准备进行下一步:构建和安装。
建造和安装
— 为我们正在使用的系统配置所有内容后,我们可以继续 构建 (编译)源代码并 安装 应用程序。 通常,人们会使用“make install”; 但是,为了不覆盖系统默认值——替换系统已经使用的 Python——我们将使用 make altinstall
。
# Let's build (compile) the source # This procedure can take awhile (~a few minutes) make # After building everything: make altinstall
版本 3.3.3 的示例:
make && make altinstall # <--- Two commands joint together
[可选步骤] 将新的 Python 安装位置添加到 PATH
注意: 如果您已经按照说明使用默认设置,则无需阅读此部分。 但是,如果您选择了与 /usr/local 不同的 path 来安装 Python,则需要执行以下操作才能在不明确说明其完整 [installation] 的情况下运行它] 路径 每次 。
安装完成后,我们可以访问生成的二进制文件(即 我们选择的版本的 Python 解释器)仅通过指定其完整位置(路径)(例如 /usr/local/bin/python2.7) - 除非路径已经存在于 PATH 变量中(即 告诉的变量包含有关在何处查找所述文件的信息)。
如果您希望能够访问新安装的 Python 解释器,而无需每次都明确告知在哪里查找它,则需要将其 path 附加到 PATH
变量:
# Example: export PATH="[/path/to/installation]:$PATH" export PATH="/usr/local/bin:$PATH"
要了解有关 PATH 的更多信息,请考虑阅读 Linux 信息项目中的 PATH 定义。
设置常用 Python 工具 pip 和 virtualenv
安装 Python 后,我们现在可以完成应用程序生产和部署的基础知识。 为此,我们将设置两个最常用的工具:pip 包管理器和 virtualenv 环境管理器。
如果您有兴趣进一步了解这两个工具或只是快速更新知识,请考虑阅读 常用 Python 工具:使用 virtualenv、使用 Pip 安装和管理包。
使用新的 Python 安装在 CentOS 上安装 pip
在安装 pip 之前,我们需要获取它唯一的外部依赖项 - setuptools。
来自关于 virtualenv 和 pip 的文章:
它 [setuptools] 建立在 Python 的分发实用工具集 distutils 的(标准)功能之上。 鉴于默认提供 distils,我们只需要 setuptools。
执行以下命令安装 setuptools:
这将为版本 2.7.6 安装它
# Let's download the installation file using wget: wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz # Extract the files from the archive: tar -xvf setuptools-1.4.2.tar.gz # Enter the extracted directory: cd setuptools-1.4.2 # Install setuptools using the Python we've installed (2.7.6) python2.7 setup.py install
之后安装 pip 本身是一个非常简单的过程。 我们将利用上述文章中的说明,使用 cURL 库自动安全地下载和安装它。
注意:要了解更多关于cURL的信息,你可以参考这里的解释部分。
让我们下载 pip 的设置文件并让 Python (2.7) 安装它:
这将为版本 2.7.6 安装它
curl https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py | python2.7 -
了解pip的使用方法,请参考【X62X】常用Python工具:使用virtualenv、使用pip安装、管理包【X147X】一文。
使用新的 Python 安装在 CentOS 上安装 virtualenv
现在我们已经准备好 pip 包管理器,在系统上安装 virtualenv 是一件轻而易举的事。
运行以下命令下载并安装 virtualenv:
pip install virtualenv
了解如何使用virtualenv,请参考常用Python工具:使用virtualenv、使用Pip安装、管理包一文。