[izpack-users] Linux Uninstaller

Bartz, Klaus Klaus.Bartz at coi.de
Thu Jul 6 09:38:21 CEST 2006


Hi Steve,
seems so that your ConsoleUninstallerListener.jar does not contain used
classes and interfaces. The interface UninstallerListener will be not packed all times
into the uninstaller.jar else only if it is in one UninstallerListener.jar. On Windows
this will be done with RegistryUninstallerListener.jar, but for Unix this UninstallerListener
will be not used (<os family="windows"/>).
See the build rules for RegistryUninstallerListener.jar in $IZPACK_HOME/src/build.xml.
There is a separated macro for uninstaller (line 743ff):
    <macrodef name="build-uninstaller-listener">
If you are creating your uninstaller jar file not with ant and build.xml you need in the jar file:
 
UninstallerListener.class
 
Most additional 
SimpleUninstallerListener.class
 
May be
ActionBase.class
IoHelper.class
 
Cheers
 
Klaus
 
 

-----Original Message-----
From: izpack-users-admin at berlios.de [mailto:izpack-users-admin at berlios.de]On Behalf Of Bir, Steve
Sent: Wednesday, July 05, 2006 10:21 PM
To: izpack-users at berlios.de
Subject: RE: [izpack-users] Linux Uninstaller



I am still having trouble. I see now that part of what confused me is that the uninstall is spawning the gui in a separate process.   This appears to prevent my debug statements from displaying to stdout. Unfortunately, System.out.println debug statements don't seem to be getting redirected to the log file, so tracing the program flow is more difficult.  One thing that might help is a suggestion on how to add debugging information so that it is logged correctly.

 

Below is a trace I am getting from the uninstall code. This works perfectly on windows, but seems to fail on Linux.  Also, the uninstall listener appears to run correctly when re-installing over an existing installation on a Linux system but not when the uninstall GUI is used. For example, the install log shows that code being executed. However, when the uninstaller GUI is launched, the uninstall button just seems dead like it is not processing the button pressed event.  Any insight that you can provide is greatly appreciated.

 

Thank you for responding,

Steve

 

Uninstall log:

 

2006-07-05T15:09:09.976 Phase 1: JarFile: /export/local/NetSight/Uninstaller/uninstaller.jar

2006-07-05T15:09:10.041 Phase 1: Extracted 75 files into /tmp/izpack57889.d

2006-07-05T15:09:10.044 Phase 1: Spawning phase 2: 

            /usr/java/jdk1.5.0_04/jre/bin/java

            -classpath

            /tmp/izpack57889.d

            -Dself.mod.base=/tmp/izpack57889

            -Dself.mod.jar=/export/local/NetSight/Uninstaller/uninstaller.jar

            -Dself.mod.class=com.izforge.izpack.uninstaller.Uninstaller

            -Dself.mod.method=uninstall

            -Dself.mod.phase=2

            com.izforge.izpack.uninstaller.SelfModifier

2006-07-05T15:09:10.074 Phase 1: Exit

2006-07-05T15:09:11.324 Phase 2: Spawning phase 3: 

            /usr/java/jdk1.5.0_04/jre/bin/java

            -classpath

            /tmp/izpack57889.d

            -Dself.mod.base=/tmp/izpack57889

            -Dself.mod.jar=/export/local/NetSight/Uninstaller/uninstaller.jar

            -Dself.mod.class=com.izforge.izpack.uninstaller.Uninstaller

            -Dself.mod.method=uninstall

            -Dself.mod.phase=3

            com.izforge.izpack.uninstaller.SelfModifier

2006-07-05T15:46:47.108 Phase 2: deleteing sandbox

2006-07-05T15:46:47.117 Phase 2: Phase 3 return value = 0

2006-07-05T15:09:11.475 Phase 3: Invoking method: com.izforge.izpack.uninstaller.Uninstaller.uninstall(String[] args)

2006-07-05T15:09:13.458 Phase 3: Method returned, waiting for other threads

Exception in thread "IzPack - Destroyer" java.lang.NoClassDefFoundError: com/izforge/izpack/event/UninstallerListener

            at java.lang.ClassLoader.defineClass1(Native Method)

            at java.lang.ClassLoader.defineClass(ClassLoader.java:620)

            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)

            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)

            at java.net.URLClassLoader.access$100(URLClassLoader.java:56)

            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)

            at java.security.AccessController.doPrivileged(Native Method)

            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)

            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

            at java.lang.Class.forName0(Native Method)

            at java.lang.Class.forName(Class.java:164)

            at com.izforge.izpack.uninstaller.Destroyer.getListenerLists(Destroyer.java:231)

            at com.izforge.izpack.uninstaller.Destroyer.run(Destroyer.java:77)

 

 

 

Install.xml below:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>



<!-- 

    Nextgen server install test



    To compile it :

    - go in the bin directory where you installed IzPack

    - call "compile ../sample/install.xml -b ../sample"



-->



<installation version="1.0">

    <!-- 

        The info section.

        The meaning of the tags should be natural ...

    -->

 

    <info>

        <appname>NetSight</appname>

        <appversion>3.0 beta 1</appversion>

        <authors>

            <author name="Enterasys Networks" email="support at enterasys.com"/>

        </authors>

        <url>http://www.enterasys.com</url>

    </info>



     <guiprefs width="616" height="434" resizable="yes"/>



    <!-- 

        The locale section.

       Removed as we don't have different versions for different languages

    -->

    <locale>

        <langpack iso3="eng"/>

    </locale>

    

    <!-- 

        The resources section.

        The ids must be these ones if you want to use the LicencePanel and/or the InfoPanel.

    -->



    <resources>

        <res id="Installer.image" src="./Console/console2.0.jpg" />

        <res id="LicencePanel.licence" src="./Console/client/license.txt"/>

        <res id="InfoPanel.info" src="./Console/client/version.txt"/>

        <res id="ProcessPanel.Spec.xml" src="./Console/ProcessPanel.Spec.xml"/>

        <res id="shortcutSpec.xml" src="./Console/shortcutSpec.xml"/>

      <!--  <res id="RegistrySpec.xml" src="./Console/RegistrySpec.xml"/>-->

    </resources>

    

    <!-- The listeners section for CustomActions -->

    <listeners>

        <listener installer="SummaryLoggerInstallerListener"/>

        <listener installer="ConsoleInstallListener" uninstaller="ConsoleUninstallerListener"/>

        <listener installer="RegistryInstallerListener" uninstaller="RegistryUninstallerListener">

            <os family="windows"/>

        </listener>

    </listeners>

    

    <!-- 

        The panels section.

        We indicate here which panels we want to use. The order will be respected.

    -->



    <panels>

        <panel classname="ConsoleHelloPanel"/>

        <panel classname="LicencePanel"/>

        <panel classname="LicenseCheckPanel"/>

        <panel classname="TargetPanel"/> 

        <panel classname="PacksPanel"/>

        <panel classname="ServicesPanel"/>

        <panel classname="InstallPanel"/>

        <panel classname="ConsoleProcessPanel"/>

        <panel classname="ShortcutPanel"/>

        <panel classname="SimpleFinishPanel"/>

    </panels>



    <!-- Variables that can be used by the installer. -->

                <variables>

                     <variable name="DATE_BASED_VERSION" value="2006.0307" />

                     <variable name="LICENSE_PRODUCT_NAME" value="Console" />

                     <variable name="PREVIOUS_INSTALL_DIR" value="NONE" />

                     <variable name="COMMON_DIR" value="$USER_HOME" />

                     <variable name="MACROVISION_LICENSE_KEY" value="NONE" />

                     <variable name="LICENSE_TYPE" value="Server" />

                     <variable name="TFTPD" value="ENABLED" />

                     <variable name="BOOTP" value="ENABLED" />

                     <variable name="SNMPTRAP" value="ENABLED" />

                     <variable name="SYSLOG" value="ENABLED" />

                </variables>

    

    <!-- 

        The packs section.

        We specify here our packs.

    -->



    <packs>

        <pack name="Client" required="yes">

            <description>The base files for the NetSight Client</description>

            <!--<file src="Console/client" targetdir="$INSTALL_PATH/clients/Console/"/> -->

            <fileset dir="Console/client" targetdir="$INSTALL_PATH/clients/Console">

            <include name="**/*"/>

            </fileset>

            

            <file src="services" targetdir="$INSTALL_PATH"/> 

            

            <file src="Console/client/Third_party_licenses/" targetdir="$INSTALL_PATH/license"/>

            <file src="Console/client/license.txt" targetdir="$INSTALL_PATH/license"/>

            <file src="Console/client/eval_license.txt" targetdir="$INSTALL_PATH/license"/>

            <file src="Console/client/license.pdf" targetdir="$INSTALL_PATH/license"/>

            <file src="Console/client/eval_license.pdf" targetdir="$INSTALL_PATH/license"/>

            <!-- this needs to be made os targeted -->

            <file src="../.netsight" targetdir="${ENV[ALLUSERSPROFILE]}/Application Data/Enterasys Networks">

                <os family="windows" />

            </file>

            

            <file src="../.netsight" targetdir="/var/Enterasys_Networks">

                <os family="unix" />

            </file>

            

            <parsable targetfile="${ENV[ALLUSERSPROFILE]}/Application Data/Enterasys Networks/.netsight"> 

                    <os family="windows" />

            </parsable>

            

            <parsable targetfile="$INSTALL_PATH/services/install/nsm.cmd">

                    <os family="windows" />

            </parsable>

 

            <parsable targetfile="$INSTALL_PATH/services/install/DbService.cmd">

                    <os family="windows" />

            </parsable>

            

            <parsable targetfile="$INSTALL_PATH/services/.desktray">

                    <os family="windows" />

            </parsable>

            

            <parsable targetfile="$INSTALL_PATH/clients/Console/.console">

                    <os family="windows" />

            </parsable>            

            

            <parsable targetfile="$INSTALL_PATH/services/snmptrapd.properties" type="shell"/>

            

            <parsable targetfile="$INSTALL_PATH/services/tftpd.properties" type="shell"/>

 

            <parsable targetfile="/var/Enterasys_Networks/.netsight"> 

                    <os family="unix" />

            </parsable>

            

            <parsable targetfile="$INSTALL_PATH/services/install/CfgServices.sh" type="shell">

                    <os family="unix" />

            </parsable>

            

            <parsable targetfile="$INSTALL_PATH/services/install/rmConsole.sh" type="shell">

                    <os family="unix" />

            </parsable>            

            

            <parsable targetfile="$INSTALL_PATH/services/install/databaseConfig.sh">

                    <os family="unix" />       

            </parsable> 

            

            <parsable targetfile="$INSTALL_PATH/services/install/databaseConfig.sh" type="shell">

                    <os family="unix" />

            </parsable>

 

            <executable targetfile="$INSTALL_PATH/services/install/rmConsole.sh" stage="never">

                    <os family="unix" />

            </executable>

 

            <executable targetfile="$INSTALL_PATH/services/install/CfgServices.sh" stage="never">

                    <os family="unix" />

            </executable>

            

            <executable targetfile="$INSTALL_PATH/services/install/databaseConfig.sh" stage="never">

                    <os family="unix" />

            </executable>                  

            

            <parsable targetfile="$INSTALL_PATH/services/install/run_conf.txt" type="shell">

                    <os family="unix" />

            </parsable>

        </pack>

 

        <pack name="Server" required="no">

            <description>The base files for the NetSight Server</description>           

            <file src="Console/server/jboss" targetdir="$INSTALL_PATH"/> 

            <file src="Console/server/scripts" targetdir="$INSTALL_PATH/appdata/console"/> 

            <file src="Console/server/syslogs" targetdir="$INSTALL_PATH/appdata/logs"/> 

            <file src="Console/server/traps" targetdir="$INSTALL_PATH/appdata/logs"/> 

            <file src="Console/client/webupdate" targetdir="$INSTALL_PATH"/> 

            <file src="Console/server/mysql" targetdir="$INSTALL_PATH"/> 

            <parsable targetfile="$INSTALL_PATH/mysql/my.ini"/> 

        </pack>

    </packs>

    

    <!-- The native libraries to add -->

    <native type="izpack" name="ShellLink.dll"/>

    <native type="3rdparty" name="COIOSHelper.dll" stage="both">

        <os family="windows"/>

    </native>

 

