运行编译脚本,报如下错误: File “/usr/lib64/python2.7/multiprocessing/synchronize.py”, line 75, in init sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue) OSError: [Errno 38] Function not implemented
经过检查,发现需要对 /dev/shm 有写入权限才可以正确运行。 检查 OBS chroot 环境下 /dev/shm 的默认权限设置: drwxr-xr-x 2 root root 4096 Jul 4 18:52 /dev/shm/
默认没有写入权限,而且 OBS 环境下对系统并没有 root 权限,如何破解?
我已经放弃打包 Telegram 了……直接编译太难了,即便解决了这个问题,它还要重新编译打过补丁的 Qt 。
打包编译好的二进制文件就简单多了。
更新:这个问题我已经解决了,补丁 Qt5 的话我之前有解决,方法是先拆分出来一个包,包含了所有编译出来的 Qt 静态库。 我已经成功在 openSUSE42.2 和 Tumbleweed 上面用源码编译的方式打包了 Telegram。 Arch 社区很早就有 Telegram 从源码编译的打包了,我基本上是借鉴了他们的 PKGBUILD。 写了一篇博客记录打包的过程: blog.xuzhao.net/2016/11/%E6%89%93%E5%8C%85Telegram%E5%AE%98%E6%96%B9%E5%AE%A2%E6%88%B7%E7%AB%AF/