Skip to main content
Jason Finance
AI Startup

Installing Claude Code on ARM64: Can Oracle Ampere A1 Run It? Compatibility, Memory and Common Errors

Claude Code officially supports ARM64 and Ubuntu 20.04+ with 4 GB+ memory. Installing it on Oracle Ampere A1 (aarch64): steps, memory, updates, common errors.

On this page
  1. 1.What official Claude Code ARM64 support covers
  2. 2.The actual specs of my server
  3. 3.Check the architecture and system before installing
  4. 4.Installing: the official script, under the project user
  5. 5.Memory planning: the 4 GB threshold, A1 allowance and swap
  6. 5.1How big an A1 to create
  7. 5.2Killed during installation
  8. 5.3Memory limits for multiple services
  9. 6.ARM64 common errors at a glance
  10. 7.Auto-updates and always-on services
  11. FAQ

My Claude Code runs on an Ampere A1 server on Oracle Cloud, with Ubuntu 24.04 on ARM64 (aarch64). This post covers what official Claude Code ARM64 support includes, and what I had to watch for when installing it on A1 and keeping it running.

The short version: Claude Code officially supports ARM64, supports Ubuntu 20.04 and later on Linux, and requires 4 GB or more of memory. The install command is the same as on x64: just use the official install script. That is how I installed Claude Code on Ampere A1, and I also got Remote Control running as an always-on service. The things to watch are memory planning, which user you install under, and restarting services after auto-updates.

This post is my notes from deploying on Oracle Cloud in October 2026, plus a summary of the official Claude Code documentation (Advanced setup, Troubleshoot installation, checked on 12 October 2026). Supported platforms and installation methods may change; the latest official documentation is what counts. User names have been replaced with examples like project-a.

What official Claude Code ARM64 support covers

The official system requirements next to my Ampere A1 environment:

Item Official system requirements My environment
Processor x64 or ARM64 Ampere A1 (aarch64)
Operating system macOS 13.0+, Windows 10 1809+ or Windows Server 2019+, Ubuntu 20.04+, Debian 10+, Alpine Linux 3.19+ Ubuntu 24.04
Memory 4 GB or more Depends on the A1 configuration; see memory planning below
Network Internet connection required The Oracle server’s outbound connection
Shell Bash, Zsh, PowerShell or CMD Bash
Location Countries and regions Anthropic supports N/A

The official list of prebuilt platforms includes linux-arm64 and linux-arm64-musl, so there are ARM64 builds for both regular Linux (glibc) and musl systems such as Alpine. ripgrep, used for search, usually ships bundled with Claude Code.

Claude Code itself also requires a Pro, Max, Team, Enterprise or Console account; the free claude.ai plan does not include Claude Code. Remote Control is limited to the Pro, Max, Team and Enterprise plans and does not support API keys.

The actual specs of my server

While I was writing this, Jason Finance’s Claude Code was running on an Oracle Ampere A1 server. This is what I found on the server on 12 October 2026:

Item Actual state How to check
CPU architecture aarch64 (ARM64) uname -m
System Ubuntu 24.04.5 LTS cat /etc/os-release
CPU and memory 2 cores, about 12 GB nproc, free -h
swap A 4 GB /swapfile swapon --show
Claude Code 2.1.296, installed by the official script at ~/.local/bin/claude claude --version, which claude
How it stays running A systemd service running claude remote-control systemctl --user status

With Remote Control running alongside builds and tests, memory use is usually a bit over 2 GB, and most of the rest is system cache. That is just my server on one particular day, not a guide to your usage.

Check the architecture and system before installing

When creating the server on Oracle, choose the ARM64 (aarch64) Ubuntu 24.04 image and the VM.Standard.A1.Flex shape. Once it is up and you have connected over SSH, check:

uname -m       # expect aarch64
uname -s       # expect Linux
cat /etc/os-release

If uname -m shows aarch64, it is ARM64. The official troubleshooting guide also gives a command to check the C library; Ubuntu shows GNU libc (glibc):

ldd --version 2>&1 | head -1

For how to create the server and what to do about Out of host capacity, see Oracle Cloud Out of host capacity: Why Ampere A1 Won’t Launch.

Installing: the official script, under the project user

ARM64 needs no separate command; the official native install command works on macOS, Linux and WSL alike. I switch to the Linux user that will actually run Claude Code before installing. Don’t use sudo to install into root’s home directory:

sudo -iu project-a
curl -fsSL https://claude.ai/install.sh | bash
~/.local/bin/claude --version

If claude --version prints a version number, the install worked. A few details from the official documentation:

  • Install location: on macOS and Linux, the executable goes in ~/.local/bin/claude. If your shell says it can’t find claude, that directory is not on your PATH. The installer points this out under Setup notes: in its output but does not change PATH for you. In systemd services, I always write the full path ~/.local/bin/claude and add the directory to Environment=PATH= in the unit file.
  • Checking the installation: claude doctor prints diagnostics such as installation health, settings file validation errors and Remote Control eligibility, without opening a session.
  • Other installation methods: the official documentation also offers an apt repository and an npm package (npm requires Node.js 22 or later). I have only used the native install script and have not tested the others; if you want to use them, follow the official instructions.
  • Each user installs and logs in separately: the first time you run ~/.local/bin/claude, follow the on-screen steps to log in. Don’t copy another user’s ~/.claude/ over.

For the full server setup, GitHub permissions and always-on systemd steps, see Running Claude Code Remote Control on a Free Oracle Cloud Server.

Memory planning: the 4 GB threshold, A1 allowance and swap

How big an A1 to create

