You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@archiva.apache.org by "Martin Stockhammer (Jira)" <ji...@apache.org> on 2021/12/17 21:08:00 UTC

[jira] [Resolved] (MRM-2020) 'archiva' shell script for linux generated by appassembler plugin does not honor the ARCHIVA_BASE environment variable

     [ https://issues.apache.org/jira/browse/MRM-2020?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Stockhammer resolved MRM-2020.
-------------------------------------
    Resolution: Fixed

Is fixed now. Targeted for 2.2.7

> 'archiva' shell script for linux generated by appassembler plugin does not honor the ARCHIVA_BASE environment variable
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: MRM-2020
>                 URL: https://issues.apache.org/jira/browse/MRM-2020
>             Project: Archiva
>          Issue Type: Bug
>          Components: Build, Documentation
>    Affects Versions: 2.2.5
>            Reporter: Bernd Kauling
>            Assignee: Martin Stockhammer
>            Priority: Trivial
>             Fix For: 2.2.7
>
>
> I followed the installation guide for the standalone installation: [https://archiva.apache.org/docs/2.2.5/adminguide/standalone.html]
> I also decided to separate the base from the installation and followed the steps mentioned accordingly. I've split my installation into /opt/archiva and /var/archiva.
> Step 4 indicates, that the ARCHIVA_BASE environment variable has to be set to the new location of archiva, which i have done.
> As i tried to start archiva with
> {code:java}
> $ ./archiva start
> {code}
> i received the following error message:
> {noformat}
> Starting Apache Archiva...
> FATAL  | wrapper  | Unable to resolve the full path of the configuration file, /opt/archiva/conf/wrapper.conf: No such file or directory{noformat}
> After some digging around in the shell script, i noticed this part starting on line 44.
> {code:java}
> BASEDIR=`dirname "$0"`/..
> BASEDIR=`(cd "$BASEDIR"; pwd)`
> ls -l "$0" | grep -e '->' > /dev/null 2>&1
> if [ $? = 0 ]; then
>   #this is softlink
>   _PWD=`pwd`
>   _EXEDIR=`dirname "$0"`
>   cd "$_EXEDIR"
>   _BASENAME=`basename "$0"`
>   _REALFILE=`ls -l "$_BASENAME" | sed 's/.*->\ //g'`
>    BASEDIR=`dirname "$_REALFILE"`/..
>    BASEDIR=`(cd "$BASEDIR"; pwd)`
>    cd "$_PWD"
> fi
> {code}
> which determines the BASEDIR environment variable which is used to point to the 'wrapper.conf' configuration file which i expected to be now in /var/archiva/conf/wrapper.conf.
> After changing the script to the following:
> {code:java}
> if [ -z "$ARCHIVA_BASE" ]; then 
>   BASEDIR=`dirname "$0"`/..
>   BASEDIR=`(cd "$BASEDIR"; pwd)`
>   ls -l "$0" | grep -e '->' > /dev/null 2>&1
>   if [ $? = 0 ]; then
>     #this is softlink
>     _PWD=`pwd`
>     _EXEDIR=`dirname "$0"`
>     cd "$_EXEDIR"
>     _BASENAME=`basename "$0"`
>     _REALFILE=`ls -l "$_BASENAME" | sed 's/.*->\ //g'`
>      BASEDIR=`dirname "$_REALFILE"`/..
>      BASEDIR=`(cd "$BASEDIR"; pwd)`
>      cd "$_PWD"
>   fi
> else
>   BASEDIR=$ARCHIVA_BASE
> fi
> {code}
> Archiva starts up correctly.
> Step 2 of the installation guide instructs the reader to copy the files instead of moving them, because the "move will fail". I can only imagine what that means, but after what i've learned now it may indicate that the "failing part" may not be the move operation itself, but the successful start of archiva, if the 'wrapper.conf' is moved too.
> What i did was to copy the files, delete the old configuration files and to create a readme to remind myself where the config files are now. Including the 'wrapper.conf'.
> That leaves me with two options:
> Either this is a "bug" in the documentation or a bug in the generated shell script.
> h3. Proposal:
>  
> So either
> 1) The documentation needs to be adjusted to state in step 2 that the wrapper.conf should stay in the base directory if that is what step 2 of the documentation really means.
> or
> 2) The generated shell script should include the above mentioned check.
>  
> If option 1 is the correct one, i'd volunteer to provide a better documentation for that section.
> If option 2 is the correct one, i am afraid that i don't know how to fix that. I've poked around the source code and i've read the appassembler documentation, but i am not sure if that is even possible with the plugin.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)