开发环境配置

摘要:最近实验室给配了一台新设备,这几天一直在忙着装系统、搭环境。虽然这装系统、搭环境也不是啥难事,但是零零碎碎的细节很是恼人,在此记录一下我在这个过程中遇到的一些问题,供大家参考。同时,也给大家分享一些有趣的应用和工具。

i3wm


文章概览

  • 系统选择
  • 应用分享

系统选择

  对于开发者而言,Linux系统拥有众多优秀的性能,我也一直尝试着将Linux作为主力使用的操作系统。但是,目前很多痛点问题在Linux场景下没有很好的解决方案,比如很多常用的软件没有Linux版本,因此之前我的电脑使用的是win10和Arch Linux双系统,在做不同的任务时可能需要在两个系统之间进行切换。之所以选择Arch Linux是因为Arch Linux拥有非常丰富的软件库,结合wine,能够很好的解决部分场景的痛点问题。但是Arch Linux的更新策略很激进,滚动更新的模式可能会让你的系统出现各种类型的bug。在平稳运行半年之后,我的Arch还是挂了,推测应该是显卡驱动的原因,一直没能修复好,因此只得作罢。之后,我又回归了windows系统。在windows场景下搭建Linux开发环境一般有三种方式:虚拟机、docker、WSL,前两种方式之前都尝试过,也不太符合我的需求,因此这次选择了WSL。我将所有的开发环境部署在WSL中,IDE安装在windows宿主机,IDE可以识别WSL中的编译环境。使用一段时间后,体验非常好,WSL能够满足我在开发场景中所有的需求,在性能方面也接近原生Linux。

  因此,我准备在新机器上继续沿用windows+WSL的环境。由于新配的机器有一块nvidia的显卡,所以在装系统之前,我查阅了以下相关资料,WSL2已经支持显卡接口调用。但是,我忽略了一个关键细节:只有Build 20145或更高预览版的win10下的WSL2才支持显卡调用。装好系统之后,我才发现这一问题,所以装完之后又将系统升级到最新的预览版。接着需要在windows宿主机上安装显卡驱动程序,根据官网的操作一路安装下去,遇到了很多bug,虽然最后也算是装好了,但是总感觉不够稳定。这些功能目前还在测试阶段,所以不推荐作为主力开发环境。win11已经支持上述功能,等正式发布之后,可以再尝试上述功能。

  以防万一,我还是安装了一套Linux环境,这次使用的是ubuntu。ubuntu的社区很强大,各种资料文档也十分丰富,一旦出现问题,可以找到很多解决方案进行参考。双系统的安装过程这里就不赘述了,网上都能找到很多参考资料。接下来,介绍几个我在Linux系统中经常使用的软件工具。


应用分享

i3wm:linux 平铺式窗口管理器,强力推荐。

zsh:功能强大且美观的Linux终端,安装过程可以参考这篇博客

ranger:是一款终端下的文件管理器,具有vim式的操作方式。

1
2
3
4
5
6
7
8
sudo apt install ranger # ubuntu下安装ranger
$ sudo apt-get install highlight # 代码高亮
$ sudo apt-get install w3m # html页面预览
ranger --copy-config=all # 将在~/.config/ranger中生成一系列配置文件
# rc.conf 常用于设置选项和绑定快捷键.
# scope.sh 常用于设置文件的预览方式.
# rifle.conf 常用于设置使用那个软件来打开文件.
# commands.py python文件,增强和改进ranger的各种功能.

通过对ranger的配置文件进行修改,可以实现很多方便快捷的功能,以下介绍如何对pdf和image进行预览。

1
2
3
4
5
6
7
8
9
# 在scope.sh文件中取消这段内容的注释,即可在ranger中预览pdf
application/pdf)
pdftoppm -f 1 -l 1 \
-scale-to-x "${DEFAULT_SIZE%x*}" \
-scale-to-y -1 \
-singlefile \
-jpeg -tiffcompression jpeg \
-- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
&& exit 6 || exit 1;;
1
2
3
# 在rc.conf文件中添加以下内容,即可在ranger中预览图片
set preview_images true
set preview_images_method w3m

flameshot:好用的截图工具

1
sudo apt install flameshot

proxychains:强大的终端代理工具

1
2
3
sudo apt install proxychains
# 配置文件的路径为/etc/proxychains.conf,注释原本的socks4代理配置,添加socks5代理
socks5 127.0.0.1 1080

frp:有一台云服务器,为了随时对主机进行访问,需要配置内网穿透。frp是一款优秀的内网穿透工具,以下给出ssh服务的配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 客户端frpc.ini文件配置
[common]
server_addr = 82.58.156.32 # 自己的服务器端IP
server_port = 7000 # 服务器端frp端口
token = 12345678 # 连接口令

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2222

# 服务器端frps.ini文件配置
[common]
bind_port = 7000
dashboard_port = 7500 # 监控面板
token = 12345678
dashboard_user = admin # 监控面板用户名
dashboard_pwd = admin # 监控面板密码

Filegator:轻量级的开源网盘,功能比较单一(nextcloud的功能更加复杂),能够满足我的日常需求,推荐使用docker方式进行安装。

bashtop:终端系统监控软件

nvtop:终端显卡监控软件

坚持原创技术分享,您的支持将鼓励我继续创作!