Install fedora library server

From OLPC
Jump to: navigation, search

Note: I named the library application Pustakalaya because it means library in Nepali. Bryan Berry

Here is a rough install guide I put together. fedora (no connection to fedora linux) is a powerful repository software package that is a pure web service. It is fairly easy to install. Since it is a web service, it does not have a built-in GUI. One popular choice is Fez, which is not easy to install.


Install Software for Library based on fedora 2.2.1 Server

  • curl
  • Fedora 2.2.1
  • JHOVE (latest version 1.1f) (~3.5 MB)
  • jdk-1_5_0_14-linux-i586.bin
  • dot
  • build-essential
  • mysql-server-5.0
  • imagemagick
  • graphviz
  • xpdf
  • msttcorefonts
  • (The PHP5 extensions)
o php5
o php5-dev
o php5-mysql
o php5-curl  
o php5-gd
o php5-ldap
o php5-cli
o php5-tidy
o libapache2-mod-php5 
  1. Note: you need to restart Apache after installing the php extensions

sudo apache2ctl restart


additional packages: m4 autoconf autotools-dev automake1.4 libssl-dev

additional files: jhoveConfig.xsd


Setting up fedora --------

Here are main installation notes http://www.fedora.info/download/2.2.1/userdocs/distribution/installation.html

Set up Database for fedora

CREATE DATABASE fedora22;

GRANT ALL ON fedora22.* TO fedoraAdmin@localhost IDENTIFIED BY 'fedoraAdmin';

ALTER DATABASE fedora22 DEFAULT CHARACTER SET utf8; ALTER DATABASE fedora22 DEFAULT COLLATE utf8_bin;

Set up JDK for fedora

cd /usr/local sudo chmod o+x jdk-1_5_0_14-linux-i586.bin sudo ./jdk-1_5_0_14-linux-i586.bin

  1. edited /etc/bash.bashrc w/ environment variables for fedora
  1. added for Fedora Repository Server

alias ll='ls --color=auto -alh' alias vi='vim' FEDORA_HOME=/var/opt/fedora JAVA_HOME=/usr/local/jdk1.5.0_14 CLASSPATH=$JAVA_HOME/jre/lib CATALINA_HOME=$FEDORA_HOME/tomcat JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=$FEDORA_HOME/server/truststore" JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStorePassword=tomcat" JAVA_OPTS="$JAVA_OPTS -Xmx512m" export FEDORA_HOME JAVA_HOME CLASSPATH CATALINA_HOME JAVA_OPTS

PATH=$PATH:$FEDORA_HOME/server/bin:$FEDORA_HOME/client/bin:$FEDORA_HOME:$JAVA_HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin

  1. installing fedora

mkdir /var/opt/fedora

  1. install into /var/opt/fedora

java -jar fedora- . . -installer.jar

fedora installer settings custom install /var/opt/fedora fedoraAdmin password: fedoraAdmin localhost Authentication for API-A: false SSL Availability: false servlet engine: included tomcat home directory: /var/opt/fedora/tomcat 8080 8005 Policy Enforcement Enabled: true database: mysql jdbc driver: included database username: fedoraAdmin database password: fedoraAdmin JDBC URL: [click enter to accept default] jdbc driver: accept default deploy local services and demos: true

  1. edit /var/opt/fedora/server/config/fedora.fcfg
   <param name="pidNamespace" value="Pustakalaya">
  1. MAKE SURE TO ADD YOUR NEW PID HERE, otherwise you will get nasty, obscure getXSD_HTML errors later

<param name="retainPIDs" value="demo test Pustakalaya fedora-bdef fedora-bmech tutorial">


  1. Run fedora for the first time

sudo /var/opt/fedora/tomcat/bin/startup.sh

/var/opt/fedora/client/bin$ sudo ./fedora-ingest-demos.sh localhost 8080 fedoraAdmin fedoraAdmin http

now try http://localhost:8080/fedora/get/demo:5

created file /etc/init.d/start_fedora

start_fedora contents


  1. !/bin/sh

$FEDORA_HOME/tomcat/bin/startup.sh

  1. this still doesn't work on boot up

sudo chmod 700 start_fedora

---Installing Fez User Interface for fedora---

here is the main install guide, I deviate a bit from it http://dev-repo.library.uq.edu.au/wiki/index.php/Example_Install_Fez_and_Fedora_2.2_on_Kubuntu_linux_7.10_Gutsy_Gibbon

Installing jhove

  1. Download link for 1.1g

http://hul.harvard.edu/jhove/jhove-1_1h.tar.gz

Installation directions: http://hul.harvard.edu/jhove/distribution.html#install


sudo cp jhove-1_1h.tar.gz /usr/local/src/ cd /usr/local/src sudo tar xvzf jhove-1_1f.tar.gz cd jhove


  1. modified /etc/php5/cli/php.ini

upload_max_filesize = 100M memory_limit = 256M post_max_size = 120M

  1. modified /etc/php5/apache2/php.ini

upload_max_filesize = 256M memory_limit = 256M post_max_size = 256M


  1. edited jhove.conf
  2. copied http://hul.harvard.edu/ois/xml/xsd/jhove/jhoveConfig.xsd
  3. to /var/www/jhoveConfig.xsd

xsi:schemaLocation="http://hul.harvard.edu/ois/xml/ns/jhove/jhoveConfig

                    http://localhost/jhoveConfig.xsd">
<jhoveHome>/usr/local/src/jhove</jhoveHome>


  1. edited /usr/local/jhove

JHOVE_HOME=/usr/local/src/jhove

JAVA_HOME=/usr/local/jdk1.5.0_14 # Java JRE directory JAVA=$JAVA_HOME/bin/java # Java interpreter

${JAVA} -classpath $CP Jhove -c ${JHOVE_HOME}/conf/jhove.conf $ARGS

  1. creat symbolic link

sudo ln -s /usr/local/src/jhove /usr/local/jhove

  1. test jhove install, should display a list of modules

sudo /usr/local/src/jhove/jhove

  1. create database for fez
  2. also grant fezuser access to fedora22 database

mysql -u root -p mysql> create database fez; mysql> grant all on fez to fezuser@localhost identified by 'password' with grant option; mysql> grant all on fedora22.* to fezuser@localhost identified by 'password' with grant option;

mysql> exit;


  1. untar fez in /var/www/fez

sudo chown -R www-data fez sudo chmod -R g+rx fez

run fez setup script at http://localhost/fez/setup/ make sure local path to fez is "/fez/"

  1. edited /var/www/fez/config.inc.php

define("APP_DOT_EXEC", "/usr/bin/dot"); define("APP_PHP_EXEC", "/usr/bin/php");

Fez General settings http://localhost/fez/manage/configuration.php#

Application URL: http://localhost/fez/

Fedora Settings

Location: localhost:8080/fedora Server Setup: no-ssl-authenticate-all PID Namespace: Pustakalaya username: fedoraAdmin password: fedoraAdmin servername: localhost database type: MySQL database port: 3306 database name: fedora22 database username: fedoraAdmin database password: fedoraAdmin

create fezerror_handler.log at /var/www sudo chgrp www-data fezerror_handler.log

  1. Click on Programs and Paths link

SAN import directory: /var/www/fez/incoming/