[컴] python linux wheel platform tag, manylinux

whl / linux 패키지 tag / manylinux / manlinux2014 /리눅스 패키지 / 휠 패키지 이름 / 네이밍 / naming

python linux wheel platform tag, manylinux

이 글에서는 python linux package 이름에 있는 manylinux 가 무엇을 뜻하는지 알아보려 한다.

위처럼 manylinuxYYYY 등이 보인다. 이것에 대한 설명은 다음 링크에 잘 나와 있다.

내용은 linux 의 경우 배포판(distribution) 에 따라 설치 가능여부가 달라서, 그것에 따라 많은 wheel 을 만들어야 했다. 이유는 PEP 513 에 설명되어 있는데, wheel 이 사용하는 library 들 때문이었다.

그래서 제한된 library 를 써서 되도록 많은 linux 에서 사용 가능하도록 package 의 tag 를 만들었다.

For these reasons, to achieve broad portability, Python wheels

  • should depend only on an extremely limited set of external shared libraries; and
  • should depend only on “old” symbol versions in those external shared libraries; and
  • should depend only on a widely-compatible kernel ABI.

그래서 만든것이 manylinux1 이라 한다. 그런데, 이것이 linux 가 시간이 흐르면서 새로운 library version 을 쓰게 되면서, manylinux2010, manylinux2014 까지 왔다. 그러다가 이것을 glib 의 버전에 맞춰서 표기하는 manylinux_x_y 까지 오게 됐다고 한다.

아래는, 위 글에서 가져온 표이다.

manylinux tag Client-side pip version required CPython (sources) version embedding a compatible pip Distribution default pip compatibility
manylinux_x_y pip >= 20.3 3.8.10+, 3.9.5+, 3.10.0+ ALT Linux 10+, RHEL 9+, Debian 11+, Fedora 34+, Mageia 8+, Photon OS 3.0 with updates, Ubuntu 21.04+
manylinux2014 pip >= 19.3 3.7.8+, 3.8.4+, 3.9.0+ CentOS 7 rh-python38, CentOS 8 python38, Fedora 32+, Mageia 8+, openSUSE 15.3+, Photon OS 4.0+ (3.0+ with updates), Ubuntu 20.04+
manylinux2010 pip >= 19.0 3.7.3+, 3.8.0+ ALT Linux 9+, CentOS 7 rh-python38, CentOS 8 python38, Fedora 30+, Mageia 7+, openSUSE 15.3+, Photon OS 4.0+ (3.0+ with updates), Ubuntu 20.04+
manylinux1 pip >= 8.1.0 3.5.2+, 3.6.0+ ALT Linux 8+, Amazon Linux 1+, CentOS 7+, Debian 9+, Fedora 25+, openSUSE 15.2+, Mageia 7+, Photon OS 1.0+, Ubuntu 16.04+

댓글 없음:

댓글 쓰기