Linux新手避坑指南:零基础安装与环境配置全流程
|
跟产品吵。去年九月,PM 把“Linux新手避坑指南:零基础安装与环境配置全流程”塞进Q4文档OKR时,我正蹲在测试环境里调一个udev规则——U盘插进去不挂载,设备名跑成/dev/sdb17,而前端在console里硬写死了/dev/sdb1。他推着需求说“要普适,要小白友好”,我说“那您先说服Ubuntu 22.04 kernel把initramfs里的cryptsetup版本升上去”。他笑:“你文档又不写内核编译。”我笑:“可我得写为什么systemctl --user enable ssh-agent会失败——因为loginctl show-user $USER | grep -q 'Type=greeter',而这事儿连Ubuntu Desktop自己都没写进man page。” 先扔结论后补细节。这个指南的优点不是“易懂”,是优胜劣汰。它天然过滤掉三类人:一种是连Ctrl+Alt+F2都按不出tty的人,一种是看到GRUB菜单第一行带‘recovery mode’就点进去截图发钉钉问“是不是装好了”的人,还有一种——就是去年九月我在晨会碰上的那个新来的实习生,他照着某站视频用dd烧写ISO到U盘,结果把公司配发的ThinkPad T14自带的32GB eMMC当目标盘给擦了。监控大屏上右下角那个CPU温度曲线,当天抖得像心电图房颤段——但那不是我们的服务,是IT运维在重装BIOS。咖啡杯上印的logo是去年技术大会发的,蓝底白字,现在杯子裂了条缝,胶带缠了两圈。 我原以为装完桌面环境就算过了第一关。结果发现GNOME Settings里WiFi开关灰掉的真正原因,是NetworkManager启动顺序比wpa_supplicant晚417毫秒——而这个417毫秒,在journalctl -b | grep -A5 -B5 'wpa'里藏得比test账户密码还深。谁去倒了杯水?测试那边的小张,端着保温杯路过工位时顺手把我的键盘上那层油膜蹭掉了——他上周刚被要求在自动化用例里加一行验证nmcli dev wifi list是否返回非空。他倒水时,我正在删第三遍sudo apt update && sudo apt upgrade -y的脚本注释:“别加-y,新手会按回车跳过确认,然后apt autoremove干掉python3-gi。” 但真正的陷阱在环境变量。PATH里加/home/xxx/.local/bin?没问题。但如果你顺手export PATH=$PATH:/home/xxx/bin,再装个vscode-server,它启动时加载的node_modules里有个二进制叫‘env’,覆盖了/usr/bin/env——结果所有systemd user service的EnvironmentFile全失效。这个我敢打包票。因为凌晨两点oncall手机震了一下,微信弹出测试群里一张截图:jenkins流水线卡在“Running pre-build script”,log里只有半句:/bin/sh: env: No such file。我没回。我点了支烟,看PM头像灰着——他上周五下班前改了PRD,把“支持多用户SSH登录”悄悄挪到了V2.1。我后来翻Git历史发现,他在同一小时还删了文档里“禁止修改/etc/environment”的警告框,理由是“影响阅读节奏”。 说到Git……上周四上线流程卡在文档校验。测试拿个diff来问我:“这里写的‘sudo systemctl daemon-reload之后必须 reboot’,但实测只restart sshd就行。”我翻commit记录,发现这行是三个月前我加的,因为某次更新openssh-server deb包时,systemd unit文件里ExecStartPre的路径被debconf劫持了——但这事没写进任何release note。我说“你执行一下systemctl cat sshd | grep -A3 ExecStartPre”,他说“我不会grep -A3”。我就把那句删了。删完我喝口水,发现水杯底下压着一张工资条复印件——上面KPI达成率那栏写着68%。后面跟着三个小字:(含文档返工)。 再比如ssh密钥生成。网上90%教程教ssh-keygen -t rsa -b 4096,可Debian 12默认OpenSSH已禁用rsa-sha1签名,但错误提示只在sshd -T里抛Warning,client连的时候直接fallback到密码认证,连拒绝日志都不记。我试过十八次,第十七次才在sshd -ddd -p 2222的调试输出里看见那行“debug1: kex_input_ext_info: server-sig-algs=”。这时PM的消息弹出来:“客户反馈指南第3.2节‘一键配置SSH’跑不通。”我没回。我盯着terminal里那个光标闪了十七秒。后来我把整节重写了,开头加粗:「别用RSA」。就这么六个字。后面跟三行命令,其中一行是sleep 0.5——为的是等dbus-user-session初始化完,否则gnome-keyring-daemon根本不认agent socket。这个我说不准是不是必须,但不加它,73%的新手会在第二天早上发现git push又输密码。 其实最不该写的是swap配置。谁还在2024年手动配swapfile啊?可文档里不写,就有新手照着CentOS 7旧手册创建2G swap分区,结果装完Ubuntu 24.04,zram-generator自动启用,/dev/zram0吞掉80%内存,系统卡死时top里第一个进程永远是kcompactd0。前端老李昨天还问我:“swapfile和zram能共存吗?”我说:“能。但你会在/sys/block/zram0/disksize里看到它偷偷改了你写的4G——改成1.8G,因为它算错了压缩率。”他点头走了。我打开抽屉摸了摸备用U盘,发现上次用的还是去年九月那张——里面ISO镜像早过期了,但label没改,还叫“ubuntu-22.04.3-desktop-amd64”。灰度开关没推完。那批机器现在跑在灰度组,但文档交付早于灰度发布。所以有些读者看到“安装后立即生效”,实际上得等release window开闸。
文章配图,仅供参考 我现在手边这份最新版草稿,留了个空白段落。第5.4节标题是“常见失败模式复现索引”,但内容我还没填。不是不想写,是最近两周在跟DBA吵——他们非要把MySQL 8.0的audit log路径写进文档环境配置示例,说“顺便教育新手理解syslog-ng转发”。我拦住了。我说审计日志不是环境配置,是合规围栏。他甩给我一份GDPR条款截图,附件命名是“2024-Q3_数据库合规性checklist_v4_final_REALLYFINAL.pdf”。我下载下来,重命名为“勿入.docx”,丢进了桌面上那个叫“待处理”的文件夹。文件夹里还有十一份类似名字的文档,最早一份时间戳是去年九月十六号,23:47。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


Linux环境搭建太慢?3步绕过90%配置陷阱
Linux数据库环境搭建:七步稳建指南
Linux安全环境搭建:19年全栈实战指南
Linux深度学习环境搭建:从报错到运行的排障全路径
嵌入式Linux开发者Unix环境搭建避坑指南
Linux运维老手也常踩的5个Unix环境搭建陷阱
Linux下H5开发环境与数据库一键配置