[ArchLinux] Linux中的环境隔离

我在之前的 blog 文章“用Linux学习应该养成的好习惯”中介绍了几个隔离环境的方法。两年使用下来,觉得在日用上还是不太舒服,所以这篇文章做一个补充说明。

编程环境

Python

  在之前的文章中介绍使用 anacondapip 隔离 python 的环境,但由于习惯上使用 pip 来安装包,conda自成一套的安装源用起来不太舒服(毕竟我装个wine都要考虑很久),而且包版本不如pip新。所以conda被弃用了。

  另一个方法是使用 virtualenvpip。virtualenv基于项目来划分虚拟环境,也就是每个项目一个配置,走到了环境隔离的极端。如果有大量项目需要隔离的话,virtualenv很合适。但我本身并不使用python作为主力开发语言,项目不多。对我而言环境隔离最重要的是,装完一些临时使用的包之后可以方便一次卸载。

  这时候virtualenvwrapperpip更适合环境隔离,virtualenvwrapper是基于整个用户环境的隔离,只要当前终端开启了虚拟环境,那么所有项目都会使用。特别适合临时安装的包,或者一些全局的命令。

Java

  archlinux-java(在java-runtime-commonpacman中) 目前仍然是最推荐的隔离 Java 环境的脚本,同样是全局地替换环境。

C/C++

  C/C++目前没有很好的版本管理工具,鉴于平时都是使用 Makefile,所以在 Makefile 中控制即可。

运行环境

wine

  wine 是我最头疼的一个环境,部分软件需要依赖wine运行,但版本各不相同,用久了之后就会出现 wine5、wine6、wine、deepin-wine5、deepin-wine6等wine版本出现在电脑上,而且会在用户目录下留下一堆文件。这个从一开始就要想清楚,能不用 wine 就不用 wine。

  如果必须要使用的话,根据 archwiki 上所写,创建一个新的账户,专门用来安装 wine 和其它依赖 wine 的软件。wiki上给出了一个脚本用来直接 sudo 执行windows软件。但是由于一些权限问题,声卡等设备是不能用的。所以建议直接登出当前用户,使用新用户登录桌面环境后,再运行wine软件。

electron

  别想了,认命吧。