记录Centos7 漫漫配置路
- 一、 配置源
- 二、 clinfo
- 三、 PCL 配置
- 1. 依赖
- 2. eigen
- 3. boost
- 4. flann
- 5. pcl
- 四、YAML-CPP
- 五、 miniconda 安装 python3.6 和 pytorch
- 六、libbot 配置
- 1. 容易安装的依赖
- 2. 需要源码安装的依赖
- 3. [libbot](https://github.com/libbot2/libbot2)
简单地说:centos7很多依赖包都没有…有的版本也很旧 基本就在源码安装…
一、 配置源
一下东西就和我说docker有问题 源有问题,例如这种报错:
curl#7 - “Failed to connect to 2: Network is unreachable”
[Errno 14] curl#6 - “Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error”
只好重新配源 不看不知道啊!/etc/yum.repos.d/里面的源太多了!
清华,阿里,还有个什么163的
cd /etc/yum.repos.d/
# 1. 备份之前的源
mkdir repo_bak
sudo mkdir repo_bak
sudo mv *.repo repo_bak/
#2. 拉一下阿里源
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sudo wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 3. 我到这一步做sudo yum makecache还是不行,所以根据网上别人的方法,需要把CentOS-Base.repo 里面的releaseserver替换成7
sudo vim CentOS-Base.repo
:%s/$releaseserver/7/g
# 4. 重建缓存
sudo yum clean all
sudo yum makecache
sudo yum install -y epel-release
二、 clinfo
# 1. opencl-headers
sudo yum update
sudo yum install epel-release ocl-icd -y
wget http://rpmfind.net/linux/epel/7/x86_64/Packages/o/opencl-headers-2.2-1.20180306gite986688.el7.noarch.rpm
chmod +x opencl-headers-2.2-1.20180306gite986688.el7.noarch.rpm
sudo yum install -y opencl-headers-2.2-1.20180306gite986688.el7.noarch.rpm
# 2. clinfo
git clone https://github.com/Oblomov/clinfo.git
cd clinfo
make
sudo make install
clinfo
验证完支持OpenCL~
三、 PCL 配置
官方配置网站:https://pcl.readthedocs.io/projects/tutorials/en/latest/compiling_pcl_posix.html
github代码链接:
1. 依赖
## 1.1 安装高版本gcc gc++
## yum下载的是4.8 版本太低·
sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++
vim ~/.zshrc
## 插入 source /opt/rh/devtoolset-9/enable
source ~/.zshrc
## 1.2 flann依赖
sudo yum install -y lz4-devel.x86_64
## 1.3 scl
sudo yum install centos-release-scl
## 1.4 clang
sudo yum install clang-devel.x86_64
## libusb-1.0
sudo yum install libusb-devel libusbx-devel
sudo yum install libudev libudev-devel
# mpi
sudo yum install mpich-3.0-devel.x86_64
sudo yum install qt5-qtbase-devel
# metslib
wget http://35.200.10.19/centos/7/epel/x86_64/Packages/metslib-devel-0.5.3-4.el7.noarch.rpm
sudo rpm -ivh metslib-devel-0.5.3-4.el7.noarch.rpm
# QHULL
sudo yum install qhull-devel
#VTK
sudo yum install vtk vtk-devel
2. eigen
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip
cd eigen-3.4.0
mkdir build # 新建一个build文件夹
cd build # 进入build文件夹
cmake .. # 用cmake生成Makefile
sudo make install
3. boost
## 3.1 拉取源码
wget https://archives.boost.io/release/1.85.0/source/boost_1_85_0.tar.gz
tar -zxvf boost_1_85_0.tar.gz
## 3.2 下载boost 所需依赖
sudo yum -y install gcc gcc-c++ python python-devel libicu libicu-devel zlib zlib-devel bzip2 bzip2-devel
# 启动 boost 安装指南脚本
./bootstrap.sh
# 安装boost 全部 模块
sudo ./b2 install --with=all
4. flann
## 4.1拉取源码
git clone https://github.com/mariusmuja/flann.git
cd flann
mkdir build
cd build
## 4.2修改cmakelist
vim ../CMakeLists.txt
# 在project(xxx)之后添加以下两行 指定c++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
## 4.3 编译 安装
cmake ..
make -j8
5. pcl
PCL配置官网
wget https://github.com/PointCloudLibrary/pcl/archive/refs/tags/pcl-1.14.1-rc1.zip
cd pcl-pcl-1.14.1-rc1/
mkdir build
cd build
cmake ..
make -j8
sudo make install
题外话:PCL后续使用的时候遇到了一个问题,cmake和make的时候都不会报错,只有运行需要引用pcld的程序时有可能会报错:libgomp 需要4.5版本的但是没有找到对应的
最后排查发现,使用的是/usr/local里的libgomp,也不知道谁编译的放过去的,
试错之路:
试图修改软连接,
成功之路:
最后发现 /usr/lib64 系统就有自带的 libgomp,但是由于/usr/local 里的优先级更高,所以获取的是 /usr/local 里的。
方案1:(简单粗暴但有可能影响别人)
cd ~
mkdir old_so_local
sudo mv /usr/local/lib64/libgomp.so.* ~/old_so_local
方案2:只影响自己
在CMakeLists.txt里 需要生成的可执行程序的target_link_libraries后加以下内容
set_target_properties(可执行程序名称 PROPERTIES LINK_FLAGS "-Wl,-rpath,/usr/lib64")
示例:
add_executable(OcSerial tests/main.cpp planner/ocSerial.cpp)
target_link_libraries(OcSerial ${PCL_LIBRARIES} )
set_target_properties(OcSerial PROPERTIES LINK_FLAGS "-Wl,-rpath,/usr/lib64")
四、YAML-CPP
git clone https://gitee.com/mirrors/yaml-cpp.git
cd yaml-cpp
mkdir build
cd build
cmake ../ -DYAML_BUILD_SHARED_LIBS=on ..
make -j4
sudo make install
五、 miniconda 安装 python3.6 和 pytorch
cd ~
# 拉取miniconda2 (脑子抽了没下miniconda3)
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda2-4.7.12.1-Linux-x86_64.sh
chmod +x Miniconda2-4.7.12.1-Linux-x86_64.sh
./Miniconda2-4.7.12.1-Linux-x86_64.sh
# 修改zshrc xxx为用户名
export PATH=$PATH:/usr/local/cmake/bin:/home/xxx/miniconda2/bin
# 修改完之后重启一个终端
source ~/.zshrc
# 新建环境
conda create -n py36 python=3.6
conda init zsh
conda activate py36
# 更新pip
pip install --upgrade pip
终端输入nvidia-smi 查看cuda能支持的最高版本
nvidia-smi输出的CUDA Version是指该显卡驱动能支持的最高CUDA Toolkit版本。
具体来说,nvidia-smi显示的CUDA Version是当前驱动的最高支持版本。由于CUDA是向下兼容的,所以最高支持版本以下的CUDA版本都是支持的。例如,如果nvidia-smi显示最高版本支持为11.4,那么11.4以及11.4以下的版本都是支持的。
首先根据python版本确定需要的pytorch版本
python3.6-> 最高支持torch 1.10
前往网址pytorch 版本选择
找到1.10 对应的cuda11.1的版本
# 下载torch torchvision
pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
六、libbot 配置
Requirements
GLib 2.0+
CMake >=3.1
LCM (http://lcm.googlecode.com) 💡
Java (Sun JDK or OpenJDK strongly preferred)
Python
GTK+ 2.0+ (required by bot2-vis)
OpenGL (required by bot2-vis)
GLUT
PyGTK
1. 容易安装的依赖
#java
sudo yum install java-1.8.0-openjdk-devel
#GLib 2.0+
sudo yum install glib2-devel
sudo yum install glibc-static.x86_64
udo yum install build-essential
sudo yum install autoconf automake libtool
sudo yum install gdk-pixbuf2-devel.x86_64
# GTK+ 2.0+ (required by bot2-vis)
sudo yum install gtk2-devel.x86_64
# GLUT
sudo yum install freeglut-devel.x86_64
2. 需要源码安装的依赖
# 1. lcm 官网:http://lcm-proj.github.io/lcm/
git clone https://github.com/lcm-proj/lcm.git
# 2. 安装cmake3.1以上版本
# 因为: yum install的cmake版本小于3.1 会报错
sudo yum remove cmake
wget https://github.com/Kitware/CMake/releases/download/v3.17.2/cmake-3.17.2.tar.gz
tar -zxvf cmake-3.17.2.tar.gz
cd cmake-3.17.2
./bootstrap --prefix=/usr/local/cmake -- -DCMAKE_BUILD_TYPE:STRING=Release
make
sudo make install
## 然后修改~/.zshrc
export PATH=/usr/local/cmake/bin:$PATH
## 3. 缺少 lcm-python
# 本机python2.7 pip lcm 没有
# 下载了conda 和python3.6 (见四、) 并且更新了pip之后
pip install lcm
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j8
sudo make install
wget https://www.lua.org/ftp/lua-5.4.1.tar.gz
tar -zxvf lua-5.4.1.tar.gz
yum install -y readline-devel
make linux test
sudo make install
3. libbot
git clone https://github.com/libbot2/libbot2.git
cd libbot2
sudo make BUILD_PREFIX=/usr/local
sudo yum install -y glib-devel.x86_64