从 0 开始部署 Archivematica (windows环境)

发布于:2025-05-25 ⋅ 阅读:(23) ⋅ 点赞:(0)

背景说明

Archivematica 是一个免费的开源数字保存系统,旨在保持对数字内存的长期访问。Archivematica 与基于 Web 的内容管理系统 AtoM 打包在一起,用于访问您的数字对象。

Archivematica 目标用户是档案管理员、图书管理员和任何致力于保存的人 数字对象。

官网:Archivematica: open-source digital preservation system

项目地址:archivematica

系统环境:windows10

环境搭建

根据官方说明 最新版的 Archivematica 部署需要的环境最少是 linux 9 ,文档里提到的是Ubuntu 22.04,所以这里直接安装的Ubuntu 22.04 (在安装的时候发现代码更新了,代码里配置的是Ubuntu24,不影响使用,就没升级了)。

由于之前安装linux都是用的 VMware 虚拟机 ,这次采用新的形式进行安装,即 windows 自带的 wsl 进行安装。整体部署环境结果如下:

  • win10 最新版+ wsl + Ubuntu 22.04 + terminal ( 或者系统自带的命令提示窗也可以)

Windows Subsystem for Linux(WSL)是微软为 Windows 系统提供的一项功能,允许用户在 Windows 上直接运行原生的 Linux 命令行工具、应用程序和脚本,而无需传统虚拟机(如 VirtualBox、VMware)或双系统启动。

 wsl 对系统有版本要求:

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。

  • 查看系统版本,版本低于win10 的 19041 需要更新,在设置那边更新系统

按 Win+R,输入输入 winver 回车,弹出窗口显示版本号及构建日期。

Ubuntu安装

1、开启虚拟化

 可通过 任务管理器 —> 性能 —> CPU 查看是否可开启了虚拟化,如果已开启,就跳过这一步。

如果没有开启,就按如下步骤进行开启。

  •  Win + i 打开设置 → “系统” → “可选功能” → “更多Windows功能” → 勾选“Hyper-V” → 确定后重启电脑。

2、wsl 安装 linux

