Page 1 of 2

[WAPT 1.6.2][Error] Creating an Oracle 11 package

Published: May 20, 2019 - 2:23 PM
by upperm
Good morning,

I am currently creating a package to install Oracle 11.

I'm encountering a problem during the installation process. For a silent installation, setup.exe must be run with a file .rspNo problems so far. The issue is that setup.exe executes the oui.exe process, which performs the installation (and therefore setup.exe closes immediately). As a result, WAPT encounters an error and terminates its procedure, generating errors in the process.

So, is it possible to make WAPT wait before proceeding with the rest of the installation while the oui.exe process is running?

setup.py

Code: Select all

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    print ('Installation clef registre')
    registry_setstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\Oracle",'ImagePath',makepath(programfiles32,'Oracle\Inventory'), type=REG_EXPAND_SZ)
    print('installing far-oracle')
    filecopyto('client.rsp','C:\Windows\Temp')
    run(r'setup.exe -silent -responseFile C:\Windows\Temp\client.rsp')
    filecopyto('Tnsnames.ora','C:\Oracle11\product\11.2.0\client_1\network\admin')
    print ('Installation des drivers ODBC')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name MELODIE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name ARPEGE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name REQUIEM -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
def uninstall():
    print('uninstalling far-oracle11')
    run('C:\Oracle11\product\11.2.0\client_1\deinstall\deinstall.bat')

Logs:

Code: Select all

Ligne de Commande : install "c:\waptdev\far-oracle-wapt\WAPT\.."
Installing WAPT files c:\waptdev\far-oracle-wapt
Installation clef registre
installing far-oracle
2019-05-20 14:09:40,101 CRITICAL Fatal error in install script: IOError: [Errno 2] No such file or directory: 'C:\\Oracle11\\product\t.2.0\\client_1\network\x07dmin':
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 3512, in install_wapt
    exitstatus = setup.install()
  File "c:\waptdev\far-oracle-wapt\setup.py", line 12, in install
    filecopyto('Tnsnames.ora','C:\Oracle11\product\11.2.0\client_1\network\admin')
  File "C:\Program Files (x86)\wapt\setuphelpers.py", line 682, in filecopyto
    shutil.copy(filename,target)
  File "C:\Program Files (x86)\wapt\lib\shutil.py", line 133, in copy
    copyfile(src, dst)
  File "C:\Program Files (x86)\wapt\lib\shutil.py", line 97, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 2] No such file or directory: 'C:\\Oracle11\\product\t.2.0\\client_1\network\x07dmin'

FATAL ERROR : IOError: [Errno 2] No such file or directory: 'C:\\Oracle11\\product\t.2.0\\client_1\network\x07dmin'
Exit code:  3
Thanks in advance !
Matthew.

Re: [WAPT 1.6.2][RESOLVED] Creating an Oracle 11 package

Published: May 20, 2019 - 8:08 PM
by upperm
Problem "solved"!
I'm using a .bat file, which avoids returning an error. It's probably not the best method, but it works.

I also managed to handle the uninstallation.

So, if anyone is looking to deploy Oracle 11 (32-bit), here's what I did:

Package structure:
Picture

The Oracle folder contains the installation files as well as the files for installation and uninstallation.
Picture

The file install.rsp

Code: Select all

###############################################################################
## Copyright(c) Oracle Corporation 1998, 2013. All rights reserved.           ##
##                                                                           ##
## Specify values for the variables listed below to customize                ##
## your installation.                                                        ##
##                                                                           ##
## Each variable is associated with a comment. The comment                   ##
## can help to populate the variables with the appropriate                   ##
## values.							             ##
##                                                                           ##
###############################################################################


#-------------------------------------------------------------------------------
# Do not change the following system generated value. 
#-------------------------------------------------------------------------------
oracle.install.responseFileVersion=http://www.oracle.com/2007/install/rspfmt_clientinstall_response_schema_v11_2_0

