Skip to content

Problem: Three of four installation instructions fail for Ubuntu Noble (24.04) #1766

@1jupp

Description

@1jupp

Version of the documentation
Archivematica 1.18.0

Page (and section, if applicable) where the issue occurs

Not supported, but it exists anyway:

Description of the issue
All installation procedures as documented run into issues, when being executed, and it is not obvious, how to fix these:

  • Ansible install: Error because module ansible.module_utils.six.moves is missing. Same issue when enforcing install as root outside of a .venv environment:
user@archivmatica:~/archivmatica/deploy-pub/playbooks/archivematica-noble$ ansible install -f -p roles/ -r requirements.yml
Traceback (most recent call last):
  File "/home/user/archivmatica/.venv/bin/ansible", line 62, in <module>
    import ansible.constants as C
  File "/home/user/archivmatica/.venv/lib/python3.12/site-packages/ansible/constants.py", line 19, in <module>
    from ansible.config.manager import ConfigManager, ensure_type, get_ini_config_value
  File "/home/user/archivmatica/.venv/lib/python3.12/site-packages/ansible/config/manager.py", line 29, in <module>
    from ansible.module_utils.six.moves import configparser
ModuleNotFoundError: No module named 'ansible.module_utils.six.moves'
  • Docker compose install: Error while creating the bootstrap. Docker is running in non-root headless mode, as suggested:
user@archivmatica:~/archivmatica/archivematica/hack$ make bootstrap

 # successful creation of some bootstrap stuff

docker build \
	-t archivematica-dashboard-frontend-builder \
	-f /home/user/archivmatica/archivematica/hack/Dockerfile \
	--build-arg TARGET=archivematica-dashboard-frontend-builder \
		../
[+] Building 1.4s (9/9) FINISHED                                                                                                                                              docker:rootless
 => [internal] load build definition from Dockerfile                                                                                                                                     0.0s
 => => transferring dockerfile: 10.01kB                                                                                                                                                  0.0s
 => [internal] load metadata for docker.io/library/node:20                                                                                                                               1.0s
 => [internal] load .dockerignore                                                                                                                                                        0.0s
 => => transferring context: 314B                                                                                                                                                        0.0s
 => [internal] load build context                                                                                                                                                        0.1s
 => => transferring context: 10.02kB                                                                                                                                                     0.0s
 => [archivematica-dashboard-frontend-builder 1/4] FROM docker.io/library/node:20@sha256:8cdc6b9b711af0711cc6139955cc1331fab5e0a995afd3260c52736fbc338059                                0.0s
 => CACHED [archivematica-dashboard-frontend-builder 2/4] COPY --link src/archivematica/dashboard/frontend /src/src/archivematica/dashboard/frontend                                     0.0s
 => CACHED [archivematica-dashboard-frontend-builder 3/4] WORKDIR /src/src/archivematica/dashboard/frontend                                                                              0.0s
 => CACHED [archivematica-dashboard-frontend-builder 4/4] RUN set ex  && npm ci                                                                                                          0.0s
 => exporting to image                                                                                                                                                                   0.0s
 => => exporting layers                                                                                                                                                                  0.0s
 => => writing image sha256:b89f2f0b3ec53e9f6e7d78df96bcfdc83be5fa889015fc9e6c5068ab17560f37                                                                                             0.0s
 => => naming to docker.io/library/archivematica-dashboard-frontend-builder                                                                                                              0.0s
docker run \
	-e HOME=/tmp/npm-config \
	--rm \
	--user 1000:1000 \
	--volume "/home/user/archivmatica/archivematica/src/archivematica/dashboard:/src/src/archivematica/dashboard" \
	--entrypoint npm \
		archivematica-dashboard-frontend-builder \
			ci
