Say no to dirty things

9102年了,我们应当拒绝一些脏东西

  1. pip
  2. dkms
  3. 狂刷版本号的内核
  1. pip 会污染/usr/lib/python3.7{-2.7},如果你用的发行版恰好有python-requests之类的包,又有其他包把它作为依赖,那就糟糕了,发行版的包管理器会提示文件冲突,大部分情况是哪怕你用pip卸载了这个包,还是会有文件残留,包管理器那里还是无法通过。我已经有半年没用pip了,发行版上没有的python{,2}-*,我就花半个小时自己打包
  2. dkms 算不算脏东西,我也不知道,但是我知道我和百合都不喜欢
  3. linux/linux-headers 每次更新都会有一些好玩意,但是天天如此,谁能有足够的耐心和精力去容忍他、分析他呢?更新以后新旧内核的冲突又成了让人分心的坏东西,虽然有kernel-modules-hook这种钩子,但工具毕竟是工具。所以我选择linux-lily/linux-lily-headers/nvidia-lily/virtualbox-host-modules-lily,百合倾情打包,全套服务,半年更新一次,用了都说好。

2019-12-15 10:06:49 CST Update:

距离我写出这篇文章已经两个月了,我现在对dkms 和频繁更新的内核又有了新的看法:

  1. 对于dkms,我现在认为这是很好的东西。
    比如nvidia-lily 依赖linux-lily, nvidia依赖linux。
    那我们如果不想用这个内核呢? 如果是那些没有对应的nvidia-*的内核呢?
    dkms 将你从依赖地狱中拯救出来,nvidia-dkms 会对每个内核都生成modules, 并且(基本上)高可用的兼容低版本的内核。
  2. 对于频繁更新的 kernel/kernel-headers。
    我现在很喜欢启用新内核,新内核会带来最新的特性,有时也会有一些问题,但是等几天就会被修复,我认为这是值得的。
    最近一段时间在用linux-ck, ck内核包含了MuQSS,一个任务调度器,会让你的程序占用内存更小,速度更快、吞吐量更大,不至于线程堵塞。
    linux-zen现在也有MuQSS, 不过有一点细小的区别:
    对于抖动频率来说,linux-zen设置的是1000 mhz, linux-ck是100 mhz。表面上来看是zen性能会好一点,其实ck的100就够了,而且温度会稍微低一点。
  3. 对于pip。
    我认为这个工具在现代操作系统上的作用就是给macos/windows 这种没有包管理器的系统使用的,正常一点的系统都有包管理器,自然就不需要。
    当然,我现在也有一些好的看法,比如我认为setup.py(python{,2}-setuptools) 是一个不错的打包工具。
    (我不了解Python的历史,不清楚 setuptools是否和pip有关)