wsl 安装linux 有两种方法

  • 通过wsl 命令: wsl --install 
  • 微软商店下载( Microsoft Store

商店下载:直接搜索Ubuntu,选择合适版本下载即可,这里我选用的是 Ubuntu 22.04,点击“免费下载”,然后点击“安装”,在安装Ubuntu 过程中 会要求创建用户,输入自己要用的用户名和密码,这边我用的 test,系统默认会有 root (root密码和test密码一样),所以不用创建,在系统创建完成后可以 通过命令进行密码修改。安装完成后在界面点击“打开”即可使用,也可以通过 wsl 命令进行操作。

附:还下载了 terminal,比命令提示符好用很多,建议下载,打开 terminal 在菜单条的下拉按钮下可以看到 Ubuntu 的菜单,可以直接点击,进入 Ubuntu 系统,默认用户是安装时新建的用户,可以通过wsl 命令切换默认用户

在Ubuntu 中 ~ 目录下,使用code . 可以直接调起 VSCode,如果其他目录调用 VSCode,在参考链接中有给方法

# 查看可通过在线商店获得的 Linux 发行版列表。 此命令也可输入为:wsl -l -o。
wsl --list --online
#查看安装在 Windows 计算机上的 Linux 发行版列表,其中包括状态(发行版是正在运行还是已停止)和运行发行版的 WSL 版本(WSL 1 或 WSL 2)。
wsl --list --verbose

# 运行 Ubuntu
wsl -d Ubuntu-22.04

# 运行-以特定用户 wsl --distribution <Distribution Name> --user <User Name>
wsl --distribution Ubuntu-22.04 --user root


# 更改分发版登录的默认用户: <Distribution Name> config --default-user <User Name>
#将 Ubuntu 分发的默认用户更改为“root”用户
ubuntu2204.exe config --default-user root

# 修改密码 

# 终止运行 wsl --terminate <Distribution Name>;重置 Ubuntu-22.04 运行
wsl --terminate Ubuntu-22.04

# 关机
wsl --shutdown

安装 Docker

根据官方的安装文档,我们需要在 Ubuntu 中 安装最新版的 DockerDocker compose,安装命令如下

sudo apt-get update
sudo apt-get install ca-certificates curl

#安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

#运行下列命令添加 Docker 的官方 GPG 密钥
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 运行下列命令添加 Docker 的官方 GPG 密钥:
sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

# 安装docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose


在 /etc/docker/daemon.json 文件中配置docker 镜像源,如果没有 daemon.json 就创建这个文件:

cd /etc/docker/
sudo vi daemon.json

按 i 输入下面配置:
{
    "registry-mirrors" : [
	  "https://docker.1ms.run",
      "https://docker.xuanyuan.me",
      "https://mirror.ccs.tencentyun.com"
      "https://docker.registry.cyou",
      "https://docker-cf.registry.cyou",
      "https://dockercf.jsdelivr.fyi",
      "https://docker.jsdelivr.fyi",
      "https://dockertest.jsdelivr.fyi",
      "https://mirror.aliyuncs.com",
      "https://dockerproxy.com",
      "https://mirror.baidubce.com",
      "https://docker.m.daocloud.io",
      "https://docker.nju.edu.cn",
      "https://docker.mirrors.sjtug.sjtu.edu.cn",
      "https://docker.mirrors.ustc.edu.cn",
      "https://mirror.iscas.ac.cn",
      "https://docker.rainbond.cc"
  ]
}

按 esc 退出编辑,输入:qw 保存退出

重启更新配置:

systemctl daemon-reload
systemctl restart docker

# 开机自启docker
systemctl enable docker

项目部署

  官方项目自带的部署文档:https://github.com/artefactual/archivematica/tree/qa/1.x/hack

  按照官方文档,需要用非 root 用户,我用的 test 用户进行操作,文档上的操作基本都要执行。

1、基础命令安装

首先需要在 Ubuntu 中安装基础命令:git ,ifconfig 、unzip 。

# 安装 git ,安装成后可以通过 git --version 查看,有版本号就说明安装成功
sudo apt-get update
sudo apt-get install git


# 安装 解压命令 unzip 
sudo apt update
sudo apt install unzip

# 安装 网络相关命令 含 ifconfig  用 ifconfig 是为了查看Ubuntu的IP,用于远程连接传送文件
sudo apt update
sudo apt install net-tools

# 安装SSH服务器 是为了用于远程连接传送文件
sudo apt-get update
sudo apt-get install openssh-server
sudo systemctl start ssh
# 开机启动
sudo systemctl enable ssh

# 默认端口是22 不需要修改,如果需要修改,更改SSH端口(默认为22)
# sudo nano /etc/ssh/sshd_config
# ctrl + o  是保存 ctrl+x 是退出

# 查看防火墙 状态 默认是关闭的
sudo ufw status

#如果是开启的,要允许访问
sudo ufw allow ssh
sudo ufw reload

2、项目获取

项目是直接在 Ubuntu 中用 git 进行拉取的。(拉取过程中可能会有失败,可以先拉取到本地再上传到系统中,本地拉取成功率高一些。如果采用远程连接上传到系统,需要安装ssh命令)

git clone https://github.com/artefactual/archivematica.git --branch qa/1.x --recurse-submodules

在拉取完成项目后,会发现hack/submodules的三个文件夹都是空的,需要单独去拉取(或者下载),然后上传到之前的项目里,保障项目的完整性。三个文件拉取或者下载的分支如下:

hack/submodules

  •  archivematica-acceptance-tests(qa-1的分支)
  • archivematica-sampledata(master)
  • archivematica-storage-service (qa-0的分支)

这里我采用是下载之后然后远程工具上传到系统中的项目目录下。

补充:由于 Ubuntu  是 windows 的子系统,所以  Ubuntu  自带挂载目录,是 mnt 目录,在 mnt 目录下 输入 ls 即可看到 c\d\e 盘,所以也可以通过cp命令复制到 Ubuntu 中。

在 Dockerfile 中有用到 /etc 目录,遇到过权限问题,所以这里先创建好需要的目录:/etc/apt/keyrings,并开放权限:

sudo mkdir /etc/apt/keyrings
sudo chmod 0755 -d /etc/apt/keyrings

3、开始构建

3.1、切换目录到 hack 下

cd ./archivematica/hack

Elasticsearch 空间构建,需要运行下面命令:

sudo sysctl -w vm.max_map_count=262144
# 要保留此设置,请修改并添加:/etc/sysctl.conf
vm.max_map_count=262144

3.2、运行以下命令以创建两个 Docker 外部卷。

make create-volumes

3.3、构建 Docker 镜像

make build

这个过程中主要遇到的两个问题是:

  1. 权限问题
  2. requirements-dev.txt 文件找不到
  3. 远程安装python 下载超时的错误

1.权限问题,就是上文提到的 /etc/apt/keyrings 这个目录,直接外部创建好,并给 test 赋权即可。

2. requirements-dev.txt 在第一层项目目录里,复制到 hack 目录下即可。

3. 远程安装 python 下载超时的错误,,主要调整了文档中涉及安装 python 的代码,代码如下:

RUN set -ex \
	&& apt-get update \
	&& apt-get install -y --no-install-recommends \
		build-essential \
		libbz2-dev \
		libffi-dev \
		liblzma-dev \
		libncursesw5-dev \
		libreadline-dev \
		libsqlite3-dev \
		libssl-dev \
		libxml2-dev \
		libxmlsec1-dev \
		wget \
		llvm \
		tk-dev \
		xz-utils \
		zlib1g-dev \
		openssl \
	&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*

RUN set -ex \
	&& curl --retry 3 -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash 

ENV PATH="/root/.pyenv/bin:/root/.pyenv/shims:${PATH}"
ENV PATH="/home/archivematica/.pyenv/bin:/home/archivematica/.pyenv/shims:${PATH}"

RUN set -ex \
	&& echo 'eval "$(pyenv init -)"' >> ~/.bashrc  \
    && echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc \
	&& /bin/bash -c "source ~/.bashrc" 

ENV PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM=1
ENV PYTHON_BUILD_MIRROR_URL="https://registry.npmmirror.com/-/binary/python"

RUN set -ex \
	&& pyenv install ${PYTHON_VERSION} \
	&& pyenv global ${PYTHON_VERSION}

/opt/project/archivematica/hack/Dockerfile 下的 Dockerfile 文件修改了,

archivematica/hack/submodules/archivematica-storage-service/Dockerfile 这个路径下的Dockerfile 也要做出相应的调整,在创建的时候有使用。

3.4、拉取其他镜像

docker compose up -d 

这一步会出现 gearmand 和 clamavd 下载出错的问题,可以单独拉取安装或者修改 archivematica/hack/docker-compose.yml 文件里的镜像源(这里尝试过单独安装,但是一直失败,就换了镜像源,直接改了文件重新安装了)。

涉及修改的镜像源代码如下:

  gearmand:
    image: "docker.1ms.run/artefactual/gearmand:1.1.18-alpine"
    command: "--queue-type=builtin"
    user: "gearman"
    ports:
      - "127.0.0.1:62004:4730"

  clamavd:
    image: "clamav/clamav:latest"
    environment:
      CLAMAV_MAX_FILE_SIZE: "42"
      CLAMAV_MAX_SCAN_SIZE: "42"
      CLAMAV_MAX_STREAM_LENGTH: "100"
    ports:
      - "127.0.0.1:62006:3310"
    volumes:
      - "archivematica_pipeline_data:/var/archivematica/sharedDirectory:ro"

3.5、数据库创建

make bootstrap

3.6、项目运行

启动数据库等服务:如果是用的 VSCode 打开的项目,可以用 直接启动,或者通过命令启动

1、直接启动

2、命令启动

docker run percona:8.0
docker run docker.elastic.co/elasticsearch/elasticsearch:6.8.23
docker run docker.1ms.run/artefactual/gearmand:1.1.18-alpine
docker run clamav/clamav:latest

项目启动:

#  这个命令只是启动了项目,没有启动数据库等服务,其他服务需要单独启动
make restart-am-services


停止服务命令:

make stop

Web 用户界面

Archivematica Dashboard 和 Storage Service 的默认凭证 是 username:test , password: test

参考链接

VS Code 远程 WSL 扩展 或 直接访问 WSL 文件系统 来编辑 Windows 应用商店下载的 Ubuntu 20.04 里的 home 目录下的文件_51CTO博客_vs code 远程调试

两句话讲清楚windows安装wsl和docker - 李英俊小朋友 - 博客园

ArchivematicaHome | Artefactual

WSL 官方安装教程:设置 WSL 开发环境 | Microsoft Learn


网站公告

今日签到

点亮在社区的每一天
去签到