# Adjusting APT Sources for Multiarch The Cuttlefish host Debian packages can also be built and used on an `arm64` based system. However, because certain parts of it are still `amd64`, the APT sources of the system need to be adjusted for multiarch so that package dependencies can be correctly looked up and installed. For detailed context, see [Multiarch HOWTO](https://wiki.debian.org/Multiarch/HOWTO), and this document will use Ubuntu 21.04 (Hirsute) as an example for making such adjustments. The basic idea is to first limit the existing APT sources to `arm64` only, so that when a new architecture like `amd64` is added, APT won't try to fetch packages for the new architecture from the existing repository, as `arm64` packages are in "ports", while `amd64` ones are in the main repository. So a line in `/etc/apt/sources.list` such as: ``` deb http://ports.ubuntu.com/ubuntu-ports hirsute main restricted ``` would be changed to: ``` deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports hirsute main restricted ``` Next, each line of config like the above will be duplicated and modified into an entry that corresponds to what's in the main repository, with its architecture limited to `amd64`. For example, for the same line as shown above, a new entry will be added like this: ``` deb [arch=amd64] http://archive.ubuntu.com/ubuntu hirsute main restricted ``` The script below might be handy for this task: ```bash #!/bin/bash cp /etc/apt/sources.list ~/sources.list.bak ( (grep ^deb /etc/apt/sources.list | sed 's/deb /deb [arch=arm64] /') && \ (grep ^deb /etc/apt/sources.list | sed 's/deb /deb [arch=amd64] /g; s/ports\.ubuntu/archive.ubuntu/g; s/ubuntu-ports/ubuntu/g') \ ) | tee /tmp/sources.list mv /tmp/sources.list /etc/apt/sources.list ``` **Note:** please run the above script as `root`, and adjust for differences in Ubuntu releases or location prefixed repositories for faster download (e.g. `us.archive.ubuntu.com` instead of `archive.ubuntu.com`). Finally, add the new architecture and do an APT update with: ```bash sudo dpkg --add-architecture amd64 sudo apt update ``` Make sure there's no errors or warnings in the output of `apt update`. To restore the previous APT sources list, use the backup file `sources.list.bak` saved by the script in your home directory.