linux下打包python为二进制文件遇到的一些问题(glibc兼容问题,gcc兼容问题)

记录一下当时遇到的坑~

之前在做一个基于python3编写的自动化主机巡检工具,因为工具是放到客户资产上去跑的,工具依赖一些第三方库,所以需要打包成二进制文件。

我当时用的是pyinstaller去打包,打包环境为Ubuntu16.4,打包过程顺利,但是生成的二进制文件放到centos6或者Ubuntu9等低版本linux系统中去跑的时候发现glib2.x找不到,网上查了下发现是在一些老版本中的glibc版本低,不兼容。

查看机器glibc版本可使用以下命令:

lld --version

解决的方法当时想到的有两种,一是在当前机子上安装低版本的glibc,二是去低版本的操作系统打包编译。

第一种方法网上的教程不多,自己尝试过后也以失败告终,所以用了第二种方法去低版本操作系统上打包编译。

linux一般都是自带python2.x的,有些高版本的linux会带python3.x,比如说Ubuntu16。
我虚拟机安装了centos7.4,因为我的程序是基于python3的,所以还要自行安装python3和pip3,关于python3和pip3的安装网上教程很多,这里就跳过了。

安装完毕后,我需要安装程序依赖的第三方库,我这边用的其中一个就是“yara-python”库,使用pip3去安装,过程中到编译的时候报错,报错内容当时忘记截图了,反正就是gcc的版本太低(机子上是4.8左右的好像),不支持yara-python这个库的编译。

于是就要升级gcc,升级的过程可以看这个:
linux升级gcc版本7.1.0

另外这里可能还会有一个坑,如果你用的是云服务器,而且配置很低,可能gcc在编译的时候会报内存不足的错误。虚拟机的话直接加内存即可,很方便。如果是云服务器的话,不是弹性云就加不了,弹性云要加的话还得花钱~这个时候可以尝试增加系统的swap分区,具体的教程可以看下面的文章:
解决编译GCC内存不足的错误

搞定gcc问题后,python第三方库成功安装,后续的打包编译也顺利~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值