最后编辑于2022/02/04
原文地址
https://neo4j.com/docs/operations-manual/current/installation/linux/debian/
安装
要在Debian上安装Neo4j你需要确保一下内容存在:
- OpenJDK Java 11 运行环境已安装或可以通过软件包管理器安装
- 包含 Neo4j Debian 包的仓库(repository)已添加到软件包管理
Java 环境的安装(仅在 Oracle Java, Debian 9+ and Ubuntu 16.04+ 时需要)
Neo4j 4.4 需要在 Java 11 运行环境下运行,但是 Java 11 在 Ubuntu 16.04 LTS 或 Debian 9 (stretch) 中并没有预装,因此在安装或升级至 Neo4j 4.4 前需要手动配置,方法如下。Debian 9 的用户可以在 backports 中找到 OpenJDK 11,Debian 10 及 Ubuntu 18.04 以上版本已经包含了 OpenJDK 11 的包,可以通过 apt
获取 OpenJDK 11。
Oracle Java 与 Debian
Neo4j 与 Debian/Ubuntu Linux 上的 Oracle Java 兼容,但应该通过 tarball 来安装。Debian 的安装程序仍然可以使用,但它会在任何现有的 Java 安装的环境之外安装 OpenJDK Java 11。
Debian 9 上的 Java 11
Java 11 必须在 Neo4j 安装到 Debain 9 (stretch) 系统之前安装好。如果你还没有安装 Java 11,可以使用以下命令安装 OpenJDK Java 11:
echo "deb http://httpredir.debian.org/debian stretch-backports main" | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list
sudo apt-get update
sudo apt-get install openjdk-11-jre
如果你已经安装了其他版本的 Java,请查看应对多版本Java存在的方案以保证 Java 11 是默认版本。现在我们就可以开始安装 Neo4j 啦!
Ubuntu 16.04 中的 Java 11
将官方 OpenJDK 包仓库添加到 apt
sudo add-apt-repository -y ppa:openjdk-r/ppa
sudo apt-get update
现在就已经可以开始安装 Neo4j 数据库了,如果 Java 11 未安装则安装过程会自动安装它。请查看应对多版本Java存在的方案以保证你可以在安装完成后启动 Neo4j。
应对多版本Java存在的方案
很重要的是,你要配置默认 Java 版本为 Java 11,否则 Neo4j 4.4.3 将不能启动。想要如此配置,需要使用 update-java-alternatives
命令
- 首先通过
update-java-alternatives --list
命令列出所有你已安装的 Java 版本。结果可能不同,但示例如下:java-1.11.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.11.0-openjdk-amd64 java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
- 确认你的 Java 11 版本的名字,在此案例中为
java-1.11.0-openjdk-amd64
,然后使用以下命令将其设置为默认(修改<java11name>
为刚刚查到的名字)。sudo update-java-alternatives --jre --set <java11name>
添加仓库
Debian 包可以在 https://debian.neo4j.com/ 找到。
要使用 Neo4j 的普遍(general)版本的仓库,请运行:
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
echo 'deb https://debian.neo4j.com stable latest' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
sudo apt-get update
为了防止包管理器 apt
意外强制升级我们的数据库,Neo4j 的不同主要和次要版本在软件库中是单独获得。要通过这种方法安装 Neo4j,可以指定所需的版本,来代替命令中的 latest
。
建议在生产或关键业务的安装中采用以下方法:
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
echo 'deb https://debian.neo4j.com stable 4.4' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
sudo apt-get update
仓库添加到 apt
后,可以通过以下命令检查你可以安装的 Neo4j 的版本。
apt list -a neo4j
如果你是要安装到 Ubuntu 的服务器上那么你也需要确保已经启用
universe
仓库。如果universe
没有被找到,Neo4j 的安装产生这个错误:Depends: daemon but it is not installable
.你可以使用以下命令解决:
sudo add-apt-repository universe
安装 Neo4j
要安装社区版本(Community Edition)的 Neo4j,请运行:
sudo apt-get install neo4j=1:4.4.3
若是安装企业版(Enterprise Edition),请运行:
sudo apt-get install neo4j-enterprise=1:4.4.3
需要小注意的是,根据Debian的版本政策,版本名中包括一个历时性版本组件(1:)。
还没有普遍可用(generally available)的Neo4j版本在命名上可能有所不同。
包的命名结构通常像这样:
neo4j-enterprise=1:<version>~<release>
。例如:Neo4j 企业版里程碑发布版 3 (Neo4j Enterprise Edition Milestone Release 3 )的命名会是 –neo4j-enterprise=1:4.0.0~beta03mr03
。参考官方下载页以获得有关软件包名称的更多信息。
在安装 Neo4j 企业版时,你会被提示要接受许可协议。接受许可协议后,安装才会开始。你是否统一许可协议的结果将被记住,以便今后在同一系统上安装。
要忘记已存储的结果,并在之后的安装中重新回答,请使用 debconf-communicate
来清除已存储的回答信息。
echo purge | sudo debconf-communicate neo4j-enterprise
通过非交互式操作安装Neo4j企业版
对于 Neo4j 企业版来说,同意许可协议的窗口会以交互式的方式出现,如果你需要以非交互式的方式安装 Neo4j 企业版,你可以使用 debconf-set-selections
来表明你已经阅读并接受许可协议:
echo "neo4j-enterprise neo4j/question select I ACCEPT" | sudo debconf-set-selections
echo "neo4j-enterprise neo4j/license note" | sudo debconf-set-selections
离线安装
如果你的服务器(或者你的电脑)因为防火墙等什么的原因不能连接到 https://debian.neo4j.com,那么你需要在其他一台有能连接到对应仓库的设备先获取到 Neo4j,在手动将其移动到需要安装的设备。
需要注意的是,使用离线安装将意味着离线的设备不会下载和安装那些正常使用
apt
安装 Neo4j 时自动下载并安装的依赖包,例如 Cypher Shell 和 Java(没有安装 Java 时)
- Cypher Shell 可以在 Neo4j Download Center 中下载
- 关于 Java 的版本支持信息,见 系统要求
- 运行以下命令以下载必要的 Debian 包
- Neo4j 企业版(Enterprise Edition)
curl -O https://dist.neo4j.org/deb/neo4j-enterprise_4.4.3_all.deb
- Neo4j 社区版(Community Edition)
curl -O https://dist.neo4j.org/deb/neo4j_4.4.3_all.deb
- Neo4j 企业版(Enterprise Edition)
- 手动移动下载的 Debian 包到需要离线安装的设备中
- 运行以下命令进行离线安装 Neo4j
sudo dpkg -i <deb file name>
文件的安装位置
所有 Neo4j 包的文件安装位置都已经在此文档(英文)中写出。
操作配置
几乎所有的 Neo4j 配置文档都在 neo4j.conf(英文)中写出。
对于使用 systemd
的操作系统来说,一些特定的软件包选项在 neo4j.service 中,可以使用 systemctl edit neo4j.service
编辑。
对于不使用 systemd
的操作系统,这些选项在文件 /etc/default/neo4j 中配置。
环境变量 | 默认值 | 具体含义 |
---|---|---|
NEO4J_SHUTDOWN_TIMEOUT | 120 | 等待 Neo4j 停止的超时时间。如果停止时间超过此值就会被认为出现错误而失败。如果系统需要提供长运行时间事务(transaction),那么此值可能需要设置的更高。 |
NEO4J_ULIMIT_NOFILE | 60000 | Neo4j 进程可以打开的最大文件句柄数。 |