Skip to content

dotnet-runtime-2.1 installed on Arch (GNU/Linux), but no support? #1391

@oliverw1

Description

@oliverw1

I'm attempting to trigger an AzureML pipeline (azureml.pipeline.core.pipeline.Pipeline) from my local machine, which runs Arch Linux. It has the dotnet-runtime-2.1 installed. However, it seems that one of the steps taken is to attempt to download a tarball, which is not provided.

The error can be reproduced easily:

(.venv) [oliver@armstrong project]$ dotnet --list-runtimes
Microsoft.NETCore.App 2.1.26 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.8 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
(.venv) [oliver@armstrong project]$ cat debug.py 
from dotnetcore2 import runtime
runtime._enable_debug_logging()
runtime.ensure_dependencies()
(.venv) [oliver@armstrong project]$ python debug.py 
Traceback (most recent call last):
  File "/home/oliver/work/clients/A/code/project/.venv/lib/python3.7/site-packages/dotnetcore2/runtime.py", line 272, in attempt_get_deps
    blob_deps_to_file()
  File "/home/oliver/work/clients/A/code/project/.venv/lib/python3.7/site-packages/dotnetcore2/runtime.py", line 264, in blob_deps_to_file
    blob = request.urlopen(deps_url, context=ssl_context)
  File "/home/oliver/.pyenv/versions/3.7.9/lib/python3.7/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/home/oliver/.pyenv/versions/3.7.9/lib/python3.7/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/home/oliver/.pyenv/versions/3.7.9/lib/python3.7/urllib/request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "/home/oliver/.pyenv/versions/3.7.9/lib/python3.7/urllib/request.py", line 569, in error
    return self._call_chain(*args)
  File "/home/oliver/.pyenv/versions/3.7.9/lib/python3.7/urllib/request.py", line 503, in _call_chain
    result = func(*args)
  File "/home/oliver/.pyenv/versions/3.7.9/lib/python3.7/urllib/request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "debug.py", line 3, in <module>
    runtime.ensure_dependencies()
  File "/home/oliver/work/clients/A/code/project/.venv/lib/python3.7/site-packages/dotnetcore2/runtime.py", line 286, in ensure_dependencies
    if not attempt_get_deps():
  File "/home/oliver/work/clients/A/code/project/.venv/lib/python3.7/site-packages/dotnetcore2/runtime.py", line 280, in attempt_get_deps
    raise NotImplementedError(err_msg + '\n' + _unsupported_help_msg)
NotImplementedError: Linux distribution arch . does not have automatic support.
.NET Core 2.1 can still be used via dotnetcore2 if the required dependencies are installed.
Visit https://aka.ms/dotnet-install-linux for Linux distro specific .NET Core install instructions.
Follow your distro specific instructions to install `dotnet-runtime-*` and replace `*` with `2.1`.

It would seem that Arch is simply unsupported (no tarball provided). If that
is the case, I propose to make the error message clearer, adding that "some distributions are unsupported" to _unsupported_help_msg, as right now that message made it look like there was still an option using e.g. Snap (Arch has dotnet-runtime-2.1 in AUR, and a newer one in the official repo, so it's not a matter of not being able to install the dotnet-runtime).

Inspiration for the simple debug script came from #1003 , which is about similar problems but on Ubuntu 20.04, back when it was not yet supported. In #1003 it was predicted that a list of allowed distros would indeed stop certain distributions.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions