说来惭愧,虽然大一就已经接触过Linux,但是对Linux的认识还只是停留在使用ROS的时候,输入几行复制而来的指令,跑跑代码上。直到最近,受到几篇技术文章和HITSZ OSA 的影响,我才真正开始有把Linux当作主力操作系统的想法。本文主要以Ubuntu为例,分享一些我的Linux环境配置。
虚拟机 or 双系统?
我觉得这个问题就好比在问:看清华老师的网课还是在清华上线下课。虚拟机固然可以完美地运行Linux,但是很多时候都要从主系统获取帮助,一定程度上依赖于主系统,并不能获得很沉浸式的体验。而且还要和主系统共享一部分内存,性能上也不是最优解。
因此我选择了双系统(dual boot)作为体验Linux的起点。
双系统安装
主要参考了这两个教程
How to dual-boot Windows 11 and Linux on your PC
How to Dual Boot Kali Linux and Windows (in 10 minutes) - YouTube
分配空间的时候建议128 GB 以上
上网代理服务
试过v2ray、clash core和基于前者的Client——Clash for Windows,综合来说CFW比较省心,主要基于以下几个方面:
- 下载比较简单:只用下载一个压缩包就可以了,而v2rayA还需要先下载一个v2ray-core
- 省心的GUI:相比起clash-core,GUI更加直观,开启TUN也更方便
显示卡
NVIDIA和Linux之间的兼容性向来以极差而闻名,我的这次也不例外。主要是开机的时候会花屏、屏幕无法调节亮度,以及无法改变画面比例。
最终解决方案是安装NVIDIA的官方驱动
ubuntu-drivers devices # 查看电脑的显卡型号
然后安装对应的显卡驱动
sudo apt install nvidia-driver-535
我这里没有安装推荐的server版本,因为我的笔记本也不是server啦
安装之后重启一下
sudo reboot
通过以下命令查看安装是否成功
nvidia-smi
输入法
如果要输入中文,请参考这篇教程:
我采用的是官方的IBus,不过词库真的很一般,未来会考虑OSA群友推荐的Fcitx5。
终端
目前是默认终端,shell是zsh+oh my zsh(比bash有更好的interface,可玩性更强)。
在此安利热心网友整理的oh my zsh的几个插件:
包管理
除了APT之外还使用了Homebrew,说不上来有什么绝对优势,但是有一些包还是Homebrew比较好装
Python
miniconda,体积是anaconda的五分之一,但是功能上足以胜任。
编辑器目前使用Vscode,不过因为是Linux,或多或少也接触了Vim,还是蛮不错的,上手教程主要参考了来自b站的这支视频:
Git
创建SSH密钥和Mac\WIndows上面的过程差不多也比较简单,所以使用ssh克隆仓库是我目前的方案。
唯独HTTPS所需要的GCM比较复杂一点,今天折腾了一个下午还没有搞定……
如果你要炼丹的话
不用去NVIDIA官网下载那些奇怪的CUDA Toolkit和cuDNN,因为找兼容版本真的是一个很痛苦的过程。
我参考了这篇教程:
How to install CUDA on Ubuntu 20.04 Focal Fossa Linux - Linux Tutorials - Learn Linux Configuration
结语
总体而言,在Linux上配置开发环境还是比较快乐的。因为大多数环境都可以通过包管理的方式进行静默安装。
最后以OSA某位群友的暴论作结语:
在Linux上难配的环境,在Windows上根本配不起来