Skip to content

Add support for Alpine Linux distro #11

@jacobdr

Description

@jacobdr

Running this package in an alpine-based Python image currently fails.

The simplest reproduction is:

docker run -it --rm python:3.10-alpine pip install nodejs-bin

I happen to be on an M1, but this also fails while emulating the x86_64 platform:

docker run -it --rm --platform linux/amd64 python:3.10-alpine ash

Ideally this package would work as well within Alpine

The pip debug output for my build native :

/ # pip debug --verbose
WARNING: This command is only meant for debugging. Do not use this with automation for parsing and getting these details, since the output and options of this command may change without notice.
pip version: pip 22.2.2 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
sys.version: 3.10.8 (main, Oct 25 2022, 03:04:20) [GCC 11.2.1 20220219]
sys.executable: /usr/local/bin/python
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: UTF-8
sys.platform: linux
sys.implementation:
  name: cpython
'cert' config value: Not specified
REQUESTS_CA_BUNDLE: None
CURL_CA_BUNDLE: None
pip._vendor.certifi.where(): /usr/local/lib/python3.10/site-packages/pip/_vendor/certifi/cacert.pem
pip._vendor.DEBUNDLED: False
vendored library versions:
  CacheControl==0.12.11
  colorama==0.4.5
  distlib==0.3.5
  distro==1.7.0
  msgpack==1.0.4
  packaging==21.3
  pep517==0.12.0
  platformdirs==2.5.2
  pyparsing==3.0.9
  requests==2.28.1
  certifi==2022.06.15
  chardet==5.0.0
  idna==3.3
  urllib3==1.26.10
  rich==12.5.1 (Unable to locate actual module version, using vendor.txt specified version)
  pygments==2.12.0
  typing_extensions==4.3.0 (Unable to locate actual module version, using vendor.txt specified version)
  resolvelib==0.8.1
  setuptools==44.0.0 (Unable to locate actual module version, using vendor.txt specified version)
  six==1.16.0
  tenacity==8.0.1 (Unable to locate actual module version, using vendor.txt specified version)
  tomli==2.0.1
  webencodings==0.5.1 (Unable to locate actual module version, using vendor.txt specified version)
