rustup icon indicating copy to clipboard operation
rustup copied to clipboard

curl error installing rustup on Ubuntu (caused by snapd confinement)

Open imotai opened this issue 2 years ago • 14 comments

Workaround

To install rustup on Ubuntu, make sure that curl is installed via apt, not snapd.

sudo snap remove curl
sudo apt-get install curl

Problem details

curl installed by snap fails to download the rustup installer with the following error:

$curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installer
curl: (23) Failure writing output to destination
rustup: command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.8ptBRv4pHq/rustup-init x86_64-unknown-linux-gnu

Cause

Snapd confinement prevents curl writing to file, the init-rustup.sh script that is downloaded by the curl|sh command given on the webpage attempts to use curl to download the installer to ${TEMP} but this is blocked, resulting in the above error.

imotai avatar Feb 15 '22 04:02 imotai

I download the scripts curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > install.sh and sh +x install.sh

+ [  = Version JM 93t+ 2010-03-05 ]
+ set -u
+ RUSTUP_UPDATE_ROOT=https://static.rust-lang.org/rustup
+ main
+ downloader --check
+ local _dld
+ local _ciphersuites
+ local _err
+ local _status
+ check_cmd curl
+ command -v curl
+ _dld=curl
+ [ --check = --check ]
+ need_cmd curl
+ check_cmd curl
+ command -v curl
+ need_cmd uname
+ check_cmd uname
+ command -v uname
+ need_cmd mktemp
+ check_cmd mktemp
+ command -v mktemp
+ need_cmd chmod
+ check_cmd chmod
+ command -v chmod
+ need_cmd mkdir
+ check_cmd mkdir
+ command -v mkdir
+ need_cmd rm
+ check_cmd rm
+ command -v rm
+ need_cmd rmdir
+ check_cmd rmdir
+ command -v rmdir
+ get_architecture
+ local _ostype _cputype _bitness _arch _clibtype
+ uname -s
+ _ostype=Linux
+ uname -m
+ _cputype=x86_64
+ _clibtype=gnu
+ [ Linux = Linux ]
+ uname -o
+ [ GNU/Linux = Android ]
+ ldd --version
+ grep -q musl
+ [ Linux = Darwin ]
+ [ Linux = SunOS ]
+ check_proc
+ test -L /proc/self/exe
+ _ostype=unknown-linux-gnu
+ get_bitness
+ need_cmd head
+ check_cmd head
+ command -v head
+ local _current_exe_head
+ head -c 5 /proc/self/exe
+ _current_exe_head=ELF
+ printf \177ELF\001
+ [ ELF = ELF ]
+ printf \177ELF\002
+ [ ELF = ELF ]
+ echo 64
+ _bitness=64
+ _cputype=x86_64
+ [ unknown-linux-gnu = unknown-linux-gnu ]
+ [ 64 -eq 32 ]
+ [ unknown-linux-gnu = unknown-linux-gnueabihf ]
+ _arch=x86_64-unknown-linux-gnu
+ RETVAL=x86_64-unknown-linux-gnu
+ local _arch=x86_64-unknown-linux-gnu
+ assert_nz x86_64-unknown-linux-gnu arch
+ [ -z x86_64-unknown-linux-gnu ]
+ local _ext=
+ local _url=https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init
+ local _dir
+ ensure mktemp -d
+ mktemp -d
+ _dir=/tmp/tmp.gDZzFEXNgQ
+ local _file=/tmp/tmp.gDZzFEXNgQ/rustup-init
+ local _ansi_escapes_are_valid=false
+ [ -t 2 ]
+ [ set = set ]
+ _ansi_escapes_are_valid=true
+ local need_tty=yes
+ true
+ printf \33[1minfo:\33[0m downloading installer\n
info: downloading installer
+ ensure mkdir -p /tmp/tmp.gDZzFEXNgQ
+ mkdir -p /tmp/tmp.gDZzFEXNgQ
+ ensure downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
+ downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
+ local _dld
+ local _ciphersuites
+ local _err
+ local _status
+ check_cmd curl
+ command -v curl
+ _dld=curl
+ [ https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init = --check ]
+ [ curl = curl ]
+ get_ciphersuites_for_curl
+ [ -n  ]
+ local _openssl_syntax=no
+ local _gnutls_syntax=no
+ local _backend_supported=yes
+ curl -V
+ grep -q  OpenSSL/
+ _openssl_syntax=yes
+ local _args_supported=no
+ [ yes = yes ]
+ check_help_for notspecified curl --tlsv1.2 --ciphers --proto
+ local _arch
+ local _cmd
+ local _arg
+ _arch=notspecified
+ shift
+ _cmd=curl
+ shift
+ local _category
+ curl --help
+ grep -q For all options use the manual or "--help all".
+ _category=all
+ curl --help all
+ grep -q -- --tlsv1.2
+ curl --help all
+ grep -q -- --ciphers
+ curl --help all
+ grep -q -- --proto
+ true
+ _args_supported=yes
+ local _cs=
+ [ yes = yes ]
+ [ yes = yes ]
+ get_strong_ciphersuites_for openssl
+ [ openssl = openssl ]
+ echo TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
+ _cs=TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
+ RETVAL=TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
+ _ciphersuites=TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
+ [ -n TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 ]
+ curl --proto =https --tlsv1.2 --ciphers TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 --silent --show-error --fail --location https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init --output /tmp/tmp.gDZzFEXNgQ/rustup-init
+ _err=curl: (23) Failure writing output to destination
+ _status=23
+ [ -n curl: (23) Failure writing output to destination ]
+ echo curl: (23) Failure writing output to destination
curl: (23) Failure writing output to destination
+ echo curl: (23) Failure writing output to destination
+ grep -q 404$
+ return 23
+ err command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
+ say command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
+ printf rustup: %s\n command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
rustup: command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
+ exit 1

imotai avatar Feb 15 '22 04:02 imotai

Looks like you're out of space in /tmp

On Tue, 15 Feb 2022 at 05:49, imotai @.***> wrote:

I download the scripts curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > install.sh and sh +x install.sh

  • [ = Version JM 93t+ 2010-03-05 ]
  • set -u
  • RUSTUP_UPDATE_ROOT=https://static.rust-lang.org/rustup
  • main
  • downloader --check
  • local _dld
  • local _ciphersuites
  • local _err
  • local _status
  • check_cmd curl
  • command -v curl
  • _dld=curl
  • [ --check = --check ]
  • need_cmd curl
  • check_cmd curl
  • command -v curl
  • need_cmd uname
  • check_cmd uname
  • command -v uname
  • need_cmd mktemp
  • check_cmd mktemp
  • command -v mktemp
  • need_cmd chmod
  • check_cmd chmod
  • command -v chmod
  • need_cmd mkdir
  • check_cmd mkdir
  • command -v mkdir
  • need_cmd rm
  • check_cmd rm
  • command -v rm
  • need_cmd rmdir
  • check_cmd rmdir
  • command -v rmdir
  • get_architecture
  • local _ostype _cputype _bitness _arch _clibtype
  • uname -s
  • _ostype=Linux
  • uname -m
  • _cputype=x86_64
  • _clibtype=gnu
  • [ Linux = Linux ]
  • uname -o
  • [ GNU/Linux = Android ]
  • ldd --version
  • grep -q musl
  • [ Linux = Darwin ]
  • [ Linux = SunOS ]
  • check_proc
  • test -L /proc/self/exe
  • _ostype=unknown-linux-gnu
  • get_bitness
  • need_cmd head
  • check_cmd head
  • command -v head
  • local _current_exe_head
  • head -c 5 /proc/self/exe
  • _current_exe_head=ELF
  • printf \177ELF\001
  • [ ELF = ELF ]
  • printf \177ELF\002
  • [ ELF = ELF ]
  • echo 64
  • _bitness=64
  • _cputype=x86_64
  • [ unknown-linux-gnu = unknown-linux-gnu ]
  • [ 64 -eq 32 ]
  • [ unknown-linux-gnu = unknown-linux-gnueabihf ]
  • _arch=x86_64-unknown-linux-gnu
  • RETVAL=x86_64-unknown-linux-gnu
  • local _arch=x86_64-unknown-linux-gnu
  • assert_nz x86_64-unknown-linux-gnu arch
  • [ -z x86_64-unknown-linux-gnu ]
  • local _ext=
  • local _url=https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init
  • local _dir
  • ensure mktemp -d
  • mktemp -d
  • _dir=/tmp/tmp.gDZzFEXNgQ
  • local _file=/tmp/tmp.gDZzFEXNgQ/rustup-init
  • local _ansi_escapes_are_valid=false
  • [ -t 2 ]
  • [ set = set ]
  • _ansi_escapes_are_valid=true
  • local need_tty=yes
  • true
  • printf \33[1minfo:\33[0m downloading installer\n info: downloading installer
  • ensure mkdir -p /tmp/tmp.gDZzFEXNgQ
  • mkdir -p /tmp/tmp.gDZzFEXNgQ
  • ensure downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
  • downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
  • local _dld
  • local _ciphersuites
  • local _err
  • local _status
  • check_cmd curl
  • command -v curl
  • _dld=curl
  • [ https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init = --check ]
  • [ curl = curl ]
  • get_ciphersuites_for_curl
  • [ -n ]
  • local _openssl_syntax=no
  • local _gnutls_syntax=no
  • local _backend_supported=yes
  • curl -V
  • grep -q OpenSSL/
  • _openssl_syntax=yes
  • local _args_supported=no
  • [ yes = yes ]
  • check_help_for notspecified curl --tlsv1.2 --ciphers --proto
  • local _arch
  • local _cmd
  • local _arg
  • _arch=notspecified
  • shift
  • _cmd=curl
  • shift
  • local _category
  • curl --help
  • grep -q For all options use the manual or "--help all".
  • _category=all
  • curl --help all
  • grep -q -- --tlsv1.2
  • curl --help all
  • grep -q -- --ciphers
  • curl --help all
  • grep -q -- --proto
  • true
  • _args_supported=yes
  • local _cs=
  • [ yes = yes ]
  • [ yes = yes ]
  • get_strong_ciphersuites_for openssl
  • [ openssl = openssl ]
  • echo TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
  • _cs=TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
  • RETVAL=TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
  • _ciphersuites=TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
  • [ -n TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 ]
  • curl --proto =https --tlsv1.2 --ciphers TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 --silent --show-error --fail --location https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init --output /tmp/tmp.gDZzFEXNgQ/rustup-init
  • _err=curl: (23) Failure writing output to destination
  • _status=23
  • [ -n curl: (23) Failure writing output to destination ]
  • echo curl: (23) Failure writing output to destination curl: (23) Failure writing output to destination
  • echo curl: (23) Failure writing output to destination
  • grep -q 404$
  • return 23
  • err command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
  • say command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
  • printf rustup: %s\n command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu rustup: command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.gDZzFEXNgQ/rustup-init x86_64-unknown-linux-gnu
  • exit 1

— Reply to this email directly, view it on GitHub https://github.com/rust-lang/rustup/issues/2948#issuecomment-1039854922, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADZ7XU7WM2LDWUY3H5KKD3U3HLL3ANCNFSM5ONMD22A . You are receiving this because you are subscribed to this thread.Message ID: @.***>

rbtcollins avatar Feb 15 '22 06:02 rbtcollins

Seems not that

curl --location https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init --output "/tmp/rustup-init"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 31 14.9M   31 4897k    0     0   536k      0  0:00:28  0:00:09  0:00:19  439k

does work.

I think curl can not accept path like /tmp/tmp.gDZzFEXNgQ/ that mktemp creates.

imotai avatar Feb 15 '22 06:02 imotai

What you pasted here clearly contains the error: on the fourth line "Failed to create the file".

Possibly not out of space but no permissions?

Regardless, the installer script needs permission to write to your tempdir, or it can't download the binary installer.

-Rob

On Tue, 15 Feb 2022 at 07:50, imotai @.***> wrote:

Seems not that

url --location https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init --output "/tmp/tmp.gDZzFEXNgQ/rustup-init" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0Warning: Failed to create the file /tmp/tmp.gDZzFEXNgQ/rustup-init: No such Warning: file or directory 0 14.9M 0 16006 0 0 23562 0 0:11:05 --:--:-- 0:11:05 23572 curl: (23) Failure writing output to destination


I think `curl` can not accept path like `/tmp/tmp.gDZzFEXNgQ/` that `mktemp` creates.

—
Reply to this email directly, view it on GitHub
<https://github.com/rust-lang/rustup/issues/2948#issuecomment-1039917162>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADZ7XQK6GEBOQ7XVFTZDYDU3HZTJANCNFSM5ONMD22A>
.
You are receiving this because you commented.Message ID:
***@***.***>

rbtcollins avatar Feb 15 '22 08:02 rbtcollins

What you pasted here clearly contains the error: on the fourth line "Failed to create the file". Possibly not out of space but no permissions? Regardless, the installer script needs permission to write to your tempdir, or it can't download the binary installer. -Rob On Tue, 15 Feb 2022 at 07:50, imotai @.> wrote: Seems not that url --location https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init --output "/tmp/tmp.gDZzFEXNgQ/rustup-init" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0Warning: Failed to create the file /tmp/tmp.gDZzFEXNgQ/rustup-init: No such Warning: file or directory 0 14.9M 0 16006 0 0 23562 0 0:11:05 --:--:-- 0:11:05 23572 curl: (23) Failure writing output to destination ``` does work. I think curl can not accept path like /tmp/tmp.gDZzFEXNgQ/ that mktemp creates. — Reply to this email directly, view it on GitHub <#2948 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADZ7XQK6GEBOQ7XVFTZDYDU3HZTJANCNFSM5ONMD22A . You are receiving this because you commented.Message ID: @.>

the dir "/tmp/tmp.gDZzFEXNgQ/" is created by the scripts install.sh so it has write permission

imotai avatar Feb 18 '22 02:02 imotai

Take a look at this: https://users.rust-lang.org/t/rustup-install-fails-on-ubuntu-20-10/59691/3

AlgoQ avatar Aug 28 '22 00:08 AlgoQ

This just happened to me on Ubuntu 22.04. It was because I installed curl with snap

Xoffio avatar Sep 26 '22 03:09 Xoffio

@imotai Did you install curl by snap? Could you please try https://users.rust-lang.org/t/rustup-install-fails-on-ubuntu-20-10/59691/3?

It seems not a rustup issue.

hi-rustin avatar Oct 07 '22 07:10 hi-rustin

@hi-rustin I tried it on a fresh install of Ubuntu 22.04 and the problem is with snap as you said. I first installed curl through snap and got the error above. Then I removed curl from snap and installed it with apt instead (had to restart the terminal at this point because the terminal was still trying to find the snap binary). After that it started working as expected.

gabucito avatar Oct 07 '22 21:10 gabucito

@gabucito Thanks for your feedback! I am going to close this issue. If you have any more questions please feel free to comment.

hi-rustin avatar Oct 08 '22 01:10 hi-rustin

@hi-rustin I think we probably need to fix this somehow - e.g. stop using curl, or detect this situation and error.

rbtcollins avatar Oct 10 '22 17:10 rbtcollins

Once you get rustup-init file via wget, you need to execute chmod u+x ./rustup-init rather than chmod + ./rustup-init

oleksandr-code avatar Nov 25 '22 04:11 oleksandr-code