[WAPT 1.6.2][Erreur] Création d'un paquet Oracle 11

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
upperm
Messages : 8
Inscription : 20 mai 2019 - 14:14

20 mai 2019 - 14:23

Bonjour,

Je suis en train de créer un paquet pour installer Oracle 11.

Je rencontre un problème lors de l’exécution de l'installation. Pour l'installation silencieuse, le setup.exe doit être exécuté avec un fichier .rsp. Pas de soucis jusqu'à la. Le problème est que le setup.exe exécute le processus oui.exe qui lui effectue l'installation (et donc le setup.exe se ferme directement). De ce faite, WAPT constate une erreur puis termine sa procédure le tout en générant des erreurs.

Du coup, est-il possible de faire en sorte que temps que le processus oui.exe est en cours, WAPT attende pour procéder à la suite de l'installation ?

setup.py

Code : Tout sélectionner

# -*- 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 : Tout sélectionner

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
Merci d'avance !
Matthieu.
Dernière modification par upperm le 21 mai 2019 - 11:41, modifié 1 fois.
upperm
Messages : 8
Inscription : 20 mai 2019 - 14:14

20 mai 2019 - 20:08

Problème "résolu" !
Je passe par un fichier .bat que évite de me renvoyer une erreur. C'est sans doute pas la meilleure des méthodes mais ça marche.

J'ai aussi réussi a gérer la désinstallation.

Si des personnes cherche donc à déployer Oracle 11 (32bits) voici ce que j'ai fait :

Structure du paquet :
Image

Le dossier Oracle contient les fichiers d'installation ainsi que les fichiers pour l'installation et la déinstallation.
Image

Le fichier install.rsp

Code : Tout sélectionner

###############################################################################
## 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=
Le fichier remove.rsp

Code : Tout sélectionner

[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=
Le fichier install_oracle.bat

Code : Tout sélectionner

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

Code : Tout sélectionner

# -*- 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')
Matthieu.
Avatar de l’utilisateur
htouvet
Expert WAPT
Messages : 402
Inscription : 16 mars 2015 - 10:48
Contact :

20 mai 2019 - 21:50

Normalement la commande "run" de wapt attend que le processus appelé se termine.

Dans votre code, le principal problème est l'absence de 'r' dans les chaînes de caractères alors qu'elles comportent des "\" (caractère qui associé à celui qui suit est interprété en python de façon spéciale, sauf si on met un 'r' au début de la châine pour dire 'raw', chaîne "brute").

Ce qui explique les erreurs étranges "IOError: [Errno 2] No such file or directory: 'C:\\Oracle11\\product\t.2.0\\client_1\network\x07dmin'"

Code : Tout sélectionner

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')
    
Tranquil IT
upperm
Messages : 8
Inscription : 20 mai 2019 - 14:14

21 mai 2019 - 11:40

Oui merci j'avais remarqué après ! :)

Par contre l'installation ne fonctionne pas lors de lancement avec wapt. J'ai l'impression que c'est le compte System qui pose problème car lorsque je lance l'installation depuis PyScripter tout fonctionne correctement.

Oracle me revoit une erreur de permissions :

Code : Tout sélectionner

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.
Même en changeant le répertoire de base (%tmp% utilisateur) pour un autre (C:\Temp, C:\Windows\Temp) l'erreur survient.
Avatar de l’utilisateur
htouvet
Expert WAPT
Messages : 402
Inscription : 16 mars 2015 - 10:48
Contact :

21 mai 2019 - 15:28

peut être mon erreur de typo (Oracler) dans le chemin ..; ?


def install():
print ('Installation clef registre')
registry_setstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\Oracle",'ImagePath',makepath(programfiles32,'Oracle','Inventory'), type=REG_EXPAND_SZ)
...
Tranquil IT
upperm
Messages : 8
Inscription : 20 mai 2019 - 14:14

22 mai 2019 - 15:15

J'ai continué mes tests, l'installation se fait bien correctement maintenant, plus de soucis. Par contre, j'ai une erreur lorsque WAPT tente de tuer le processus j'ai l'impression : AccessDenied: psutil.AccessDenied (pid=6328)


Voici le setup.py à jour

Code : Tout sélectionner

# -*- 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'))
Voici les logs :

Code : Tout sélectionner

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
Ado
Messages : 3
Inscription : 05 avr. 2017 - 16:17

24 oct. 2019 - 09:59

Je commençais à désespérer, merci pour ton partage upperm :D

J'ai fais comme toi, en exécutant directement oui.exe et ça fonctionne correctement. En revanche je n'ai pas compris pourquoi il ne voulais pas exécuter le .rsp directement depuis le dossier WAPT alors que j'arrive à copier le tnsnames ...


Petite question : en fin d'installation (ou désinstall), il demande d'appuyer sur entrée pour fermer l'invite de commande. Comment tu fais pour contourner ? Car du coup, j'ai bien l'impression que tant que tu ne le fais pas, l'installation reste active
upperm
Messages : 8
Inscription : 20 mai 2019 - 14:14

24 oct. 2019 - 10:19

Salut !

Pour ma part pas de soucis à ce niveau là.

Fichier setup

Code : Tout sélectionner

# -*- 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'))
Fichier de réponse pour l'installation (install.rsp)

Code : Tout sélectionner

###############################################################################
## 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=
Fichier de réponse pour la déinstallation (remove.rsp)

Code : Tout sélectionner

[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=
Ado
Messages : 3
Inscription : 05 avr. 2017 - 16:17

24 oct. 2019 - 11:43

Je crois que j'ai parlé trop vite ...

Via PyScripter, l'installation s'est faite sans problème maintenant que j'exécute directement oui.exe

En revanche, en balançant le package de façon classique, je tombe sur la même erreur que toi : AccessDenied: psutil.AccessDenied (pid=11056)

EDIT: Malgré l'erreur que je cite au dessus, l'installation se fait correctement... J'ai essayé avec un plus gros timeout ou même avec accept_returncodes=[0,1601,3] (car j'ai un Exit code: 3) mais rien de plus ...

EDIT2: J'ai réussi à contourner ce problème en lançant l'installateur via une invite de commande
jlatieule
Messages : 38
Inscription : 03 juil. 2019 - 09:18

02 avr. 2020 - 11:30

Bonjour,

Après essai, le code retourné n'est pas 3 mais -4

Fait un essai avec accept_returncodes=[0,-4]
Ado a écrit : 24 oct. 2019 - 11:43 Je crois que j'ai parlé trop vite ...

Via PyScripter, l'installation s'est faite sans problème maintenant que j'exécute directement oui.exe

En revanche, en balançant le package de façon classique, je tombe sur la même erreur que toi : AccessDenied: psutil.AccessDenied (pid=11056)

EDIT: Malgré l'erreur que je cite au dessus, l'installation se fait correctement... J'ai essayé avec un plus gros timeout ou même avec accept_returncodes=[0,1601,3] (car j'ai un Exit code: 3) mais rien de plus ...

EDIT2: J'ai réussi à contourner ce problème en lançant l'installateur via une invite de commande
Technicien informatique chez Domitia Habitat
Verrouillé