感谢各位大哥的帮助,这个问题已经解决了,总结一下给后人参考吧,因为我把两边的版本都选的是Ubuntu18.04,大家说的这几个方法应该都可以移植,最后使用的so库和修改~/.bashrc路径
背景补充:
实验室是有深度学习服务器的,之前有一次找学长申请sudo权限被婉拒,这次是自己的课程作业不是实验室的项目,需要占用几百G空间和显卡资源,就不好意思再去申请了用公共资源了。于是我使用了阿里云的免费试用但只有100G空间,好在有sudo权限能编译这个预处理文件,但没有办法对我500G的原始文件直接处理,近来华为云与学校有合作,课内发了数百元代金券可以使用ModelArts框架和V100显卡,云盘也可以扩容到2TB比较方便,缺点就是没有公网,没有apt-get,没有sudo,寄人篱下有点难受但考虑到以后也要部署应用到其他的环境,就发了这个帖子询问大家
首先查看两边的ldd --version发现一致,尝试使用no-shared全静态连接但是失败了,安装musl后指定CC运行./configure是可以的,但是make的时候就会说在某个 .h中导入了某个外部的 .so 失败了,推测可能是和这个Github分成了四个模块和框架的总分结构有关?多次尝试后就放弃直接的静态连接了,发现exodus可以直接ssh连接另一台服务器然后导入依赖,就去尝试,但发现华为云这个深度学习框架内不允许ssh密码连接,也许密钥的ssh是可以的,暂且放弃了。
转头尝试docker,发工单后华为工程师告诉我导入使用docker不需要权限,就开始学习,但也发现了查看和打包.so的方法,于是直接使用 ldd name查看依赖,打包依赖库的脚本可以参考ldd.sh帖子,然后在另一环境修改~/.bashrc即可
就像各位所言,这样操作的可行性是建立在glibc版本和Ubuntu版本一致的基础上,如果要移植到其他平台可能要寻找更通用的方法。
再次感谢各位 有什么问题或建议还请留言
@yanqiyu @ysc3839 @tool2d @yyttrr @libook @weidaizi @ch2 @dynos01 @churchill
@felixlong @microxiaoxiao @julyclyde @hsfzxjy @kenvix @ferstar @adoal @yanqiyu
@tomychen @FrankHB @weidaizi @Inn0Vat10n @chai2010 @cattyhouse