A common problem that can occur when running the Charmcraft’s
pack command is a failure associated with the
apt package manager update inside the build instance.
$ charmcraft pack ... 2021-08-27 14:20:25,342 charmcraft ERROR Failed to update apt cache. * Command that failed: 'lxc --project charmcraft exec local:charmcraft-foobar-amd64 -- env PATH=/usr/local/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 apt-get update' * Command exit code: 100 * Command output: b'Err:1 http://security.ubuntu.com/ubuntu focal-security InRelease\n Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1562::18). ... * Command standard error output: b'E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal/InRelease Cannot initiate the connection to archive.ubuntu.com:80 (2001:67c:1360:8001::24). ...
This problem occurs if the LXD container used for the build cannot access the Internet, and specifically, for
apt to update its cache.
If you are facing a similar issue, you can confirm this is the case by creating an empty container in LXD (not related to
charmcraft) and trying to run the
apt update command there.
We suspect the source of this problem is that Docker changed the host’s
iptables rules, causing problems for LXD. Please refer to this post in the Linux Containers documentation for more information and ways to solve the situation.