#-------------------------------------------------------------------------------
# This variable holds the hostname of the system as set by the user. 
# It can be used to force the installation to use an alternative   
# hostname rather than using the first hostname found on the system
# (e.g., for systems with multiple hostnames and network interfaces).
ORACLE_HOSTNAME=computer.mshome.net
#-------------------------------------------------------------------------------
# Unix group to be set for the inventory directory.  
UNIX_GROUP_NAME=
#-------------------------------------------------------------------------------
# Specify the languages in which the components will be installed.             
#
# en   : English                  ja   : Japanese                  
# fr   : French                   ko   : Korean                    
# ar   : Arabic                   es   : Latin American Spanish    
# bn   : Bengali                  lv   : Latvian                   
# pt_BR: Brazilian Portuguese     lt   : Lithuanian                
# bg   : Bulgarian                ms   : Malay                     
# fr_CA: Canadian French          es_MX: Mexican Spanish           
# ca   : Catalan                  no   : Norwegian                 
# hr   : Croatian                 pl   : Polish                    
# cs   : Czech                    pt   : Portuguese                
# da   : Danish                   ro   : Romanian                  
# nl   : Dutch                    ru   : Russian                   
# ar_EG: Egyptian                 zh_CN: Simplified Chinese        
# en_GB: English (Great Britain)  sk   : Slovak                    
# et   : Estonian                 sl   : Slovenian                 
# fi   : Finnish                  es_ES: Spanish                   
# de   : German                   sv   : Swedish                   
# el   : Greek                    th   : Thai                      
# iw   : Hebrew                   zh_TW: Traditional Chinese       
# hu   : Hungarian                tr   : Turkish                   
# is   : Icelandic                uk   : Ukrainian                 
# in   : Indonesian               vi   : Vietnamese                
# it   : Italian                                                   
#
# all_langs   : All languages
#
# Specify value as the following to select any of the languages.
# Example : SELECTED_LANGUAGES=en,fr,ja
#
# Specify value as the following to select all the languages.
# Example : SELECTED_LANGUAGES=all_langs
SELECTED_LANGUAGES=en,fr,fr_CA
#-------------------------------------------------------------------------------
# Complete path of the Oracle Home  
ORACLE_HOME=C:\Oracle11\product\11.2.0\client_1
#-------------------------------------------------------------------------------
# Complete path of the Oracle Base. 
ORACLE_BASE=C:\Oracle11
#------------------------------------------------------------------------------
#Name       : INSTALL_TYPE
#Datatype   : String
#Description: Installation type of the component.
#
#             The following choices are available. The value should contain
#             only one of these choices.
#               - InstantClient
#               - Administrator
#               - Runtime
#               - Custom
#
#Example    : INSTALL_TYPE = Administrator
#------------------------------------------------------------------------------
oracle.install.client.installType=Administrator
#------------------------------------------------------------------------------
#Name       : oracle.install.client.upgrading
#Datatype   : boolean
#Description: whether or not this is an upgrade installation
#
#             The following choices are available. The value should contain
#             only one of these choices.
#               - true
#               - false
#
#Example    : oracle.install.client.upgrading=true
#------------------------------------------------------------------------------
oracle.install.client.upgrading=false
#-------------------------------------------------------------------------------
# Name       : oracle.install.client.customComponents
# Datatype   : StringList
#
# This property is considered only if INSTALL_TYPE is set to "Custom"
#
# Description: List of Client Components you would like to install
#
#   The following choices are available. You may specify any
#   combination of these choices.  The components you choose should
#   be specified in the form "internal-component-name:version"
#   Below is a list of components you may specify to install.
#
# oracle.sqlj:11.2.0.4.0 -- "Oracle SQLJ"
# oracle.rdbms.util:11.2.0.4.0 -- "Oracle Database Utilities"
# oracle.javavm.client:11.2.0.4.0 -- "Oracle Java Client"
# oracle.sqlplus:11.2.0.4.0 -- "SQL*Plus"
# oracle.dbjava.jdbc:11.2.0.4.0 -- "Oracle JDBC/THIN Interfaces"
# oracle.ldap.client:11.2.0.4.0 -- "Oracle Internet Directory Client"
# oracle.rdbms.oci:11.2.0.4.0 -- "Oracle Call Interface (OCI)"
# oracle.precomp:11.2.0.4.0 -- "Oracle Programmer"
# oracle.xdk:11.2.0.4.0 -- "Oracle XML Development Kit"
# oracle.network.aso:11.2.0.4.0 -- "Oracle Advanced Security"
# oracle.oraolap.mgmt:11.2.0.4.0 -- "OLAP Analytic Workspace Manager and Worksheet"
# oracle.network.client:11.2.0.4.0 -- "Oracle Net"
# oracle.network.cman:11.2.0.4.0 -- "Oracle Connection Manager"
# oracle.network.listener:11.2.0.4.0 -- "Oracle Net Listener"
# oracle.ordim.client:11.2.0.4.0 -- "Oracle Multimedia Client Option"
# oracle.odbc:11.2.0.4.0 -- "Oracle ODBC Driver"
# oracle.has.client:11.2.0.4.0 -- "Oracle Clusterware High Availability API"
# oracle.dbdev:11.2.0.4.0 -- "Oracle SQL Developer"
# oracle.rdbms.scheduler:11.2.0.4.0 -- "Oracle Scheduler Agent" 
# oracle.ntoramts:11.2.0.4.0 -- "Oracle Services For Microsoft Transaction Server"
# oracle.ntrdbms.admin:11.2.0.4.0 -- "Oracle Administration Assistant for Windows"
# oracle.ntoledb:11.2.0.4.0 -- "Oracle Provider for OLE DB"
# oracle.ntoledb.odp_net_2:11.2.0.4.0 -- "Oracle Data Provider for .NET"
# oracle.aspnet_2:11.2.0.4.0 -- "Oracle Providers for ASP.NET"
# oracle.ntrdbms.perfmon:11.2.0.4.0 -- "Oracle Counters for Windows Performance Monitor"
# oracle.oo4o:11.2.0.4.0 -- "Oracle Objects for OLE" 
# 
#
# Example    : oracle.install.client.customComponents="oracle.precomp:11.2.0.4.0","oracle.oraolap.mgmt:11.2.0.4.0","oracle.rdbms.scheduler:11.2.0.4.0"
#-------------------------------------------------------------------------------
oracle.install.client.customComponents=
#-------------------------------------------------------------------------------
# Host name to be used for by the Oracle Scheduler Agent.
# This needs to be entered in case oracle.rdbms.scheduler is selected in the
# list of custom components during custom install
#
# Example    : oracle.install.client.schedulerAgentHostName = acme.domain.com
#------------------------------------------------------------------------------
oracle.install.client.schedulerAgentHostName=

