dotnet / install-scripts

MIT License
133 stars 72 forks source link

Install -a arm64 on linux64 will not install because x64 already installed #371

Closed relcodedev closed 1 year ago

relcodedev commented 1 year ago

Hi,

I am trying to install arm64 on linux using script. I have already installed linux64. Multiple archs can be installed on windows. I was trying the same thing on linux. Is this not supported? If not that is ok.

I get dotnet-install: .NET Core SDK with version '6.0.412' is already installed. from script.

ROOT - /usr/lib/dotnet

$ sudo ./dotnet-install.sh --architecture arm64  --install-dir /usr/lib/dotnet --verbose

dotnet-install: Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:
dotnet-install: - The SDK needs to be installed without user interaction and without admin rights.
dotnet-install: - The SDK installation doesn't need to persist across multiple CI runs.
dotnet-install: To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer.

dotnet-install: Calling: machine_has curl
dotnet-install: Calling: calculate_vars 
dotnet-install: Calling: get_normalized_architecture_from_architecture arm64
dotnet-install: Normalized architecture: 'arm64'.
dotnet-install: Calling: get_normalized_os 
dotnet-install: Calling: get_current_os_name 
dotnet-install: Calling: get_linux_platform_name 
dotnet-install: Normalized OS: 'linux'.
dotnet-install: Calling: get_normalized_quality 
dotnet-install: Normalized quality: ''.
dotnet-install: Calling: get_normalized_channel LTS
dotnet-install: Normalized channel: 'LTS'.
dotnet-install: Calling: get_normalized_product 
dotnet-install: Normalized product: 'dotnet-sdk'.
dotnet-install: Calling: resolve_installation_path /usr/lib/dotnet
dotnet-install: InstallRoot: '/usr/lib/dotnet'.
dotnet-install: Calling: get_normalized_architecture_for_specific_sdk_version Latest LTS arm64
dotnet-install: Calling: get_current_os_name 
dotnet-install: Calling: get_linux_platform_name 
dotnet-install: Calling: get_download_link_from_aka_ms 
dotnet-install: Retrieving primary payload URL from aka.ms for channel: 'LTS', quality: '', product: 'dotnet-sdk', os: 'linux', architecture: 'arm64'.
dotnet-install: Constructed aka.ms link: 'https://aka.ms/dotnet/LTS/dotnet-sdk-linux-arm64.tar.gz'.
dotnet-install: Calling: get_http_header https://aka.ms/dotnet/LTS/dotnet-sdk-linux-arm64.tar.gz true
dotnet-install: Calling: machine_has curl
dotnet-install: Calling: get_http_header_curl https://aka.ms/dotnet/LTS/dotnet-sdk-linux-arm64.tar.gz true
dotnet-install: Received response: HTTP/1.1 301 Moved Permanently
Server: Kestrel
Location: https://aka.ms/dotnet/6.0/dotnet-sdk-linux-arm64.tar.gz
Request-Context: appId=cid-v1:26ef1154-5995-4d24-ad78-ef0b04f11587
X-Response-Cache-Status: True
Content-Length: 0
Expires: Fri, 14 Jul 2023 17:55:20 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Fri, 14 Jul 2023 17:55:20 GMT
Connection: keep-alive
Strict-Transport-Security: max-age=31536000 ; includeSubDomains

HTTP/1.1 301 Moved Permanently
Server: Kestrel
Location: https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.412/dotnet-sdk-6.0.412-linux-arm64.tar.gz
Request-Context: appId=cid-v1:26ef1154-5995-4d24-ad78-ef0b04f11587
X-Response-Cache-Status: True
Content-Length: 0
Expires: Fri, 14 Jul 2023 17:55:20 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Fri, 14 Jul 2023 17:55:20 GMT
Connection: keep-alive
Strict-Transport-Security: max-age=31536000 ; includeSubDomains

HTTP/2 200 
accept-ranges: bytes
age: 230705
content-md5: z2ctWXrVHQHQL8c/EB/J/Q==
content-type: application/octet-stream
date: Fri, 14 Jul 2023 17:55:20 GMT
etag: 0x8DB820DD0C4DB8A
last-modified: Tue, 11 Jul 2023 12:53:25 GMT
server: ECAcc (bsa/EAAC)
x-cache: HIT
x-ms-blob-type: BlockBlob
x-ms-lease-status: unlocked
x-ms-request-id: e12a9c09-301e-0128-0863-b40983000000
x-ms-version: 2009-09-19
content-length: 180003433

dotnet-install: The redirect location retrieved: 'https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.412/dotnet-sdk-6.0.412-linux-arm64.tar.gz'.
dotnet-install: Retrieved primary payload URL from aka.ms link: 'https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.412/dotnet-sdk-6.0.412-linux-arm64.tar.gz'.
dotnet-install: Downloading using legacy url will not be attempted.
dotnet-install: Version: '6.0.412'.
dotnet-install: Calling: get_specific_product_version  6.0.412 https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.412/dotnet-sdk-6.0.412-linux-arm64.tar.gz
dotnet-install: Calling: get_specific_product_version_url  6.0.412 true https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.412/dotnet-sdk-6.0.412-linux-arm64.tar.gz
dotnet-install: Constructed productVersion link: https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.412/sdk-productVersion.txt
dotnet-install: Calling: get_specific_product_version_url  6.0.412 false https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.412/dotnet-sdk-6.0.412-linux-arm64.tar.gz
dotnet-install: Constructed productVersion link: https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.412/productVersion.txt
dotnet-install: Checking for the existence of https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.412/sdk-productVersion.txt
dotnet-install: Calling: machine_has curl
dotnet-install: Calling: is_dotnet_package_installed /usr/lib/dotnet sdk 6.0.412
dotnet-install: Calling: combine_paths /usr/lib/dotnet sdk
dotnet-install: combine_paths: root_path=/usr/lib/dotnet
dotnet-install: combine_paths: child_path=sdk
dotnet-install: Calling: combine_paths /usr/lib/dotnet/sdk 6.0.412
dotnet-install: combine_paths: root_path=/usr/lib/dotnet/sdk
dotnet-install: combine_paths: child_path=6.0.412
dotnet-install: is_dotnet_package_installed: dotnet_package_path=/usr/lib/dotnet/sdk/6.0.412
dotnet-install: .NET Core SDK with version '6.0.412' is already installed.
rokonec commented 1 year ago

We currently do not support mixing different runtimes in same directory. To install arm64 you need to install it to different location, for example:

$ sudo ./dotnet-install.sh --architecture arm64 --install-dir /usr/lib/dotnet-arm64 --verbose

If you don't need both side by side, you can also remove previous dotnet installation and rerun installation script. If you chose to do so, please consider soft approach by renaming current folder for example mv /usr/lib/dotnet /usr/lib/dotnet-backup

We would like to understand your use case better. Why do you want to install arm64 dotnet on linux with amd64 CPU?

relcodedev commented 1 year ago

Thank you. That is what I thought to install to different directory. No specific use case. I just saw that on windows, installing Visual Studio 2022 installs arm64 as well. When you do a dotnet --info it lists 2 additional architectures. I will research on how those could be used.