安装YouCompleteMe编译的依赖-升级conda及其python
本教程是针对JUN集群的。其它场景仅供参考。
JUN集群中已经升级到节点
已经完成:cpu1-5, gpu1-11, gpu14-38
正在进行:
有待完成:gpu16
坏了的机器:gpu16
安装Youcomplete所需的依赖
以下方法适用于Linux系统
在g[x]:
conda -V
python -V
cmake --version
g++-8 --version
升级python和升级conda
conda install -y python=3.10
python -V
conda update conda
conda -V
如果上述升级过程遇到报错,请按照下文的操作细节去安装。
安装JUN集群上所需要的pip包
pip install -U pip
pip install pretty_errors && python -m pretty_errors -s -p
pretty_errors_config="$(python -m pretty_errors -f | grep pretty_errors.pth)"
[ -f "$pretty_errors_config" ] && ln -sf $shareENV/app_config/pretty_errors.pth "$pretty_errors_config"
pip install jupyter
pip install jupyterthemes
pip install shadowsocks
mkdir /home/${USER}/ENV/localENV/log/{polipo,shadowsocks}
pip install pynvim # 在python>=3.7上,使用pynvim而不是neovim
Ubuntu18.04中手动安装cmake3.22
参考:
https://juejin.cn/post/7279346112317259831
sudo apt remove -y cmake
# 下载、解压
# 去https://cmake.org/files/下载所需版本的源码。也可以使用wget下载,例如:
cd /home/$USER
wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz
tar -xvzf cmake-3.22.1.tar.gz
rm cmake-3.22.1.tar.gz
sudo mv cmake-3.22.1 /usr/local/bin/cmake
# 手动编译
cd /usr/local/bin/cmake
sudo ./bootstrap
# 使用-j4参数以加快编译速度,数字4表示同时使用4个核心
sudo make -j4
sudo make install
sudo ln -sf /usr/local/bin/cmake/bin/* /usr/bin/
cmake --version
若 sudo ./bootstrap 报错:
“CMake Error at Utilities/cmcurl/CMakeLists.txt:562 (message):
Could not find OpenSSL. Install an OpenSSL development package or
configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.“
则执行
sudo apt-get install -y libssl-dev
然后执行上述的手动编译的命令。
用conda安装cmake (不推荐)
不推荐用conda安装cmake,因为前文方法安装的cmake可以给所有用户用,而用conda安装的cmake只能给本用户用。
conda install cmake=3.14 # 但是,只有本用户可用,故不用
conda install gxx_linux-64 # 但是,会显示成haoyu@x86_64-conda-linux-gnu,故不用
cmake --version
gxx --version
python ~/.vim/plugged/YouCompleteMe/install.py
安装g+±8
参考 Your C++ compiler does NOT fully support C17,升级gcc到支持c17
sudo apt-get install -y g++-8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
确认所安装软件的版本
conda -V
python -V
cmake --version
g++-8 --version
which python cmake g++-8
返回如下(gpu36,Ubuntu 18.04.5 LTS,2023-12-21执行)
conda 23.11.0
Python 3.10.13
cmake version 3.22.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
g++-8 (Ubuntu 8.4.0-1ubuntu1~18.04) 8.4.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
/home/haoyu/ENV/localENV/anaconda3/bin/python
/usr/bin/cmake
/usr/bin/g++-8
编译YouCompleteMe
在g[x]:
sudo rm -rf $HOME/.vim/plugged/*
若有无法更新的包,则执行
rm -rf $HOME/.vim/plugged/<包的名字>
ivp
在已经成功下载YouCompleteMe及其子包的节点上(比如g49):
ts /home/haoyu/.ssh g[xx]:.
ts /home/haoyu/ENV/localENV/app_config/vim_plug/YouCompleteMe g[x]:/home/haoyu/ENV/localENV/app_config/vim_plug/
# 其它包同理:
ts /home/haoyu/ENV/localENV/app_config/vim_plug/<未安装的包名字> g[x]:/home/haoyu/ENV/localENV/app_config/vim_plug/
在g[x]:
uvp
python $HOME/.vim/plugged/YouCompleteMe/install.py
vv
# 测试一下vim是否能启用YouCompleteMe的自动补全
升级conda及其中的python
升级conda
# 查看conda版本
conda -V
# 首先更新 conda 到最新,测试中如果当前处在 conda activate 状态下,需要更新 conda 两次
conda update conda
conda -V
# 如果遇到更新失败,可尝试强制更新
conda update --force conda
conda -V
解决错误
若conda升级失败,可尝试先升级python
若直接升级conda失败,可以尝试先升级conda下的python,再升级conda
# 查看python版本
python -V
# 升级python到最新版本
conda update python
# 或升级python到指定版本
conda install python=3.10
python -V
# 升级conda
conda update conda
此方法,会重新安装一个新版本的 python 在$HOME/miniconda/lib/python3.10
中,并把 base 使用的 python 指向新版本python。
但是,新版本的 python 3.10 文件夹下没有就版本安装的第三方依赖(即pip包),需要重新安装。
旧 python 仍然在$HOME/miniconda/lib/python3.7
中,这里面有旧版本python的基础文件和pip包。用上述命令安装新版本python时,不会自动删除这个目录。如果不需要使用旧版本的python,可以在新版本python安装好后,删掉这个目录,即
rm -rf $HOME/miniconda/lib/python3.7
因此,一般情况下不建议升级。可以通过conda create env -n new python=3.10
创建新的虚拟环境。
RemoveError: ‘setuptools’ is a dependency of conda
报错
RemoveError: ‘setuptools’ is a dependency of conda and cannot be removed from conda’s operating environme
则执行
conda install --force -c anaconda git
conda update -n base -c defaults setuptools
WARNING: A newer version of conda exists.
报错
==> WARNING: A newer version of conda exists. <==
current version: 4.7.10
latest version: 23.10.0
Please update conda by running
$ conda update -n base -c defaults conda
则执行
conda update -n base -c defaults conda
如果还是没能升级
则执行
conda install -n base -c defaults conda=23.9.0
The environment is inconsistent
报错
The environment is inconsistent, please check the package plan carefully. The following packages are causing the inconsistency.
则执行
conda activate base
conda update anaconda # 如果安装的是miniconds,则不要执行此命令
conda update --all
上述错误解决后,需要重新升级conda
conda update conda