#------------------------------------------------------------------------------
# Port number to be used for by the Oracle Scheduler Agent.
# This needs to be entered in case oracle.rdbms.scheduler is selected in the
# list of custom components during custom install
#
# Example: oracle.install.client.schedulerAgentPortNumber = 1500
#------------------------------------------------------------------------------
oracle.install.client.schedulerAgentPortNumber=

#------------------------------------------------------------------------------
# Specify the auto-updates option. It can be one of the following:
#   - MYORACLESUPPORT_DOWNLOAD
#   - OFFLINE_UPDATES
#   - SKIP_UPDATES
#------------------------------------------------------------------------------
oracle.installer.autoupdates.option=SKIP_UPDATES
#------------------------------------------------------------------------------
# In case MYORACLESUPPORT_DOWNLOAD option is chosen, specify the location where
# the updates are to be downloaded.
# In case OFFLINE_UPDATES option is chosen, specify the location where the updates
# are present.
oracle.installer.autoupdates.downloadUpdatesLoc=
#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username which has the patches download privileges  
# to be used for software updates.
#  Example   : AUTOUPDATES_MYORACLESUPPORT_USERNAME=abc@oracle.com
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_USERNAME=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username password which has the patches download privileges  
# to be used for software updates.
#
# Example    : AUTOUPDATES_MYORACLESUPPORT_PASSWORD=password
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

#------------------------------------------------------------------------------
# Specify the Proxy server name. Length should be greater than zero.
#
# Example    : PROXY_HOST=proxy.domain.com 
#------------------------------------------------------------------------------
PROXY_HOST=

#------------------------------------------------------------------------------
# Specify the proxy port number. Should be Numeric and at least 2 chars.
#
# Example    : PROXY_PORT=25 
#------------------------------------------------------------------------------
PROXY_PORT=0
#------------------------------------------------------------------------------
# Specify the proxy user name. Leave PROXY_USER and PROXY_PWD 
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_USER=username 
#------------------------------------------------------------------------------
PROXY_USER=

#------------------------------------------------------------------------------
# Specify the proxy password. Leave PROXY_USER and PROXY_PWD  
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_PWD=password 
#------------------------------------------------------------------------------
PROXY_PWD=
#------------------------------------------------------------------------------
# Specify the proxy realm.
#
# Example    : PROXY_REALM=metalink
#------------------------------------------------------------------------------
PROXY_REALM=
The file remove.rsp

Code: Select all

[ENGINE]
 
#DO NOT CHANGE THIS.
Response File Version=1.0.0.0.0
 
[GENERIC]
 
#
OH_HOME_DEINSTALL=false
 
#
DOMAIN_MANAGED_ASINSTANCE_DEINSTALL=true
 
#
UNMANAGED_ASINSTANCE_DEINSTALL=false
 
#
DEINSTALL_IN_ASINSTANCE_MODE=true
 
#
DEINSTALL INSTANCE LIST=
 
 
[SYSTEM]
 
 
[APPLICATIONS]

 
[RELATIONSHIPS]
 
#
MIDDLEWARE_HOME=
 
#
WEBLOGIC_HOME=
 
#
DOMAIN_HOST_NAME=
 
#
DOMAIN_PORT_NO=7001
 
#
DOMAIN_USER_NAME=weblogic
 
#
DOMAIN_USER_PASSWORD=
 
#
MANAGED_INSTANCE_LIST=
The file install_oracle.bat

Code: Select all

start /wait Oracle/install/oui.exe -responseFile C:\Windows\Temp\install.rsp -silent -nowait
The file setup.py

