在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
不要问我测试的是什么"待定。"不知道。