折腾开源软件的乐趣
引言
不知道你们有没有那种经历,半夜三点钟还在电脑前,盯着终端里滚动的日志,折腾一个看似"无用"的开源项目,嘴里还念叨着"再试一次,就一次"。反正我有,而且不止一次。
今天想聊聊为什么我们这帮人会对折腾开源软件这件事乐此不疲。可能有人觉得这是"闲得蛋疼",但我觉得,这种折腾带给我的快乐,比刷短视频、玩游戏要充实得多。
第一次"入坑"
记得第一次认真折腾开源软件是大三的时候。那时候刚学完 C 语言,膨胀得不行,觉得自己天下无敌(现在想想真是笑死)。正好在知乎上看到有人讨论 Linux 内核,我就想,要不自己也编译一个?
说干就干。我花了整整两天时间下载内核源码,配置各种选项。当时什么都不懂,看着 .config 文件里密密麻麻的选项,完全是瞎选。编译过程更是灾难——三次报错,两次是因为依赖没装,一次是因为选错了文件系统格式。
但你知道吗?当最后一次编译成功,系统重启后看到那个自定义内核启动画面的时候,那种满足感……怎么说呢,就像自己造了一辆车然后真的能开一样。虽然这辆车可能还没自行车快,但它是"我的"。
从那以后,我就彻底掉进了开源的大坑。
折腾中的"坑"与成长
折腾开源软件这么多年,踩过的坑可以说是不计其数。有段时间我特别热衷于给自己搭建各种"生产力工具",结果往往是工具没搭建好,原来的系统先崩了。
印象最深的是有一次折腾 Docker。我在一台旧的阿里云服务器上部署了一套自我托管的 Git 服务,用的就是 Docker。结果某天手贱,更新容器的时候没注意数据卷的映射,重启之后所有代码仓库都没了。当时我整个人都懵了,熬到凌晨两点才把备份恢复过来。
但你说这些经历有用吗?太有用了。
通过这些"事故",我学会了:
- 永远先备份再动手
- 仔细阅读文档,不要想当然
- 遇到问题先看日志,别急着问人
- 很多报错其实都是因为没仔细看提示
这些都是课本上学不到的东西。折腾开源软件的过程,其实就是一个不断踩坑、不断填坑、不断成长的过程。
折腾的乐趣在哪里
有人问我,你折腾这些到底图什么?又不能当饭吃。
要我说,乐趣主要有这么几个方面:
第一是学习。 读优秀开源项目的源码,简直就是最好的学习材料。你能看到真正的大牛是怎么写代码的,怎么组织项目的,怎么处理边界情况的。比如我之前研究过一段时间 Hugo(一个静态网站生成器),它对模板引擎的实现让我对 Go 语言的并发模型有了更深的理解。 第二是掌控感。 用开源软件,你可以完全掌控自己的数据,自己的服务。不必担心某个服务突然收费,不必担心隐私泄露。自己搭建的邮件服务、密码管理器、云存储,这些东西完完全全属于你自己。这种安全感,是付费软件给不了的。 第三是社区。 开源社区是个很神奇的地方。大家因为共同的兴趣聚在一起,不求回报地贡献代码、回答问题。我曾经在 GitHub 上提过一个 issue,结果维护者秒回,还夸我找到了一个没人注意的 bug。那种被认可的感觉,真的很棒。 第四是折腾本身。 说实话,有些东西折腾到最后可能根本用不上。但这个折腾的过程,就是最大的乐趣所在。就像有人喜欢拼乐高,有人喜欢钓鱼,我喜欢的就是这种"把东西弄坏再修好"的过程。几个值得折腾的项目
说了这么多,给大家推荐几个我个人觉得很有意思、适合入门的开源项目:
1. Home Assistant
智能家居控制中枢,支持上千种设备的接入。可以把你家里不同品牌的智能设备全部整合到一个界面,还能编写自动化规则。比如:
automation:
- alias: "天黑自动开灯"
trigger:
platform: sun
event: sunset
action:
service: light.turn_on
entity_id: light.living_room
2. Alist
一个支持多网盘聚合的文件列表程序。部署简单,功能强大,支持阿里云、百度网盘、Google Drive 等几十种存储。配合 Docker 一行命令就能跑起来。
3. PaperMC
如果你喜欢玩 Minecraft,可以试试自己架设 PaperMC 服务器。性能比官方服务端好很多,而且有丰富的插件生态。我和几个朋友现在就用的是自己搭建的服务器,玩起来特别爽。
4. Wallos
一个开源的个人财务管理工具。可以自动同步账单、追踪支出、生成报表。界面美观,支持 Docker 部署。对于想掌控自己财务状况的人来说,是个不错的选择。
写在最后
折腾开源软件这么多年,我最大的感受是:这不是在"折腾",而是在"创造"。
我们生活在一个越来越封闭的世界里。大多数东西都被大公司掌控着,我们只是被动地接受。而开源软件给了我们一个机会,一个自己动手、参与创造的机会。
当然,我不是说每个人都必须去折腾这些。但如果你感兴趣,真的建议试试。不需要多少技术基础,现在很多项目都有详细的文档和友好的社区。找一个感兴趣的领域,从部署一个 Docker 容器开始,你会发现一个新世界。
最后,用我最喜欢的一句话结束:Keep calm and keep hacking.
愿我们都能在代码的世界里,找到属于自己的那份乐趣。
折腾开源软件的乐趣
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法