The official requirement is 4 GB or more of memory. In the main tutorial I suggest starting A1 at 1 OCPU / 6 GB or 2 OCPU / 12 GB; both are above 4 GB.

For Oracle’s free A1 allowance, two official documents give different figures (1,500 OCPU hours and 9,000 GB hours per month, versus 3,000 and 18,000). I plan around the conservative 2 OCPU and 12 GB; your account’s Always Free labels and your bill are what count. For details, see the allowance section of Oracle Cloud Out of host capacity: Why Ampere A1 Won’t Launch.

Killed during installation

According to the official documentation, installation needs about 512 MB of free memory, and running needs more. When memory runs short, the Linux OOM killer may interrupt the installation, and the script shows Installation was killed before it could finish (exit code 137). The documentation’s suggested fixes: add swap, close other processes to free memory, or switch to a larger shape.

How I added swap on my server is in the main tutorial. Swap is not RAM and adds disk reads and writes. Check that you have enough disk space with df -h before doing it, and don’t add the entry to /etc/fstab twice.

Memory limits for multiple services

I run several Remote Control services on the same server, and each systemd service has MemoryHigh=2500M and MemoryMax=3500M. These are limits for each service on its own, not a total for the whole server, and the official documentation does not specify how much a single service needs. When several services run at once, adjust these to the server’s actual memory.

ARM64 common errors at a glance

Symptom Cause given in the documentation What to do first
Illegal instruction One cause is an architecture mismatch, for example getting the x86 build on an ARM host Check the architecture with uname -m; if it doesn’t match, the documentation recommends reporting it on GitHub with the output attached
Error loading shared library libstdc++.so.6 The wrong build was downloaded (a musl build on a glibc system, or the reverse) Check the C library with ldd --version 2>&1 | head -1; if a glibc system got the musl build, remove it and reinstall
Killed during installation, exit code 137 Not enough memory, so the system killed the installation Add swap, free up memory or switch to a larger shape
claude: command not found ~/.local/bin is not on PATH Use the full path ~/.local/bin/claude, or add the directory to PATH

Tools other than Claude Code also need Linux ARM64 builds. When downloading binaries for other programs, make sure they are the ARM64 (aarch64) version first, and don’t reuse AMD64 download commands as they are. If you hit exec format error, check the architecture of the downloaded executable first; changing file permissions won’t fix an architecture mismatch. On my server I install tools like git and gh with Ubuntu’s apt, and the package manager installs the build for the right architecture.

Auto-updates and always-on services

According to the official documentation, the native installation auto-updates in the background: Claude Code checks for updates at startup and while running, downloads and installs them, and the update only takes effect the next time Claude Code starts. On macOS and Linux, ~/.local/bin/claude is a link pointing into ~/.local/share/claude/versions/. To update right away, run claude update.

For an always-on Remote Control service, this means that while the service keeps running, it is still on the version it started with, and you have to restart the service to switch to the new one. My suggestion is to update the official way under each project’s Linux user and restart one service at a time. Confirm the logs show a successful connection and the environment appears on your phone or the web before moving on to the next, rather than restarting everything at once.

If you installed from the apt repository, the documentation says it does not auto-update through Claude Code; use your system’s upgrade process instead.

If a service won’t come back after a restart and systemd shows status=1/FAILURE, see Claude Code Remote Control exit code 1 for troubleshooting. If systemctl --user gives No medium found, see How to Fix systemctl –user No medium found. To run several environments on one server, see Running Multiple Claude Code Remote Controls on One Server.

FAQ

Does Claude Code support ARM64?

Yes. When checked on 12 October 2026, Claude Code's official system requirements listed an x64 or ARM64 processor and 4 GB or more of memory, and on Linux, Ubuntu 20.04 or later, Debian 10 or later and Alpine Linux 3.19 or later. The official prebuilt binaries also include linux-arm64.

Can an Oracle Ampere A1 server run Claude Code?

Yes. My environment is Ubuntu 24.04 aarch64 (Ampere A1) on Oracle Cloud. I installed Claude Code with the official install script and got Remote Control running. For other operating system versions, check the official system requirements first.

Which command installs Claude Code on an ARM64 server?

The same as on x64: the official native install command curl -fsSL https://claude.ai/install.sh | bash, then run claude --version to confirm. Switch to the Linux user that will actually run Claude Code before installing, rather than using sudo to install into root's home directory.

Is an Ampere A1 with 1 OCPU and 6 GB enough to run Claude Code?

The official requirement is 4 GB or more of memory, and 1 OCPU with 6 GB meets that threshold. The installation itself needs about 512 MB of free memory. If memory runs short, the system may kill the installation; you can add swap or switch to a larger shape.

What do I do when running claude gives Illegal instruction?

The official documentation says one cause is an architecture mismatch, for example getting the x86 build on an ARM host. Check the architecture with uname -m first; an ARM64 host should show aarch64. If it doesn't match, the documentation recommends reporting it on GitHub.

After Claude Code auto-updates, will my systemd service use the new version?

The native installation auto-updates in the background, but the new version only takes effect the next time Claude Code starts. An always-on service has to be restarted to switch to the new version. Restart one service at a time and confirm it is working before moving on to the next.

Related articles

About the author

Photo of Jason

Jason

Account Manager in Google Large Customer Sales and Columbia MBA admit, sharing the money tools and experience he actually uses.

Comments

Sign in with Google to comment. Your comment will not show your Google profile picture or name; it appears under a randomly generated nickname to protect your privacy.

By signing in you agree to this site's privacy policy.

  1. Loading comments