Skip to content

Portable 32 and 64 bit x86 PyPy binaries for many Linux distributions.

Notifications You must be signed in to change notification settings

xiexiangwei/portable-pypy

 
 

Repository files navigation

Portable PyPy distribution for Linux

This repository contains efforts to build 64 bit x86 PyPy binaries for various Linux distributions. The idea is that you just download an archive, uncompress it and run it instantly without installing any extra libraries or tweaking your OS. Currently they are known to work across various DEB and RPM based distributions including RHEL/Centos 6 and later, Fedora, SuSE Linux, Ubuntu and Debian stable. PyPy binaries should run on any distribution that includes glibc 2.17.

Latest Python 3.5 release

PyPy3.5 5.9 beta x86_64:

md5:    90223a9437ddd94ac4fda6836cc33e38
sha1:   4b12c5ab6b7617c01c9bb321e0f0216a771647d3
sha256: b0a79dabe2c48b0374d567936139ecf1379904a504d4a645be5c3e7e35140575

Latest Python 2.7 release

PyPy 5.9 x86_64:

md5:    65e4bcf1c18a1c3f2b1405c654d10755
sha1:   729f7654310accdd41d600006f3822c83de951e9
sha256: 8d39eb98df3adf7882a7f3551f47b8c7cff47a0e20d6aabc57bb592f155c2616

All downloads can be found here

Using virtualenv

For your convenience this build also includes packaged virtualenv so you don't have to install one if you haven't done it yet:

portable-pypy/bin/virtualenv-pypy my-environment

In this case you don't have to add -p switch as it defaults to pypy binary located in the build.

Stock virtualenv didn't work with portable binaries prior to version 2.3 that included RPATH entries in pypy binary. For these versions it's obligatory to use virtualenv-pypy that fixes this problem.

Included software

Besides PyPy there is OpenSSL, SQLite3, libffi, expat, TCL/TK and virtualenv packaged in these builds.

A word about OpenSSL

This software bundles OpenSSL. Each build has a version of OpenSSL that was most recent and stable at the time of packaging this software. This is done because OpenSSL versions used across distrubtions in last 10 years greately vary and they are not compatible in ABI nor API way. This also means that if there is a major security issue with OpenSSL updating your system OpenSSL will not solve it for Portable PyPy. If you are looking for tight integration with your distribution you should probably wait until your distribution vendor packages version of PyPy you want to use or you can notify me and wait for a new build.

The ssl module will try to locate and use your system certificate store. Namely it will look for a /etc/pki/tls/certs/ca-bundle.crt file (RHEL derived systems) and then look for a /etc/ssl/certs directory (Debian dervied systems). Finally it will fallback to bundled Mozilla trust stores extraced from certifi project. If you don't like this behavior or your system trust store is located somewhere else you can use SSL_CERT_FILE and SSL_CERT_DIR environment variables to point it somewhere else.

How it is done

Binaries are built with a CentOS 6 base image with help of docker. That ensures that they are built against version of GLIBC that is reasonably old not to cause problems with symbol versioning. All the dependencies are also built inside chroot from latest stable tarballs. They are packed together with PyPy into one distribution and RPATH entries are inserted into them (this ensures that they can be found relatively to each other).

If you want to build it yourself checkout instructions inside BUILD.rst.

About

Portable 32 and 64 bit x86 PyPy binaries for many Linux distributions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 50.7%
  • Shell 49.3%