Code: Select all

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []
ORACLE_HOME = 'C:\Oracle11\product\\11.2.0\client_1'
def install():
    print ('Installation clef registre')
    registry_setstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\Oracle",'ImagePath',makepath(programfiles32,'Oracle\Inventory'), type=REG_EXPAND_SZ)

    print('Installing wapt-oracle')
    filecopyto('Oracle\\install.rsp','C:\Windows\Temp')
    run('install_oracle.bat')

	# Exemple pour ajouter une base ODBC. Pensez à modifier "-Name YOUR_APPS" et "Server=XXXXXXXX"
    # print ('Installation des drivers ODBC')
    # run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name YOUR_APPS -Platform 32-bit -SetPropertyValue "Server=XXXXXXXX"')

	# Copie du fichier TNS Name si besoin
    # filecopyto('Oracle\\tnsnames.ora',makepath(ORACLE_HOME,'network\\admin'))
    
	filecopyto('Oracle\\remove.rsp',makepath(ORACLE_HOME,'deinstall'))

def uninstall():
    print('Uninstalling wapt-oracle11')

    if isfile(makepath(ORACLE_HOME,'deinstall\\deinstall.bat')):
        run(r'{}\\deinstall/deinstall -silent -paramFile remove.rsp'.format(ORACLE_HOME))

    print('Check if folder still persit and delete')
    if isdir(makepath(ORACLE_HOME)):
        remove_tree(makepath(ORACLE_HOME))

    if isdir(makepath(programfiles32,'Oracle\Inventory')):
        remove_tree(makepath(programfiles32,'Oracle\Inventory'))

    if registry_readstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\WOW6432Node", 'oracle') :
        run('reg delete HKLM\SOFTWARE\WOW6432Node\oracle /f')

    if registry_readstring(HKEY_LOCAL_MACHINE, "SOFTWARE", 'oracle') :
        run('reg delete HKLM\SOFTWARE\oracle /f')
Matthew.

Re: [WAPT 1.6.2][Error] Creating an Oracle 11 package

Published: May 20, 2019 - 9:50 PM
by htouvet
Normally, the "run" command from wapt waits for the called process to finish.

In your code, the main problem is the absence of 'r' in the strings when they contain "\" (a character which, when combined with the one that follows, is interpreted in Python in a special way, unless we put an 'r' at the beginning of the string to mean 'raw', a "raw" string).

This explains the strange errors "IOError: [Errno 2] No such file or directory: 'C:\\Oracle11\\product\t.2.0\\client_1\network\x07dmin'"

Code: Select all

def install():
    print ('Installation clef registre')
    registry_setstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\Oracle",'ImagePath',makepath(programfiles32,'Oracler','Inventory'), type=REG_EXPAND_SZ)
    print('installing far-oracle')
    filecopyto('client.rsp',r'C:\Windows\Temp')
    run(r'setup.exe -silent -responseFile C:\Windows\Temp\client.rsp')
    filecopyto('Tnsnames.ora',r'C:\Oracle11\product\11.2.0\client_1\network\admin')
    print ('Installation des drivers ODBC')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name MELODIE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name ARPEGE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name REQUIEM -Platform 32-bit -SetPropertyValue "Server=arpetcp"')

def uninstall():
    print('uninstalling far-oracle11')
    run(r'C:\Oracle11\product\11.2.0\client_1\deinstall\deinstall.bat')
    

Re: [WAPT 1.6.2][Error] Creating an Oracle 11 package

Published: May 21, 2019 - 11:40
by upperm
Yes, thank you, I noticed afterwards! :)

However, the installation doesn't work when launched with wapt. I suspect the System account is causing the problem because when I launch the installation from PyScripter, everything works correctly.

Oracle is showing me a permissions error:

Code: Select all

SEVERE: [FATAL] [INS-30131] Echec de la configuration initiale requise pour l'exécution des validations du programme d'installation.
   CAUSE: Echec de l'accès à l'emplacement temporaire.
   ACTION: Assurez-vous que l'utilisateur en cours détient les autorisations nécessaires pour accéder à l'emplacement temporaire.
Even when changing the base directory (%tmp% user) to another (C:\Temp, C:\Windows\Temp) the error occurs.

Re: [WAPT 1.6.2][Error] Creating an Oracle 11 package

Published: May 21, 2019 - 3:28 PM
by htouvet
Perhaps my typo (Oracler) in the path is incorrect...?


def install():
print('Registry key installation')
registry_setstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\Oracle", 'ImagePath', makepath(programfiles32, 'Oracle', 'Inventory'), type=REG_EXPAND_SZ)
...

Re: [WAPT 1.6.2][Error] Creating an Oracle 11 package

Published: May 22, 2019 - 3:15 PM
by upperm
I continued my tests, and the installation is now working correctly, no more problems. However, I seem to be getting an error when WAPT tries to kill the process: AccessDenied: psutil.AccessDenied (pid=6328)


Here is the updated setup.py

Code: Select all

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []
ORACLE_HOME = r'C:\Oracle11\product\11.2.0\client_1'
RegInventory = r'SOFTWARE\Oracle'
RegOracle = r'SOFTWARE\WOW6432Node\Oracle'

def install():
    print ('Installation clef registre')
    registry_setstring(HKEY_LOCAL_MACHINE, RegInventory,'ImagePath',makepath(programfiles32,'Oracle\Inventory'), type=REG_EXPAND_SZ)

    print('Installing far-oracle')
    filecopyto('Oracle\\install.rsp','C:\Windows\Temp')

    run(r'Oracle\install\oui.exe -responseFile C:\Windows\Temp\install.rsp -silent -nowait',timeout=60*60)

    print ('Installation des drivers ODBC')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name MELODIE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name ARPEGE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name REQUIEM -Platform 32-bit -SetPropertyValue "Server=arpetcp"')

    filecopyto('Oracle\\tnsnames.ora',makepath(ORACLE_HOME,'network\\admin'))
    filecopyto('Oracle\\remove.rsp',makepath(ORACLE_HOME,'deinstall'))

def uninstall():
    print('Uninstalling far-oracle11')

    if isfile(makepath(ORACLE_HOME,'deinstall\\deinstall.bat')):
        run(r'{}\\deinstall/deinstall -silent -paramFile remove.rsp'.format(ORACLE_HOME))

    if reg_key_exists(HKEY_LOCAL_MACHINE,RegOracle):
        run('reg delete HKLM\{} /f'.format(RegOracle))

    if reg_key_exists(HKEY_LOCAL_MACHINE,RegInventory):
        run('reg delete HKLM\{} /f'.format(RegInventory))

    # if service_installed('OracleRemExecService'):
    #    if service_is_running('OracleRemExecService'):
    #        service_stop('OracleRemExecService')

    if isdir(makepath(ORACLE_HOME)):
        remove_tree(r'C:\\Oracle11')

    if isdir(makepath(programfiles32,'Oracle')):
        remove_tree(makepath(programfiles32,'Oracle'))
Here are the logs:

Code: Select all

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptservice\service.py", line 1374, in run
    self.running_task.run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 515, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 960, in _run
    self.result.get('errors',[])))
Exception: Erreur lors de l'installation de [u'far-oracle']: erreurs dans les paquets [[u'far-oracle', PackageEntry(u'far-oracle',u'1.0.5') , u'Traceback (most recent call last):\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 4372, in install\n    force=force\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 3591, in install_wapt\n    raise e\nAccessDenied: psutil.AccessDenied (pid=6328)\n']]

Exception: Erreur lors de l'installation de [u'far-oracle']: erreurs dans les paquets [[u'far-oracle', PackageEntry(u'far-oracle',u'1.0.5') , u'Traceback (most recent call last):\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 4372, in install\n    force=force\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 3591, in install_wapt\n    raise e\nAccessDenied: psutil.AccessDenied (pid=6328)\n']]
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptservice\service.py", line 1374, in run
    self.running_task.run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 515, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 1041, in _run
    self.result = self.wapt.audit(self.packagename,force = self.force)
  File "C:\Program Files (x86)\wapt\common.py", line 5654, in audit
    raise Exception('Package %s is not installed' % package)
Exception: Package far-oracle is not installed

Re: [WAPT 1.6.2][Error] Creating an Oracle 11 package

Published: October 24, 2019 - 09:59
by Ado
I was starting to despair, thanks for sharing, upperm! :D

I did as you did, running oui.exe directly, and it works correctly. However, I didn't understand why it wouldn't run the .rsp file directly from the WAPT folder, even though I can copy the tnsnames file...


Quick question: at the end of the installation (or uninstall), it asks you to press Enter to close the command prompt. How do you get around this? Because it seems to me that as long as you don't do it, the installation remains active.

Re: [WAPT 1.6.2][Error] Creating an Oracle 11 package

Published: October 24, 2019 - 10:19 AM
by upperm
Hi !

Personally, I have no problems in that regard.

Setup file

Code: Select all

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []
ORACLE_HOME = r'C:\Oracle11\product\11.2.0\client_1'
RegInventory = r'SOFTWARE\Oracle'
RegOracle = r'SOFTWARE\WOW6432Node\Oracle'

def install():

    if not isfile(makepath(ORACLE_HOME,'bin\oraclient11.dll')):
        print (r'Installation clef registre')
        registry_setstring(HKEY_LOCAL_MACHINE, RegInventory,'ImagePath',makepath(programfiles32,'Oracle\Inventory'), type=REG_EXPAND_SZ)
        filecopyto('Oracle\\install.rsp','C:\Windows\Temp')

        print(r'Installation Oracle 11')
        run(r'Oracle\install\oui.exe -responseFile C:\Windows\Temp\install.rsp -silent -nowait')
    else:
        print(r'Oracle 11 est deja installe')

    if isfile(makepath(ORACLE_HOME,'bin\oraclient11.dll')):
        print(r'Installation du fichier TnsName')
        filecopyto('Oracle\\tnsnames.ora',makepath(ORACLE_HOME,'network\\admin'))
        filecopyto('Oracle\\remove.rsp',makepath(ORACLE_HOME,'deinstall'))

    print (r'Installation des drivers ODBC')
    run_powershell('Add-OdbcDsn -DriverName "Microsoft ODBC for Oracle" -DsnType System -Name MELODIE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Microsoft ODBC for Oracle" -DsnType System -Name ARPEGE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Microsoft ODBC for Oracle" -DsnType System -Name REQUIEM -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Microsoft ODBC for Oracle" -DsnType System -Name MAESTRO -Platform 32-bit -SetPropertyValue "Server=arpetcp"')

def uninstall():

    if isfile(makepath(ORACLE_HOME,'deinstall\\deinstall.bat')):
        print(r'Desinstallation Oracle 11')
        run(r'{}\\deinstall/deinstall -silent -paramFile remove.rsp'.format(ORACLE_HOME))

    if reg_key_exists(HKEY_LOCAL_MACHINE,RegOracle):
        print(r'Suppression clef registre Oracle')
        run('reg delete HKLM\{} /f'.format(RegOracle))

    if reg_key_exists(HKEY_LOCAL_MACHINE,RegInventory):
        print(r'Suppression clef registre Oracle Inventory')
        run('reg delete HKLM\{} /f'.format(RegInventory))

    # if service_installed('OracleRemExecService'):
    #    if service_is_running('OracleRemExecService'):
    #        service_stop('OracleRemExecService')

    if isdir(makepath(ORACLE_HOME)):
        print(r'Suppression du répertoire Oracle')
        remove_tree(r'C:\\Oracle11')

    if isdir(makepath(programfiles32,'Oracle')):
        print(r'Suppression du répertoire Oracle Inventory')
        remove_tree(makepath(programfiles32,'Oracle'))
Answer file for installation (install.rsp)

Code: Select all

###############################################################################
## Copyright(c) Oracle Corporation 1998, 2013. All rights reserved.           ##
##                                                                           ##
## Specify values for the variables listed below to customize                ##
## your installation.                                                        ##
##                                                                           ##
## Each variable is associated with a comment. The comment                   ##
## can help to populate the variables with the appropriate                   ##
## values.							             ##
##                                                                           ##
###############################################################################


#-------------------------------------------------------------------------------
# Do not change the following system generated value. 
#-------------------------------------------------------------------------------
oracle.install.responseFileVersion=http://www.oracle.com/2007/install/rspfmt_clientinstall_response_schema_v11_2_0

