Ubuntu 12.04上的DeepDive安装指南

时间:2014-03-21 00:50:45

标签: postgresql ubuntu

在Ubuntu上many problems安装DeepDive project后,我决定写出详细的指南。这些问题是基于源代码提供的test.sh文件的输出 - 我现在还不能说明源代码的功能(刚刚开始学习)。

因为我弄乱了一些配置文件,这仍然是我Ubuntu体验的早期,我决定重新安装操作系统(精确12.04)并从头开始重做所有内容。因此,本指南基于干净版本的Ubuntu 12.04,在安装所有相关更新(通过Update Manager)后,截至2014年3月20日。

DeepDive为我们提供了一些先决条件:Java,Python 2.X,PostgreSQL和SBT。 Ubuntu 12.04已经有了Python 2.X,所以我们会担心其他的。

我们将推荐使用Ubuntu推荐的OpenJDK-7。在终端中输入以下内容。

sudo apt-get update
sudo apt-get install openjdk-7-jdk icedtea-7-plugin

现在,让我们安装SBT。使用以下链接download the debian file或获取from the site。 SBT依赖于curl,所以首先我要安装它。

sudo apt-get install curl
cd /home/tom/Downloads
sudo dpkg -i sbt.deb

现在我需要安装PostgreSQL,这是迄今为止最棘手的部分。在本教程中,我假设您正在处理的计算机也将是PostgreSQL主机。同样重要的是要注意DeepDive使用JSON,PostgreSQL 9.1及其下显然不支持JSON。要安装9.3版本,我将使用" Danny"在this StackExchange post中,只需将数字更改为9.3:

wget -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo gedit /etc/apt/sources.list.d/pgdg.list

将以下行添加到文件,然后保存并关闭:

deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main

请注意" exact-pgdg"对应于您的Ubuntu版本。现在让我们更新并安装。

sudo apt-get update
sudo apt-get install pgdg-keyring postgresql-9.3

现在我们将安装DeepDive。首先,我需要安装git,因为我正在使用新版本的操作系统。然后,指令来自DeepDive page。我将在我的主目录中安装DeepDive,但如果您想在其他地方安装,请修改cd行。

sudo apt-get install git
cd
git clone https://github.com/dennybritz/deepdive.git
cd deepdive
sbt compile

如果我们现在运行深度测试,它会给我们一些错误:

cd deepdive ./test.sh

[info] Run completed in 8 seconds, 322 milliseconds.
[info] Total number of tests run: 71
[info] Suites: completed 18, aborted 0
[info] Tests: succeeded 69, failed 2, canceled 0, ignored 0, pending 3
[info] *** 2 TESTS FAILED ***
[error] Failed tests:
[error]     org.deepdive.test.integration.LogisticRegressionApp
[error]     org.deepdive.test.unit.InferenceManagerSpec
[error] Error during tests:
[error]     org.deepdive.test.unit.PostgresInferenceDataStoreSpec
[error]     org.deepdive.test.unit.PostgresExtractionDataStoreSpec
[error] (test:test) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 29 s, completed Mar 20, 2014 6:45:30 PM

要解决这个问题,我们需要设置PostgreSQL。首先,让我们激活本地和TCP / IP连接。

sudo gedit /etc/postgresql/9.3/main/postgresql.conf

修改"连接和身份验证"中的以下行从:

#listen addresses = 'localhost'

为:

listen_addresses = 'localhost, 127.0.0.1, 192.168.1.10'

请注意,您应该在网络连接中检查自己的IP地址,然后使用它代替我的,以.10结尾。值得注意的是localhost和127.0.0.1是等价的。现在,您需要确保路由器上的端口5432已激活/打开。对我来说,它类似于以下内容:从键入192.168.1.0的浏览器访问路由器 - >虚拟服务器 - >启用端口5432以获取IP地址192.168.1.10

现在我们需要首次设置postgres超级用户。以下行将以用户postgres打开psql(感谢Ubuntu-PostgreSQL community Wiki

sudo -u postgres psql postgres

您应该看到postgres=#和光标。输入以下内容,然后输入您选择的密码:

\password postgres

虽然我们仍然在psql中作为postgres超级用户,但请继续创建一个与您的Ubuntu用户帐户同名的普通用户。这将使生活更轻松(至少对我而言)。您可以使用\du检查用户的特征。

CREATE ROLE tom WITH SUPERUSER CREATEDB CREATEROLE REPLICATION LOGIN;
\du

现在也为该用户添加密码,然后退出psql。

ALTER ROLE tom WITH PASSWORD 'your_pa$$w0rd';
\q

检查您现在是否是用户' tom'再一次,而不是用户' postgres-tom。'如果是后者,请键入exit

我们现在需要一个额外的依赖项才能没有错误。

sudo apt-get install gnuplot-x11

最后,我们需要稍微修改deepdive目录中的test.sh文件。似乎有一个错误,测试会忘记'您在运行过程中提供的密码。所以,让我们在那里硬连线。

cd
gedit deepdive/test.sh

您会在顶部注意到以下几行。

# Set username and password
export PGUSER=${PGUSER:-`whoami`}
export PGPASSWORD=${PGPASSWORD:-}

如果您要保存原始文件,请将名称更改为test_original.sh。我们将把这些行更改为以下内容(根据您的情况):

# Set username and password
export PGUSER=tom
export PGPASSWORD=your_pa$$w0rd

好的,现在转到你的deepdive文件夹,然后运行测试!

cd deepdive
./test.sh

成功!甜蜜,甜蜜的成功!您应该看到以下内容:

[info] Run completed in 21 seconds, 280 milliseconds.
[info] Total number of tests run: 90
[info] Suites: completed 20, aborted 0
[info] Tests: succeeded 90, failed 0, canceled 0, ignored 0, pending 3
[info] All tests passed.
[success] Total time: 23 s, completed Mar 20, 2014 7:27:21 PM

不要问我测试的是什么"待定。"不知道。

0 个答案:

没有答案