miniPy for CentOS 5/6

不到5MB的Python运行环境for CentOS 5/6

Python进行服务端编程的同学可能遇到过,服务器的Python版本不统一,不符合自己的需求

给每个服务器都安装一个Python又太费事,还占用很多额外空间

我做了一个可以独立运行的比较完整的Python运行环境,希望能对大家有所帮助。

特性

  1. 服务端编程完整功能的Python 2.7.3(剥离了诸如声音,视频等服务端无用模块)
  2. 集成easy_install
  3. 编译出来的Python完整包只有 4MB
  4. 编译出来的包基本可以直接拷贝到任何CentOS5/6的主机上运行,不需要再进行编译。(只依赖libz, libbz2, libkrb, libsqlite等服务器常见库)

现在只在CentOS 5/6上测试通过

mini Python 2.7.3 runtime builder基于 “eGenix PyRun”,拥有服务端编程的完整功能

之前只放在了github上,Readme还是用英文写的,可能不方便大家阅读,今天特意挪到这里了

获取miniPy

伸手党可以从这里直接下载miniPy:

百度云盘

360云盘 (提取码:3982)

如果想自己试试,你需要做的只有:

##编译的机器需要安装sqlite-devel、bzip2-devel、openssl-static

$ sudo yum install -y sqlite-devel bzip2-devel openssl-static

$ git clone https://github.com/auxten/miniPyRuntime.git && cd miniPyRuntime && make

编译出来的miniPy就在 dist/miniPy.tgz

如下图,我们的miniPy主要依赖如下so,这些库在一般的主机上都是安装了的并且ABI也比较稳定

[auxten@host01 ~/miniPyRuntime]$ ldd dist/bin/python
linux-vdso.so.1 =>  (0x00007fff170d3000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x0000003a8aa00000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x0000003a8ba00000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000003a8a600000)
libz.so.1 => /lib64/libz.so.1 (0x0000003a89a00000)
libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x0000003f75600000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x0000003f79a00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003f75200000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003f74e00000)
libutil.so.1 => /lib64/libutil.so.1 (0x0000003f78600000)
libm.so.6 => /lib64/libm.so.6 (0x00007f1a1bb78000)
libc.so.6 => /lib64/libc.so.6 (0x0000003f74a00000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003a8a200000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003a8b600000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003f76e00000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003a89e00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003f74600000)

安装和使用

  1. copy miniPy.tgz to the host
  2. tar xzvf miniPy.tgz && ./install-minipy /path/you/want/to/install
  3. enjoy it!

特别感谢如下项目

  1. eGenix PyRun http://www.egenix.com/products/python/PyRun
  2. upx http://upx.sourceforge.net
  3. freeze http://wiki.python.org/moin/Freeze
  4. strip man strip
文章分类 后端, 运维, 运维开发
0 comments on “miniPy for CentOS 5/6
1 Pings/Trackbacks 对 "miniPy for CentOS 5/6"
  1. […] 尽量静态依赖所有的库,除了常见的libc、libm等什么都不要依赖,做到丢到服务器上就能运行,像这样miniPy for CentOS 5/6和 异步多线程C/S框架gko_pool […]

发表评论

电子邮件地址不会被公开。

在线交流

数百位业内高手和同行在等你交流
Reboot运维开发分享