Compatible tags: 105
  cp310-cp310-musllinux_1_2_aarch64
  cp310-cp310-musllinux_1_1_aarch64
  cp310-cp310-musllinux_1_0_aarch64
  cp310-cp310-linux_aarch64
  cp310-abi3-musllinux_1_2_aarch64
  cp310-abi3-musllinux_1_1_aarch64
  cp310-abi3-musllinux_1_0_aarch64
  cp310-abi3-linux_aarch64
  cp310-none-musllinux_1_2_aarch64
  cp310-none-musllinux_1_1_aarch64
  cp310-none-musllinux_1_0_aarch64
  cp310-none-linux_aarch64
  cp39-abi3-musllinux_1_2_aarch64
  cp39-abi3-musllinux_1_1_aarch64
  cp39-abi3-musllinux_1_0_aarch64
  cp39-abi3-linux_aarch64
  cp38-abi3-musllinux_1_2_aarch64
  cp38-abi3-musllinux_1_1_aarch64
  cp38-abi3-musllinux_1_0_aarch64
  cp38-abi3-linux_aarch64
  cp37-abi3-musllinux_1_2_aarch64
  cp37-abi3-musllinux_1_1_aarch64
  cp37-abi3-musllinux_1_0_aarch64
  cp37-abi3-linux_aarch64
  cp36-abi3-musllinux_1_2_aarch64
  cp36-abi3-musllinux_1_1_aarch64
  cp36-abi3-musllinux_1_0_aarch64
  cp36-abi3-linux_aarch64
  cp35-abi3-musllinux_1_2_aarch64
  cp35-abi3-musllinux_1_1_aarch64
  cp35-abi3-musllinux_1_0_aarch64
  cp35-abi3-linux_aarch64
  cp34-abi3-musllinux_1_2_aarch64
  cp34-abi3-musllinux_1_1_aarch64
  cp34-abi3-musllinux_1_0_aarch64
  cp34-abi3-linux_aarch64
  cp33-abi3-musllinux_1_2_aarch64
  cp33-abi3-musllinux_1_1_aarch64
  cp33-abi3-musllinux_1_0_aarch64
  cp33-abi3-linux_aarch64
  cp32-abi3-musllinux_1_2_aarch64
  cp32-abi3-musllinux_1_1_aarch64
  cp32-abi3-musllinux_1_0_aarch64
  cp32-abi3-linux_aarch64
  py310-none-musllinux_1_2_aarch64
  py310-none-musllinux_1_1_aarch64
  py310-none-musllinux_1_0_aarch64
  py310-none-linux_aarch64
  py3-none-musllinux_1_2_aarch64
  py3-none-musllinux_1_1_aarch64
  py3-none-musllinux_1_0_aarch64
  py3-none-linux_aarch64
  py39-none-musllinux_1_2_aarch64
  py39-none-musllinux_1_1_aarch64
  py39-none-musllinux_1_0_aarch64
  py39-none-linux_aarch64
  py38-none-musllinux_1_2_aarch64
  py38-none-musllinux_1_1_aarch64
  py38-none-musllinux_1_0_aarch64
  py38-none-linux_aarch64
  py37-none-musllinux_1_2_aarch64
  py37-none-musllinux_1_1_aarch64
  py37-none-musllinux_1_0_aarch64
  py37-none-linux_aarch64
  py36-none-musllinux_1_2_aarch64
  py36-none-musllinux_1_1_aarch64
  py36-none-musllinux_1_0_aarch64
  py36-none-linux_aarch64
  py35-none-musllinux_1_2_aarch64
  py35-none-musllinux_1_1_aarch64
  py35-none-musllinux_1_0_aarch64
  py35-none-linux_aarch64
  py34-none-musllinux_1_2_aarch64
  py34-none-musllinux_1_1_aarch64
  py34-none-musllinux_1_0_aarch64
  py34-none-linux_aarch64
  py33-none-musllinux_1_2_aarch64
  py33-none-musllinux_1_1_aarch64
  py33-none-musllinux_1_0_aarch64
  py33-none-linux_aarch64
  py32-none-musllinux_1_2_aarch64
  py32-none-musllinux_1_1_aarch64
  py32-none-musllinux_1_0_aarch64
  py32-none-linux_aarch64
  py31-none-musllinux_1_2_aarch64
  py31-none-musllinux_1_1_aarch64
  py31-none-musllinux_1_0_aarch64
  py31-none-linux_aarch64
  py30-none-musllinux_1_2_aarch64
  py30-none-musllinux_1_1_aarch64
  py30-none-musllinux_1_0_aarch64
  py30-none-linux_aarch64
  cp310-none-any
  py310-none-any
  py3-none-any
  py39-none-any
  py38-none-any
  py37-none-any
  py36-none-any
  py35-none-any
  py34-none-any
  py33-none-any
  py32-none-any
  py31-none-any
  py30-none-any

Pip debug output for linux/amd64:

/ # pip debug --verbose
WARNING: This command is only meant for debugging. Do not use this with automation for parsing and getting these details, since the output and options of this command may change without notice.
pip version: pip 22.2.2 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
sys.version: 3.10.8 (main, Oct 13 2022, 23:21:19) [GCC 11.2.1 20220219]
sys.executable: /usr/local/bin/python
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: UTF-8
sys.platform: linux
sys.implementation:
  name: cpython
'cert' config value: Not specified
REQUESTS_CA_BUNDLE: None
CURL_CA_BUNDLE: None
pip._vendor.certifi.where(): /usr/local/lib/python3.10/site-packages/pip/_vendor/certifi/cacert.pem
pip._vendor.DEBUNDLED: False
vendored library versions:
  CacheControl==0.12.11
  colorama==0.4.5
  distlib==0.3.5
  distro==1.7.0
  msgpack==1.0.4
  packaging==21.3
  pep517==0.12.0
  platformdirs==2.5.2
  pyparsing==3.0.9
  requests==2.28.1
  certifi==2022.06.15
  chardet==5.0.0
  idna==3.3
  urllib3==1.26.10
  rich==12.5.1 (Unable to locate actual module version, using vendor.txt specified version)
  pygments==2.12.0
  typing_extensions==4.3.0 (Unable to locate actual module version, using vendor.txt specified version)
  resolvelib==0.8.1
  setuptools==44.0.0 (Unable to locate actual module version, using vendor.txt specified version)
  six==1.16.0
  tenacity==8.0.1 (Unable to locate actual module version, using vendor.txt specified version)
  tomli==2.0.1
  webencodings==0.5.1 (Unable to locate actual module version, using vendor.txt specified version)
