背景: Dropbox 邮件提示说服务器要升级到 glibc 2.19 以上, 不然不给用.
(下面这段作废. 留着只是让你们知道我特么有多么折腾.)
参考:
- https://blog.csdn.net/wyl9527/article/details/78256066
- https://www.cnblogs.com/lwf-blog/p/8182975.html
- 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"
这里截个图给小可爱们看一下吧. 别写错了.
{% image https://raw.githubusercontent.com/geekqian/Graph-bed/master/blog/gHHpuJ5.jpg '' '' %}这一行就是我们要添加的代码.
接着就可以重新跑一下 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
恢复工作了!