CentOS是linux的一个版本,和Ubuntu等一样,都是基于Linux内核的不同发行版本。CentOS据说是Red Hat Enterprise Linux (RHEL) 的克隆版本,旨在提供一个免费的企业级计算平台。CentOS 7已经进入了其支持周期的尾声,并且计划在2024年6月30日停止官方技术支持。这意味着红帽公司将在该日期之后不再为CentOS 7提供任何更新(包括安全更新和bug修复)。但是由于历史惯性原因,CentOS目前仍然被广泛使用,尤其在服务器领域。但是关键应用还是建议迁移到其它linux发行版本。
我有一台内网CentOS服务器,不允许连接互联网,但是需要安装Python3(CentOS自带的是Python2)以及各种第三方库,例如:numpy,pandas,geopandas等等。应该如何安装呢?手动下载安装的话,由于其各种包之间存在着极其复杂的依赖关系,而导致手动安装特别复杂和繁琐。经过几次试错之后,我选择使用anaconda 来解决这个问题。
Anaconda 是一个开源的 Python 发行版本,特别为数据科学、机器学习和大型数据分析任务而设计。它不仅仅包括了Python解释器,更重要的是它提供了一套便捷的包管理和环境管理工具——Conda,使得用户能够轻松安装、管理和切换不同的Python版本以及各种科学计算、数据分析相关的软件包。
Anaconda集成了大量的科学计算库,如NumPy、Pandas、SciPy等,同时也包含了数据可视化库(例如Matplotlib、Seaborn)、机器学习库(如Scikit-learn)以及其他常用的开发工具,比如Jupyter Notebook(交互式编程和文档环境)和Spyder(集成开发环境IDE)等。
通过使用Anaconda,开发者可以方便地在不同的项目间创建独立的虚拟环境,保证不同项目之间的依赖不产生冲突,并且能够在多种操作系统(Windows、macOS、Linux)上实现快速部署和配置。
具体的思路是在本地可以联网的centos7上利用anaconda创建虚拟环境,联网安装好各种需要的python包。然后把整个虚拟环境打包上传到那台不可以连接互联网的CentOS上。
首先需要在本地安装一个可以联网的CentOS7虚拟机,然后在本地CentOS7虚拟机上进行如下操作:
bash Anaconda3-2023.09-0-Linux-x86_64.sh
此处不详细描述,可查找相关安装教程,建议安装到/opt/anaconda3目录下。
/opt/anaconda3/bin/conda create
cd /opt/anaconda3/bin
source activate myenv
conda install numpy
conda install pandas
conda install geopandas
conda install shapely
pip install transbigdata -i https://pypi.tuna.tsinghua.edu.cn/simple
conda install PyMySQL
pip install mysql-connector -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install schedule -i https://pypituna.tsinghua.edu.cn/simple
conda install TensorFlow
conda install keras
conda install statsmodels
conda install beautifulsoup
conda install sqlalchemy
conda install selenium
conda install scrapy
这里根据自己的需要安装,其中transbigdata等用conda无法安装,转而采用pip install安装,由于墙的问题,需要采用国内镜像源,我使用的清华大学镜像源。
cd /opt/anaconda3/envs
tar -zcvf myenv.tar.gz myenv
7、将得到的压缩包myenv.tar.gz下载下来并上传到内网那台不可联网的 centos上。
在内网CentOS7服务器上进行如下操作:
1、离线安装anaconda3,首先从官网下载,然后上传到服务器,运行命令安装:
bash Anaconda3-2023.09-0-Linux-x86_64.sh
安装过程和上面本地虚拟机上是一样的,不再赘述。
注意,此处需要加参数–offline,采用离线方式,否则会创建失败。
rm -rf /opt/anaconda3/envs/myenv
4、解压缩刚才上传的myenv.tar.gz到文件夹/opt/anaconda3/envs/myenv
tar zxvf myenv.tar.gz -C /opt/anaconda3/envs
经过验证,虚拟环境迁移到了内网不能连接互联网的CentOS服务器上了。