Eigene Software einbinden Problem

Antworten
link611
Beiträge: 65
Registriert: 11 Mär 2010, 12:57

Eigene Software einbinden Problem

Beitrag von link611 »

hiho...

ich möchte eigene Software (firefox3.6.0) über opsi installieren lassen.

habe bereits folgende Befehle durchlaufen lassen:

Code: Alles auswählen

    cd /home/opsiproducts
    opsi-package-manager --new-product-id firefox3.6.0 -x opsi-template_1.0-15.opsi
danach die Setup.exe in den CLIENT_DATA Ordner verschoben und die .ins datei angepasst:

Code: Alles auswählen

; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/credits/

[Initial]
requiredWinstVersion >= "4.8.6"
LogLevel=2
;  Log Errors in Logfile but don't abort:
ExitOnError=false
; Show syntax errors in the script:
ScriptErrorMessages=on
; Dont trace step by step through the script:
TraceMode=off
; let started programs run in front of the winst window
StayOnTop=false
 
[Aktionen]
DefVar $TEMP$ 
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $NewExe$
DefVar $InstallDir$
DefVar $ExitCode$
DefVar $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
 

; This should be edited
set $ProductId$ = "firefox3.6.0"
set $MinimumSpace$ = "100 MB"
set $InstallDir$="D:\"+$ProductId$
set $NewExe$=$InstallDir$+"\"+$ProductId$+".exe"
set $LicenseRequired$ = "false"
set $LicensePool$ = "p_" + $ProductId$


Set $TEMP$ = EnvVar("TEMP")

; Message at install time:
Message "Installing "+$ProductId$+" ..."

if not(HasMinimumSpace ("%SYSTEMDRIVE%", $MinimumSpace$))
	LogError "Not enough space on %SYSTEMDRIVE%: . "+$MinimumSpace$+" on Drive %SYSTEMDRIVE%: needed for "+$ProductId$+"."
	isFatalError
	; stop process and set installation status to failed
else
	comment "show product picture"
	ShowBitmap /3 "%scriptpath%\"+$ProductId$+".bmp" $ProductId$

	if FileExists("%ScriptPath%\delsub.ins")
		comment  "start uninstall sub section"
		sub "%ScriptPath%\delsub.ins"
	endif

	;Message at install time:
	Message "Installing "+$ProductId$+" ..."

	comment "if license management enabled, reserve license and get license key"
	if ($LicenseRequired$ = "true")
		sub_get_licensekey
	endif
	
	comment "start setup program"  
	Winbatch_install
	sub_check_exitcode
	
	comment "copy files"
	Files_install
	
	comment "set Registry"
	Registry_install
	
	comment "set start menu"
	LinkFolder_install
	
	comment "test for installation success"
	if not(FileExists($NewExe$))
		logError "Fatal: After Installation "+$NewExe$+" not found"
		isFatalError
	endif

endif

[Winbatch_install]
; something like
"%SCRIPTPATH%\Setup.exe" /S
; $licensekey$ may be inserted into the additional parameters string 

[Files_install]
; something like
; copy -sv "%SCRIPTPATH%\files\*.*" "%ProgramFilesDir%\$ProductId$"

[Registry_install]
; something like
; openkey [HKEY_LOCAL_MACHINE\Software\$ProductId$]
; set "key"="value"

[LinkFolder_install]
; something like
; set_basefolder common_programs
; set_subfolder $ProductId$
;
; set_link
;  name: $ProductId$
;  target: $NewExe$
;  parameters:
;  working_dir: $InstallDir$
;  icon_file:
;  icon_index:
; end_link