Compatible tags: 105
  cp310-cp310-musllinux_1_2_x86_64
  cp310-cp310-musllinux_1_1_x86_64
  cp310-cp310-musllinux_1_0_x86_64
  cp310-cp310-linux_x86_64
  cp310-abi3-musllinux_1_2_x86_64
  cp310-abi3-musllinux_1_1_x86_64
  cp310-abi3-musllinux_1_0_x86_64
  cp310-abi3-linux_x86_64
  cp310-none-musllinux_1_2_x86_64
  cp310-none-musllinux_1_1_x86_64
  cp310-none-musllinux_1_0_x86_64
  cp310-none-linux_x86_64
  cp39-abi3-musllinux_1_2_x86_64
  cp39-abi3-musllinux_1_1_x86_64
  cp39-abi3-musllinux_1_0_x86_64
  cp39-abi3-linux_x86_64
  cp38-abi3-musllinux_1_2_x86_64
  cp38-abi3-musllinux_1_1_x86_64
  cp38-abi3-musllinux_1_0_x86_64
  cp38-abi3-linux_x86_64
  cp37-abi3-musllinux_1_2_x86_64
  cp37-abi3-musllinux_1_1_x86_64
  cp37-abi3-musllinux_1_0_x86_64
  cp37-abi3-linux_x86_64
  cp36-abi3-musllinux_1_2_x86_64
  cp36-abi3-musllinux_1_1_x86_64
  cp36-abi3-musllinux_1_0_x86_64
  cp36-abi3-linux_x86_64
  cp35-abi3-musllinux_1_2_x86_64
  cp35-abi3-musllinux_1_1_x86_64
  cp35-abi3-musllinux_1_0_x86_64
  cp35-abi3-linux_x86_64
  cp34-abi3-musllinux_1_2_x86_64
  cp34-abi3-musllinux_1_1_x86_64
  cp34-abi3-musllinux_1_0_x86_64
  cp34-abi3-linux_x86_64
  cp33-abi3-musllinux_1_2_x86_64
  cp33-abi3-musllinux_1_1_x86_64
  cp33-abi3-musllinux_1_0_x86_64
  cp33-abi3-linux_x86_64
  cp32-abi3-musllinux_1_2_x86_64
  cp32-abi3-musllinux_1_1_x86_64
  cp32-abi3-musllinux_1_0_x86_64
  cp32-abi3-linux_x86_64
  py310-none-musllinux_1_2_x86_64
  py310-none-musllinux_1_1_x86_64
  py310-none-musllinux_1_0_x86_64
  py310-none-linux_x86_64
  py3-none-musllinux_1_2_x86_64
  py3-none-musllinux_1_1_x86_64
  py3-none-musllinux_1_0_x86_64
  py3-none-linux_x86_64
  py39-none-musllinux_1_2_x86_64
  py39-none-musllinux_1_1_x86_64
  py39-none-musllinux_1_0_x86_64
  py39-none-linux_x86_64
  py38-none-musllinux_1_2_x86_64
  py38-none-musllinux_1_1_x86_64
  py38-none-musllinux_1_0_x86_64
  py38-none-linux_x86_64
  py37-none-musllinux_1_2_x86_64
  py37-none-musllinux_1_1_x86_64
  py37-none-musllinux_1_0_x86_64
  py37-none-linux_x86_64
  py36-none-musllinux_1_2_x86_64
  py36-none-musllinux_1_1_x86_64
  py36-none-musllinux_1_0_x86_64
  py36-none-linux_x86_64
  py35-none-musllinux_1_2_x86_64
  py35-none-musllinux_1_1_x86_64
  py35-none-musllinux_1_0_x86_64
  py35-none-linux_x86_64
  py34-none-musllinux_1_2_x86_64
  py34-none-musllinux_1_1_x86_64
  py34-none-musllinux_1_0_x86_64
  py34-none-linux_x86_64
  py33-none-musllinux_1_2_x86_64
  py33-none-musllinux_1_1_x86_64
  py33-none-musllinux_1_0_x86_64
  py33-none-linux_x86_64
  py32-none-musllinux_1_2_x86_64
  py32-none-musllinux_1_1_x86_64
  py32-none-musllinux_1_0_x86_64
  py32-none-linux_x86_64
  py31-none-musllinux_1_2_x86_64
  py31-none-musllinux_1_1_x86_64
  py31-none-musllinux_1_0_x86_64
  py31-none-linux_x86_64
  py30-none-musllinux_1_2_x86_64
  py30-none-musllinux_1_1_x86_64
  py30-none-musllinux_1_0_x86_64
  py30-none-linux_x86_64
  cp310-none-any
  py310-none-any
  py3-none-any
  py39-none-any
  py38-none-any
  py37-none-any
  py36-none-any
  py35-none-any
  py34-none-any
  py33-none-any
  py32-none-any
  py31-none-any
  py30-none-any

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions