A-Tune在CentOS的移植安装
A-Tune在CentOS的移植
第一.安装环境
vm ware虚拟机 + centos 7.9
第二.安装步骤
0.环境准备
系统应该配置网络,保证可以ping通外网,具体实现借鉴可以我的另一篇博客
https://www.cnblogs.com/silas041301/p/16175861.html
由于CentOS使用的yum源 和 pip源会出现连接问题 ,可以将其换为国内的源
1.安装安装依赖系统软件包
yum install -y golang-bin python3 perf sysstat hwloc-gui
⭐此处如果出现报错大概率由于国外源的问题,可以换源
2.安装python依赖包
2.1 安装A-Tune服务的依赖包
使用指令
pip3 install dict2xml Flask-RESTful pandas scikit-optimize xgboost scikit-learn pyyaml
此处安装时出现了一些问题 见后文3.1
2.2 安装数据库依赖包
使用
yum install -y python3-sqlalchemy python3-cryptography
或者
pip3 install sqlalchemy cryptography
此处出现的python版本问题见 3.2
同时对应数据库安装依赖这里以PostgreSQL数据库为例
yum install -y python3-psycopg2
或者pip3 install psycopg2
2.3 下载源码
git clone https://gitee.com/openeuler/A-Tune.git
2.4 编译
cd A-Tune
make
2.5 安装
make collector-install
make install
第三.遇到的问题与解决
3.1 在安装xgboost时出现报错
【报错】:Command "/usr/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-build-ktq1dypw/xgboost/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-1wala8fx-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-ktq1dypw/xgboost/
【原因】:安装工具包时需要抓取网页因而要处理 https,而处理 https 又依赖加解密算法(即 cryptography 包),而 cryptography 又依赖傅立叶变换的算法以及相应的编译环境。Ubuntu 16.04 默认没有安装 libffi-dev 和 libssl-dev,gcc 也不一定安装,而 目标安装包又没有将相关软件包记到依赖列表里,
【解决方法】:sudo pip3 install python3-setuptools
在使用上述方法后问题未解决
【报错】显示setuptools已经安装
【原因】所需要的依赖包所在的setuptools dust需要的是pip 2.x版本的
【解决方法】
- 首先需要安装 pip old version 并下载 pip2 的setuptools
pip3 install -U pip setuptools
- 使用pip安装对应的依赖包
pip install cryptography --force-reinstall
andpip install paramiko --force-reinstall
- 依赖包安装成功,可以使用pip 安装xgboost了,但会出现一个warning
【警告】WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Looking in indexes: http://mirrors.aliyun.com/pypi/simple
【原因】pip正在被一个旧的脚本包装器调用。 这将在pip的未来版本中失败
该问题出现于我在系统下使用如下命令安装了一个新版本的pip后,使用原先的pip3进行一些操作出现的提问。
【解决方法】python3 -m pip install --upgrade pip
使用如下命令卸载这个新的pip即可pip3 uninstall pip
3.2 python版本依赖以及连接问题
【原因】:首先明确一般的linux系统自带Python2.x,原因是一些内部程序需要Python2.x的支持,而如今Python3早已成为主流,显然自带的Python2已经无法满足我们使用的需求。所以就会想着去安装Python3
踩坑
为了服务器上centos系统的纯净性,以及避免潜在的python版本共存的冲突,第一件事情就是去把python2给卸载了,但实际上千万不要这么做,因为譬如centos的yum也会跟着被删除。
【解决方法】
Step 1 先去python官网下载python3安装包
执行命令:
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
Step 2 安装zlib-devel包(后面安装pip需要用到,这里先下载,后面就不用重复编译)
yum install zlib-devel
Step 3 解压命令:
tar -xvf Python-3.6.5.tgz
Step 4 将解压文件移动到 usr/local目录下
mv Python-3.6.5 /usr/local
Step 5 在local目录下创建python3目录
mkdir /usr/local/python3
Step 6 转到解压文件夹下
cd /usr/local/Python-3.6.5
配置安装目录
./configure --prefix=/usr/local/python
Step 7 编译源码及安装
make && make install
Step 8 配置软连接
(1). 若不需要将python3设置为默认:
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
(2).若需要将python3设置为默认:
即还需要修改yum配置,使用vi打开 /usr/bin/yum 即:
vim /usr/bin/yum
将第一行的#! /usr/bin/python修改为#! /usr/bin/python2
(3).同理vi /usr/libexec/urlgrabber-ext-down将文件里面的
#! /usr/bin/python 也要修改为#! /usr/bin/python2
(4).删除原有的软连接慎用:
rm -rf /usr/bin/python
(5).建立新的软连接:
ln -s /usr/local/python3/bin/python3 /usr/bin/python
测试:`python
结果
Python3是装上了,但实际上yum也不能少,还是得去安装Python2
所以最明智的做法就是不卸载原有的Python2 直接采取共存的方式管理python
如果真的卸载了也没关系
使用wget分别下载python以及yum的rpm包注意:一定要和系统的版本号对应
(1)下载python的rpm包:
cd /usr/local/src/python进入目录
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-2.7.5-34.el7.x86_64.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-pycurl-7.19.0-17.el7.x86_64.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-devel-2.7.5-34.el7.x86_64.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-libs-2.7.5-34.el7.x86_64.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-urlgrabber-3.10-7.el7.noarch.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/rpm-python-4.11.3-17.el7.x86_64.rpm
(2)下载yum的rpm包:
cd /usr/local/src/yum
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-3.4.3-132.el7.centos.0.1.noarch.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm
5.安装python以及yum的rpm包
(1)安装python:
cd /usr/local/src/python
rpm -ivh python-* rpm-python-*
出现安装包的依赖问题,此时如下解决即可:
rpm -ivh python-* rpm-python-* --nodeps --force
–nodeps --force为不考虑依赖包,强制安装。
安装完后即可运行python
(2)安装yum:
cd /usr/local/src/yum
rpm -ivh yum-*
如果遇到依赖问题,请注意rpm安装顺序,考虑不直接用*安装全部而是一个一个安装,因为可能会互相依赖。
第四.借鉴网址
[1] https://gitee.com/openeuler/A-Tune?utm_source=alading&utm_campaign=repo
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体