npm error code EACCES
npm error syscall mkdir
npm error path /src/src/archivematica/dashboard/frontend/node_modules
npm error errno -13
npm error Error: EACCES: permission denied, mkdir '/src/src/archivematica/dashboard/frontend/node_modules'
npm error     at async mkdir (node:internal/fs/promises:858:10)
npm error     at async /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:624:20
npm error     at async Promise.allSettled (index 0)
npm error     at async [reifyPackages] (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:325:11)
npm error     at async Arborist.reify (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:142:5)
npm error     at async CI.exec (/usr/local/lib/node_modules/npm/lib/commands/ci.js:100:5)
npm error     at async Npm.exec (/usr/local/lib/node_modules/npm/lib/npm.js:207:9)
npm error     at async module.exports (/usr/local/lib/node_modules/npm/lib/cli/entry.js:74:5) {
npm error   errno: -13,
npm error   code: 'EACCES',
npm error   syscall: 'mkdir',
npm error   path: '/src/src/archivematica/dashboard/frontend/node_modules'
npm error }
npm error
npm error The operation was rejected by your operating system.
npm error It is likely you do not have the permissions to access this file as the current user
npm error
npm error If you believe this might be a permissions issue, please double-check the
npm error permissions of the file and its containing directories, or try running
npm error the command again as root/Administrator.
npm error A complete log of this run can be found in: /tmp/npm-config/.npm/_logs/2025-10-10T14_09_13_922Z-debug-0.log
make: *** [Makefile:177: bootstrap-dashboard-frontend] Fehler 243

This ultimately prevents both the dashboard container and the elasticsearch container to start up:

user@archivmatica:~/archivmatica/archivematica/hack$ docker compose ps -a
NAME                                 IMAGE                                                  COMMAND                  SERVICE                         CREATED          STATUS                     PORTS
am-archivematica-dashboard-1         am-archivematica-dashboard                             "pyenv exec python3 …"   archivematica-dashboard         10 minutes ago   Exited (3) 3 minutes ago   
am-archivematica-mcp-client-1        am-archivematica-mcp-client                            "pyenv exec python3 …"   archivematica-mcp-client        10 minutes ago   Up 3 minutes               
am-archivematica-mcp-server-1        am-archivematica-mcp-server                            "pyenv exec python3 …"   archivematica-mcp-server        10 minutes ago   Up 3 minutes               
am-archivematica-storage-service-1   am-archivematica-storage-service                       "pyenv exec python3 …"   archivematica-storage-service   10 minutes ago   Up 3 minutes               8000/tcp
am-clamavd-1                         clamav/clamav-debian:1.4.3-57                          "/init-unprivileged"     clamavd                         10 minutes ago   Up 10 minutes (healthy)    7357/tcp, 127.0.0.1:62006->3310/tcp
am-elasticsearch-1                   docker.elastic.co/elasticsearch/elasticsearch:8.19.3   "/bin/tini -- /usr/l…"   elasticsearch                   10 minutes ago   Created                    
am-gearmand-1                        artefactual/gearmand:1.1.22-alpine                     "docker-entrypoint.s…"   gearmand                        10 minutes ago   Up 10 minutes (healthy)    127.0.0.1:62004->4730/tcp
am-mysql-1                           percona/percona-server:8.0.43-34                       "/docker-entrypoint.…"   mysql                           10 minutes ago   Up 10 minutes              33060/tcp, 127.0.0.1:62001->3306/tcp
am-nginx-1                           nginx:1.29.1                                           "/docker-entrypoint.…"   nginx                           10 minutes ago   Up 10 minutes              0.0.0.0:62080->80/tcp, [::]:62080->80/tcp, 0.0.0.0:62081->8000/tcp, [::]:62081->8000/tcp
  • Apt Repo install:

The deb package archivematica-mcp-server requires the package python3-distutils which was deprecated in Python 3.10 and removed in Python 3.12 https://docs.python.org/3/library/distutils.html. Some of the functionality is now provided by the package setuptools https://medium.com/@syeasar.kuet/pythons-distutils-is-gone-in-ubuntu-24-04-and-a-simple-workaround-5d859dde465b. Installing that package does not help though, because the dependencies are hard coded into your deb package an cannot be met. I do not want to get into the rabbit hole of force install, so I haven't tried that.

Suggested fix

Update all installation instructions and the installer routines to match the changes in Ubuntu 24.04.

I think there have been changes in the latest Debian/Ubuntu Version regarding the enforcement of a Python venv als well as packet changes.

  • The outdated ansible version 2.9.10, you want to enforce, no longer has the wanted sub packages in Python 3.12 and higher.
  • The issue with the docker install is a rights issue in the dockerfile for the make bootstrap which prevents the creation of a needed node, preventing the dashboard and elasticsearch from running properly
  • The issue with the apt packages is, that there are requirements in the package, that can no longer be met, because the package has been replaced by other packages.

For Artefactual use:

Before you close this issue, you must check off the following:

  • All pull requests related to this issue are properly linked
  • All pull requests related to this issue have been merged
  • Details about this issue have been added to the release notes (if applicable)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: reviewThe issue's code has been merged and is ready for testing/review.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions