IT. Menschen. Leidenschaft.
Solaris 11 IPS - Erstellung und Verwaltung
eigener SW-Pakete
Heiko Stein Senior Architekt
etomer GmbH
© etomer GmbH 01.03.2012 / Folie 1
IT. Menschen. Leidenschaft.
• Beratungsorientiert.
• Fokus auf Technik, Prozesse und Menschen.
• Hochspezialisiert.
• Kernkompetenz auf Technologien und Prozesse im Umfeld
produktionskritischer und hochverfügbarer IT-Infrastrukturen.
• Projekterfahren.
• Mehr als 12 Jahre Erfahrung in Projekten bei Enterprise-Kunden
verschiedenster Branchen.
• Verbindlich.
• Leitbild - Zentrum unserer Aktivitäten.
• Wir übernehmen Verantwortung für unsere Beratung, unser Tun und
Handeln.
• Herstellerneutral.
• Technologie- und herstellerübergreifende Beratung zur lösungsorientierten
Arbeit mit unseren Kunden.
etomer GmbH – das ganzheitliche Systemhaus aus Berlin
© etomer GmbH 13.09.2012 / Folie 2
IT. Menschen. Leidenschaft.
• Motivation oder weshalb sollte man sich mit IPS
beschäftigen?
• Kurzeinführung IPS
• Terminologien
• Aufbau IPS Paket
• Praktische Beispiele
• Erstellung eines IPS Repository
• Erstellung von IPS Paketen
Agenda
© etomer GmbH 13.09.2012 / Folie 3
IT. Menschen. Leidenschaft.
• IPS ist der neue SW-Paketierungsmechanismus in Oracle Solaris 11 …
• Für Virtualisierung und Automatisation ist einen versionierbarer, automatisierbarer
und sicherer Softwareverteilmechanismus unumgänglich
• Integration in den mit Oracle Solaris 11 eingeführten Installationsmechanismus AI
• Erweiterung der AI-basierenden OS-Installation, um ein auf IPS basierendes
automatisiertes Customizing des Betriebssystems bereits während der Installation
vorzunehmen („First-Boot-Service“)
• Für Entwickler zum Deployment der erstellten Software
Motivation oder weshalb sollte man sich mit IPS beschäftigen?
© etomer GmbH 13.09.2012 / Folie 4
IT. Menschen. Leidenschaft.
• Das Image Packaging System (IPS) ist ein netzwerk-zentrisches
Paketverwaltungssystem, das Softwarepakete in Repositories bereithält.
• Diese Pakete werden mit den Paketverwaltungstools aus diesen Repository
heraus direkt installiert oder aktualisiert. (via http)
• Zusammen mit IPS werden eine Reihe von Tools zur Installation, Aktualisierung,
Verwaltung und Verifikation von Paketen eingeführt. Zur Paketverwaltung wird am
Client das pkg(1)-Tool verwendet, für das ebenfalls GUI-Tools zur Verfügung
stehen.
• Transparente Multi-Architektur Unterstützung
• Web-based Installer
Kurzeinführung IPS (1)
© etomer GmbH 13.09.2012 / Folie 5
IT. Menschen. Leidenschaft.
Kurzeinführung IPS (2)
© etomer GmbH 13.09.2012 / Folie 6
IT. Menschen. Leidenschaft.
IPS Repository • Ein Repository/Depot-Server ist eine Sammlung von IPS-Paketen
– Local z.B. file://install/repo_s11u1/repo
– HTTP z.B. http://192.168.56.10/
• Ein physikalisches System kann ein oder mehrere Repositories enthalten
• Ein Paket wird für die Installation ausgewählt und der aktuellste Stand dieses
Paketes (insofern nicht anders angegeben) wird aus den zur Auswahl stehenden
Repositories ausgewählt
Terminologien (1)
© etomer GmbH 13.09.2012 / Folie 7
# pkgrepo get -s /install/repo_s11u1/repo
SECTION PROPERTY VALUE
publisher prefix solaris
repository description This\ repository\ serves\ a\ copy\ of\ the\ Oracle\ Solaris\ 11.1\
Build\ 24b\ Package\ Repository.
repository name Oracle\ Solaris\ 11.1\ Build\ 24b\ Package\ Repository
repository version 4
IT. Menschen. Leidenschaft.
Publisher • Ein Publisher ist eine organisatorische Einheit
(Ordnungsbegriff/Personen/Gruppen von Personen oder ein Unternehmen),
welche IPS-Pakete veröffentlichen … – Defaultpublisher für Solaris 11 Distribution/SRU‘s
• http://pkg.oracle.com/solaris/release
• Ein Repository kann mehrere Publisher enthalten.
• Ebenso können mehrere Repositories denselben Publisher enthalten
Terminologien (2)
© etomer GmbH 13.09.2012 / Folie 8
# pkg publisher
PUBLISHER TYPE STATUS P LOCATION
solaris origin online F file:///install/repo_s11u1/repo/
solaris origin online F http://192.168.56.10/
IT. Menschen. Leidenschaft.
IPS Image • Ein Image ist ein Verzeichnis im System, wo Pakete und deren zugehörige
Dateien, Verzeichnisse, Links und Abhängigkeiten installiert werden können.
Terminologien (3)
© etomer GmbH 13.09.2012 / Folie 9
Full Image (Solaris)
Zone Image
Custom Image (Applicationserver)
Custom Image (Applicationserver)
Imagetypen
• Full Image (komplette Solaris Distribution)
• Zones Images
• Auf das Image der globalen Zone (parent
image) verlinktes Image
• Custom Images, beispielsweise für den
konsistenten Rollout eigener
Softwareumgebungen
IT. Menschen. Leidenschaft.
IPS Paket • IPS verwaltet Software in konsistenten Paketen
• Ein IPS-Paket ist ein Bundle aus Metadaten und installierbaren Objekten in einem
definierten Format
• Ein IPS-Paket besteht aus einer Sammlung von Actions: – Actions werden in dem Manifest eines Pakets beschrieben
– Actions werden für die Festlegung der Dateien und Verzeichnisse des Pakets verwendet
– Actions setzten Paket Attribute
– Definieren Abhängigkeiten von anderen Paketen
– Erstellen Benutzer und Gruppen
– Installation von Gerätetreibern
• Action Types – file, directory, link, set, driver, depend, license, user, legacy, signature
Terminologien (4)
© etomer GmbH 13.09.2012 / Folie 10
IT. Menschen. Leidenschaft.
FMRI • Jedes IPS-Paket wird durch einen Fault Management Resource Identifier (FMRI)
repräsentiert. Der FMRI enthält beschreibende Informationen über das Paket: – Publisher des Pakets
– Paket Name
– Versionsnummer
– Release Datum
• Beispiel: pkg://solaris/development/[email protected],5.11-0.175.0.0.0.0.1:20111019T082311Z
– Schema pkg
– Publisher solaris
– Kategorie development
– Name swtool
– Version
• Component 1.0
• Build 5.11
• Final 175.0.0
• Creation Time(ISO-8601) 20111019T082311Z <- wird beim Import ins Repository erzeugt
Terminologien (5)
© etomer GmbH 13.09.2012 / Folie 11
IT. Menschen. Leidenschaft.
Aufbau IPS Paket (1)
© etomer GmbH 13.09.2012 / Folie 12
Zur Erstellung eines IPS Pakets, wird
folgendes benötigt:
• Paket-Quellen(Content) • Verzeichnisse
• Dateien
• Links
• …
• Paket-Manifest (Metadaten) • Lizenzinformationen
• Beschreibung
• Verzeichnislisten
• Dateilisten
• Abhängigkeiten
• …
IT. Menschen. Leidenschaft.
Manifest • Das Manifest enthält :
– Paketbeschreibung
– Classification
– Lizenzen
– Abhängigkeiten
Aufbau IPS Paket (2)
© etomer GmbH 13.09.2012 / Folie 13
# pkg contents -m zip
set name=pkg.fmri value=pkg://solaris/compress/[email protected],5.11-0.175.1.0.0.24.0:20120904T170611Z
…
set name=variant.arch value=i386 value=sparc
set name=org.opensolaris.consolidation value=userland
set name=pkg.description value="The Info-Zip (zip) compression utility"
…
dir group=sys mode=0755 owner=root path=usr
…
dir facet.doc.man=true group=bin mode=0755 owner=root path=usr/share/man
…
file 68a5dd58add08121bb69fef0f760a178631bb833 chash=32d7fb7ec1d1e9ab224eab1d2f7780fad0a5aac1
elfarch=sparc elfbits=32 elfhash=335e09b2f32b3ff1a5117bd61448423ea229406f group=bin mode=0555
owner=root path=usr/bin/zip pkg.csize=121716 pkg.size=239504 variant.arch=sparc
…
IT. Menschen. Leidenschaft.
Variants und Facets in IPS Paketen dienen zur Steuerung der bereits erwähnten
Actions und bestimmen, ob eine Action während der Installation ausgeführt oder
unterdrückt wird.
Variants • Steuerung der Installation eines Paketes unter bestimmten Bedienungen
– variant.arch sparc, i386
– variant.opensolaris.zone global, nonglobal
– variant.debug.* true, false
Facets • Mechanismus zur Steuerung optionaler Paketbestandteile (locales, man pages,
etc.) – facet.locale.* true, false
– facet.doc.man true, false
Aufbau IPS Paket (3)
© etomer GmbH 13.09.2012 / Folie 14
IT. Menschen. Leidenschaft.
Actuators • Actuators sind Tags an IPS Actions, über die eine spezielle Handlung bei
Installation/Aktualisierung/Entfernen eines Paketes getriggert werden kann – reboot-needed
– SMF-Actuators
• First-boot Service in AI
• Postinstall Script
Dependencies • Verbindliche Abhängigkeiten auf andere Pakete
• Typen – Require, Require-any, Conditional, Group, Optional, Origin, Incorporate, Parent, Incorporate, Exclude
Aufbau IPS Paket (4)
© etomer GmbH 13.09.2012 / Folie 15
IT. Menschen. Leidenschaft.
• Setup IPS Repository unter /install/repo_custom/repo
Erstellung eines IPS Repository (1)
© etomer GmbH 13.09.2012 / Folie 16
# pkgrepo create /install/repo_custom/repo
# pkgrepo -s /install/repo_custom/repo add-publisher custom
# pkgrepo set -s /install/repo_custom/repo repository/description="Custom Repository“
# pkgrepo set -s /install/repo_custom/repo repository/prefix="custom“
# pkgrepo get -s /install/repo_custom/repo
SECTION PROPERTY VALUE
publisher prefix custom
repository description Custom\ Repository
repository prefix custom
repository version 4 …
IT. Menschen. Leidenschaft.
• Publisher lokal an System eintragen
Erstellung eines IPS Repository (2)
© etomer GmbH 13.09.2012 / Folie 17
# pkg set-publisher -g /install/repo_custom/repo custom
# pkg publisher
PUBLISHER TYPE STATUS P LOCATION
solaris origin online F file:///install/repo_s11u1/repo/
solaris origin online F http://192.168.56.10/
custom origin online F file:///install/repo_custom/repo/
# pkg publisher custom
Publisher: custom
Alias:
Origin URI: file:///install/repo_custom/repo/
SSL Key: None
SSL Cert: None
Client UUID: 7af932c6-2c28-11e2-b1d6-880027103448
Catalog Updated: November 11, 2012 05:46:51 PM
Enabled: Yes
IT. Menschen. Leidenschaft.
• Funktion – Installation /usr/local/bin/app1.sh
– Adduser „appusr“ + PW + Userhome
Erstellung eines IPS Packages (1) – wenns mal schnell …
© etomer GmbH 13.09.2012 / Folie 18
# ls
add.sh app1.sh
# vi add.sh
…
PKG_REPO="file:///install/repo_custom/repo/"
export PKG_REPO
eval `pkgsend open [email protected],5.11-0.0.0 `
pkgsend add set name=pkg.frmi value="pkg://custom/[email protected],5.11-0.0.0 "
pkgsend add set name=pkg.description value="Full Description of app1 functionality"
pkgsend add set name=pkg.summary value=“App1 package"
pkgsend add set name=variant.arch value="i386" value="sparc“
pkgsend add file `pwd`/app1.sh mode=0755 owner=appusr group=other path=/usr/local/bin/app1.sh
pkgsend add dir path=export/home/appusr group=other mode=0755 owner=appusr
pkgsend add user gcos-field="App User" home-dir="/export/home/appusr" group=staff uid=1000 \
password="$5$S8iKn7gN$0y1GmzcpvLHLv65dbdB/APPsdDcTm.KhOAKM2vZeNS/" username=appusr
pkgsend close
IT. Menschen. Leidenschaft.
• Einspielen der Quellen/Metadaten ins Repository
• Aktualisierung IPS Cache (!)
• Überprüfung
Erstellung eines IPS Packages (2) – wenns mal schnell …
© etomer GmbH 13.09.2012 / Folie 19
# ./add.sh
pkg://custom/[email protected],0.5.11-0.0.0:20121112T060410Z
PUBLISHED
# pkg list -af app1
pkg list: no packages matching 'app1' known
# pkg refresh --full custom
# pkg list -af app1
NAME (PUBLISHER) VERSION IFO
app1 1.0-0.0.0 ---
# pkg info -r app1
Name: app1
Summary: App1 package
Description: Full Description of app1 functionality
...
FMRI: pkg://custom/[email protected],0.5.11-0.0.0:20121112T060410Z
IT. Menschen. Leidenschaft.
1.) Sourcetree
2.) Initiales Manifest erstellen
• SMF Actuator für trigger.xml manuell einfügen (optional)
Erstellung IPS Packages – generelle Vorgehensweise(1)
© etomer GmbH 13.09.2012 / Folie 20
# find app2
app2
app2/lib
app2/lib/app2.libg.so1
app2/lib/app2.lib.so1
app2/bin
app2/bin/app2.sh
# pkgsend generate app2 | pkgfmt > app2.p5m.m
# vi app2.p5m.m
dir path=opt/app2 owner=root group=bin mode=0755
dir path=opt/app2/bin owner=root group=bin mode=0755
file opt/app2/bin/app2.sh path=opt/app2/bin/app2.sh owner=root group=bin mode=0755
dir path=opt/app2/lib owner=root group=bin mode=0755
file opt/app2/lib/app2.lib.so1 path=opt/app2/lib/app2.lib.so1 owner=root group=bin mode=0644
file opt/app2/lib/app2.libg.so1 path=opt/app2/lib/app2.libg.so1 owner=root group=bin mode=0644
file trigger.xml owner=root group=bin mode=0644file var/svc/manifest/system/trigger.xml \
restart_fmri=svc:/system/manifest-import:default path=var/svc/manifest/system/trigger.xml \
owner=root group=bin mode=0644
IT. Menschen. Leidenschaft.
2.1) Erläuterung SMF Actuator
– restart_fmri=svc:/system/manifest-import:default
– SMF Manifest
– Exec-Methode
Erstellung IPS Packages – generelle Vorgehensweise(1.1)
© etomer GmbH 13.09.2012 / Folie 21
# cat trigger.xml
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type='manifest' name='trigger'>
…
exec='/opt/app2/bin/app2.sh'
…
</service_bundle>
# cat app2.sh
…
logger -p "daemon.err" "Script via SMF-Actuator per Service svc:/system/trigger gestartet"
#
logger -p "daemon.err" "Script via SMF-Actuator per Service svc:/system/trigger beendet"
#
svccfg delete -f trigger &
…
IT. Menschen. Leidenschaft.
3.) Metadatenfile erzeugen
• Depencies auf pkg:/custom/app1 manuell einfügen (optional)
4.) Initiales Manifest mit Metadatenfile mergen
Erstellung IPS Packages – generelle Vorgehensweise(2)
© etomer GmbH 13.09.2012 / Folie 22
# vi app2.mog
set name=pkg.fmri value=pkg://custom/[email protected],0.5.11-0.0.0
set name=pkg.description value="Full Description of app2 functionality"
set name=pkg.summary value=“App2 package"
set name=variant.arch value="i386" value="sparc"
set name=info.classification value=org.opensolaris.category.2008:Applications/Accessories
depend fmri=pkg://custom/[email protected] type=require
# pkgmogrify app2.p5m.m app2.mog | pkgfmt > app2.p5m.mog
IT. Menschen. Leidenschaft.
5.) Packagedependencies überprüfen
– Automatische Erzeugung diverser Kontrollfiles
6.) Package final verifizieren
7.) Package in Repository einspielen
Erstellung IPS Packages – generelle Vorgehensweise(3)
© etomer GmbH 13.09.2012 / Folie 23
# pkgdepend generate -md app2 app2.p5m.mog > app2.p5m.dep
# pkgdepend resolve -m app2.p5m.dep
# ls ./app2*
./app2.mog ./app2.p5m.dep ./app2.p5m.dep.res ./app2.p5m.m ./app2.p5m.mog
./app2.p5m.ww
# pkglint app2.p5m.dep.res
# pkgsend -s /install/repo_custom/repo publish -d app2 app2.p5m.dep.res
pkg://custom/[email protected],0.5.11-0.0.0:20121112T061750Z
PUBLISHED
IT. Menschen. Leidenschaft.
• Greifen die Dependencies ?
– depend fmri=pkg://custom/[email protected] type=require
• Hat der Actuator gegriffen ?
• restart_fmri=svc:/system/manifest-import:default
Erstellung IPS Packages – Funktionstest
© etomer GmbH 13.09.2012 / Folie 24
# pkg list -af 'app*'
NAME (PUBLISHER) VERSION IFO
app1 1.0-0.0.0 ---
app2 1.0-0.0.0 ---
# pkg install app2
# pkg list -af 'app*'
NAME (PUBLISHER) VERSION IFO
app1 1.0-0.0.0 i--
app2 1.0-0.0.0 i--
# tail /var/adm/messages
…
[ID 702911 daemon.error] Script via SMF-Actuator per Service svc:/system/trigger gestartet
[ID 702911 daemon.error] Script via SMF-Actuator per Service svc:/system/trigger beendet
IT. Menschen. Leidenschaft.
• Einfache Variante über Erhöhung der Versionsnummer im Manifest
– name=pkg.frmi value="pkg://custom/[email protected],5.11-0.0.0„
– name=pkg.frmi value="pkg://custom/[email protected],5.11-0.0.0„
• Neu ins Manifest importieren
• Update
Erstellung IPS Packages – Update
© etomer GmbH 13.09.2012 / Folie 25
# pkg list -af app1
NAME (PUBLISHER) VERSION IFO
app1 2.0-0.0.0 ---
app1 1.0-0.0.0 i--
# pkg install app1
# pkg list -af app1
NAME (PUBLISHER) VERSION IFO
app1 2.0-0.0.0 i--
app1 1.0-0.0.0 ---
IT. Menschen. Leidenschaft.
Hint: „Reverse engineering“
Erstellung IPS Packages – Hints (1)
© etomer GmbH 13.09.2012 / Folie 26
# pkg contents -r app2
PATH
opt/app2
opt/app2/bin
opt/app2/bin/app2.sh
opt/app2/lib
opt/app2/lib/app2.lib.so1
opt/app2/lib/app2.libg.so1
var/svc/manifest/system/trigger.xml
# pkg contents -mr app2
set name=pkg.fmri value=pkg://custom/[email protected],0.5.11-0.0.0:20121120T211200Z
set name=pkg.summary value="App2 package"
set name=pkg.description value="Full Description of app2 functionality"
set name=info.classification value=org.opensolaris.category.2008:Applications/Accessories
set name=variant.arch value=i386 value=sparc
dir group=bin mode=0755 owner=root path=opt/app2
…
file a061a7139a9470536cb2bf957415b91cab2c3f7b chash=d543f28bb17807cfa7a565b9a0193ba7358ab937
group=bin mode=0644 owner=root path=var/svc/manifest/system/trigger.xml pkg.csize=451
pkg.size=1092 restart_fmri=svc:/system/manifest-import:default
set name=org.opensolaris.smf.fmri value=svc:/system/trigger:default value=svc:/system/trigger
…
IT. Menschen. Leidenschaft.
Hint: Package in *.p5p Package Archive umwandeln
– Vergleichbar mit SysV Datastream Format
Hint: *.p5p ist ein Pax-Archiv
Erstellung IPS Packages – Hints (2)
© etomer GmbH 13.09.2012 / Folie 27
# pkgrecv -s /install/repo_custom/repo -a -d app2.p5p app2
Retrieving packages for publisher custom ...
Retrieving and evaluating 1 package(s)...
DOWNLOAD PKGS FILES XFER (MB) SPEED
Completed 1/1 4/4 0.0/0.0 94.5k/s
ARCHIVE FILES STORE (MB)
app2.p5p 16/16 0.0/0.0
# pax -vf app2.p5p
USTAR format archive extended
-rw-r--r-- 0 root root 330 Nov 20 22:05 pkg5.index.0.gz
drwxr-xr-x 0 root root Nov 16 14:23 publisher
drwxr-xr-x 0 root root Nov 20 22:05 publisher/custom
drwxr-xr-x 0 root root Nov 20 22:05 publisher/custom/pkg
drwxr-xr-x 0 root root Nov 20 22:05 publisher/custom/pkg/app2
-rw-r--r-- 0 root root 1631 Nov 20 22:05 publisher/custom/pkg/app2/1.0%2C0.5.11-
0.0.0%3A20121120T210456Z
…
…
IT. Menschen. Leidenschaft.
Hint: Metadatenmanifest für Gruppendependencies
– Vergleichbar mit Solaris 10 Installcluster …
Hint: Keine Prüfung der Paket Version bei Import ins Repository (…Timestamp…)
Erstellung IPS Packages – Hints (3)
© etomer GmbH 13.09.2012 / Folie 28
# more group-app.mog
set name=pkg.fmri value=pkg://custom/group/[email protected],5.11-0.0.0
set name=pkg.summary value="App1 and App2"
set name=pkg.description value="Bundle of great applications app1 and app2"
set name=info.classification value="org.opensolaris.category.2008:Meta Packages/Group
Packages"
set name=variant.arch value=sparc value=i386
set name=variant.opensolaris.zone value=global value=nonglobal
depend fmri=/custom/[email protected] type=group
depend fmri=/custom/[email protected] type=group
# pkg list -afv app1
FMRI IFO
pkg://custom/[email protected],5.11-0.0.0:20121112T145517Z ---
pkg://custom/[email protected],5.11-0.0.0:20121112T145513Z ---
pkg://custom/[email protected],5.11-0.0.0:20121112T145509Z ---
pkg://custom/[email protected],5.11-0.0.0:20121112T145504Z ---
pkg://custom/[email protected],5.11-0.0.0:20121112T132052Z i--
IT. Menschen. Leidenschaft.
• Die Einführung von IPS als neues Packaging Formates in Oracle Solaris 11 führt zu einer
neuen Form der automatisierten Installation
• Mit dieser neuen Installationsmethode werden viele Mechanismen klarer strukturiert und
vereinfacht
• Einfache, als auch komplexe Softwarestrukturen können ausgerollt werden
Zusammenfassung
© etomer GmbH 13.09.2012 / Folie 29
IT. Menschen. Leidenschaft.
• Application Packaging Developer's Guide
http://defect.opensolaris.org/bz/attachment.cgi?id=4607
• Copying and Creating Oracle Solaris 11 Package Repositories
http://docs.oracle.com/cd/E23824_01/html/E21803/index.html
Quellen
© etomer GmbH 13.09.2012 / Folie 30
IT. Menschen. Leidenschaft.
Fragen? Gern.
© etomer GmbH 01.03.2012 / Folie 31
IT. Menschen. Leidenschaft.
Vielen Dank für Ihre Aufmerksamkeit. [email protected]
© etomer GmbH 01.03.2012 / Folie 32
IT. Menschen. Leidenschaft.
Package Dependencies • Require
– verweist auf ein Package mit einer definierten Version
• Require-any – verweist auf ein beliebiges Package aus einer Liste von Packages
• Conditional – Installiert ein weiteres Package, insofern das referenzierte Package installiert ist
• Group – Gruppe, kann vom User überschrieben werden
• Optional – Optional, wird installiert wenn vorhanden
Kurzeinführung IPS / Anhang (1)
© etomer GmbH 13.09.2012 / Folie 33
IT. Menschen. Leidenschaft.
Package Dependencies • Origin
– Minimalversion des zu installierenden Images
• Incorporate – Limitieren der Version eines referenzierten Packages
• Parent – Erzwingt die Installation in lokale Zone
• Exclude
- Ausschluss der Installation des benannten Packages
Kurzeinführung IPS / Anhang (2)
© etomer GmbH 13.09.2012 / Folie 34
IT. Menschen. Leidenschaft.
IPS Commands
• IPS Commands
• pkg(1) – Use the pkg(1) command to create an image, to install packages to your image, and to manage packages on
your image.
• pkgdepend(1) – pkgdepend(1) is used to generate and resolve dependencies for packages. A package may depend upon
files from other packages. pkgdepend(1) is typically used in two passes :
• file dependency generation
• file-to-package resolution.
• pkgmogrify(1) – Use pkgmogrify(1) to transform the raw manifest file that had been generated with pkgdepend(1)
• pkgsend(1) – Use the pkgsend(1) command to publish packages from your image to an existing repository.
• pkgrecv(1) – Use the pkgrecv(1) command to download the contents of a package from a server. The user can use
pkgrecv(1) to automatically republish the retrieved packages to a local repository. Alternatively the user can modify the contents by adding additional package attributes and republish the package with the pkgsend(1) command.
• pkgrepo(1M) – Use the pkgrepo(1M) command to create and manage local repository's storage and properties.
• pkg.depotd(1M) – Use the pkg.depotd(1M) daemon to run your own network repository or set up mirror repositories.
Kurzeinführung IPS / Anhang (3)
© etomer GmbH 13.09.2012 / Folie 35
IT. Menschen. Leidenschaft.
Actuators • Tag applied to any action that causes a system change when that
• action is installed, removed or updated
• The following tags can be added to any action in a manifest:
• reboot-needed
• This actuator takes the value true or false. This actuator declares that installation, removal or update of the
• tagged action requires a reboot when IPS is operating on a live image.
• The following actuators are related to SMF services, and are the ones we will focus on in this chapter.
• SMF Actuators
• SMF actuators take a single SMF FMRI as a value, possibly including globbing characters to match multiple FMRIs.
• If the same FMRI is tagged by multiple actions, possibly across multiple packages being operated on, IPS will only
• trigger that actuator once.
• The following list of SMF actuators describes the effect on the service FMRI that is the value of each named
• actuator:
• disable_fmri
• The given service should be disabled prior to the package operation being performed
• refresh_fmri
• The given service should be refreshed after the package operation has completed
• restart_fmri
• The given service should be restarted after the package operation has completed
• suspend_fmri
• The given service should be temporarily suspended prior to the package operation and enabled once it has
• completed
Kurzeinführung IPS / Anhang (4)
© etomer GmbH 13.09.2012 / Folie 36