</installation>

 

 


  _____  


From: izpack-users-admin at berlios.de [mailto:izpack-users-admin at berlios.de] On Behalf Of Bartz, Klaus
Sent: Wednesday, July 05, 2006 9:29 AM
To: izpack-users at berlios.de
Subject: RE: [izpack-users] Linux Uninstaller

 

Hi Steve,

on my box it works.

Often wrong symbols are used for OS specification on Linux.pwd

 

If problems persist, please send your installation description file (often install.xml):

 

Cheers

 

Klaus

 

-----Original Message-----
From: izpack-users-admin at berlios.de [mailto:izpack-users-admin at berlios.de]On Behalf Of Bir, Steve
Sent: Wednesday, July 05, 2006 2:25 PM
To: izpack-users at berlios.de
Subject: RE: [izpack-users] Linux Uninstaller

Has anyone used the custom uninstall action on Linux? It seems like the addition of this is what's causing it to fail silently?

 

Thank you,

Steve

 


  _____  


From: izpack-users-admin at berlios.de [mailto:izpack-users-admin at berlios.de] On Behalf Of Bir, Steve
Sent: Friday, June 30, 2006 2:52 PM
To: izpack-users at berlios.de
Subject: [izpack-users] Linux Uninstaller

 

Hello, I am having trouble getting the Linux uninstaller to do anything when I push the uninstall button. Windows works fine but I get no error or feedback. I was wondering if this was a known problem or if I am just making a newbie mistake. I do have a custom action included that works well on windows but as far as I can tell that isn't coming into play at all for Linux.

 

Thank you,

Steve Bir

-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.berlios.de/pipermail/izpack-users/attachments/20060706/ce743fc7/attachment.html 


More information about the izpack-users mailing list