背景: Dropbox 邮件提示说服务器要升级到 glibc 2.19 以上, 不然不给用.

============================================================

(下面这段作废. 留着只是让你们知道我特么有多么折腾.)

参考:

  1. https://blog.csdn.net/wyl9527/article/details/78256066
  2. https://www.cnblogs.com/lwf-blog/p/8182975.html
  3. https://blog.csdn.net/RazerTang/article/details/45694567

好吧, 既然要升级就升到最新的, 查了下最新的版本是 glibc-2.28.

按照参考链接步骤做到 configure 的时候提示:

......
checking for python3... python3
configure: error:
*** These critical programs are missing or too old: make compiler
*** Check the INSTALL file for required versions.

ok, 继续升级 Python . (ps: 参考2 ,最终我升级了 3.6.6 版本)

升级过程最后在 make install 的时候又报了这个错:

gcc: 编译器内部错误:已杀死(程序 cc1)

善用搜索

于是找到参考3中的解决方案.

============================================================

经历了上面各种瞎鸡儿升级改造后特么还是有问题! 艹! 劳资无奈只能打开 stackoverflow 去发了个求助.

然后大概几天后收到一个外国老铁给我的解决方案. 说的是利用欺骗的手段让 Dropbox 检测到我们的 glibc 是2.9 的. 我照着教程是搞好了. 所以发一下解决方案给泥萌.

首先 vi dropboxcheat.c 创建出一个 C 语言文件. 然后把下面的内容粘贴进去.

const char *gnu_get_libc_version (void) {
    return "2.19"; }

接着把这个文件编译成 .so 文件, 使用下面这行代码.

gcc -Wall -fPIC -shared -o dropboxcheat.so dropboxcheat.c

然后移动这个 .so 文件到 /usr/local/lib64/ 位置下. 使用下面的这个指令.

mv ./dropboxcheat.so /usr/local/lib64/

然后编辑 dropbox.py 这个文件.

vi dropbox.py

接着查找 start_dropbox 这个方法, 不要进入编辑模式, 直接输入下面代码

/start_dropbox

查找到这个方法后, 按键 i 进入编辑模式. 在句尾回车换行, 敲几个空格保持代码缩进, 接着输入下面的代码.

os.environ['LD_PRELOAD'] = "/usr/local/lib64/dropboxcheat.so"

这里截个图给小可爱们看一下吧. 别写错了.

这一行就是我们要添加的代码.

接着就可以重新跑一下 dropbox 程序了. 结果我 ./dropbox.py start 的时候. 发现报出下面的错.

  File "./dropbox.py", line 233
except OSError, e:
              ^
SyntaxError: invalid syntax

语法错误是什么鬼?! 一脸懵逼. 之后网上查了下才知道是因为前面我为了升级 Glibc 时瞎折腾把 Python 升级到 Python3 的原因.
参考这个答案: https://askubuntu.com/questions/562018/dropbox-and-ubuntu-software-center-doesnt-work-after-setting-python3-4-as-defau

还有之前升级 Python3 时参考的一篇文章. https://www.cnblogs.com/lwf-blog/p/8182975.html 注意看最后面的修改.

然后我这样. vi ./dropbox.py 进入编辑模式. 把文件头部的 #!/usr/bin/python 改为 #!/usr/bin/python2.7

保存退出. 这时 reboot 重启一下.

几分钟后连上服务器之后再跑一下 ./dropbox.py start , 正常执行. 提示重新关联电脑. 嗯选中控制台那串链接, 粘贴到浏览器里打开. 选择关联即可.

到这里就让 Dropbox 恢复工作了!