【记录】ubuntu环境配置
PC ubuntu系统安装 双系统 环境配置
前言
如何给PC安装操作系统?
- 装Windows系统的例子,推荐B站(bilibili)搜索up主“天才赵德柱”
- 装Ubuntu Desktop系统(ubuntu20.04和ubuntu22.04)的例子,可以参考本文
互联网上已存在大量资料,本文仅简要描述流程并补充一些细节,全流程详情可以自行搜索(例如,百度/google 本文中提到的关键词)
准备工作:
-
主板
-
- 先确定主板支持的引导方式,“legacy”/“uefi”(近年新主板一般支持uefi),并据此制作启动盘
-
-
- 系统镜像可以从“msdn我告诉你”网站获得
制作工具可以用Rufus/Ventoy
如有必要,WINpe系统推荐 微PE工具箱
- 系统镜像可以从“msdn我告诉你”网站获得
-
-
- 进BIOS修改引导设备优先级 / 或者每次开机时用快捷键(例如一些微星主板F11)快速指定引导设备(如U盘/不同硬盘)
-
- 进BIOS关掉“快速启动”和“安全启动”(不同主板BIOS的选项描述是相似的)
- 双系统玩家
-
- 已经装了WIN10/WIN11,想要(在第二块硬盘)装Ubuntu, 先在Windows中关闭/禁用“快速启动”“安全启动”之类的东西
执行Ubuntu安装流程
如果ubuntu的启动盘是Ventoy制作的,用grub2 mode启动
建议通过“试用ubuntu”进试用版桌面,点击桌面上的安装程序执行安装流程,安装流程结束后先别重启电脑,在试用版桌面停留并继续阅读下一节
安装过程:略
建议手动填分区表,EFI分区/交换分区/根目录挂载分区,配置很容易填
双系统玩家修复引导——实现ubuntu系统随插随用
双系统(windows+ubuntu)装单硬盘不同分区的,跳过此节;
机器上单独安装Ubuntu系统而没先装Windows的,跳过此节;
- 这一步非必要,不做照常用,做了可以把ubuntu硬盘拔下来插在另一台PC用
ubuntu装移动硬盘,揣兜里便携性拉满
- 缺点:更换硬件平台时,部分驱动类程序可能需要重新配置
-
- 不报错就先用着,如果有个别软件异常/报错了,就要知道驱动可能需要重新打,例如换机后,某远程桌面软件D3D渲染时闪退,重装Nvidia显卡驱动解决
原因:(不管安装时填的啥)ubuntu22.04的安装程序 默认把引导的grub文件安装在Windows boot manager(也就是windows所在硬盘的EFI分区里),直接将装ubuntu的硬盘拔下来插在另一台机器上,因为没有盘上没有引导,是用不了的。
解决方案,将引导安装在ubuntu自己所在的硬盘的EFI分区里,用到boot-repair软件
步骤如下:
- 方式一(在试用版Ubuntu中完成步骤,推荐):通过“试用ubuntu”进试用版桌面,通过桌面的安装程序完成ubuntu安装,安装完先不要重启,联网,打开终端:
- 方式二(在新装好的Ubuntu中完成步骤):重启,拔掉启动盘,通过windows boot manager进去在新装好的ubuntu系统,联网,打开终端:
进终端后,依次输入以下命令
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
boot-repair
然后就弹出了boot-repair的软件界面
可选:进高级选项看一眼,主要是确认引导安装的位置对不对
点击按钮“应用”/“推荐修复”。节约时间,不要 将报告上传至粘贴区
- Ventoy用户,可能在修复过程中遇到弹窗:是否有RAID磁盘阵列 ? 一般来说PC并没有这个东西,选否即可
结束后:
-
如果boot-repair报“不成功”,找到报错日志,直接拿去问搜索引擎/LLM
-
如果boot-repair报“成功”,还要实测验证:
这些步骤是否成功完成?在移动硬盘的EFI分区出现配置好的boot文件夹和ubuntu文件夹(看不到这个硬盘分区?微PE工具箱安装的WinPE系统自带磁盘管理软件,有办法看到windows所在硬盘的EFI分区)
这些步骤是否实际有效?做到在BIOS中,通过“Ubuntu所在硬盘”启动而不是通过“Windows所在硬盘上的windows boot manager中的ubuntu”启动
经多次实验(一星期内试过各种教程装了N次系统,完成了纯小白的成长),这些步骤总能成功,生不生效看主板,老掉牙的主板(老掉牙的BIOS)可能不行,近几年的主流主板(BIOS有在更)应该行
- 之后,是否删除Windows boot manager里面的ubuntu引导?随意
此外,ubuntu的grub引导会自动搜索电脑上存在的系统(天然地支持引导windows启动),所以可以将ubuntu在BIOS中的优先级改成最高(带“ubuntu”的项),然后可以选择配置grub为“默认启动上次启动的系统”,方便地进行系统切换(不用再多次进BIOS切换咯)
这操作还没实测过,列出以供参考
ubuntu环境配置流程
ubuntu2004、ubuntu2204
按照我个人的需求,安装基本的软件(安装ubuntu时选的最小安装)
安装Nvidia驱动
基本命令操作
终端、当前登录账户与root账户、sudo https://www.51cto.com/article/609812.html
出现相关问题时,需注意:当前登录账户的终端配置在~/.bashrc,root账户的终端配置在/root/.bashrc
修复依赖关系 sudo apt -f install
如果安装过程中提示缺少相关依赖,就输入这个命令(也许会删除某些软件包)
配置环境变量 sudo gedit ~/.bashrc
立即生效 source ~/.bashrc
更新软件包列表 sudo apt update
蓝牙键盘连上了但不能正常用
sudo apt install blueman
装好后操作下
WIN/Ubuntu双系统,时间同步
sudo apt install ntpdate
sudo ntpdate time.windows.com
sudo hwclock --localtime --systohc
环境配置
装就完事了
gcc --version
sudo apt install git -y
sudo apt install gcc -y
sudo apt install make -y
sudo apt-get install build-essential -y
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler -y
sudo apt-get install --no-install-recommends libboost-all-dev -y
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev -y
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev -y
sudo apt-get install pkg-config -y
gcc编译器版本不匹配——安装gcc12
对于Ubuntu22.04.04,Linux内核用gcc12编译但Ubuntu系统仍然默认用gcc11,在安装nvidia驱动时会报错(编译器不识别 -ftrivial-auto-var-init=zero 这个编译选项),解决方案为安装gcc12作为默认的gcc,参考
https://www.bilibili.com/read/cv32928461/
安装gcc12
sudo apt install gcc-12 g++-12
查看gcc版本
ll /usr/bin/gcc*
ll /usr/bin/g++*
将gcc默认改成gcc12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/x86_64-linux-gnu-gcc-12 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/x86_64-linux-gnu-g++-12 100
软件安装包怎么用
- .deb文件 安装包 用命令
通配符* trick:使用 前几个字符*.deb 来描述文件名
sudo dpkg -i
不解决依赖
sudo apt install ./xxxx.deb
解决依赖(似乎并不一定用本地的包安装?)
- .sh文件 .run文件 一般是安装脚本,直接用终端运行
- 命令:
bash
+ 文件名 -
- 用不用sudo提权?参考对应软件安装文档,miniconda的安装推荐不加sudo,默认安装在用户的home目录,加了安装在根目录;ubuntu桌面提供的“终端”软件的工作目录和“文件”软件中的“主目录”都是home目录;nvidia显卡驱动安装脚本,就必须加sudo,用root权限运行
搜狗输入法安装
https://shurufa.sogou.com/linux
https://shurufa.sogou.com/linux/guide
跟随“Ubuntu20.04安装搜狗输入法步骤”
重启电脑,ctrl+空格 切换输入法
实现右键新建文本文档:
在主目录/模板 里面新建一个空的txt(touch命令创建,或随便复制一个txt过来后清空)
vscode
https://code.visualstudio.com/Download#
文件/文件夹,用Vscode启动命令:
code
miniconda
https://docs.anaconda.com/miniconda/miniconda-other-installer-links/
安装时我是有yes输yes,有enter输enter,注意检查,最后会提示已修改的.bashrc文件的目录(将conda的Python环境设为默认终端环境)
安装完后重启终端,用 conda --version
检查
nvidia显卡计算环境
- nvidia显卡驱动
- CUDA计算框架(只用pytorch的话,不用自己装CUDA,装完显卡驱动就完事)
nvidia驱动 https://www.nvidia.cn/geforce/drivers/
CUDA https://developer.nvidia.com/cuda-toolkit-archive
nvidia官方文档 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
nvidia显卡驱动
首先:按以下教程所述 禁用nouveau驱动 并重启(其它步骤不用跟,跟了也没事)
https://www.zhihu.com/tardis/bd/art/654549597
驱动安装(不建议用ubuntu提供的nvidia驱动):
- 方式一(不装CUDA的推荐方式二):和官网下载的CUDA.run包一并安装,无需单独安装(注意nvidia-fs可能装不上,而且不用装,就不勾选,似乎是和容器相关的功能)
- 方式二(推荐):官网 https://www.nvidia.cn/geforce/drivers/ 直接按自己硬件/软件环境搜索驱动,Production Branch是长寿命分支,Linux Short Lived是短寿命分支,下载对应驱动的runfile文件(.run)
安装流程:
如果禁用了nouveau驱动,就点continue;如果提示没有禁用,要退出安装程序,去禁用
有确定/继续,就点
没装libglvnd,在安装过程会报警告,无所谓
问:Install NVIDIA's 32-bit compatibility libraries?
选No
X服务配置,选yes还是no,暂时没发现区别,我选的Yes
安装过程中可能会注销两次,装完后终端运行nvidia-smi
命令验证
安装完驱动,后续在运行项目时可能出现的和GPU/CUDA相关的报错,首先排查驱动是否有问题,通过nvidia-smi
检查下驱动,如果不正常,就用之前下的runfile文件重装一下驱动
原因:ubuntu操作系统有时更新了linux内核版本,需要重新执行安装流程,以重新编译nvidia驱动
对于只用pytorch的玩家,不必装CUDA
pytorch每一个版本都严格对应一个CUDA版本,而它依赖的CUDA环境已经封装在它自己的whl包里面,在安装pytorch(GPU版本)时下的那几个大文件就已经包含了它自己用的CUDA,所以其实并不需要我们去自己安装CUDA
如:IsaacGym环境,不装CUDA也能运行
CUDA框架
装完驱动后nvidia-smi
查看下支持的最高CUDA版本,注意:如果选择Production Branch,可能并不支持到CUDA的最新版本(例如驱动550.100支持只到CUDA12.4),因此手动选择CUDA版本下载
最好用runfile方式安装
各种教程:
https://blog.csdn.net/m0_37605642/article/details/120101966
https://www.cnblogs.com/booturbo/p/13960935.html
https://blog.csdn.net/m0_37605642/article/details/119637836
安装流程结束后,CUDA 版本查看 nvcc -V
如何卸载
CUDA卸载方式:To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.4/bin
nvidia显卡驱动卸载方式:用驱动安装包(runfile)就能卸载,--help
查看卸载命令
更新显卡驱动
runfile文件会自动卸载掉已有的nvidia驱动,在官网下新版驱动的runfile,还是直接运行,完事
比较旧的驱动安装脚本不一定支持自动卸载已有驱动,如果需要再安装很旧的驱动版本,自行搜索如何彻底卸载已有的nvidia显卡驱动
一般来说,驱动类程序总是向后兼容的,新版本的nvidia显卡驱动总是:支持旧型号的(同一产品线/同系列/同类)显卡、支持低版本的CUDA框架,因此一般不必回退某个旧版驱动,若追求生产环境稳定性,在安装驱动时,选择长寿命的稳定版本即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)