#-------------------------------------------------------------------------------
# This variable holds the hostname of the system as set by the user. 
# It can be used to force the installation to use an alternative   
# hostname rather than using the first hostname found on the system
# (e.g., for systems with multiple hostnames and network interfaces).
ORACLE_HOSTNAME=computer.mshome.net
#-------------------------------------------------------------------------------
# Unix group to be set for the inventory directory.  
UNIX_GROUP_NAME=
#-------------------------------------------------------------------------------
# Specify the languages in which the components will be installed.             
#
# en   : English                  ja   : Japanese                  
# fr   : French                   ko   : Korean                    
# ar   : Arabic                   es   : Latin American Spanish    
# bn   : Bengali                  lv   : Latvian                   
# pt_BR: Brazilian Portuguese     lt   : Lithuanian                
# bg   : Bulgarian                ms   : Malay                     
# fr_CA: Canadian French          es_MX: Mexican Spanish           
# ca   : Catalan                  no   : Norwegian                 
# hr   : Croatian                 pl   : Polish                    
# cs   : Czech                    pt   : Portuguese                
# da   : Danish                   ro   : Romanian                  
# nl   : Dutch                    ru   : Russian                   
# ar_EG: Egyptian                 zh_CN: Simplified Chinese        
# en_GB: English (Great Britain)  sk   : Slovak                    
# et   : Estonian                 sl   : Slovenian                 
# fi   : Finnish                  es_ES: Spanish                   
# de   : German                   sv   : Swedish                   
# el   : Greek                    th   : Thai                      
# iw   : Hebrew                   zh_TW: Traditional Chinese       
# hu   : Hungarian                tr   : Turkish                   
# is   : Icelandic                uk   : Ukrainian                 
# in   : Indonesian               vi   : Vietnamese                
# it   : Italian                                                   
#
# all_langs   : All languages
#
# Specify value as the following to select any of the languages.
# Example : SELECTED_LANGUAGES=en,fr,ja
#
# Specify value as the following to select all the languages.
# Example : SELECTED_LANGUAGES=all_langs
SELECTED_LANGUAGES=en,fr,fr_CA
#-------------------------------------------------------------------------------
# Complete path of the Oracle Home  
ORACLE_HOME=C:\Oracle11\product\11.2.0\client_1
#-------------------------------------------------------------------------------
# Complete path of the Oracle Base. 
ORACLE_BASE=C:\Oracle11
#------------------------------------------------------------------------------
#Name       : INSTALL_TYPE
#Datatype   : String
#Description: Installation type of the component.
#
#             The following choices are available. The value should contain
#             only one of these choices.
#               - InstantClient
#               - Administrator
#               - Runtime
#               - Custom
#
#Example    : INSTALL_TYPE = Administrator
#------------------------------------------------------------------------------
oracle.install.client.installType=Runtime
#------------------------------------------------------------------------------
#Name       : oracle.install.client.upgrading
#Datatype   : boolean
#Description: whether or not this is an upgrade installation
#
#             The following choices are available. The value should contain
#             only one of these choices.
#               - true
#               - false
#
#Example    : oracle.install.client.upgrading=true
#------------------------------------------------------------------------------
oracle.install.client.upgrading=false
#-------------------------------------------------------------------------------
# Name       : oracle.install.client.customComponents
# Datatype   : StringList
#
# This property is considered only if INSTALL_TYPE is set to "Custom"
#
# Description: List of Client Components you would like to install
#
#   The following choices are available. You may specify any
#   combination of these choices.  The components you choose should
#   be specified in the form "internal-component-name:version"
#   Below is a list of components you may specify to install.
#
# oracle.sqlj:11.2.0.4.0 -- "Oracle SQLJ"
# oracle.rdbms.util:11.2.0.4.0 -- "Oracle Database Utilities"
# oracle.javavm.client:11.2.0.4.0 -- "Oracle Java Client"
# oracle.sqlplus:11.2.0.4.0 -- "SQL*Plus"
# oracle.dbjava.jdbc:11.2.0.4.0 -- "Oracle JDBC/THIN Interfaces"
# oracle.ldap.client:11.2.0.4.0 -- "Oracle Internet Directory Client"
# oracle.rdbms.oci:11.2.0.4.0 -- "Oracle Call Interface (OCI)"
# oracle.precomp:11.2.0.4.0 -- "Oracle Programmer"
# oracle.xdk:11.2.0.4.0 -- "Oracle XML Development Kit"
# oracle.network.aso:11.2.0.4.0 -- "Oracle Advanced Security"
# oracle.oraolap.mgmt:11.2.0.4.0 -- "OLAP Analytic Workspace Manager and Worksheet"
# oracle.network.client:11.2.0.4.0 -- "Oracle Net"
# oracle.network.cman:11.2.0.4.0 -- "Oracle Connection Manager"
# oracle.network.listener:11.2.0.4.0 -- "Oracle Net Listener"
# oracle.ordim.client:11.2.0.4.0 -- "Oracle Multimedia Client Option"
# oracle.odbc:11.2.0.4.0 -- "Oracle ODBC Driver"
# oracle.has.client:11.2.0.4.0 -- "Oracle Clusterware High Availability API"
# oracle.dbdev:11.2.0.4.0 -- "Oracle SQL Developer"
# oracle.rdbms.scheduler:11.2.0.4.0 -- "Oracle Scheduler Agent" 
# oracle.ntoramts:11.2.0.4.0 -- "Oracle Services For Microsoft Transaction Server"
# oracle.ntrdbms.admin:11.2.0.4.0 -- "Oracle Administration Assistant for Windows"
# oracle.ntoledb:11.2.0.4.0 -- "Oracle Provider for OLE DB"
# oracle.ntoledb.odp_net_2:11.2.0.4.0 -- "Oracle Data Provider for .NET"
# oracle.aspnet_2:11.2.0.4.0 -- "Oracle Providers for ASP.NET"
# oracle.ntrdbms.perfmon:11.2.0.4.0 -- "Oracle Counters for Windows Performance Monitor"
# oracle.oo4o:11.2.0.4.0 -- "Oracle Objects for OLE" 
# 
#
# Example    : oracle.install.client.customComponents="oracle.precomp:11.2.0.4.0","oracle.oraolap.mgmt:11.2.0.4.0","oracle.rdbms.scheduler:11.2.0.4.0"
#-------------------------------------------------------------------------------
oracle.install.client.customComponents=
#-------------------------------------------------------------------------------
# Host name to be used for by the Oracle Scheduler Agent.
# This needs to be entered in case oracle.rdbms.scheduler is selected in the
# list of custom components during custom install
#
# Example    : oracle.install.client.schedulerAgentHostName = acme.domain.com
#------------------------------------------------------------------------------
oracle.install.client.schedulerAgentHostName=