[sub_get_licensekey]
if opsiLicenseManagementEnabled
	comment "license management is enabled and will be used"

	comment "try to to get license key"
	Set $licensekey$ = demandLicenseKey ($licensepool$)
	; if there is an assignment of exactly one licensepool to the product the following call is possible:
	; Set $licensekey$ = demandLicenseKey ("", $ProductId$)
	; if there is an assignment of a license pool to a windows software id, it is possible to use
	; DefVar $windowsSoftwareId$ 
	; $windowsSoftwareId$ = "..."
	; Set $licensekey$ = demandLicenseKey ("", "", $windowsSoftwareId$)

	DefVar $serviceErrorClass$ 
	set $serviceErrorClass$ = getLastServiceErrorClass 
	comment "error class: " + $serviceErrorClass$   

	if $serviceErrorClass$ = "None"
		comment "everything fine"
		comment "we got the license key '" + $licensekey$ + "'"
	else
		if $serviceErrorClass$ = "LicenseConfigurationError"
			LogError "Fatal: license configuration must be corrected"
			LogError getLastServiceErrorMessage
			isFatalError
		else 
			if $serviceErrorClass$ = "LicenseMissingError"
				LogError "Fatal: required license is not supplied"
				isFatalError
			endif
		endif
	endif
else
	LogError "Fatal: license required, but license management not enabled"
	isFatalError
endif


[sub_check_exitcode]
comment "test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
	comment "looks good: setup program gives exitcode zero"
else
	comment "Setup program gives a exitcode unequal zero: "+$ExitCode$
	if ($ExitCode$ = "1605")
		comment "ERROR_UNKNOWN_PRODUCT	1605	This action is only valid for products that are currently installed."
		comment "Uninstall of a not installed product failed - no problem"
	else
		if ($ExitCode$ = "1641")
			comment "looks good: setup program gives exitcode 1641"
			comment "ERROR_SUCCESS_REBOOT_INITIATED	1641	The installer has initiated a restart. This message is indicative of a success."
		else
			if ($ExitCode$ = "3010")
				comment "looks good: setup program gives exitcode 3010"
				comment "ERROR_SUCCESS_REBOOT_REQUIRED	3010	A restart is required to complete the install. This message is indicative of a success."
			else
				logError "Fatal: Setup program gives an unknown exitcode unequal zero: "+$ExitCode$
				isFatalError
			endif
		endif
	endif
endif


zurück in den firefox3.6.0 Ordner und folgende Befehle durchlaufen lassen:

Code: Alles auswählen

    opsi-makeproductfile
    opsi-package-manager -i firefox3.6.0_1.0-15.opsi
so Firefox wurde jetzt dem opsi configuration editor hinzugefügt und ich kann auch zum installieren auswählen.

winst startet ganz normal und beginnt die Installation

nach kurzer Zeit wird die Installation beendet mit "Process stopped"

jetzt wenn ich mich einlogge, sehe ich ein Installierten Firefox, der aber unter dem standard-firefox-pfad installiert wurde, und der opsi configuration editor meldet mir fehler.

Also ich denke mal, dass er das setup startet, aber nicht die angegebenen pfade usw. nutzt....
wie ändere ich das?
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Eigene Software einbinden Problem

Beitrag von d.oertel »

Hi,

bitte versuchen zu verstehen was das Script macht.
(In den Schulungen verwenden wir einen ganzen Tag auf dieses Thema)

Ein Hinweis: Die Variable $InstallDir$ bestimmt nicht wohin das Programm installiert werden soll,
sondern ist auf den Wert zu setzen wohin sich das Programm installiert.
Noch ein Hinweis: $NewExe$ beschreibt eine Datei die nach der Installation vorhanden sein sollte,
sonst gilt die Installation als gescheitert.

gruss
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


link611
Beiträge: 65
Registriert: 11 Mär 2010, 12:57

Re: Eigene Software einbinden Problem

Beitrag von link611 »

ah danke!


hat mir sehr weitergeholfen :)

jetzt muss ich nurnoch rausfinden, wie ich den Standardpfad für die Installation ändern kann....
p.grass
Beiträge: 44
Registriert: 04 Sep 2009, 14:31

Re: Eigene Software einbinden Problem

Beitrag von p.grass »

Falls nicht schon selbst gelöst hier die Lösung:
einfach beim Aufrufen der Installation ein

/D=\Installationspfad
angeben

z.b.:

"setup.exe /S /D=C:\MeinBevorzugterPfad\FireFox"

gruß p.grass
link611
Beiträge: 65
Registriert: 11 Mär 2010, 12:57

Re: Eigene Software einbinden Problem

Beitrag von link611 »

ne hab ich bisher noch nicht gelöst, aber hatte da so ne vermutung...


herzlichen dank! probier ich nachmittag gleich mal aus.
Antworten