Gentoo - Installation et configuration de Archiva

Septembre 2016

Archiva est une application qui permet la gestion des repositories, elle est essentiellement utilisée pour:
  • maintenance des repositories
  • navigation et recherche d'artefacts
  • gestion de la sécurité

Cet FAQ a pour objectif de guider l’utilisateur à installer Archiva sous une distribution Gentoo de linux.
A savoir que toutes les opérations seront effectuées avec l’utilisateur "root".

Installation de JDK et de tomcat


Cette installation sera faite avec JDK-1.5.0_16 et tomcat-5.5.26, le choix de la version de JDK est fixé suite à la dépendance de version entre JDK et tomcat selon la structure du portage.

Installation de JDK-1.5.0_16


Pour installer le jdk, il faut exécuter cette commande :
emerge –av =dev-java/sun-jdk-1.5.0.16


Puis répondre par « yes ».

Installation de tomcat-5.5.26


Pour installer le tomcat, il faut exécuter cette commande :
emerge -av = www-servers/tomcat-5.5.26


Puis répondre par « yes ».

Installation d’Archiva


L’installation sera faite avec la version 1.1 d’Archiva.
  • Sous le répertoire « /usr/share/tomcat-5.5 », il faut créer un répertoire « archiva », dans ce répertoire on copie le war « apache-archiva-1.1.war » d’Archiva qui se trouve sous http://archive.apache.org/dist/archiva/binaries/apache-archiva-1.1.war.
  • Sous le répertoire « /etc/tomcat-5.5/Catalina/localhost » on crée le fichier « archiva.xml » avec le contenu suivant :

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<version>2</version>
<repositoryScanning>
<fileTypes>
<fileType>
<id>artifacts</id>
<patterns>
<pattern>**/*.pom</pattern>
<pattern>**/*.jar</pattern>
<pattern>**/*.ear</pattern>
<pattern>**/*.war</pattern>
<pattern>**/*.car</pattern>
<pattern>**/*.sar</pattern>
<pattern>**/*.mar</pattern>
<pattern>**/*.rar</pattern>
<pattern>**/*.dtd</pattern>
<pattern>**/*.tld</pattern>
<pattern>**/*.tar.gz</pattern>
<pattern>**/*.tar.bz2</pattern>
<pattern>**/*.zip</pattern>
</patterns>
</fileType>
<fileType>
<id>indexable-content</id>
<patterns>
<pattern>**/*.txt</pattern>
<pattern>**/*.TXT</pattern>
<pattern>**/*.block</pattern>
<pattern>**/*.config</pattern>
<pattern>**/*.pom</pattern>
<pattern>**/*.xml</pattern>
<pattern>**/*.xsd</pattern>
<pattern>**/*.dtd</pattern>
<pattern>**/*.tld</pattern>
</patterns>
</fileType>
<fileType>
<id>auto-remove</id>
<patterns>
<pattern>**/*.bak</pattern>
<pattern>**/*~</pattern>
<pattern>**/*-</pattern>
</patterns>
</fileType>
<fileType>
<id>ignored</id>
<patterns>
<pattern>**/.htaccess</pattern>
<pattern>**/KEYS</pattern>
<pattern>**/*.rb</pattern>
<pattern>**/*.sh</pattern>
<pattern>**/.svn/**</pattern>
<pattern>**/.DAV/**</pattern>
<pattern>**/.index/**</pattern>
</patterns>
</fileType>
</fileTypes>
<knownContentConsumers>
<knownContentConsumer>auto-remove</knownContentConsumer>
<knownContentConsumer>auto-rename</knownContentConsumer>
<knownContentConsumer>create-missing-checksums</knownContentConsumer>
<knownContentConsumer>index-content</knownContentConsumer>
<knownContentConsumer>metadata-updater</knownContentConsumer>
<knownContentConsumer>repository-purge</knownContentConsumer>
<knownContentConsumer>update-db-artifact</knownContentConsumer>
</knownContentConsumers>
<invalidContentConsumers>
<invalidContentConsumer>update-db-bad-content</invalidContentConsumer>
</invalidContentConsumers>
</repositoryScanning>
<databaseScanning>
<cronExpression>0 * * * * ?</cronExpression>
<unprocessedConsumers>
<unprocessedConsumer>validate-repository-metadata</unprocessedConsumer>
<unprocessedConsumer>index-archive-toc</unprocessedConsumer>
<unprocessedConsumer>index-artifact</unprocessedConsumer>
<unprocessedConsumer>update-db-project</unprocessedConsumer>
<unprocessedConsumer>index-public-methods</unprocessedConsumer>
<unprocessedConsumer>update-db-bytecode-stats</unprocessedConsumer>
</unprocessedConsumers>
<cleanupConsumers>
<cleanupConsumer>not-present-remove-db-artifact</cleanupConsumer>
<cleanupConsumer>not-present-remove-indexed</cleanupConsumer>
<cleanupConsumer>not-present-remove-db-project</cleanupConsumer>
</cleanupConsumers>
</databaseScanning>
<managedRepositories>
<managedRepository>
<location>/data/repositories/internal</location>
<indexDir></indexDir>
<refreshCronExpression>0 * * * * ?</refreshCronExpression>
<retentionCount>5</retentionCount>
<id>internal</id>
<name>Almerys Archiva Managed Internal Repository</name>
</managedRepository>
<managedRepository>
<location>/data/repositories/internal.snapshot</location>
<releases>false</releases>
<snapshots>true</snapshots>
<indexDir></indexDir>
<refreshCronExpression>0 * * * * ?</refreshCronExpression>
<daysOlder>10</daysOlder>
<deleteReleasedSnapshots>true</deleteReleasedSnapshots>
<id>internal.snapshot</id>
<name>Almerys Archiva Managed Internal Snapshot Repository</name>
</managedRepository>
<managedRepository>
<location>/data/repositories/external</location>
<indexDir></indexDir>
<refreshCronExpression>0 * * * * ?</refreshCronExpression>
<id>external</id>
<name>Owliance Official Maven repo</name>
</managedRepository>
</managedRepositories>
<remoteRepositories>
<remoteRepository>
<url>http://repo1.maven.org/maven2/</url>
<id>Maven.repo</id>
<name>Official Maven repository</name>
</remoteRepository>
<remoteRepository>
<url>http://download.java.net/maven/2/</url>
<id>maven2-repository.dev.java.net</id>
<name>Java.net Repository for Maven</name>
</remoteRepository>
<remoteRepository>
<url>http://maven2.exoplatform.org/rest/maven2</url>
<id>maven2.exoplatform.org</id>
<name>eXo Platform Repository for Maven</name>
</remoteRepository>
<remoteRepository>
<url>https://www.partenaires.almerys.com/archiva/repository/internal</url>
<username></username>
<password></password>
<id>internal.central</id>
<name>Almerys Archiva Managed Internal Repository</name>
</remoteRepository>
</remoteRepositories>
<proxyConnectors>
<proxyConnector>
<order>1</order>
<sourceRepoId>external</sourceRepoId>
<targetRepoId>maven2-repository.dev.java.net</targetRepoId>
<policies>
<releases>hourly</releases>
<checksum>fix</checksum>
<snapshots>hourly</snapshots>
<cache-failures>no</cache-failures>
</policies>
</proxyConnector>
<proxyConnector>
<order>2</order>
<sourceRepoId>external</sourceRepoId>
<targetRepoId>maven2.exoplatform.org</targetRepoId>
<policies>
<releases>hourly</releases>
<checksum>fix</checksum>
<snapshots>hourly</snapshots>
<cache-failures>no</cache-failures>
</policies>
</proxyConnector>
<proxyConnector>
<order>1</order>
<sourceRepoId>internal</sourceRepoId>
<targetRepoId>internal.central</targetRepoId>
<proxyId>(direct connection)</proxyId>
<policies>
<releases>hourly</releases>
<checksum>fix</checksum>
<snapshots>hourly</snapshots>
<cache-failures>no</cache-failures>
</policies>
</proxyConnector>
<proxyConnector>
<order>3</order>
<sourceRepoId>external</sourceRepoId>
<targetRepoId>Maven.repo</targetRepoId>
<policies>
<releases>hourly</releases>
<checksum>fix</checksum>
<snapshots>hourly</snapshots>
<cache-failures>no</cache-failures>
</policies>
</proxyConnector>
</proxyConnectors>
</configuration>
  • Sous « /usr/share/tomcat-5.5/common/lib » il faut ajouter les jars (ci-joints) :
    • « activation-1.1.jar »
    • « derby-10.1.3.1.jar »
    • « mail-1.4.jar »

Ces jars sont joints
  • Sous « /usr/share/tomcat-5.5/common/lib», il faut ajouter le jar « tomcat-dbcp.jar », ce jar est à télécharger http://www.java2s.com/Code/JarDownload/tomcat-dbcp.jar.zip.
  • Sous « /usr/share/tomcat-5.5/common/endorsed», il faut supprimer le jar « xml-apis.jar ».
  • Avec un éditeur de texte, il faut ajouter au niveau du fichier « /etc/init.d/tomcat-5.5 » cette ligne :
    • CATALINA_OPTS="-Dappserver.home="$CATALINA_HOME" -Dappserver.base="$CATALINA_HOME" -Xmx512m -Dderby.system.home="$CATALINA_HOME

Cette ligne doit être ajoutée au niveau de la procédure « start() » avant l’appel de « init_env_vars ».
  • Sous « /var » il faut créer un dossier « archiva_database », puis on exécute cette commande :

chown -R tomcat:tomcat /var/archiva_database/
  • Sous « /usr/share/tomcat-5.5 » il faut créer un dossier « logs », ce dossier contient les logs de Archiva, puis on exécute cette commande :

chown -R tomcat:tomcat /usr/share/tomcat-5.5/logs/
  • Démarrer tomcat.
  • Avec l’url « http://servername:8080/archiva », vous devez avoir cette page :
  • Une fois l’application est lancée avec succès, le fichier « archiva.xml » sous le répertoire « /etc/tomcat-5.5/Catalina/localhost » doit être remplacer par le fichier « archiva.xml », ce fichier se trouve sous le projet CVS « Archiva_Config ».
  • Redémarrer tomcat.

Configuration d’Archiva

  • Sous la racine « / », créer le dossier « data » et l’affecter à l’utilisateur « tomcat » à travers la commande
    chown -R tomcat:tomcat /data/
    .
  • Créer un répertoire pour le user « tomcat », « /home/tomcat », puis exécuter
    chown -R tomcat:tomcat /home/tomcat/
    . et l’affecter en tant que répertoire par défaut à l’utilisateur « tomcat » via la commande
    usermod –d /home/tomcat tomcat
    .
  • Sous « /home/tomcat », créer le répertoire « .m2 », sous ce répertoire il faut copier le fichier « archiva-config-distant.xml » sous le nom « archiva.xml ».

Maintenant, l’application Archiva est prête et peut être utilisé par les membres de l’équipe.

A voir également :

Ce document intitulé «  Gentoo - Installation et configuration de Archiva  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.