-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
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.