本篇文章旨在记录从0开始在华硕天选3(Win11)下安装并配置Ubuntu双系统的全部过程,最终目标是搭建起一个满足我学习、科研和娱乐需求的Ubuntu环境,所以每一次对系统所做的配置我都会记录下来,以供参考。在此要感谢文章中所涉及到的其他所有文章的作者。另外,如果大家觉得我所写的内容对你有所帮助,欢迎点赞收藏,我会坚持更新下去的,感谢~
(文章较长,大家可以根据目录自行查找自己需要的内容)
目录
一、安装
二、根目录扩容
三、重装
四、系统的配置(持续更新)
1.安装Nvidia显卡驱动
2.更换软件源
3.安装Chrome浏览器
4.安装Microsoft Edge浏览器
5.安装VScode
(1)安装和基础配置
(2)Vim插件的安装和配置
(3)python环境的配置
6.安装anaconda
(1)基础安装
(2)Anaconda的卸载
7.安装和配置深度学习相关框架
(1)安装pytorch
(2)安装caffe
8.安装Zotero
9.安装pycharm
(1)安装、解释器配置以及创建桌面快捷方式
(2)一些常用工具包的安装
(3)插件的安装
10.配置VSLAM所需环境(参考高翔老师的视觉SLAM14讲第二版)
(1)安装C++的编译器:g++
(2)安装大型工程的编译管理工具:CMake
(3)安装线性代数库:Eigen
(4)基于Eigen的李代数库:Sophus库
(5)安装开源图像处理库:OpenCV
(6)安装C++经典库:Boost
(7)下载Pytorch的C++库:LibTorch
(8)安装回环检测库:DBoW3(词袋模型)
11.安装各类小工具包
12.配置罗技K480键盘在双系统下无缝切换
13、生活类软件的安装
(1)钉钉
(2)QQ
放在前面,准备深度使用ubuntu的在安装时要分配至少200G的空间!
安装的流程基本都是参考博客:Windows11安装Ubuntu 20.04.3 LTS双系统(详细过程)_Meruz的博客-CSDN博客_win11 安装ubuntu由于该博客作者使用的是联想电脑,因此其中的BIOS设置参考博客:华硕天选3 win11+ubuntu20.04双硬盘双系统配置(包括ubuntu重启后无法成功进入的设置)_荡神咩的博客-CSDN博客按照上述两篇博客的步骤来,就没有什么问题。其中本人没有对ubuntu进行手动分区处理,而是在选择安装类型的时候直接选择了’安装Ubuntu,与 Windows Boot Manager 共存‘’,目前使用下来没有出现内存不足的问题。
解决双系统时间不同步问题:在Ubuntu终端执行以下命令
sudo apt-get install ntpdate //更新本地时间
sudo ntpdate time.windows.com
sudo hwclock --localtime --systohc //将本地时间更新到硬件上
但需要注意:Ubuntu22.04默认使用的显卡驱动是由Linux一众开发者自己写的nouveau,实际使用下来非常差劲。。。只要进入火狐/Chrome等应用一定卡死,即使在桌面上没做什么操作有时候也会卡死,说明该驱动与本机的RTX 3060显卡适配性很差,因此需要自己安装Nvidia家对应的显卡驱动。目前安装该驱动后已使用2天,再也没有出现过卡死问题。Nvidia显卡驱动的安装见 “三、系统的配置” 。
笔者在使用ubuntu系统5个月后就遇到了内存不足的烦恼……在此十分后悔当初只分了100G的内存,并建议看到这里的Ubuntu深度使用者,一定要至少分配200G的空间给该系统,因为即便你可以把很多文件放到windows系统的盘里,但你根本想象不到一些编程环境配置所需的包有多大!!
ubuntu系统扩容有根目录扩容和在根目录下挂载一个磁盘来变相扩容两种方式,后者仅能用来存放文件,这实际上和直接把文件放到windows系统对应的盘里没有区别,因此本文并不采用此种方式,下面介绍根目录扩容的流程。参考链接:Ubuntu 20.04 根目录磁盘扩容(很快 很简单)_linux_感谢地心引力-DevPress官方社区 (csdn.net)
(2条消息) Ubuntu20.04根目录扩容(双系统)_赵千夜的博客-CSDN博客_ubuntu双系统扩容
ubuntu根目录内存爆满?教你快速扩容! - 知乎 (zhihu.com)
1、分配出一块未分配空间(需要和Ubuntu系统存储分区位于同一个硬盘上)
这一步我直接利用windows系统自带的“创建并格式化硬盘分区”功能进行的。
如图,在想要切割出来一部分空间的卷上右键,选择压缩卷选项,之后输入空间大小即可在该卷的后面得到一块未分配空间。
2、找一个U盘将其制作为系统启动盘
首先解释为什么需要用U盘来启动一个新系统进而调整原Ubuntu系统的磁盘容量:这是由于直接在原Ubuntu系统里利用gparted工具(后文会提到)进行磁盘空间分配时,ubuntu系统的存储盘(我的是下图里最后一个分区)会带一个钥匙符号,即其处于只读状态,不允许修改,如下面两图所示
而当使用一个其它的系统来对原Ubuntu系统对应的硬盘存储分区进行调整时,该钥匙符号就会消失,也就可以顺利执行扩容操作了。
本文介绍两种不同的系统选择:
第一种是将U盘制作成Ubuntu的系统启动盘,具体过程和安装Ubuntu系统时制作U盘为启动盘的步骤一致,可参考链接来进行;
第二种是将U盘直接制作成gparted的启动盘,gparted是一个磁盘管理工具,我这几天看过的Ubuntu系统扩容文章基本都使用的这个工具,可以参考链接来制作gparted的启动U盘。
此外,理论上说,使用任意一个本机Ubuntu系统以外的系统都可以进行它的磁盘扩容操作,如windows,但是我这几天看到的资料里没人这么做,所以暂时按照以上的两种来吧。
3、利用U盘启动进入新的系统
这里以把U盘制作成新Ubuntu系统的启动盘为例进行讲解,而另一种gparted启动盘的操作可参考链接。
插入u盘,开机狂按F2(不同型号的电脑快捷键不一样,笔者的电脑是华硕天选3)进入Bios界面
按F7切换到Advanced Mode界面
选择Boot选项卡
把Boot option1改成UEFI:USB的那个选项,即优先使用U盘启动操作系统
按F10保存,选Yes回车,这时电脑就会自动使用U盘启动新的Ubuntu系统了
如图,我选择了第二个safe graphics来启动新的Ubuntu系统,这是因为我一开始用第一个选项会报错,如果不报错用第一个也可以
进去系统之后选择Try Ubuntu(中文下是试用Ubuntu),因为我们并不是想在电脑上再装一个新系统,而只是利用当前系统来对本机的Ubuntu系统进行扩容而已。
4、利用gparted工具进行扩容
在目前U盘所启动的这个Ubuntu系统里,打开终端,输入
sudo gparted
启动gparted工具,并在工具界面的右上角选择想要操作的硬盘,之后得到如图界面(这里我用的是在本机Ubuntu系统里打开gparted时的界面,当用U盘启动新系统并打开gparted的时候本机Ubuntu系统所对应的存储分区是不会有钥匙符号的,即可被修改)
可以看到在第一步中分配出来的未分配空间250G,这时,由于我在安装本机Ubuntu系统时默认生成了一个和系统启动相关的分区,即图中的/dev/nvme1n1p3,所以从p2分区分出来的250G空间和我想要扩容的最后一个分区之间隔了一个p3分区,而gparted工具只能对相邻的分区进行大小调整。
这时只要在p3分区上右键,选择“调整大小/移动”选项,得到如图界面(这里我忘记拍照了,借用一张来自此文章的图片,如果其作者有意见请联系我删除),然后把其“之前的可用空间”改为0,“之后的可用空间”改为250G,即可把未分配空间由p3分区上面移动到p3分区下面,来和我想要扩容的p4分区相邻。如下面的第二张图,这一步操作会出现这样的提示,实际完成过后发现并不会有什么影响,放心操作即可
最后,在p4分区上同样右键选择“调整大小/移动”选项,然后把“之前的可用空间”改为0,把“新大小”加上250G,确定后,在如图位置点一下绿色的对勾,gparted即会把这些修改应用到实际的硬盘上,耐心等待其完成即可。
5、收尾
完成上述步骤后关机,重新启动时把步骤3中Bios里的Boot设置恢复到原来的顺序,然后F10保存启动即可,此时进入本机的Ubuntu系统可以发现根目录的容量已经成功扩大了!!!!
放在前面,如果只是想扩容的话,不需要进行系统重装,直接参考上面的“二、根目录扩容”进行操作即可。
重装的流程基本参考博客:教你彻底卸载Ubuntu双系统,去污不残留_振华OPPO的博客-CSDN博客_双系统卸载ubuntu
如果不是想要彻底卸载Ubuntu而只是要重装的话,只需要使用DiskGenius软件,选择好对应固态硬盘下Ubuntu所在的EFI分区和主分区(上面提到过,本人没有手动分区,因此安装默认选项安装,会产生一个大约500MB大小的EFI分区和一个主分区),将其右键删除分区,之后选择磁盘-保存分区表保存即可。最后重新按照“一”里的安装流程再安装一遍就行。
下面这个链接解释了Ubuntu下各个文件路径所存放文件的类型,对于文件管理很有参考意义
Ubuntu下各个目录的一般作用
这一步太关键了,直接关系到能不能正常使用ubuntu系统。我成功配置的步骤是参考的下述博客的方法一(注意利用软件和更新直接更换显卡驱动的方法二导致了我的ubuntu无法开机,折腾了一下午+淘宝找人修都失败了,最后直接重装了系统,所以建议使用方法一):Ubuntu20.04、22.04安装nvidia显卡驱动——超详细、最简单_道阻且长行则将至!的博客-CSDN博客_ubuntu2004安装nvidia驱动其中在官网下载Nvidia显卡驱动的时候,如果火狐和Chrome都一打开就卡死,可以在软件商城里面搜索浏览器,如下图所示,下载第一个GNOME的网络浏览器,亲测在没更换显卡驱动之前也可以使用;或者可以在windows里下载好显卡驱动包后再用u盘拷贝到ubuntu里也是可行的。
该驱动的安装过程也包括了一些工具包的安装,如gcc、lightdm等。
个人建议把软件源更换到国内的镜像源,可以在软件下载更新的时候获得更快的速度。
更换软件源的方法见【Ubuntu】Ubuntu 18.04 LTS 更换国内源——解决终端下载速度慢的问题 - 知乎 (zhihu.com)
若更换软件源后进行sudo apt-get update命令时发生 无法连接上 127.0.0.1:1800 (127.0.0.1)。 - connect (111: 拒绝连接) 之类的报错,可以看一下这篇文章,其对解决该问题的方法做了比较好的总结,我遵循其中作者自己提出的方法解决了该问题(7条消息) ubuntu系统下执行sudo apt-get update报错无法连接上 127.0.0.1:58591 (127.0.0.1)。- connect (111: 拒绝连接)的踩坑历程及解决方案总结_zeeq_的博客-CSDN博客_http端口58591已被占用
apt-get命令的原理解析apt-get原理解析 - 简书 (jianshu.com)
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
https://www.myfreax.com/how-to-install-edge-browser-on-ubuntu-20-04/#:~:text=Ubuntu%E4%B8%8A%E5%AE%89%E8%A3%85Edge%E6%B5%8F%E8%A7%88%E5%99%A8%E6%98%AF%E4%B8%80%E4%B8%AA%E9%9D%9E%E5%B8%B8%E7%AE%80%E5%8D%95%E7%9A%84%E8%BF%87%E7%A8%8B%E3%80%82%20%E6%88%91%E4%BB%AC%E5%B0%86%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%90%AF%E7%94%A8Microsoft%20Edge%E5%AD%98%E5%82%A8%E5%BA%93%EF%BC%8C%E5%B9%B6%E4%BD%BF%E7%94%A8%20apt%20%E5%AE%89%E8%A3%85%E5%8C%85%E3%80%82,%E6%9B%B4%E6%96%B0%E5%8C%85%E7%B4%A2%E5%BC%95%E5%B9%B6%E9%80%9A%E8%BF%87%E4%BD%BF%E7%94%A8sudo%E6%9D%83%E9%99%90%20%E7%94%A8%E6%88%B7%20%E8%BF%90%E8%A1%8C%E4%BB%A5%E4%B8%8B%E5%91%BD%E4%BB%A4%20%E6%9D%A5%E5%AE%89%E8%A3%85%20%EF%BC%9A%20%E6%AD%A4%E6%97%B6%EF%BC%8C%E6%82%A8%E7%9A%84Ubuntu%E7%B3%BB%E7%BB%9F%E4%B8%8A%E5%AE%89%E8%A3%85%E4%BA%86Edge%E3%80%82https://www.myfreax.com/how-to-install-edge-browser-on-ubuntu-20-04/#:~:text=Ubuntu%E4%B8%8A%E5%AE%89%E8%A3%85Edge%E6%B5%8F%E8%A7%88%E5%99%A8%E6%98%AF%E4%B8%80%E4%B8%AA%E9%9D%9E%E5%B8%B8%E7%AE%80%E5%8D%95%E7%9A%84%E8%BF%87%E7%A8%8B%E3%80%82%20%E6%88%91%E4%BB%AC%E5%B0%86%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%90%AF%E7%94%A8Microsoft%20Edge%E5%AD%98%E5%82%A8%E5%BA%93%EF%BC%8C%E5%B9%B6%E4%BD%BF%E7%94%A8%20apt%20%E5%AE%89%E8%A3%85%E5%8C%85%E3%80%82,%E6%9B%B4%E6%96%B0%E5%8C%85%E7%B4%A2%E5%BC%95%E5%B9%B6%E9%80%9A%E8%BF%87%E4%BD%BF%E7%94%A8sudo%E6%9D%83%E9%99%90%20%E7%94%A8%E6%88%B7%20%E8%BF%90%E8%A1%8C%E4%BB%A5%E4%B8%8B%E5%91%BD%E4%BB%A4%20%E6%9D%A5%E5%AE%89%E8%A3%85%20%EF%BC%9A%20%E6%AD%A4%E6%97%B6%EF%BC%8C%E6%82%A8%E7%9A%84Ubuntu%E7%B3%BB%E7%BB%9F%E4%B8%8A%E5%AE%89%E8%A3%85%E4%BA%86Edge%E3%80%82
安装不要用下面链接的软件商店直接安装的方法,下载下来的是阉割版,无法输入中文,去VSCode官网下载.deb包,然后用以下命令进行安装,安装以后可以通过终端输入code启动vscode,之后参考后面的链接安装一些插件。
sudo dpkg -i .deb //file是scode安装包的前缀名
Ubuntu下使用VS Code构建CMake工程_su扬帆启航的博客-CSDN博客
行号 设置vim_在VSCode里面配置Vim正确姿势(细节解析)_我虽横行却不霸道的博客-CSDN博客
以下内容均学自vscode官网相关文档。python环境的配置主要用于进行机器学习。
首先在vscode中搜索并安装python插件,该插件会按照一定的规则自动寻找python解释器;
此处假设已经自行创建好了python环境,具体可见“6.安装anaconda”和“7.安装和配置深度学习相关框架”,在vscode利用快捷键ctrl+shift+p打开命令面板,输入命令Python: Select Interpreter,之后选择想要使用的python环境即可,此时运行或调试都将会使用该python环境,也可以直接在底部状态栏设置python环境。如果想要在调试的时候使用其它python环境,在调试配置文件launch.json中的python属性里设置想要使用的python环境,具体可见 Choose a debugging environment.
如果想要在vscode的集成终端中使用conda,由于vscode的默认shell并不支持conda,可以参照该文档修改默认shell,或者在集成终端中直接输入bash激活该shell,亲测bash里可以使用conda命令。
如果想要设置vscode默认的python相关设置,ctrl+shift+p打开命令面板,输入命令Preferences: Open User Settings,之后在打开的设置面板输入python找到python相关设置,把python.condaPath和python.defaultInterpreterPath进行相应修改即可。
注意想安装python版本的opencv库,要用pip来安装名为opencv-python的库,该库为官方库,否则至少也要从conda-forge中寻找cv2库,其它库不是官方版本可能有问题。
anaconda是一个python环境管理工具,主要用于机器学习。放在前面:很多时候,在anaconda中使用conda install命令会遇到solving environment failed问题,因为conda会检测所安装包的依赖性关系,并且经常不通过;此时,可以在终端里激活想要安装到的虚拟环境,之后使用pip install命令来安装想要的包(如果pip install下载很慢,可以换pip的国内源,可参考链接,注意pip换源和conda换源不是同一回事,它们有各自的源)。需要注意,在使用pip命令之前,先用which -a pip来确认一下当前使用的pip是不是当前环境下的,因为pip属于哪个环境就会把包安装到哪个环境,如使用了base环境的pip,则包会安装到base环境下,把包安装错了位置容易导致版本冲突出错。
Ubuntu安装Anaconda详细步骤(Ubuntu21.10,Anaconda3)_萝北村的枫子的博客-CSDN博客_ubuntu安装anaconda
如果像我一样在最后一步选择了默认的no,可以参考以下链接进行调整Linux安装anaconda3是否初始化的区别_青山呦的博客-CSDN博客_anaconda初始化
关闭默认开启base环境:安装anaconda之后,每次打开终端总是会自动启用其base环境,因此通过以下命令关闭默认启动;如果想要启动某个环境,只需要输入下面提到的激活环境的命令
conda config --set auto_activate_base false
创建某个环境:conda create -n 环境名 python=x.x.x(如果要安装pytorch,建议这里的python版本不要超过3.8,本文使用的python3.7,此建议提出时间为20222.08.06)
激活某个环境:conda activate your_env_name(这一步的目的是在之后运行conda install的时候使安装的工具包装到对应的环境里;如果不激活自己的环境会直接装到anaconda默认的base环境里,这样利用anaconda制作的互相独立的虚拟环境意义就不大了)
删除某个环境:conda remove -n your_env_name(虚拟环境名称) --all
删除某个虚拟环境中的包:conda remove --name $环境名称 $包的名称
查看当前环境安装了哪些包:conda list
在当前环境下安装包:conda install 包的名称
查看当前存在哪些虚拟环境:conda env list 或 conda info -e
检查更新当前conda:conda update conda
anaconda换源(按照后面这篇文章所述,建议换成conda-forge的源,并且由于不同源下载的包可能互相不兼容,所以建议所有包都从同一个源下载):Anaconda channel 配置笔记 - 知乎 或anaconda查看和添加镜像源_Surpassall的博客-CSDN博客_anaconda查看镜像源
清华源的添加方式可见其官网anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
conda安装新库的时候经常出现检查兼容性不通过的问题,可看这篇文章后半部分(pip会将包安装到当前激活的conda的env下)Anaconda channel 配置笔记 - 知乎
pip和conda的区别为什么有些人宁愿花费很多时间去自己手工配置Python环境, 也不用Anaconda? - 知乎
个人建议直接看官网的卸载教程,写得很完整,并且用的英文语句都比较简单易懂;实在不想看英文可以参照如下命令,但是可能卸载的不够彻底。
conda install anaconda-clean
anaconda-clean --yes
uninstall Anaconda3
安装pytorch的总体流程可以分为几步:安装anaconda;安装电脑显卡对应的nvidia驱动;安装显卡驱动的对应版本cuda toolkit和cudnn;在pytorch 官网找到对应操作系统、cuda版本的pytorch安装命令,之后直接在终端输入命令安装即可。下面详细介绍:
* 安装anaconda:文章前面已经安装;
* 安装电脑显卡对应的nvidia驱动:文章前面已经安装;
* 安装显卡驱动对应的cuda:
首先,确定nvidia驱动所支持的cuda版本,方法有两种:第一种是直接在终端输入nvidia -smi命令,但是使用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.
搜索之后应该是因为系统内核更新之后没有链接到第三方的Nvidia Server,解决方法如下链接nvidia-smi 报错:无法与 nvidia driver 通信 - 知乎
其中执行第二步代码
sudo dkms install -m nvidia -v 版本号
的时候,可能会因为打开了电脑的secure boot而出现冲突的问题,此时只要搜索自己对应电脑型号关闭secure boot的方法再将其关闭掉即可成功执行该命令。
nvidia -smi命令得到下图所示内容,其中CUDA Version代表的是当前驱动所支持的最高版本CUDA是多少,而不代表已经安装了CUDA!!只要后续安装的cuda版本号低于这里的值即可;
第二种找到显卡驱动对应cuda版本的方式是在英伟达官网里进行查询,链接如下Release Notes :: CUDA Toolkit Documentation
确定好显卡驱动支持的cuda版本后,建议再去pytorch官网看看哪些版本是可以直接选择到安装命令的,这样比较省事,比如cuda11.6就有直接可选的安装命令,而11.5则没有。
之后直接在cuda官网选择对应版本的cuda(注意!本人在2022.08.05安装cuda时,由于pytorch官网最新版本只支持到cuda11.6,所以要选择低于11.6的cuda版本,这就带来了一个问题,cuda11.6版本及以下都没有对应ubuntu22.04的选项,只能先下载对应20.04的cuda11.6.0,在安装时将缺少的依赖手动下载安装上),选择runfile的安装方式,按照提示依次在终端输入安装指令即可,当出现以下画面时,记得将第一个driver勾选掉,因为我们已经安装过显卡驱动了。
安装完成之后,cuda会有提示内容让你把它的路径添加到环境变量中,步骤为:
打开文件(这里我用的vim来编辑文件,也可以用gedit等)
sudo vim ~/.bashrc
在文件末尾添加
export CUDA_HOME=/usr/local/cuda-11.6
export PATH=$PATH:/usr/local/cuda-11.6/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.6/lib64
更新环境
source ~/.bashrc
最后,终端输入 nvcc -V 检查cuda是否安装成功,显示如下内容即可
至此,cuda成功安装!
* 安装cudnn:
直接在官网下载cudnn for CUDA11.x的tar包(下载cudnn还要注册nvidia的账号。。。)
解压以后进入所在文件夹,终端执行以下命令
sudo cp include/cudnn.h /usr/local/cuda/include
sudo cp lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
至此, cudnn安装完毕!
* 官网下载对应的pytorch
如图,选好选项之后会自动提供终端安装命令,执行命令即可安装。但是!!我一开始安装的时候一直提醒Solving environment: failed with initial frozen solve. Retrying with flexible solve.后来发现有时候会输出报错,仔细看一下好像和python的版本有关,我原来用的3.9。没办法,只能在anaconda下用create命令创建一个新环境,指定python版本为3.7(官网原话为It is recommended that you use Python 3.6, 3.7 or 3.8, which can be installed via any of the mechanisms above)。再次执行安装命令,要耐心等待,因为国外的源比较慢,就可以安装了。
安装完成后,进入pycharm(下文会介绍其安装和配置)里进行验证。首先在settings--project--python interpreter里选择添加add intepreter,然后选择conda environment,之后选择好自己pytorch的安装环境,点击apply应用。之后创建一个新python file,然后import torch,再print输出以下torch.cuda.available(),如果输出true,则证明pytorch安装成功。
至此,pytorch安装完成!!!!
强烈建议ubuntu22.04不要尝试直接安装caffe框架,本人耗了三天半尝试了各种方法都不行。淘宝问了个店家,说用ubuntu18.04的系统比较好。(多说一句,想在conda的某个env下安装包,要用conda install命令,用apt install是安装在ubuntu系统里)
简单记录下淘宝找人安装caffe的步骤(找人安装都花了两天,各种问题很多,不建议自己安):
后面这个网站是我找的这家店做的,想自己安装的可以去参考一下开发之路|linux程序员开发者技术站点
简单概述就是,在我的Ubuntu22.04系统里基于bvlc/caffe镜像创建了一个docker容器,然后在该容器配置好了caffe库,之后在其中安装了一个基于miniconda的python3.5.4的caffe接口,最后就可以根据该接口进行caffe相关程序的开发了。建议是在VSCode下面通过远程资源管理器利用ssh连接到该容器环境,然后就可以直接在该容器环境中进行代码的开发,所需要的文件直接通过docker cp命令从本机复制到容器中即可。但是注意容器里要用/etc/init.d/ssh start打开ssh。本文的ssh配置文件是放在/home/david/.ssh/config里。
安装docker(docker的目录在/var/lib/docker,docker简介见Docker 使用指南 (一)—— 基本操作 - 腾讯云开发者社区-腾讯云,常用命令见Docker常用命令,命令大全_生椰打铁的博客-CSDN博客_docker命令);
在docker下搜索安装caffe镜像(装的镜像为bvlc/caffe:cpu);
创建镜像对应的容器(如果exit退出了当前容器,则先使用sudo docker ps -a列出所有创建的容器,之后寻找到目标容器的id,本文为31e69e7cecd1,之后sudo docker start 31e69e7cecd1启动容器,再sudo docker attach31e69e7cecd1连接到当前容器),并在容器里经过一系列的操作安装好了caffe,路径在/opt/caffe/python目录下(注意这是个目录,并不是python解释器,里面放的是caffe包,后面如果import caffe不成功,就把/opt/caffe/python添加到sys.path下即可);
在容器里安装miniconda(这里具体的原因我也忘了,好像是直接利用镜像里的自带的python解释器环境去import caffe总是不成功,所以绕路装了一个miniconda;在miniconda下创建了一个新环境名为caffe,并在该环境里装了3.5.4版本的python作为caffe包的接口,其python解释器路径为/root/miniconda2/envs/caffe/bin/python;之后经过一些设置,就可以成功地在该conda环境里的python解释器中import caffe了);
至此,caffe环境就在docker容器31e69e7cecd1中(该容器id是本文所用的)配置好了!以下是利用pycharm进行代码开发的过程,但建议还是使用上面提到的VSCode来做开发。
以下利用pycharm的方式可以参考Pycharm中SSH、SFTP连接远程服务器编辑调试全面手把手教程_autoreleasepools的博客-CSDN博客_pycharm ssh远程调试
首先要在本机系统而不是docker容器里下载安装pycharm-pro版(因为pro版提供根据ssh或docker创建解释器的功能,可去淘宝花钱买个几年的激活码)(使用时,先进入~/pycharm-professional-2020.1.5/pycharm-2020.1.5/bin路径,打开终端,输入sudo su激活root用户,之后运行sh ./pycharm.sh启动软件);
PS:若import caffe若不成功,则先import sys,然后sys.path.append(“/opt/caffe/python”)(该路径为caffe包所在的目录)
在pycharm中通过docker创建解释器方式的原理可见这篇文章pycharm中添加docker解释器 - 知乎
以下为在docker容器下安装openssh的步骤:
(openssh的安装命令为apt install openssh-server openssh-client,具体安装细节见Ubuntu环境下SSH的安装及使用 - 腾讯云开发者社区-腾讯云, ssh简介见SSH简介及工作机制_JerryHe的博客-CSDN博客);之后进入/etc/ssh/sshd_config文件进行ssh的一些基本设置,设置好后用/etc/init.d/ssh restart使之生效;利用ssh链接到当前docker容器,然后再在pycharm-pro里利用ssh创建caffe环境(需要选择因为直接利用docker创建环境会报错);之后即可在pycharm-pro使用该环境进行代码编写。
这个是我目前刚开始使用的一个文献管理和阅读软件。Zotero官网就有支持Ubuntu等Linux系统的软件安装包,下载下来以后我根据博客(4条消息) ubuntu安装Zotero,任何版本ubuntu适用_模糊包的博客-CSDN博客_ubuntu安装zotero的内容进行了安装,之后安装一系列实用的插件参考的B站视频
【Zotero实用插件】关于文献翻译|中文文献下载|快速浏览|sci-hub链接|影响因子等功能_哔哩哔哩_bilibili
包含各类Zotero插件的网页地址Document
除了视频里的插件,我还安装了:
Zotero-night:用来调整软件的配色主题,可以切换为黑色背景,长时间学习眼睛会舒服一些,GitHub链接为tefkah/zotero-night: Night theme for Zotero UI and PDF (github.com)
在Ubuntu中安装并配置Pycharm教程_ZHW_AI课题组的博客-CSDN博客_pycharm ubantu
方法一:直接在解释器设置里,选择Package上面那个加号按钮,然后就可以搜索想用的工具包并直接安装了,这个方法最方便;
方法二:在终端(ubuntu自带或pycharm里的均可,但是如果使用ubuntu自带的终端,要激活所使用的python解释器对应的anaconda环境,这样才能把工具包安装到目标虚拟环境中)里使用 pip install 工具包名称 命令来安装。
* 深度学习相关:
opencv:pip install opencv-python==3.4.11.43(解释器设置里没有合适的包)
matplotlib:直接在解释器设置里安装3.5.1版本
sklearn:全称为scikit-learn,直接在解释器里安装1.1.2版本
ideavim:在settings--plugins里搜索并安装该插件,以实现部分vim编辑器的功能;其配置文件为~/.ideavimrc,可进行按键重映射等配置,我的配置文件内容如下
" 打开行号显示和相对行号显示
set number
set relativenumber
" 设置高亮搜索
set hlsearch
" 设置搜索时高亮显示
set incsearch
" 插入模式下的按键重映射
inoremap `
" 可视模式下的按键重映射
vnoremap `
" 命令行模式下的按键重映射
cnoremap `
更具体的ideavim配置文件书写可以参考以下三个链接
一文讲清楚vim的map映射_ztenv的博客-CSDN博客_map nnoremap
Vim配置文件map,noremap,unmap,mapclear按键映射说明_弓昭的博客-CSDN博客_map nnoremap
小白都能看懂的超详细ideavim自定义快捷键讲解_CoderBruis的博客-CSDN博客_ideavim
sudo apt-get install g++
在cmake官网下载tar包并解压,进入解压后的文件目录,打开终端,运行如下代码
./bootstrap
在bootstrap过程中出现了如下错误
将缺少的依赖安装即可,安装命令如下
sudo apt-get install libssl-dev
安装之后再次运行第一句命令即可继续bootstrap cmake, 结束以后提示“CMake has bootstrapped. Now run gmake.“,按照提示在终端输入gmake进行编译。
编译完成后,执行最后一步安装流程
sudo make install
至此,cmake安装完成!如果想要卸载,只需执行 sudo make uninstall 即可。想要验证安装成功与否,可以输入 cmake -version 检查一下cmake的版本。
安装命令如下。注意eigen库是一个纯用头文件搭建起来的库,其头文件储存的位置为/usr/include/eigen3,故使用时只需要引入eigen头文件,不需要链接库文件。
sudo apt-get install libeigen3-dev
直接在Sophus作者的GitHub仓库下载压缩包,解压,之后进入解压文件夹依次运行以下代码
mkdir build
cd build
cmake ..
make
运行到最后一步的时候报错,经查阅这是一个普遍问题,解决方案参考链接Sophus安装踩坑_正一番薯的博客-CSDN博客_sophus安装 ,只需要在cmakelist文件里添加一行代码即可,之后重新执行 camke .. 和 make ,一切顺利,Sophus库编译完成。注意,该库只需要进行编译即可,不需要进行make install安装;此外,Sophus库也只有头文件没有库文件,所以引入自己的cmake工程时只需要链接头文件。
首先到官网上下载想要安装的opencv版本(本文安装了3.4.8)的Sources文件,下载后得到一个压缩包;
在正式安装opencv之前,先安装其依赖库,执行以下代码
sudo apt-get install build-essential libgtk2.0-dev libvtk7-dev libjpeg-dev libtiff5-dev:i386 libtiff5-dev libopenexr-dev libtbb-dev
# 以上安装了大部分所需要的依赖,但是有一个依赖库libjasper-dev直接安装会提示无法定位,故要先添加一个包含该库的软件源,之后再安装该依赖库,代码如下
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
#但是执行该行代码可能会出现“由于没有公钥,无法验证下列签名: NO_PUBKEY xxx“的错误,如果出现了该错误,执行以下代码,其中xxx对应了上述报错中的公钥号xxx
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxx
#解决了公钥问题后重新执行添加软件源的代码,添加好之后执行以下两行代码即可安装libjasper-dev库,其中libjasper1是libjasper-dev的依赖库
sudo apt update
sudo apt install libjasper1 libjasper-dev
安装好依赖库之后,进入opencv解压后的文件夹,右键打开终端执行以下命令进行安装
mkdir build
cd build
cmake ..
make
sudo make install
至此,OpenCV的安装完成了!!其默认存放的路径为/usr/local,该路径专门用于存放用户手动安装的程序。
sudo apt-get install libboost-all-dev
安装之后可以在/usr/include/boost下找到;若本方法不成功,其他安装方法可以参考链接 在Ubuntu上安装Boost的五种方法(全网最全,建议收藏)_小熊coder的博客-CSDN博客_ubuntu安装boost
首先进入Pytorch官网,选择适配自己编程环境的LibTorch,之后按照提示链接下载。我这里选择的是第二个链接
下载并解压之后,其实LibTorch的库就不需要执行其他操作了。如果需要在CMake工程里使用,只需要告诉CMake可以从哪里寻找到LibTorch即可,CMakeLists.txt的相关示例内容如下,参考自ubuntu下安装libtorch_大智若鱼.AI的博客-CSDN博客_ubuntu 安装libtorch
set(Torch_DIR /libtorch存放路径/libtorch/share/cmake/Torch)
find_package(Torch REQUIRED)
github地址:https://github.com/rmsalinas/DBow3,进入地址以后直接下载压缩包,解压以后进入文件目录,(因为其是一个cmake工程,所以以下步骤就是常规的cmake编译安装过程)先创建build目录,在该目录下打开终端,输入 cmake.. 和 make 和 sudo make install 三条命令即可成功安装,安装到的路径是/usr/local/里的对应文件夹,具体位置在sudo make install以后的终端输出语句里可以找到。至此,DBoW3库安装成功。
下面说的是我cmake编译过程出现的问题,大部分人应该都可以直接编译成功。所以如果你编译没问题,就不用看下面这一小段内容。
在编译过程中,我出现了好几个类似这样的错误:error: ‘ostream’ in namespace ‘std’ does not name a type。一开始我看到以后就直接去必应搜索了,但是发现大部分回答并不具备借鉴性。这里我想要提醒一下大家,看到报错不要慌,也不要直接就跑去百度,先静下心来看看报错提醒,现在的这些编程工具都很完善,很可能在报错提醒中就已经告诉你应该怎么修改了。如下面两个图,实际上在我的报错后面,cmake已经给我提醒了,并且告诉我建议怎么修改,按照这个提示修改之后就可以成功编译了。
shellcheck:用于检查sh/bash脚本中的错误。安装命令:sudo apt install shellcheck
fd:用于查找指定文件,相较于预装的find命令更符合日常使用习惯。用法为fdfind+部分文件名,使用的模糊搜索的方式。安装命令:sudo apt install fd-find
locate:更加快速的查找命令,locate
使用一个由 updatedb负责更新的数据库,在大多数系统中 updatedb
都会通过 cron 每日更新。这便需要我们在速度和时效性之间作出权衡。而且,find
和类似的工具可以通过别的属性比如文件大小、修改时间或是权限来查找文件,locate
则只能通过文件名。这里有一个更详细的对比。安装命令:sudo apt install plocate
rg:可以直接查找文件中的代码。与grep类似,但速度更快且用法更符合直觉。安装命令:sudo apt install ripgrep
tree:用于显示当前文件夹的结构。安装命令:sudo apt install tree
nnn:更加好用的文件夹可视化命令行工具,按q退出。安装命令:sudo apt install nnn
vim:功能强大的命令行代码编辑器。安装、配置和用法等见编辑器 (Vim) · the missing semester of your cs education
curl:用于数据下载传输等。
ffmpeg:用于处理视频流的工具。
tmux:多路终端复用器,可以用于创建多个互不干扰的终端进程,由于可以将主进程与其他进程分离,使得各自的关闭互不影响,因此特别适用于远端服务器的使用场景,基础操作见missing semester的讲义。
ssh:连接远端服务器的工具包。
git:版本控制工具包,具体操作可见版本控制(Git) · the missing semester of your cs education 或 Git - Book
ipdb:用于python的调试器,是比pdb更好用的增强版本,具体介绍见调试及性能分析 · the missing semester of your cs education
gdb:主要用于类C语言的调试器。
pyflakes、mypy:用于对python程序进行静态分析的工具,所谓静态分析,即在不运行程序的情况下对代码里的错误进行检查,工具包的具体介绍见调试及性能分析 · the missing semester of your cs education
htop:系统资源监控工具,类似与windows下的资源管理器,相关工具见调试及性能分析 · the missing semester of your cs education
make:系统自带的,主要用在大型项目里,用来梳理其编译的逻辑,并进行编译。cmake是更适用于C相关语言的跨平台编译工具,其可以生成对应平台下的Makefile文件,再进行一步make即可完成程序的编译。二者关系的进一步介绍可见CMake是什么?有什么用?_AndrewZhou924的博客-CSDN博客_cmake是干什么的
goto-statement:这个是为了在python程序中使用goto命令而安装的软件包,实测在anaconda的python3.7环境下终端输入pip install goto-statement命令可以成功安装,安装之后即可使用goto命令,用法见goto-statement · PyPI
参考如下链接进行配置
win10和ubuntu18.04双系统解决罗技k380用一个频道无缝连接_Pasture93的博客-CSDN博客
直接在官网下载安装。
我曾经安装过2.0版本的linuxqq,但是那个版本非常垃圾。最近(2022年底)官方发布了3.0版本,我使用下来发现腾讯终于是用心了,下面简述其安装流程。
首先在官网下载deb包;
之后打开终端输入以下命令即可成功安装;
sudo apt install deb包的文件路径
安装完成后终端输入qq即可启动,为了方便可以直接将其添加到收藏夹,这样就可以直接通过图形化界面启动了。
(持续更新中…)