CentOS/RedLat软件安装的正确姿势 + Python3.8升级示例

文章介绍了在CentOS或RedHat系统中,如何使用yum管理软件包,特别是通过EPEL源安装Python3.8。EPEL是Fedora为RHEL和CentOS提供额外软件包的项目。文章详细阐述了EPEL的作用、获取方式,并提供了安装Python3.8的步骤。

Linux的软件包安装更新的首选?

Linux系统中会安装各种不同的软件,为了解决大家的日常安装问题,专门的软件包管理器Yum成了大家的不二选择。
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

使用 yum 安装软件包之前,需指定好 yum 下载 RPM 包的位置,此位置称为 yum 源。换句话说,yum 源指的就是软件安装包的来源;
使用 yum 安装软件时至少需要一个 yum 源。yum 源既可以使用网络 yum 源,也可以将本地光盘作为 yum 源,这里只介绍网络 yum 源配置;
一般情况下,只要你的主机网络正常,可以直接使用网络 yum 源,不需要对配置文件做任何修改;
网络 yum 源配置文件位于 /etc/yum.repos.d/ 目录下,文件扩展名为".repo"(只要扩展名为 ".repo" 的文件都是 yum 源的配置文件);
通常情况下Centos上CentOS-Base.repo 文件生效, Redhat上epel.repo和epel-testing.repo生效,额外再叠加使用CentOS软件包源。

什么是EPEL?

EPEL是英语词汇Extra Packages for Enterprise Linux的缩写。EPEL由Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目;
EPEL相当于一个第三方源。

为什么需要EPEL?

那是因为 CentOS 源包含的大多数的库都是比较旧的。并且,很多流行的库也不存在。EPEL 在其基础上不仅全,而且还够新。
EPEL 这两个优点,解决了很多人安装库的烦恼。

哪里获取最新的EPEL?

官方网站永远是我们的第一选择:https://docs.fedoraproject.org/en-US/epel/
因为网速的原因,国内的aliyun等镜像网站是很不错的选择。

示例:Linux (Redhat/CentOS) 上如何通过yum安装Pyton 3.8

要通过 yum 安装 Python 3.8 或更高版本,首先需要在系统上安装 EPEL (Extra Packages for Enterprise Linux) 软件库。这是一个由 Fedora 提供的开源软件库,包含许多常用的软件包,其中包括 Python。

  • 使用以下命令安装 EPEL 软件库
    如果未包含最新的EPEL包,参见前面的EPEL网址上获取并更新最新的包。
   sudo yum install epel-release
  • 使用以下命令来搜索可用的 Python 版本:
   yum search python3

此命令将列出所有可用的 Python 软件包,其中包括各种版本。要安装特定版本的 Python,请使用以下命令:

   sudo yum install python38

替换 3.8 为您想要安装的 Python 版本。
请注意,如果您的系统中已经安装了 Python 2,安装 Python 3 后,仍可以使用 python 命令来访问 Python 2。要访问 Python 3,请使用 python3 命令。

  • 其他软件包选择:CentOS软件包集
    如果上面没有python3.8的包,可以注册CentOS软件包仓库
yum search centos-release-scl # 搜索centos-release-scl仓库
  centos-release-scl.noarch : Software collections from the CentOS SCLo SIG
  centos-release-scl-rh.noarch : Software collections from the CentOS SCLo SIG (upstream scl only)
  
yum install -y centos-release-scl # 仓库注册
 
yum install -y rh-python38 which # 安装python3.8
 
# 创建软连接
 
ln -s /opt/rh/rh-python38/root/usr/bin/python3 /usr/bin/python3
 
ln -s /opt/rh/rh-python38/root/usr/bin/pip3 /usr/bin/pip3
 
