I'm starting to provide Chinese / English versions of some posts, switch with the Language menu above. 我开始提供部分文章的中文、英文翻译,请使用顶部语言菜单切换。

最傻的代码错误:一个空格酿成的血案

Bumblebee 是 Linux 平台上的一款 NVidia 显卡的辅助工具,它可以让 NVidia 显卡启用 Optimus 技术,就是在笔记本电脑平台上由独立显卡渲染,集成显卡显示。其实就是显卡硬件加速。

这是一款非常有用的工具,但是它曾经出过一次很严重的 Bug(虽然是 3 年前),因为一个空格,大群 Ubuntu 用户的 usr 文件夹被删除了。

那是一次 Git 更新,变动位于 install.sh

@@ -37,7 +37,7 @@
  #    You should have received a copy of the GNU General Public License
  #    along with bumblebee.  If not, see <http://www.gnu.org/licenses/>.
  #
 -BUMBLEBEEVERSION=1.4.31
 +BUMBLEBEEVERSION=1.4.32
  
  
  ROOT_UID=0
 @@ -348,7 +348,7 @@ case "$DISTRO" in
    ln -s /usr/lib/mesa/ld.so.conf /etc/alternatives/gl_conf
    rm -rf /etc/alternatives/xorg_extra_modules
    rm -rf /etc/alternatives/xorg_extra_modules-bumblebee
 -  rm -rf /usr /lib/nvidia-current/xorg/xorg
 +  rm -rf /usr/lib/nvidia-current/xorg/xorg
    ln -s /usr/lib/nvidia-current/xorg /etc/alternatives/xorg_extra_modules-bumblebee
    ldconfig
   ;;

因为一个空格,删除指令从 /usr/lib/nvidia-current/xorg/xorg 变成了 /usr 和 /lib/nvidia-current/xorg/xorg 两个文件夹,而 /usr 目录就是你平时放你那一大堆程序的地方,包括 apt-get。。。

GitHub 上世界各地大批程序员疯狂吐槽这个 Bug:

“所以我得先格式化我的硬盘?”“是的,我一般用 Bumblebee 格式化。”

/usr/uploads/2014/01/3298154581

“你有没有装 Bumblebee?”“装了,但是我备份了 usr 文件夹。。。”

/usr/uploads/2014/01/2909647635

“他们会干掉我们,但他们不会干掉我们的 usr”

/usr/uploads/2014/01/723043973

“usr,为什么离开我?”

/usr/uploads/2014/01/1115107318

“Bumblebee,我找你有些话想说”

/usr/uploads/2014/01/3261213394

“usr?早在 2011 年 6 月就不见了,呵呵。”

/usr/uploads/2014/01/4006259684

SElinux 和 AppArmor 都无语了。。。

/usr/uploads/2014/01/2872907203

“我在公司服务器上装了 Bumblebee,现在我需要工作。。。”

/usr/uploads/2014/01/2792998614

“我不经常备份,但是我备份时总是太晚了。。。”

/usr/uploads/2014/01/2548332387

乔布斯:“你听说过 Bumblebee 吗?” 比尔盖茨:“我建议所有 Linux 用户都装一个。”

/usr/uploads/2014/01/1807140881

低轨道黄蜂(Bumblebee)加农炮:

/usr/uploads/2014/01/3115206340

“你在 /usr 后加了个空格怎么了?那路径不存在。”“我没把路径用双引号括起来。。。”

/usr/uploads/2014/01/1434800310

“元首大人,我们在你的机器上装了 Bumblebee。”

/usr/uploads/2014/01/1519896961

选课系统坑爹
下一篇文章 »

本站使用运行在 Vercel 上的 Waline 评论系统,中国大陆访问可能不稳定。