网上教程太繁杂了,安装起来又有好多坑,新安装的系统啥啥没有,查了几个教程没一个全的,或者是自己又遇到了新的没提及的问题
于是我综合几个教程和自己所遇到的问题,记录自己ubuntu安装colmap的整个过程
二编:装完回来了,开始安装是2023.11.23,中间断断续续地推进,对我这种任何问题都能打败的人,一个问题能卡一两个月,到2024.2.21熬了个大夜终于结束了,含泪撒花
太不容易了(哭
遇到的问题太太太太多了!九九八十一难不过如此
整个流程参考:
教程1:
讲Ubuntu20.04安装CUDNN、Ceres和Colmap_ubuntu20.04 安装ceres cuda_Nismilesucc的博客-CSDN博客
教程2:
Ubuntu20.04安装Colmap_ubuntu20安装colmap-CSDN博客
目录
1.安装CUDA & CUDNN
1.安装CUDA & CUDNN
参考教程3:
Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸_ubuntu cuda_哈希Map的博客-CSDN博客
1.1安装驱动
因为我是按照教程3来安装驱动的,然后出现了一点问题,又去找了教程4顺利解决。所以
建议先按照教程4的顺序,先完成本文的1.1.2和1.1.3再来安1.1,教程4中也给出了其他方法安装驱动可以参考,教程3中这一部分是使用的教程4里的PPA源安装,安装完驱动后可以从教程4跳回到教程3啦
参考教程4:
ubuntu18.04安装nvidia驱动,3种方式图文详解+卸载教程_ubuntu18.04安装nvidia显卡驱动-CSDN博客
1.1.1 PPA源安装(先关闭secure boot和禁用nouveau驱动再来这一步)
#查看显卡信息lspci | grep -i nvidianvidia-smi#添加源sudo add-apt-repository ppa:graphics-drivers/ppasudo apt update#检查可安装驱动ubuntu-drivers devices#自动安装系统推荐驱动sudo ubuntu-drivers autoinstall
在终端窗口逐行输入以上代码
教程中讲没有报错就是安装好了,但是我等待进度完成后出现以下界面
翻译了一下是secure boot的问题,有教程说按照提示点确定设密码即可,但不知道为啥我点那个确定没有反应,点哪都没反应,于是我关闭了终端,杀死了这个程序
查阅安装驱动的教程后发现了另一个专门安装驱动的教程,发现教程3中使用的是第二种ppa源安装
参考教程4:
ubuntu18.04安装nvidia驱动,3种方式图文详解+卸载教程_ubuntu18.04安装nvidia显卡驱动-CSDN博客在在
然后按照教程4
1.1.2关闭secure boot
我的电脑是戴尔系列的,重启连续点击F2,进入BIOS界面(找secure boot的时候看了几个教程和我电脑的界面都不太一样,最后在右上角放大镜图标搜索界面输入secure才找到,可能每个电脑配置不一样或者教程都太过久远了吧)
在boot configuration里找到secure boot选项关闭,然后点左下角的apply,ok,右下角exit,然后电脑会自动重启
1.1.3禁用nouveau驱动
在终端中输入
sudo gedit /etc/modprobe.d/blacklist_nouveau.conf
输入开机密码后会弹出文本框,在文本框里输入
blacklist nouveau
options nouveau modeset=0
如下图所示
点击保存,然后重启电脑
验证,输入
lsmod | grep nouveau
没有输出结果即验证成功
1.1.4验证显卡信息
好的我又出错了,输入nvidia-smi查看显卡信息
报错
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
又去查教程。。。。
参考教程5:
NVIDIA驱动出错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver. Make sure t_nvidia-smi has failed because it couldn't communic-CSDN博客
按照教程5的方法在终端中输入
cd /usr/srclssudo apt-get install dkms
出现以下界面,可能是我杀死程序导致没安装完,输入提示的指令后继续安装,最后显示
DKMS: uninstall completed.表示DKMS安装完成了
(所以如果按照教程4的顺序来应该会很顺利地完成安装驱动部分吧,可能吧)
输入nvidia-smi还是报错,继续按照教程5的方法重新下载gcc也突然中止,突然我灵机一动想起教程3中讲安装完要重启才能显示,于是乎立即重启再输入nvidia-smi查看显卡信息,果然成功了已经!
1.2安装CUDA
这里就跳回教程3继续下一步骤了
1.2.1降低g++版本
在终端中依行输入以下指令
sudo apt-get install gcc-7 g++-7 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 9sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1 sudo update-alternatives --display gcc sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 9sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1 sudo update-alternatives --display g++
完成后是如下界面
1.2.2从官网下载对应的CUDA
这里教程3里找对应版本的CUDA方法我没看懂,又去找对应的CUDA版本选择
参考教程6:
CUDA和显卡驱动以及pytorch版本的对应关系_cuda和pytorch版本对应-CSDN博客
输入
nvidia-smi -a
查自己的显卡类型
Ubuntu - 查看系统信息_ubuntu 查看系统信息-CSDN博客
查看自己的操作系统
最后选择了11.8版本的CUDA(版本选择我也没搞清楚,这里是求助了一下师姐,师姐推荐安装11.8版本的就直接选择了这个)
进入官网
CUDA Toolkit Archive | NVIDIA Developer
选择11.8的版本的链接点进去
如图选择
如图选择
将下方的指令复制到终端命令窗口
等待完成
按照教程3的步骤一步一步继续
输入第二行指令
sudo sh cuda_11.8.0_520.61.05_linux.run
在弹出的安装界面中选“continue”,输入accept,取消Driver勾选,选中install
1.2.3环境配置
到配置环境变量步骤,因为教程3的指令识别不了,又找了另一个教程
参考教程7:
ubuntu配置cuda环境_ubuntu cuda 环境变量-CSDN博客
输入
sudo gedit ~/.bashrc
在弹出窗口的文档末尾添加
# CUDA Soft Linkexport PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
刷新环境变量
source ~/.bashrc
输入指令nvcc -V
nvcc -V
显示以下界面
至此cuda安装成功!
1.3安装cuDNN
因为找了几个教程都是下载的tgz格式的安装包,有一些指令都不可行,所以又找了个教程,cudnn的安装步骤参考教程8:
ubuntu20.04之--CUDA和CUDNN的安装_ubuntu20.04安装cuda和cudnn-CSDN博客
在官网下载,官网地址如下
CUDA Deep Neural Network (cuDNN) | NVIDIA Developer
选择第二个linux x86_64(Tar)版本点击即下载
下载完成后得到名为cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz的压缩包
在终端输入以下命令解压,tar -xvf 后是文件名
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz
注意注意!!!!解压命令包括下面的复制命令都要在下载文件所在位置打开终端(鼠标右键,在终端打开),否则会查询不到文件信息,这里卡了我好久orz
解压完成
输入以下指令进行复制,一共五行命令,注意文件名和地址,文件名是解压后的文件名cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz且地址前缀为上面安装cuda的时候添加的环境变量地址/usr/local/cuda-11.8,原教程的地址为/usr/local/cuda,这里需要改一下(以自己的环境地址为主)
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/include/cudnn.h /usr/local/cuda-11.8/includesudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64/sudo chmod a+r /usr/local/cuda-11.8/include/cudnn.hsudo chmod a+r /usr/local/cuda-11.8/lib64/libcudnn*sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/include/cudnn_version.h /usr/local/cuda-11.8/include/
修改了好几次,应该是可以了(下图中有好几条指令是错误或重复的/尝试了好多次才得出上五行正确的指令)
输入验证指令
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
得到以下界面,说明安装成功啦!
至此,cuDNN的安装也完成啦!
2.安装依赖
参考教程:
Ubuntu20.04安装CUDNN、Ceres和Colmap_(base) zion@omen:~$ sudo dpkg -l | grep cudnn rc c-CSDN博客
终端命令中输入以下指令
sudo apt-get install \ git \ cmake \ ninja-build \ build-essential \ libboost-program-options-dev \ libboost-filesystem-dev \ libboost-graph-dev \ libboost-system-dev \ libeigen3-dev \ libflann-dev \ libfreeimage-dev \ libmetis-dev \ libgoogle-glog-dev \ libgtest-dev \ libsqlite3-dev \ libglew-dev \ qtbase5-dev \ libqt5opengl5-dev \ libcgal-dev \ libceres-dev
报错。。。
参考解决教程
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造成的。E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。_有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达-CSDN博客然后重复输入上述依赖,依旧是以上错误//
硬着头皮往下走
3安装Ceres Solver
参考教程
Ubuntu20.04安装Ceres和g2o库_ubuntu20.04安装g2o-CSDN博客
3.1安装依赖
输入指令
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
3.2下载源码
进入链接
GitCode - 开发者的代码家园
点击下载zip,下载完成并解压后,进入ceres-solve目录
3.3进行编译
输入以下指令
mkdir buildcd buildcmake .. # 预编译make -j20 # 编译 可用 nproc 查看cpu核心数sudo make install
输入到cmake的时候显示
好,,又重新找教程,寻到了官方教程:Installation — Ceres Solver
输入以下指令
# CMakesudo apt-get install cmake# google-glog + gflagssudo apt-get install libgoogle-glog-dev libgflags-dev# Use ATLAS for BLAS & LAPACKsudo apt-get install libatlas-base-dev# Eigen3sudo apt-get install libeigen3-dev# SuiteSparse (optional)sudo apt-get install libsuitesparse-dev
一条一条地输入指令,出现以下界面
返回刚才的终端窗口,再次输入cmake ..
成功!
继续输入上述的指令,该输入make -j8了
mkdir buildcd buildcmake .. # 预编译make -j8 # 编译 可用 nproc 查看cpu核心数sudo make install
cpu核心数我查到的我的是8,所以
电脑崩了//
出现以下报错
找教程。。。Ceres与colmap安装_colmap no kernel image is available for execution -CSDN博客
将cmakelist.txt文件的 set(CMAKE_CUDA_ARCHITECTURES "50;60;70;80")删去80
还是不行!!!
继续找解决教程Building ceres-solver fail with eigen3 "error: no type named ‘Literal’ in ‘struct Eigen::NumTraits"_ceres error: no type named ‘literal’-CSDN博客
试试//还是不行/要疯掉
回到安裝步驟
下列软件包有未满足的依赖关系: libqt5svg5-dev : 依赖: libqt5svg5 (= 5.12.8-0ubuntu1) 但是它将不会被安装_qt5-svg5-deve-CSDN博客
輸入
sudo apt-get install aptitudesudo aptitude install libqt5dbus5 libqt5network5 libqt5core5a libqt5widgets5 libqt5gui5 libqt5svg5-dev
參考
https://www.cnblogs.com/gooutlook/p/17682885.html
輸入
sudo aptitude -f install qtbase5-dev
哭了
再次被困難打敗
补充:安装anaconda
2024.2.20我胡汉三又回来了!!!
教程:
Ubuntu20.04 安装 Anaconda步骤_ubuntu20.04安装anaconda-CSDN博客
Ubuntu18.04安装Anaconda(最新最全亲测图文并茂)_ubuntu18如何安装anaconda arm-CSDN博客
下载Anconda安装包
官网链接:
Anaconda | Unleash AI innovation and value
命令
bash Anaconda3-2023.09-0-Linux-x86_64.sh
一直按回车,输入yes
确定安装位置,按enter
继续yes
成功
检验
查看版本号
conda -V
打开
anaconda-navigator
输入
sudo gedit ~/.bashrc
添加
export PATH="/home/pc/anaconda3/bin:$PATH"
完成
2.重新安装依赖
下载了anaconda
教程:E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。_无法修正错误,因为您要求某些-CSDN博客
教程:
ubuntu下装软件,有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的。_ubuntu的unstable发行版-CSDN博客
sudo apt-get install aptitude
挨个安装
sudo aptitude install libqt5opengl5
sudo aptitude install libpam-systemd
sudo aptitude install libqt5concurrent5
sudo aptitude install libqt5core5a
sudo aptitude install libqt5dbus5
sudo aptitude install libqt5gui5
sudo aptitude install libqt5network5
sudo aptitude install libqt5printsupport5
sudo aptitude install libqt5sql5
sudo aptitude install libqt5test5
sudo aptitude install libqt5widgets5
sudo aptitude install libqt5xml5
sudo aptitude install qtbase5-dev-tools
结束
3.重新安装Ceres Solver
mkdir buildcd buildcmake .. # 预编译make -j8 # 编译 可用 nproc 查看cpu核心数sudo make install
终于成功了!!!
我喜极而泣
4.修改anaconda名字
命令
cd ~lsmv anaconda3 axxls
5.下载colmap
5.1下载源码
git clone https://github.com/colmap/colmap.git
出现错误
...
git config --global http.postBuffer 524288000
git config --global http.version HTTP/1.1
$ git config --global http.lowSpeedLimit 0
$ git config --global http.lowSpeedTime 999999
$ git config --global http.postBuffer 1048576000
还是不行,,,,
解决了,,,换了个网,嗖嗖地就下好了
5.2安装colmap
cd col-mapmkdir buildcd buildcmake ..make -jsudo make install
报错啦————
去官网查依赖
官网:Installation — COLMAP 3.9-dev documentation
把官网的依赖再安一遍
sudo apt-get install \ git \ cmake \ ninja-build \ build-essential \ libboost-program-options-dev \ libboost-filesystem-dev \ libboost-graph-dev \ libboost-system-dev \ libeigen3-dev \ libflann-dev \ libfreeimage-dev \ libmetis-dev \ libgoogle-glog-dev \ libgtest-dev \ libsqlite3-dev \ libglew-dev \ qtbase5-dev \ libqt5opengl5-dev \ libcgal-dev \ libceres-dev
还是不行
又找了个依赖
sudo apt-get install \ git \ cmake \ build-essential \ libboost-program-options-dev \ libboost-filesystem-dev \ libboost-graph-dev \ libboost-regex-dev \ libboost-system-dev \ libboost-test-dev \ libeigen3-dev \ libsuitesparse-dev \ libfreeimage-dev \ libgoogle-glog-dev \ libgflags-dev \ libglew-dev \ qtbase5-dev \ libqt5opengl5-dev \ libcgal-dev \ libcgal-qt5-dev
再次进行cmake
还是不行/
降低ceres版本
花了毛毛去咸鱼上找了个解决问题的,ceres版本和eigen版本不兼容
我的ceres版本是2.2.0,eigen版本是3.3.7,要把ceres降低到1.14.0版本的
教程
ceres报错:Eigen3版本和ceres版本冲突问题 - 知乎
安装包:http://distfiles.macports.org/ceres-solver/
安装成功
5.2重新安装colmap
cmake ..
make -j
sudo make install
6.检验colmap
colmap -hcolmap gui
成功了!!!!!!太不容易了!!!!!!!!!!!!!
7.改回anaconda名字
cd ~lsmv axx anaconda3ls
至此
完结撒花!!!!!!!!!!!!!!!!!!!!!