Dieses OPSI-Paket (bzw. dessen Quellen) fuer Java-LTS-releases Amazon Corretto 8,
Amazon Corretto 11, Amazon Corretto 17 und Amazon Corretto 21.
deckt das Java Development Kit inklusive Runtime fuer die jeweiligen Releases
ab. Eine separate JRE wird nicht mehr angeboten.
Pakete für die Versionen 15, 16, 18, 19 und 20 können zwar ebenfalls
erstellt werden, jedoch sind diese Versionen end of life; Upstream gibt es
hierfür keine Updates mehr.
Waehrend Java 8 in einer 32- und 64-Bit-Version verfuegbar ist, liegt ab
Versionen 11 nur noch eine Version fuer 64 Bit vor.
Teile dieser Dokumentation beziehen sich nicht ausschliesslich auf die erstellten OSPI-Pakete, sondern beruecksichtigen auch den Build-Prozess.
Amazon Corretto ist eine kostenlose, plattformübergreifende und produktionsbereite Distribution des Open Java Development Kit (OpenJDK). Corretto wird von langfristigem Support begleitet, der Leistungs- und Sicherheitsverbesserungen umfassen wird. Corretto ist mit dem Java SE-Standard kompatibel zertifiziert und wird intern bei Amazon für viele Produktionsservices verwendet.
Dieser Abschnitt beschaeftigt sich mit der Erstellung des OPSI-Paketes aus dem Source-Paket und nicht mit dem OPSI-Paket selbst.
Zur Erstellung der OPSI-Pakete aus den vorliegenden Quellen werden neben den opsi-utils noch weitere Tools benoetigt, die aus den Repositories der jeweiligen Distributionen zu beziehen sind. Das sind (angegebenen Namen entsprechen Paketen in Debian/Ubuntu):
make
curl
bzw.wget
mustache
(im Repository enthalten)
Da aus den Quellen verschiedene Versionen des Paketes mit entsprechenden Anpassungen
generiert werden sollen (intern, O4I/DFN; testing/release) wurde hierfuer ein
Makefile
erstellt. Darueber hinaus steuert spec.json
die Erstellung der Pakete.
Im Idealfall sind beim Erscheinen einer neuen Release lediglich die jeweiligen json-Files anzupassen.
Ohne explizite Angabe eines json-Files wird spec.json
verwendet.
Dies erstellt generische Pakete ohne Angabe der Major-Release in der ProductId.
Die spec_corretto*.json
resultieren in Paketen, in denen
die Major-Release Bestandteil der ProductId ist. Dies ermoeglicht die parallele
Installation mehrerer Releases.
json-Files für Corretto-Versionen, die bereits end of life sind, finden
sich noch im Verzeichnis legacy_spec
und werden nicht mehr aktualisiert.
Ohne zwingenden Grund sollten für diese Versionen keine neuen Pakete mehr
erstellt werden.
Als Template-Engine kommt Mustache zum Einsatz.
Im Detail wird hier eine Go-Implementierung verwendet. Die Software ist auf
Github zu finden. Binaries
für Linux und Windows liegen diesem Paket bei.
Das in vorherigen Versionen dieses Paketes (<11) verwendete pystache
kommt
nicht mehr zum Einsatz und wurde aus den Quellen entfernt.
PACKAGES
- erstellte PaketeDOWNLOAD
- heruntergeladene Installationsarchive und md5sumsBUILD
- Arbeitsverzeichnis zur Erstellung der jeweiligen PaketeSRC
- Skripte und Templates
Einige Files (control, postinst, setup.opsiscript) werden bei der Erstellung erst aus .in
-Files
generiert, welche sich in den Verzeichnissen SRC/OPSI
und SRC/CLIENT_DATA
befinden.
Die SRC
-Verzeichnisse sind in den OPSI-Paketen nicht mehr enthalten.
Der vorliegende Code erlaubt die Erstellung von OPSI-Paketen fuer die Corretto-Releases
8, 11, 17 und 21*. Die Auswahl erfolgt ueber das entsprechende SPEC-File.
Mitgeliefert werden spec.json
(Corretto17,ProductId amazon-corretto)
sowie spec_corretto[8,11,17,20,21].json
(ProductIds jeweils mit Major-Release):
SPEC=<spec_file>
Ohne Angabe des Parameters werden die Pakete fuer Corretto 17 erstellt.
Das Paket kann mit "batteries included" erstellt werden. In dem Fall erfolgt der Download der Software beim Erstellen des OPSI-Paketes und nicht erst bei dessen Installation:
ALLINC=[true|false]
Standard ist hier die Erstellung des leichtgewichtigen Paketes (ALLINC=false
).
Zuvor sollten jedoch die Installationspakte mit make download
(ggf. unter
Angabe eines Spec-Files) heruntergeladen werden, da diese fuer die Berechnung
der Pruefsummen benoetigt werden.
Bei der Installation des Paketes im Depot wird ein eventuell vorhandenes
files
-Verzeichnis zunaechst gesichert und vom postinst
-Skript
spaeter wiederhergestellt. Diese Verzeichnis beeinhaltet die eigentlichen
Installationsfiles. Sollen alte Version aufgehoben werden, kann das ueber
einen Parameter beeinflusst werden:
KEEPFILES=[true|false]
Standardmaessig sollen die Files geloescht werden.
OPSI erlaubt des Pakete im Format cpio
und tar
zu erstellen.
Als Standard ist cpio
festgelegt.
Das Makefile erlaubt die Wahl des Formates ueber die Umgebungsvariable bzw. den Parameter:
ARCHIVE_FORMAT=<cpio|tar>
Haeufig beschraenkt sich die Aktualisierung eines Paketes auf das Aendern der
Versionsnummern und des Datums etc. In einigen Faellen ist jedoch auch das Anpassen
weiterer Variablen erforderlich, die sich auf verschiedene Files verteilen.
Auch das soll durch das Makefile vereinfacht werden. Die relevanten Variablen
sollen nur noch in spec.json
angepasst werden. Den Rest uebernimmt make
Die Software selbst wird - sofern bei der Paketerstellung nicht anders vorgegeben - nicht mit diesem Paket vertrieben. Fuer die "batteries included"-Pakete entfaellt dieser Abschnitt.
Bei der Installation des Paketes im Depot erfolgt im postinst
-Script
der Download der Software vom Hersteller (Windows, 32 (sofern vorhanden) und 64 Bit).
Ein manueller Download sollte dann nicht erforderlich sein.
Auf dem Depot-Server ist curl bzw. wget erforderlich.
Das Gesamtvolumen der herunterzuladenden Dateien betraegt je nach Paketvariante zwischen 170 und 220 MByte.
Da die Pakete von lokalen Funktionen Gebrauch machen, wird auf dem Depot-Server opsi-winst mindestens in der Version 4.12(.0.13) vorausgesetzt.
Fuer weitere Hilfsprogramme (psDetail und GetRealName) das .NET-Framework ab der Version 3.5 benoetigt.
Je nach Art des erstellten Paketes und den Einstellungen in der spec.json
koennen die verfuegbaren Properties abweichen.
Property | Type | Values | Default | Multivalue | Editable | Description | Note |
---|---|---|---|---|---|---|---|
custom_post_install | unicode | "none", "custom_test.opsiinc", "post-install.opsiinc" | "none" | False | True | Define filename for include script in custom directory after installation | |
custom_post_uninstall | unicode | "none", "custom_test.opsiinc", "post-uninstall.opsiinc" | "none" | False | True | Define filename for include script in custom directory after deinstallation | |
install_architecture | unicode | "32 bit", "64 bit", "sysnative" | "sysnative" | False | False | which architecture (32/64 bit) should be installed | only available for Corretto 8 |
kill_applic | unicode | True | True | Instead of killing only applications of this package, kill also these running applications; requires "kill_running; use suffix '.exe' or '%' as wildcard | available if activated in spec.json | ||
kill_running | bool | False | kill running instance (for software on_demand) | available if activated in spec.json | |||
local_installer_copy | bool | False | Use a temporary local copy of the installation package to avoid to avoid delays through the network. | increases the required disk space | |||
log_level | unicode | "default", "1", "2", "3", "4", "5", "6", "7", "8", "9" | "default" | False | False | Loglevel for this package | |
set_env_java_home | bool | True | Set Environment JAVA_HOME and PATH to InstallDir of jdk or jre? | ||||
set_jar_handler | bool | True | Set Corretto to default handler for JAR files? (unset on removal) | ||||
silent_option | unicode | "silent", "very silent" | "silent" | False | False | Show (silent) or hide (very silent) progressbar of (un)installer | |
uninstall_before_setup | bool | True | Run uninstall before (re)installation |
variables.opsiinc
- Da Variablen ueber die Scripte hinweg mehrfach verwendet werden, werden diese (bis auf wenige Ausnahmen) zusammengefasst hier deklariert.product_variables.opsiinc
- die producktspezifischen Variablen werden hier definierthelpers.opsifunc
- Bibliothek mit lokalen (Hilfs-)Funktionen.setup.opsiscript
- Das Script fuer die Installation.uninstall.opsiscript
- Das Uninstall-Scriptdelsub.opsiinc
- Wird von Setup und Uninstall gemeinsam verwendet. Vor jeder Installation/jedem Update wird eine alte Version entfernt. (Ein explizites Update-Script existiert derzeit nicht.)checkinstance.opsiinc
- Pruefung, ob eine Instanz der Software laeuft. Gegebenenfalls wird das Setup abgebrochen. Optional kann eine laufende Instanz zwangsweise beendet werden.checkvars.sh
- Hilfsscript fuer die Entwicklung zur Ueberpruefung, ob alle verwendeten Variablen deklariert sind bzw. nicht verwendete Variablen aufzuspueren.bin/
- Hilfprogramme; hier: 7zip, psdetailimages/
- Programmbilder fuer OPSI
Praefixes in der Produkt-Id definieren die Art des Paketes:
- 0_ oder test_ - Es handelt sich um ein Test-Paket. Beim Uebergang zur Produktions-Release wird der Praefix entfernt.
- o4i oder dfn_ - Das Paket ist zur Verwendung im DFN-Repository vorgesehen.
Die Reihenfolge der Praefixes ist relevant; die Markierung als Testpaket ist stets fuehrend.
Suffix:
- ~dl - Das Paket enthaelt die Installationsarchive selbst nicht. Diese werden
erst bei der Installation im Depot vom
postinst
-Skript heruntergeladen.
Dieses OPSI-Paket steht unter der GNU General Public License GPLv3.
Ausgenommen von dieser Lizenz sind die unter bin/
zu findenden
Hilfsprogramme. Diese unterliegen ihren jeweiligen Lizenzen.
Corretto is released under the same open source license as OpenJDK, which is licensed under the GNU Public License version 2 with the Class Path Exception (GPLv2 with CPE). You can use Corretto as you would use OpenJDK.
Quelle: Amazon Corretto FAQs
Autor der Software: Jens Boettge <boettge@mpi-halle.mpg.de>
Die Software psdetail.exe wird als Freeware kostenlos angeboten und darf fuer nichtkommerzielle sowie kommerzielle Zwecke genutzt werden. Die Software darf nicht veraendert werden; es duerfen keine abgeleiteten Versionen daraus erstellt werden.
Es ist erlaubt Kopien der Software herzustellen und weiterzugeben, solange Vervielfaeltigung und Weitergabe nicht auf Gewinnerwirtschaftung oder Spendensammlung abzielt.
Haftungsausschluss:
Der Autor lehnt ausdruecklich jede Haftung fuer eventuell durch die Nutzung
der Software entstandene Schaeden ab.
Es werden keine ex- oder impliziten Zusagen gemacht oder Garantien bezueglich
der Eigenschaften, des Funktionsumfanges oder Fehlerfreiheit gegeben.
Alle Risiken des Softwareeinsatzes liegen beim Nutzer.
Der Autor behaelt sich eine Anpassung bzw. weitere Ausformulierung der Lizenzbedingungen vor.
Fuer die Nutzung wird das .NET Framework ab v3.5 benoetigt.
Autor der Software: Jens Boettge <boettge@mpi-halle.mpg.de>
Die Software GetRealName.exe wird als Freeware kostenlos angeboten und darf fuer nichtkommerzielle sowie kommerzielle Zwecke genutzt werden. Die Software darf nicht veraendert werden; es duerfen keine abgeleiteten Versionen daraus erstellt werden.
Es ist erlaubt Kopien der Software herzustellen und weiterzugeben, solange Vervielfaeltigung und Weitergabe nicht auf Gewinnerwirtschaftung oder Spendensammlung abzielt.
Haftungsausschluss:
Der Autor lehnt ausdruecklich jede Haftung fuer eventuell durch die Nutzung
der Software entstandene Schaeden ab.
Es werden keine ex- oder impliziten Zusagen gemacht oder Garantien bezueglich
der Eigenschaften, des Funktionsumfanges oder Fehlerfreiheit gegeben.
Alle Risiken des Softwareeinsatzes liegen beim Nutzer.
Der Autor behaelt sich eine Anpassung bzw. weitere Ausformulierung der Lizenzbedingungen vor.
Es gilt die Lizenz von http://www.7-zip.org/license.txt. Die Lizenz liegt diesem Paket in CLIENT_DATA/bin/ ebenfalls bei.
Anregung fuer das erstellte Logo war:
https://pixabay.com/de/java-pokal-kaffee-programmierung-151343.
Die Variationen des Icon-Satzes fuer das OPSI-Paket wurden von mir unter Verwendung
weiterer freier Grafiken erstellt.
Jens Boettge <boettge@mpi-halle.mpg.de>, 2023-10-18 15:06:14 +0200