说来惭愧,虽然大一就已经接触过 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

输入法

如果要输入中文,请参考这篇教程:

在 Ubuntu20.04 中安装中文输入法 - 知乎

我采用的是官方的IBus,不过词库真的很一般,未来会考虑 OSA 群友推荐的Fcitx5

终端

目前是默认终端,shell 是 zsh + oh my zsh(比 bash 有更好的 interface,可玩性更强)。

在此安利热心网友整理的 oh my zsh 的几个插件:

Oh my ZSH with zsh-autosuggestions zsh-syntax-highlighting zsh-fast-syntax-highlighting and zsh-autocomplete.md

包管理

除了 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 上根本配不起来