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.What official Claude Code ARM64 support covers
- 2.The actual specs of my server
- 3.Check the architecture and system before installing
- 4.Installing: the official script, under the project user
- 5.Memory planning: the 4 GB threshold, A1 allowance and swap
- 5.1How big an A1 to create
- 5.2Killed during installation
- 5.3Memory limits for multiple services
- 6.ARM64 common errors at a glance
- 7.Auto-updates and always-on services
- 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 findclaude, that directory is not on your PATH. The installer points this out underSetup notes:in its output but does not change PATH for you. In systemd services, I always write the full path~/.local/bin/claudeand add the directory toEnvironment=PATH=in the unit file. - Checking the installation:
claude doctorprints 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
- Building a Website Without Reading Code: How I Built Jason Finance Cheaply with Claude Code + GitHub + Cloudflare, and What It CostsI can't read code. Jason Finance runs on Claude Code, GitHub, Cloudflare Workers and Supabase free plans. The setup, costs, AI permissions and limits.
- Git Can Push, but Claude Code Can't Read GitHub Issues: SSH vs GitHub API PermissionsClaude Code can't read GitHub Issues but git push works? SSH keys only cover Git. Sign in with gh CLI, check scope, protect the token, go from Issue to PR.
- Running Multiple Claude Code Remote Controls on One Server: Linux Users, systemd and git worktreeMultiple Claude Code Remote Controls on one server: Linux users by trust, one systemd service each, git worktree for dev vs writing, --spawn=worktree limits.

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.