python3 -V # 确认版本
No CUDA runtime is found, using CUDA_HOME=&#39;/usr/local/cuda&#39; running build_ext /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/utils/cpp_extension.py:369: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend. warnings.warn(msg.format(&#39;we could not find ninja.&#39;)) building &#39;pointpillars.ops.voxel_op&#39; extension creating build creating build/temp.linux-x86_64-3.8 creating build/temp.linux-x86_64-3.8/pointpillars creating build/temp.linux-x86_64-3.8/pointpillars/ops creating build/temp.linux-x86_64-3.8/pointpillars/ops/voxelization gcc -pthread -B /home/jin/anaconda3/envs/point1/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include -I/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/TH -I/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/jin/anaconda3/envs/point1/include/python3.8 -c pointpillars/ops/voxelization/voxelization.cpp -o build/temp.linux-x86_64-3.8/pointpillars/ops/voxelization/voxelization.o -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE="_gcc" -DPYBIND11_STDLIB="_libstdcpp" -DPYBIND11_BUILD_ABI="_cxxabi1011" -DTORCH_EXTENSION_NAME=voxel_op -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14 cc1plus: warning: command-line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ In file included from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/ATen/Parallel.h:140, from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/utils.h:3, from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/nn/cloneable.h:5, from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/nn.h:3, from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/all.h:13, from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/extension.h:4, from pointpillars/ops/voxelization/voxelization.cpp:1: /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/ATen/ParallelOpenMP.h:83: warning: ignoring ‘#pragma omp parallel’ [-Wunknown-pragmas] 83 | #pragma omp parallel for if ((end - begin) >= grain_size) | gcc -pthread -B /home/jin/anaconda3/envs/point1/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include -I/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/TH -I/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/jin/anaconda3/envs/point1/include/python3.8 -c pointpillars/ops/voxelization/voxelization_cpu.cpp -o build/temp.linux-x86_64-3.8/pointpillars/ops/voxelization/voxelization_cpu.o -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE="_gcc" -DPYBIND11_STDLIB="_libstdcpp" -DPYBIND11_BUILD_ABI="_cxxabi1011" -DTORCH_EXTENSION_NAME=voxel_op -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14 cc1plus: warning: command-line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ In file included from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/ATen/Parallel.h:140, from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/utils.h:3, from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/nn/cloneable.h:5, from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/nn.h:3, from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/all.h:13, from /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/torch/extension.h:4, from pointpillars/ops/voxelization/voxelization_cpu.cpp:2: /home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/include/ATen/ParallelOpenMP.h:83: warning: ignoring ‘#pragma omp parallel’ [-Wunknown-pragmas] 83 | #pragma omp parallel for if ((end - begin) >= grain_size) | Traceback (most recent call last): File "setup.py", line 4, in <module> setup( File "/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup return distutils.core.setup(**attrs) File "/home/jin/anaconda3/envs/point1/lib/python3.8/distutils/core.py", line 148, in setup dist.run_commands() File "/home/jin/anaconda3/envs/point1/lib/python3.8/distutils/dist.py", line 966, in run_commands self.run_command(cmd) File "/home/jin/anaconda3/envs/point1/lib/python3.8/distutils/dist.py", line 985, in run_command cmd_obj.run() File "/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 79, in run _build_ext.run(self) File "/home/jin/anaconda3/envs/point1/lib/python3.8/distutils/command/build_ext.py", line 340, in run self.build_extensions() File "/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 708, in build_extensions build_ext.build_extensions(self) File "/home/jin/anaconda3/envs/point1/lib/python3.8/distutils/command/build_ext.py", line 449, in build_extensions self._build_extensions_serial() File "/home/jin/anaconda3/envs/point1/lib/python3.8/distutils/command/build_ext.py", line 474, in _build_extensions_serial self.build_extension(ext) File "/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 202, in build_extension _build_ext.build_extension(self, ext) File "/home/jin/anaconda3/envs/point1/lib/python3.8/distutils/command/build_ext.py", line 528, in build_extension objects = self.compiler.compile(sources, File "/home/jin/anaconda3/envs/point1/lib/python3.8/distutils/ccompiler.py", line 574, in compile self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts) File "/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 456, in unix_wrap_single_compile cflags = unix_cuda_flags(cflags) File "/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 423, in unix_cuda_flags cflags + _get_cuda_arch_flags(cflags)) File "/home/jin/anaconda3/envs/point1/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1561, in _get_cuda_arch_flags arch_list[-1] += &#39;+PTX&#39; IndexError: list index out of range
最新发布
11-22
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值