安装到 Conda 环境#

此安装路径将所有必要的软件(包括先决服务 PostgreSQL 和 RabbitMQ)安装到 Conda 环境中。对于共享系统和用户没有管理权限的系统,推荐使用这种方法。如果你想将 AiiDA 安装到自己的个人工作站/笔记本电脑,建议使用 system-wide 安装

重要

此安装方法将 所有 需要的软件安装到 Conda 环境中,包括 PostgreSQL 和 RabbitMQ。请参阅 system-wide 安装,并仅使用 Conda 安装 AiiDA(核心)Python 软件包。

安装前提服务 + AiiDA(核心)

在 Conda 环境中安装 aiida-core 软件包和所有必需的服务。

  1. 我们强烈建议使用 mamba ,而不是默认的 conda (否则环境解析可能会超时)。从零开始配置时,可考虑使用 Mambaforgeconda install -c conda-forge mamba

  2. 打开终端并执行

$ mamba create -n aiida -c conda-forge aiida-core aiida-core.services
$ mamba activate aiida
启动服务并初始化数据存储

在使用 AiiDA 之前,必须先在磁盘上初始化数据库存储区。

(aiida) $ initdb -D mylocal_db

这个 数据库集群 (位于名为 mylocal_db 的文件夹内)可能包含一组数据库(每个配置文件一个),由一个运行中的服务器进程管理。我们用以下命令启动该进程

(aiida) $ pg_ctl -D mylocal_db -l logfile start

然后,启动 RabbitMQ 服务器:

(aiida) $ rabbitmq-server -detached

重要

这样启动的服务将使用机器上的默认端口。如果有多个用户在同一台机器上以这种方式运行 AiiDA,或者你已经在系统范围内安装了服务器,可能会发生冲突。为了解决这个问题,你可以明确定义要使用的端口。

设置配置文件

接下来,使用 verdi quicksetup 命令设置 AiiDA 配置文件和相关数据存储。

(aiida) $ verdi quicksetup
Info: enter "?" for help
Info: enter "!" to ignore the default and set no value
Profile name: me
Email Address (for sharing data): me@user.com
First name: my
Last name: name
Institution: where-i-work

小技巧

如果 数据库群集 和 RabbitMQ 服务器使用了非默认端口,可分别使用 --db-port--broker-port 选项传递它们。

AiiDA 是否无法自动检测 PostgreSQL 设置?

如果出现 AiiDA 无法自动检测 PostgreSQL 设置的错误,则需要执行 troubleshooting section 中解释的手动设置。

一旦配置文件启动并运行,就可以启动 AiiDA 守护进程:

(aiida) $ verdi daemon start 2

重要

系统重启后必须重新启动 verdi 守护进程。

小技巧

不要启动超过系统物理处理器数量的守护进程。

检查设置

要检查一切设置是否正确,请执行

(aiida) $ verdi status
✓ version:     AiiDA v2.0.0
✓ config:      /path/to/.aiida
✓ profile:     default
✓ storage:     Storage for 'default' @ postgresql://username:***@localhost:5432/db_name / file:///path/to/repository
✓ rabbitmq:    Connected as amqp://127.0.0.1?heartbeat=600
✓ daemon:      Daemon is running as PID 2809 since 2019-03-15 16:27:52

缺少一个复选标记或遇到其他问题?

See the troubleshooting section.

What’s next?

关闭服务

完成 aiida 会话后,尤其是在不同配置文件之间切换时,不妨关闭守护进程和服务:

(aiida) $ verdi daemon stop
(aiida) $ pg_ctl -D mylocal_db stop
(aiida) $ rabbitmqctl stop
重新启动服务

如果要重新启动服务和守护进程:

(aiida) $ pg_ctl -D mylocal_db start
(aiida) $ rabbitmq-server -detached
(aiida) $ verdi daemon start

小技巧

如果使用不同的端口,也必须在此处传递。