Install ======= This is a guide about how to install *LibrePlan* project in your system. If you want to upgrade your *LibrePlan* version see ``UPDATE`` file. If you want to know how to compile it manually see ``HACKING`` file. .. contents:: LibrePlan automatic installation -------------------------------- Docker image ~~~~~~~~~~~~ The easiest way to have a working LibrePlan instance in no time is to use LibrePlan docker images. Beside the classic Libreplan/Postgresql image, you'll also find a MySQL/MariaDB one. See https://hub.docker.com/r/libreplan/libreplan/ for detailed information and instruction. Ubuntu PPAs ~~~~~~~~~~~ There are Ubuntu PPAs for different versions (Precise, Trusty, Utopic and Vivid), you can find more info in the following URL: https://launchpad.net/~libreplan/+archive/ppa Instructions:: $ sudo add-apt-repository ppa:libreplan/ppa $ sudo apt-get update $ sudo apt-get install libreplan .. TIP:: If you do not have ``add-apt-repository`` command, you will need to install ``software-properties-common`` package before running the previous commands. You can do it with the following line:: sudo apt-get install software-properties-common .. WARNING:: If you have memory problems review the section `Fix memory errors`_. Debian packages ~~~~~~~~~~~~~~~ There are Debian packages for Wheezy and Jessie (i386 and amd64), you can download them from: http://sourceforge.net/projects/libreplan/files/LibrePlan/ Instructions: * Download the package:: $ wget http://downloads.sourceforge.net/project/libreplan/LibrePlan/libreplan_1.4.1-1_amd64.deb * Install package:: # dpkg -i libreplan_1.4.1-1_amd64.deb * Install dependencies:: # apt-get install -f .. WARNING:: If you have problems with printing support review the section `Fix printing in Debian Squeeze`_. .. WARNING:: If you have memory problems review the section `Fix memory errors`_. Fedora, CentOS and openSUSE OBS (openSUSE Build Service) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Instructions depending on the distribution: * Fedora 23:: # cd /etc/yum.repos.d # wget download.opensuse.org/repositories/home:/jsuarezr:/LibrePlan/Fedora_23/home:jsuarezr:LibrePlan.repo # yum install libreplan Follow the instructions in /usr/share/doc/libreplan-1.4.1/README.Fedora afterwards. * Fedora 22:: # cd /etc/yum.repos.d # wget download.opensuse.org/repositories/home:/jsuarezr:/LibrePlan/Fedora_22/home:jsuarezr:LibrePlan.repo # yum install libreplan Follow the instructions in /usr/share/doc/libreplan-1.4.1/README.Fedora afterwards. * CentOS 7:: # cd /etc/yum.repos.d # wget download.opensuse.org/repositories/home:/jsuarezr:/LibrePlan/CentOS_7/home:jsuarezr:LibrePlan.repo # yum install libreplan * CentOS 6:: # cd /etc/yum.repos.d # wget download.opensuse.org/repositories/home:/jsuarezr:/LibrePlan/CentOS_CentOS-6/home:jsuarezr:LibrePlan.repo # yum install libreplan * openSUSE Leap_42.1:: # cd /etc/zypp/repos.d # wget download.opensuse.org/repositories/home:/jsuarezr:/LibrePlan/openSUSE_Leap_42.1/home:jsuarezr:LibrePlan.repo # zypper ref # zypper install libreplan * openSUSE Factory:: # cd /etc/zypp/repos.d # wget download.opensuse.org/repositories/home:/jsuarezr:/LibrePlan/openSUSE_Factory/home:jsuarezr:LibrePlan.repo # zypper ref # zypper install libreplan * openSUSE 13.2:: # cd /etc/zypp/repos.d # wget download.opensuse.org/repositories/home:/jsuarezr:/LibrePlan/openSUSE_13.2/home:jsuarezr:LibrePlan.repo # zypper ref # zypper install libreplan * openSUSE 13.1:: # cd /etc/zypp/repos.d # wget download.opensuse.org/repositories/home:/jsuarezr:/LibrePlan/openSUSE_13.1/home:jsuarezr:LibrePlan.repo # zypper ref # zypper install libreplan .. WARNING:: If you have memory problems review the section `Fix memory errors`_. Microsoft Windows ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In development... RPM Packages ~~~~~~~~~~~~ There are several LibrePlan RPM packages available in the following URL: http://download.opensuse.org/repositories/home:/jsuarezr:/LibrePlan/ Follow the instructions in the corresponding README file to finish the installation. .. WARNING:: If you have memory problems review the section `Fix memory errors`_. LibrePlan manual installation ----------------------------- Debian/Ubuntu ~~~~~~~~~~~~~ * Install requirements:: # apt-get install openjdk-8-jre postgresql postgresql-client tomcat8 libpg-java cutycapt xvfb * Connect to database:: # su postgres -c psql * Use SQL sentences to create database:: CREATE DATABASE libreplan; CREATE USER libreplan WITH PASSWORD 'libreplan'; GRANT ALL PRIVILEGES ON DATABASE libreplan TO libreplan; * Download database installation script:: $ wget -O install.sql http://downloads.sourceforge.net/project/libreplan/LibrePlan/install_1.4.0.sql .. WARNING:: The 1.4.1.sql file is specific for a MySQL install. * Create database structure:: $ psql -h localhost -U libreplan -W libreplan < install.sql .. WARNING:: It is very important to execute the previous command specifiying ``libreplan`` user (as you can see in the ``-U`` option). Otherwise your LibrePlan installation is not going to start properly and you could find in your log files something like that:: JDBCExceptionReporter - ERROR: permission denied for relation entity_sequence * Download ``.war`` file from SourceForge.net:: $ wget -O libreplan.war http://downloads.sourceforge.net/project/libreplan/LibrePlan/libreplan_1.4.1.war * Create a new file ``/etc/tomcat8/Catalina/localhost/libreplan.xml`` (file name has to match with ``.war`` name) with database configuration for Tomcat 8:: * Add next lines to Tomcat 8 policy file ``/etc/tomcat8/catalina.policy`` or ``/var/lib/tomcat8/conf`` or ``/etc/tomcat8/policy.d/03catalina.policy`` with the following content:: grant codeBase "file:/var/lib/tomcat8/webapps/libreplan/-" { permission java.security.AllPermission; }; grant codeBase "file:/var/lib/tomcat8/webapps/libreplan.war" { permission java.security.AllPermission; }; * Also add next lines to Tomcat 8 policy file:: grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" { ... // begin:libreplan permission java.io.FilePermission "${catalina.base}${file.separator}webapps${file.separator}libreplan${file.separator}WEB-INF${file.separator}classes${file.separator}logging.properties", "read"; // end:libreplan ... }; * Add link to Java JDBC driver for PostgreSQL in Tomcat8 libraries directory:: # ln -s /usr/share/java/postgresql-jdbc4.jar /usr/share/tomcat8/lib/ * Copy war to Tomcat 8 web applications directory:: # cp libreplan.war /var/lib/tomcat8/webapps/ * Restart Tomcat 8:: # /etc/init.d/tomcat8 restart * Go to http://localhost:8080/libreplan/ .. WARNING:: If you have problems with printing support review the last section `Fix printing in Debian Squeeze`_. openSUSE ~~~~~~~~ * Install requirements:: # zypper install java-1_8_0-openjdk postgresql-server postgresql tomcat8 xorg-x11-server * JDBC Driver manual installation:: # cd /usr/share/java/ # wget http://jdbc.postgresql.org/download/postgresql-9.2-1004.jdbc41.jar # mv postgresql-9.2-1004.jdbc41.jar postgresql-jdbc4.jar * Follow instructions at ``HACKING`` file to compile and install CutyCapt * Start database service:: # /etc/init.d/postgresql start * Connect to database:: # su postgres -c psql * SQL sentences to create database:: CREATE DATABASE libreplan; CREATE USER libreplan WITH PASSWORD 'libreplan'; GRANT ALL PRIVILEGES ON DATABASE libreplan TO libreplan; * Set ``postgres`` user password:: ALTER USER postgres WITH PASSWORD 'postgres'; * Edit ``/var/lib/pgsql/data/pg_hba.conf`` and replace ``ident`` by ``md5`` * Restart database service:: # /etc/init.d/postgresql restart * Download database installation script:: $ wget -O install.sql http://downloads.sourceforge.net/project/libreplan/LibrePlan/install_1.4.0.sql * Create database structure:: $ psql -h localhost -U libreplan -W libreplan < install.sql .. WARNING:: It is very important to execute the previous command specifiying ``libreplan`` user (as you can see in the ``-U`` option). Otherwise your LibrePlan installation is not going to start properly and you could find in your log files something like that:: JDBCExceptionReporter - ERROR: permission denied for relation entity_sequence * Download ``.war`` file from SourceForge.net:: $ wget -O libreplan.war http://downloads.sourceforge.net/project/libreplan/LibrePlan/libreplan_1.4.1.war * Create a new file ``/etc/tomcat8/Catalina/localhost/libreplan.xml`` (file name has to match with ``.war`` name) with database configuration for Tomcat 8:: * Add link to Java JDBC driver for PostgreSQL in Tomcat8 libraries directory:: # ln -s /usr/share/java/postgresql-jdbc4.jar /usr/share/tomcat8/lib/ * Copy war to Tomcat 8 web applications directory:: # cp libreplan.war /srv/tomcat8/webapps/ * Restart Tomcat 8: # /etc/init.d/tomcat8 restart * Go to http://localhost:8080/libreplan/ Microsoft Windows ~~~~~~~~~~~ Instructions: * Download and install latest Java Runtime Environment 8uXX (JRE8uXX):: # http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html * Download and install latest PostgreSQL database:: # http://www.enterprisedb.com/products-services-training/pgdownload#windows * Download and install Apache Tomcat 8:: # https://tomcat.apache.org/download-80.cgi .. NOTE:: In JDK folder there is JRE folder * Set up JDBC41 PostgreSQL Driver:: # Download latest driver: https://jdbc.postgresql.org/download.html # Copy downloaded *.jar file to JRE location: (e.g. C:\Program Files\Java\jre8\lib\ext) * Download latest ``.war`` file from SourceForge.net (for PostgreSQL) and rename it to libreplan.war:: # http://sourceforge.net/projects/libreplan/files/LibrePlan/ * Create database:: CREATE DATABASE libreplan; * Use SQL sentences:: CREATE USER libreplan WITH PASSWORD 'libreplan'; GRANT ALL PRIVILEGES ON DATABASE libreplan TO libreplan; REVOKE ALL ON ALL TABLES IN SCHEMA public FROM PUBLIC; GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO libreplan; * Restore PostgreSQL / MySQL dump:: * Create an Environment Variable JRE_HOME # You need to set it to your JRE installed directory * Configure Apache Tomcat Server * Put libreplan.war file to Apache Tomcat webapps folder (e.g. C:/Program Files/Apache Software Foundation/Tomcat 8.0/webapps/) * Go to localhost folder (e.g. C:/Program Files/Apache Software Foundation/Tomcat 8.0/conf/Catalina/localhost/) and create there libreplan.xml file with this lines of code:: * Start Apache Tomcat server # Example location: C:/Program Files/Apache Software Foundation/Tomcat 8.0/bin/Tomcat8.exe If you will face SKIP_IDENTIFIER_CHECK error, refer to: http://stackoverflow.com/questions/24546304/how-to-skip-java-reserve-keyword-identifier-check-in-tomcat * Go to http://localhost:8080/libreplan Logs ---- Since *LibrePlan 1.1.1* log system is configured automatically creating a new folder under ``/var/log/tomcat8/`` with ``.war`` name. For example: ``/var/log/tomcat8/libreplan/``. Inside this new directory there will be two files (``libreplan.log`` and ``libreplan-error.log``) that will be rotated every day. Configure log directory ~~~~~~~~~~~~~~~~~~~~~~~ Anyway if you want to set manually LibrePlan log path you will have to configure ``JAVA_OPTS`` variable in your server. This variable is configured in different files depending on the distribution: * Debian or Ubuntu: ``/etc/default/tomcat8`` * Fedora or openSUSE: ``/etc/tomcat8/tomcat8.conf`` Where you will need to add the next line:: # Configure LibrePlan log directory JAVA_OPTS="${JAVA_OPTS} -Dlibreplan-log-directory=/my/path/to/libreplan/log/" .. WARNING:: You have to be sure that the user running Tomcat (usually ``tomcat8``) has permissions to write in the specified directory. Fix printing in Debian Squeeze ------------------------------ Since LibrePlan 1.2 printing support is not working properly in Debian Squeeze. To fix this issue, basically, you have to get a newer version of CutyCapt and WebKit dependencies from Debian testing. Instructions: * Make sure stable remains the default distribution to pull packages from:: # echo 'APT::Default-Release "stable";' >> /etc/apt/apt.conf * Add a new repository to make testing packages available to ``apt-get``:: # echo "deb http://ftp.debian.org/debian testing main" >> /etc/apt/sources.list * Refresh package index:: # apt-get update * Fetch and install ``cutycapt`` (and its dependencies) from testing:: # apt-get -t testing install cutycapt Fix memory errors ----------------- With the default parameters of Tomcat in the different distributions you could have problems with Java memory. After a while using LibrePlan you could see that some windows do not work and the log shows a ``java.lang.OutOfMemoryError`` exception. This exception could be caused because of two different issues: * Heap space:: java.lang.OutOfMemoryError: Java heap space * PermGemp space (Permanent Generation, reflective data for the JVM):: java.lang.OutOfMemoryError: PermGen space In order to avoid this problem you need to configure properly ``JAVA_OPTS`` variable in your server. This is configured in different files depending on the distribution: * Debian or Ubuntu: ``/etc/default/tomcat8`` * Fedora or openSUSE: ``/etc/tomcat8/tomcat8.conf`` The next lines show a possible configuration to fix the memory errors (the exact values depends on the server features):: JAVA_OPTS="-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m" JAVA_OPTS="${JAVA_OPTS} -server -Djava.awt.headless=true" Where the different parameters have the following meaning: * ``-Xms``: Initial size of the Java heap * ``-Xmx``: Maximum size of the Java heap * ``-XX:PermSize``: Initial size of PermGen * ``-XX:MaxPermSize``: Maximum size of PermGen .. NOTE:: Take into account that size of PermGen is additional to heap size. Since JDK8(b75) you will not see java.lang.OutOfMemoryError: PermGen space.