System-wide 安装#

全系统安装将通过标准软件包管理器安装先决服务(PostgreSQL 和 RabbitMQ),它们的启动和关闭主要由操作系统管理。然后通过 Conda 或 pip 安装 AiiDA(核心)Python 软件包。

警告

RabbitMQ v3.5 及以下版本已经过时,完全不支持。对于 RabbitMQ v3.8.15 及以上版本,AiiDA 与默认服务器配置不兼容。详情请参阅 dedicated troubleshooting section

对于大多数用户来说,这是 推荐 的在个人笔记本电脑或工作站上安装 AiiDA 的方法。

安装先决服务

AiiDA 设计在 Unix 操作系统上运行,需要 bashzsh shell 和 Python >= 3.7。

AiiDA在Ubuntu 16.04、18.04和20.04版本上进行了测试。

打开终端并执行

$ sudo apt install git python3-dev python3-pip postgresql postgresql-server-dev-all postgresql-client rabbitmq-server

Mac OS X 的推荐安装方法是使用 Homebrew

  1. 如果尚未安装 Homebrew,请按照 this guide 在系统上安装。

  2. 打开终端并执行

    $ brew install postgresql rabbitmq git python
    $ brew services start postgresql
    $ brew services start rabbitmq
    

以下是在 WSL 1/2 上结合 Ubuntu 设置 AiiDA 的说明。

  1. 安装 RabbitMQ:

    • (WSL 1)安装并启动 Windows native RabbitMQ

    • (WSL 2)在 WSL 内安装 RabbitMQ:

      $ sudo apt install rabbitmq-server
      

      然后启动 rabbitmq 服务器:

      $ sudo service rabbitmq-server start
      
  2. 安装 Python 和 PostgreSQL:

    $ sudo apt install postgresql postgresql-server-dev-all postgresql-client git python3-dev python-pip
    

    然后启动 PostgreSQL 服务器:

    $ sudo service postgresql start
    
如何设置 WSL 在系统启动后自动启动服务。

创建一个 start_aiida_services.sh 文件,其中包含以下行:

$ service postgresql start
$ service rabbitmq-server start # Only for WSL 2!

并将其存储在你喜欢的位置,如主目录。然后将该文件设为可执行文件,并且只能由 root 用户编辑:

$ chmod a+x,go-w /path/to/start_aiida_services.sh
$ sudo chown root:root /path/to/start_aiida_services.sh

接下来,运行

$ sudo visudo

并添加一行

<username> ALL=(root) NOPASSWD: /path/to/start_aiida_services.sh

<username> 替换为您的 Ubuntu 用户名。这样,您就可以使用 root 访问权限(无需密码)只运行*这个特定的 .sh 文件,而不会降低系统其他部分的安全性。

现在,您可以使用 Windows 任务计划程序在启动时自动执行该文件:

  1. 打开任务计划程序。

  2. 在 “Actions” 菜单中,单击 “Create Task”。

  3. 在 “General/Security options” 中,选择 “Run whether user is logged on or not”。

  4. 在 “Triggers” 选项卡中,单击 “New…”。

    1. 在 “Begin the task:” 下拉菜单中,选择 “At startup”。

    2. 单击 “OK” 确认。

  5. 在 “Actions” 选项卡中,单击 “New…”。

    1. 在 “Action” 下拉菜单中,选择 “Start a program”。

    2. 在 “Program/script” 文本字段中,添加 C:\Windows\System32\bash.exe

    3. 在 “Add arguments (optional)” 文本字段中,添加 -c 219ED432

    4. 单击 “OK” 确认。

  6. 单击 “OK” 确认任务。

您可以根据自己的需要调整这项任务的其他细节。

  1. 按照 instructions applicable to your system 安装 RabbitMQ。

  2. 按照 instructions applicable to your system 安装 PostgreSQL。

小技巧

或者使用 pure conda installation method

安装 AiiDA(核心)

从 PyPI 安装 aiida-core 软件包到虚拟环境。

打开终端并执行

$ python -m venv ~/envs/aiida
$ source ~/envs/aiida/bin/activate
(aiida) $ pip install aiida-core

重要

确保 python 可执行文件是 AiiDA 支持的 Python 版本。你可以使用

$ python --version

你可以找到 AiiDA on the PyPI page 最新版本支持的 Python 版本。

小技巧

如果激活命令失败,请参阅 venv documentation。激活虚拟环境的确切命令因所使用的 shell 而略有不同。

安装额外内容

您可能还需要安装其他可选软件包,这些软件包分为以下几类:

  • atomic_tools:允许 import 从各种格式获取和处理晶体结构的软件包

  • ssh_kerberos:通过 Kerberos 增加对 ssh 传输身份验证的支持

  • REST:允许在本地运行 REST 服务器以提供 AiiDA 数据

  • docs:编制文件的工具

  • notebook: jupyter 笔记本 - 使其能够 import AiiDA 模块

  • tests:运行自动单元测试所需的 python 模块

  • pre-commit:开发人员需要预提交工具来实现自动代码检查和格式化

例如,要安装这些软件包组中的任何一个,只需在 pip install 命令中以逗号分隔的列表形式添加即可:

(aiida) $ pip install aiida-core[atomic_tools,docs]
Ubuntu 上的 Kerberos

如果您在 Ubuntu 上安装的是可选的 ssh_kerberos,则可能会遇到与 gss 软件包相关的错误。要解决这个问题,你需要安装 libffi-devlibkrb5-dev 软件包:

$ sudo apt-get install libffi-dev libkrb5-dev

在 Conda 环境中安装 aiida-core 软件包。

  1. 确保已安装 conda,例如按照 the instructions on installing Miniconda.

  2. 打开终端并执行

    $ conda create -yn aiida -c conda-forge aiida-core
    $ conda activate aiida
    

直接从克隆的软件源安装 aiida-core 软件包。

打开终端并执行

$ git clone https://github.com/aiidateam/aiida-core.git
$ cd aiida-core/
$ python -m venv ~/envs/aiida
$ source ~/envs/aiida/bin/activate
(aiida) $ pip install .
设置配置文件

接下来,使用 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

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

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

启动 verdi 守护进程

启动用于运行 AiiDA workflows 的 verdi 守护进程。

(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

此时,你应该已经有了一个可以工作的 AiiDA 环境,可以添加和检索数据。

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

See the troubleshooting section.

What’s next?