Ubuntu aarch64 "no installation candidate"

I’m on a fresh install of an Ubuntu 20 VPS using Oracle Cloud’s Ampere ARM-based processor (VM.Standard.A1.Flex) which is available in the always free tier. Most ARM discussion appears to be about the raspberry pi thing.

$ sudo apt-get install -y nodejs gcc g++ libssl-dev libxml2-dev libyaml-dev libgmp-dev libz-dev
$ curl -fsSL https://crystal-lang.org/install.sh | sudo bash
Hit:1 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease
Hit:2 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal InRelease
Hit:3 https://deb.nodesource.com/node_16.x focal InRelease             
Hit:4 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal-updates InRelease
Hit:5 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal-backports InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gpg is already the newest version (2.2.19-3ubuntu2.1).
gpg set to manually installed.
wget is already the newest version (1.20.3-1ubuntu2).
wget set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 76 not upgraded.
deb http://download.opensuse.org/repositories/devel:languages:crystal/xUbuntu_20.04/ /
Hit:1 https://deb.nodesource.com/node_16.x focal InRelease
Hit:2 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease                                    
Hit:3 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal InRelease                             
Hit:4 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal-updates InRelease
Hit:5 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal-backports InRelease
Get:6 http://download.opensuse.org/repositories/devel:languages:crystal/xUbuntu_20.04  InRelease [1541 B]
Get:7 http://download.opensuse.org/repositories/devel:languages:crystal/xUbuntu_20.04  Packages [2628 B]
Fetched 4169 B in 1s (4081 B/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package crystal is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'crystal' has no installation candidate
$ sudo apt update -y
Hit:1 https://deb.nodesource.com/node_16.x focal InRelease
Hit:2 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease                                    
Hit:3 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal InRelease                             
Hit:5 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal-updates InRelease
Hit:6 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal-backports InRelease
Hit:4 http://download.opensuse.org/repositories/devel:languages:crystal/xUbuntu_20.04  InRelease
Reading package lists... Done
Building dependency tree       
Reading state information... Done
76 packages can be upgraded. Run 'apt list --upgradable' to see them.
$ sudo apt install crystal
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package crystal is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'crystal' has no installation candidate
$ lscpu
Architecture:                    aarch64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
CPU(s):                          1
On-line CPU(s) list:             0
Thread(s) per core:              1
Core(s) per socket:              1
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       ARM
Model:                           1
Model name:                      Neoverse-N1
Stepping:                        r3p1
BogoMIPS:                        50.00
NUMA node0 CPU(s):               0
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
Vulnerability Spectre v2:        Not affected
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid a
                                 simdrdm lrcpc dcpop asimddp ssbs
$ sudo apt update -y
Hit:1 https://deb.nodesource.com/node_16.x focal InRelease
Get:2 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease [114 kB]                           
Hit:3 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal InRelease                     
Get:4 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal-updates InRelease [114 kB]    
Get:6 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal-backports InRelease [108 kB]          
Hit:5 http://download.opensuse.org/repositories/devel:languages:crystal/xUbuntu_20.04  InRelease
Get:7 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 Packages [1200 kB]
Get:8 http://iad-ad-3.clouds.ports.ubuntu.com/ubuntu-ports focal-updates/universe arm64 Packages [866 kB]
Fetched 2402 kB in 1s (1952 kB/s)                        
Reading package lists... Done
Building dependency tree       
Reading state information... Done
31 packages can be upgraded. Run 'apt list --upgradable' to see them.
$ sudo apt install crystal
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package crystal is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'crystal' has no installation candidate

I didn’t need this to work, other than the convenience of a free 6GB VPS. I also didn’t see any aarch64 releases to download manually.

Yeah, I don’t believe any compiler binaries are made for ARM by default, but checking compilation on Linux+ARM does happen in CI.

If you’re comfortable running containers on your VPS, 84codes (a sponsor of the language) does maintain ARM-based Crystal container images.

4 Likes

We (84codes) also provide deb packages! 84codes/crystal - Packages · packagecloud Works for all debian based dists and versions (as the binaries are statically compiled).

5 Likes