cvondrick / vatic

Efficiently Scaling Up Video Annotation with Crowdsourced Marketplaces. IJCV 2012
http://mit.edu/vondrick/vatic/
MIT License
608 stars 255 forks source link

Installation instructions broken for Ubuntu 14.04 in many ways. #37

Open drewm1980 opened 8 years ago

drewm1980 commented 8 years ago

I have burned an entire workday failing to get vatic installed on a virgin Ubuntu 14.04 system.

There are many helpful comments online with solutions to individual problems here and on stack overflow, but once more than a few things are broken, I think someone who knows what they're doing with this python web app stuff needs to go through the whole process on a virgin machine and update the instructions.

gaetanocalabrese commented 8 years ago

Hi, I've burned a couple of days too.. Iooking carefully at the output generated by the install script, you can see that it's trying to download packages no more avalable..i.e. mysql 5.1.. so I changed in 5.5 another problem is the cython lib...by default is downloading the 2.4...but some comments suggest to use the 2.0...so I deleted the command and istalled the 2.0

Also the instructions about apache are not complete...in the config file of the apache delivered with the ubuntu 14.04 is missing a session: <Directory "/path_of_the_directory/"> Order Allow,Deny Allow from all Options Indexes AllowOverride AuthConfig </Directory>

Let see if working together we will be able to run it.. By the way do you know how to run the GUI shown in the demo?

drewm1980 commented 8 years ago

It looks like john doherty's fork has some updated instructions... If I start over I might start there.

https://github.com/johndoherty/vatic/blame/master/README.md

He mentions the avconv fork in Ubuntu 14, so that is promising; he almost certainly got vatic working there.

drewm1980 commented 8 years ago

This guy even typeset his version of the installation instructions, but didn't mention what version of Ubuntu they are for...

http://cs-people.bu.edu/sameki/blog2.pdf

drewm1980 commented 8 years ago

Hi @gaetanocalabrese ,

I spent a few hours trying to install vatic (loosely) following john doherty's fork. He has the issue tracker turned off on his repo, so I'll keep discussion here since most of it probably to mainline too.

He uses virtualenv to try to create a jail for the python installed stuff to try to deal a little with dependency hell. I ran into two major difficulties with that:

1) the virtualenv jail is leaky; several times in the process I accidentally referenced stuff from outside the jail, i.e. by using root user, or by using ipython. That probably contributed to my problems.

2) most of the versions of the python dependencies in pip are not specified, and at least one was out of date.

In the end I did not even get as far as I did following/adapting @cvondrick's instructions on the mainline.

gaetanocalabrese commented 8 years ago

Hi @drewm1980 , I installed and run it on Ubuntu 12.04.5 LTS (on wmware)...following mainly the suggestions I wrote. What kind of errors do you have?

vskubriev commented 8 years ago

@gaetanocalabrese It sounds good. Can you post you instruction for ubuntu 12.04 anywhere ?

gaetanocalabrese commented 8 years ago

Installed and run on Ubuntu 14.04 the problems are mainly Apache2 configuration 0) follow this instructions http://cs-people.bu.edu/sameki/blog2.pdf 1) edit the vatic-install.sh : change mysql version to 5.5 2) edit /etc/apache2/sites-enabled/000-default


WSGIDaemonProcess www-data WSGIProcessGroup www-data

<VirtualHost *:80> ServerName localhost DocumentRoot /home/calabrese/vatic/public WSGIScriptAlias /server /home/calabrese/vatic/server.py

<Directory /home/calabrese/vatic> <Files server.py> Require all granted </Files> </Directory>

<Directory /home/calabrese/vatic/public> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>


3) edit config.py:


signature = "" # AWS secret access key accesskey = "" # AWS access key ID sandbox = "" # if true, put on workersandbox.mturk.com localhost = "http://localhost" # your local host

database = "mysql://root:root@localhost/vatic" # server://user:pass@localhost/dbname geolocation = "" # api key for ipinfodb.com maxobjects = 25;

import multiprocessing processes = multiprocessing.cpu_count()

import os.path import sys sys.path.append(os.path.dirname(os.path.abspath(file)))


4) give chmod -R 777 /var/www (quick solution for the python egg problem )

5) check the errors under /var/logs/apache2/

6) to restart apache use /etc/init.d/apache2 restart

7) load and publish the video with --offline option 8) run vatic: http://localhost/?id=1&hitId=offline

cakoolen commented 8 years ago

Would the maintainers accept a pullrequest because I've spent some time getting the installation script right for Ubuntu 14.04

It is not only getting the correct dependencies, it is about changing pil to pillow as well.

#!/bin/bash -e

sudo add-apt-repository ppa:mc3man/trusty-media

sudo apt-get update

sudo apt-get install -y git python-setuptools python-dev libavcodec-dev libavformat-dev libswscale-dev libjpeg62 libjpeg62-dev libfreetype6 libfreetype6-dev apache2 libapache2-mod-wsgi mysql-server mysql-client libmysqlclient-dev gfortran build-essential ffmpeg

sudo easy_install -U SQLAlchemy wsgilog pillow cython==0.20 mysql-python munkres parsedatetime argparse
sudo easy_install -U numpy

a2enmod headers

git clone https://github.com/cvondrick/turkic.git
git clone https://github.com/cvondrick/pyvision.git
git clone https://github.com/cvondrick/vatic.git

cd turkic
python setup.py build
sudo python setup.py install
cd ..

cd pyvision
python setup.py build
sudo python setup.py install
cd ..

echo "*****************************************************"
echo "*** Please consult README to finish installation. ***"
echo "*****************************************************"
WSGIDaemonProcess www-data python-eggs=/tmp/.python-eggs
WSGIProcessGroup www-data

<VirtualHost *:80>
    ServerName vatic.domain.edu
    ServerAdmin webmaster@localhost
    DocumentRoot /path/to/vatic/vatic/public

    <Directory /path/to/vatic/vatic/public>
        Options Indexes FollowSymLinks MultiViews Includes ExecCGI
        AllowOverride all
        Require all granted
        Satisfy Any
    </Directory>

    <Directory />
        Options Indexes FollowSymLinks Includes
        AllowOverride None
    </Directory>

    ErrorLog /etc/apache2/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined
    WSGIScriptAlias /server /path/to/vatic/server.py
    <Directory "/path/to/vatic">
    <Files server.py>
         Require all granted
    </Files>
    </Directory>

</VirtualHost>