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+ |
댓글 없음:
댓글 쓰기