#------------------------------------------------------------------------------
# Port number to be used for by the Oracle Scheduler Agent.
# This needs to be entered in case oracle.rdbms.scheduler is selected in the
# list of custom components during custom install
#
# Example: oracle.install.client.schedulerAgentPortNumber = 1500
#------------------------------------------------------------------------------
oracle.install.client.schedulerAgentPortNumber=

#------------------------------------------------------------------------------
# Specify the auto-updates option. It can be one of the following:
#   - MYORACLESUPPORT_DOWNLOAD
#   - OFFLINE_UPDATES
#   - SKIP_UPDATES
#------------------------------------------------------------------------------
oracle.installer.autoupdates.option=SKIP_UPDATES
#------------------------------------------------------------------------------
# In case MYORACLESUPPORT_DOWNLOAD option is chosen, specify the location where
# the updates are to be downloaded.
# In case OFFLINE_UPDATES option is chosen, specify the location where the updates
# are present.
oracle.installer.autoupdates.downloadUpdatesLoc=
#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username which has the patches download privileges  
# to be used for software updates.
#  Example   : AUTOUPDATES_MYORACLESUPPORT_USERNAME=abc@oracle.com
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_USERNAME=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username password which has the patches download privileges  
# to be used for software updates.
#
# Example    : AUTOUPDATES_MYORACLESUPPORT_PASSWORD=password
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

#------------------------------------------------------------------------------
# Specify the Proxy server name. Length should be greater than zero.
#
# Example    : PROXY_HOST=proxy.domain.com 
#------------------------------------------------------------------------------
PROXY_HOST=

#------------------------------------------------------------------------------
# Specify the proxy port number. Should be Numeric and at least 2 chars.
#
# Example    : PROXY_PORT=25 
#------------------------------------------------------------------------------
PROXY_PORT=0
#------------------------------------------------------------------------------
# Specify the proxy user name. Leave PROXY_USER and PROXY_PWD 
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_USER=username 
#------------------------------------------------------------------------------
PROXY_USER=

#------------------------------------------------------------------------------
# Specify the proxy password. Leave PROXY_USER and PROXY_PWD  
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_PWD=password 
#------------------------------------------------------------------------------
PROXY_PWD=
#------------------------------------------------------------------------------
# Specify the proxy realm.
#
# Example    : PROXY_REALM=metalink
#------------------------------------------------------------------------------
PROXY_REALM=
Uninstallation response file (remove.rsp)

Code: Select all

[ENGINE]
 
#DO NOT CHANGE THIS.
Response File Version=1.0.0.0.0
 
[GENERIC]
 
#
OH_HOME_DEINSTALL=false
 
#
DOMAIN_MANAGED_ASINSTANCE_DEINSTALL=true
 
#
UNMANAGED_ASINSTANCE_DEINSTALL=false
 
#
DEINSTALL_IN_ASINSTANCE_MODE=true
 
#
DEINSTALL INSTANCE LIST=
 
 
[SYSTEM]
 
 
[APPLICATIONS]

 
[RELATIONSHIPS]
 
#
MIDDLEWARE_HOME=
 
#
WEBLOGIC_HOME=
 
#
DOMAIN_HOST_NAME=
 
#
DOMAIN_PORT_NO=7001
 
#
DOMAIN_USER_NAME=weblogic
 
#
DOMAIN_USER_PASSWORD=
 
#
MANAGED_INSTANCE_LIST=

Re: [WAPT 1.6.2][Error] Creating an Oracle 11 package

Published: October 24, 2019 - 11:43 AM
by Ado
I think I spoke too soon...

Via PyScripter, the installation went smoothly now that I'm running oui.exe directly.

However, when I run the package the usual way, I get the same error as you: AccessDenied: psutil.AccessDenied (pid=11056)

EDIT: Despite the error I mentioned above, the installation completes correctly... I tried with a longer timeout or even with accept_returncodes=[0,1601,3] (because I have an Exit code: 3) but nothing changed...

EDIT2: I managed to get around this problem by launching the installer via a command prompt.

Re: [WAPT 1.6.2][Error] Creating an Oracle 11 package

Published: April 2, 2020 - 11:30 AM
by jlatieule
Good morning,

After testing, the returned code is not 3 but -4

Try it with accept_returncodes=[0,-4]
Ado wrote: Oct 24, 2019 - 11:43 AM I think I spoke too soon...

Via PyScripter, the installation went smoothly now that I'm running oui.exe directly.

However, when I run the package the usual way, I get the same error as you: AccessDenied: psutil.AccessDenied (pid=11056)

EDIT: Despite the error I mentioned above, the installation completes correctly... I tried with a longer timeout or even with accept_returncodes=[0,1601,3] (because I have an Exit code: 3) but nothing changed...

EDIT2: I managed to get around this problem by launching the installer via a command prompt