记录Centos7 漫漫配置路

news2024/12/25 9:33:01

记录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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2216454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

幂律分布笔记

一、幂律分布的数据拟合 数据分箱: 所谓分箱就是对原始数据进行分组,然后对每一组内的数据进行平滑处理。常见的分箱方式主要有等深分箱、等宽分箱、用户自定义等 对数分箱: 对原数据进行分箱,第i个箱的宽度为bi,b…

【jQuery】jQuery基本操作(样式操作 内容操作 节点操作 属性操作 节点遍历)

文章目录 1、样式操作2、内容操作2-1 html()2-2 text()2-3 val() 3、节点操作3-1 创建3-2 插入3-3 删除3-4 替换3-5 复制 4、属性操作5、节点遍历6、DOM操作 DOM 操作分为三类: ​ DOM Core:任何一种支持DOM的编程语言都可以使用它,如getElem…

Go语言中的时间比较与时区处理

文章目录 问题背景问题分析验证时区问题 解决方案方法 1:使用本地时区解析时间方法 2:将 time.Now() 转换为 UTC 最终结果总结 在后端开发中,时间处理往往是不可避免的,尤其是涉及到跨时区的应用时,时区问题常常会引发…

基于yolov5的手机屏幕缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示: yolov5,手机屏幕缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】_哔哩哔哩_bilibili (一)简介 基于 YOLOv5 的手机屏幕缺陷检…

创建PV时报错:任务清单存在生产版本的不一致

创建PV时报错:任务清单存在生产版本的不一致。 输入的批量不一致。 批量改为一致99,999,999.000后,报错解决。

Window入侵排查思路-应急响应实战笔记

0x00 前言 当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系 统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措…

对接优惠折扣影票接口有什么好处?

对接电影票接口可以为开发者、商家和用户提供多种好处,以下是一些主要优势: 便捷性:用户可以直接在应用程序或网站上查询电影信息、选择座位和购票,无需离开平台即可完成整个购票流程。 提高用户粘性:为用户提供一站式…

无锁队列实现(Michael Scott),伪代码与c++实现

一、Michael & Scoot 原版伪代码实现 structure pointer_t {ptr: pointer to node_t, count: unsigned integer}structure node_t {value: data type, next: pointer_t}structure queue_t {Head: pointer_t, Tail: pointer_t}initialize(Q: pointer to queue_t)node new_…

薪资管理系统原型PC端+移动端 Axure原型 交互设计 Axure实战项目

薪资管理系统原型PC端移动端 Salary Management System Prototype 薪资管理系统原型图是一种以图形化方式展示系统界面和功能交互的设计图形。该原型图旨在呈现薪资管理系统的整体架构、界面布局和用户交互流程,为开发团队和利益相关者提供一个清晰而具体的概念。…

CSS 实战录: 双栏、四等分、不等间距、自适应...

引言 一个当初困扰我许久的设计稿还原问题, 故在此做个简单记录!! 设计稿布局大概如下图所示 整体分为左右两部分同时划分了模块 A B C DA B C 之间的间距为 24px, C D 之间的间距为 64px整体宽度 100% 自适应铺满, 并且 A B C D 宽度保持一致 那么问题来了, 假设给出下面 DO…

Python | Leetcode Python题解之第473题火柴拼正方形

题目&#xff1a; 题解&#xff1a; class Solution:def makesquare(self, matchsticks: List[int]) -> bool:totalLen sum(matchsticks)if totalLen % 4:return FalsetLen totalLen // 4dp [-1] * (1 << len(matchsticks))dp[0] 0for s in range(1, len(dp)):fo…

【市场解读】传统到端到端的智驾分水岭已至

参考文献&#xff1a;平安证券《汽车行业深度报告&#xff1a;智驾分水岭已至》 关键词学习 端到端智驾系统end to end “端到端”智驾是一种新的智能驾驶技术&#xff0c;不再依赖于传统的感知原件&#xff0c;而是通过算法、AI、模型架构数据迭代来实现自主学习和思考能力…

MySQL数据库从入门到精通 第1讲 基本概念

MySQL数据库从入门到精通 第1讲 基本概念 小可爱们&#xff0c;接下来我们要学习的知识是数据库相关的知识&#xff0c;从本贴开始&#xff0c;从0基础带大家入门到精通&#xff0c;要加油哦~ 1 前言 1.1 为什么要学习数据库&#xff1f; 那我们首先要搞清楚第一个问题&…

深入了解EasyNVR及EasyNVS,EasyNVR连接到EasyNVS当显示授权超时如何解决?又因为什么原因?

我们先来了解NVR批量管理软件/平台EasyNVR&#xff0c;它深耕市场多年&#xff0c;为用户提供多种协议&#xff0c;兼容多种厂商设备&#xff0c;包括但不限于支持海康&#xff0c;大华&#xff0c;宇视&#xff0c;萤石&#xff0c;天地伟业&#xff0c;华为设备。 NVR录像机…

华为FreeBuds 6i戴久了会耳朵胀痛吗?该怎么办?

华为FreeBuds 6i戴久了&#xff0c;会有耳朵胀痛的感觉吗&#xff1f;其实可能是没选对适合自己的耳塞&#xff0c;给你们分享几个佩戴更舒服的方法&#xff0c;一起来看看~ 首先和大家说说为什么华为FreeBuds 6i戴久了不舒服&#xff0c;一方面是耳塞尺寸不合适&#xff0c;另…

Visual Studio 2022 配置 Boost 库

一、使用预编译版本 尽量不要使用预编译版本&#xff0c;因为可能构建的不完全&#xff0c;还得重新构建&#xff0c;不如一步到位 1. 下载预编译的 Boost 库 下载&#xff1a;Boost C Libraries - Browse /boost-binaries at SourceForge.net 2. 选择 msvc 版本&#xff0…

如何将一张图片分成四份,四宫格?图片分割的8种简单方法

如何将一张图片分成四份&#xff0c;四宫格&#xff1f;在日常的图像处理任务中&#xff0c;我们时常会遇到各种特殊的需求。今天&#xff0c;我就遇到了一项颇具挑战性的任务——在特殊情况下&#xff0c;需要将一张图片精确地分成四份&#xff0c;形成一个标准的四宫格。这项…

SQL第15课——插入数据

介绍利用SQL的insert语句将数据插入表中。 15.1 数据插入 select是最常用的语句&#xff0c;但是还有3个常用的SQL语句&#xff0c;第一个就是insert&#xff0c; insert&#xff1a;用来将行插入&#xff08;或添加&#xff09;到数据库表。插入的3中方式&#xff1a; 1. …

光伏仿真系统在光伏项目开发中有哪些应用场景?

光伏仿真系统在光伏项目开发中的应用场景广泛&#xff0c;涵盖了从项目规划、设计优化到运维管理的全过程。 一、项目规划与选址 1、气象模拟与评估 光伏仿真系统能够基于历史气象数据和先进的预测模型&#xff0c;模拟不同地理位置、不同季节和时间段的光照强度、温度、湿度…

网络层及ip报头

★★★★★默写&#xff1a; A类&#xff1a;0~127 B类&#xff1a;128~191 C类&#xff1a;192~223 A类私网&#xff1a;10.0.0 - 10.255.255.255 B类私网&#xff1a;172.16.0.0 - 172.31.255.255 C类私网&#xff1a;19.168.0.0 - 192.168.255.255 特殊&#xff1a; 0.0.0…