LibrePlan installation - LibrePlan/libreplan GitHub Wiki
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.
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
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.
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.
-
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:<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="">
<Resource name="jdbc/libreplan-ds" auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="libreplan" password="libreplan"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost/libreplan" />
</Context>
-
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
WARNING: If you have problems with printing support review the last section Fix printing in Debian Squeeze.
-
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 here 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 replaceident
bymd5
-
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:<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="">
<Resource name="jdbc/libreplan-ds" auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="libreplan" password="libreplan"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost/libreplan" />
</Context>
-
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
-
Download and install latest Java Runtime Environment 8uXX (JRE8uXX): link
-
Download and install latest Gettext runtime: link
-
Add
Gettext_installed_direcorty\bin
(for exampleC:\Program Files\gettext-iconv\bin
) toPath
variable -
Download and install latest PostgreSQL database: link
-
Download and install Apache Tomcat 8: link
NOTE: In JDK folder there is JRE folder
-
Set up JDBC41 PostgreSQL Driver:
- Download latest driver here
- 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:- The link is here
-
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:<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="">
<Resource name="jdbc/libreplan-ds" auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="libreplan" password="libreplan"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost/libreplan" />
</Context>
-
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 this
link.
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.
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 to 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.
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
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
.