När du använder Solaris Live Upgrade och skapar en ny startmiljö undviker du problem genom att följa de här riktlinjerna.
Paketprocedurskripten måste vara oberoende av den för tillfället aktiva operativmiljön. Procedurskripten definierar åtgärder som inträffar vid vissa punkter under paketinstallation och -borttagning. Det finns fyra procedurskript som kan skapas med de här fördefinierade namnen: preinstall, postinstall, preremove och postremove. Paketprocedurskripten måste vara oberoende av den för tillfället aktiva operativmiljön eftersom en växling till en alternativ startmiljö kan ske om Solaris Live Upgrade används.
De här skripten får inte starta eller stoppa några processer eller vara beroende av resultat från kommandon, som exempelvis ps eller truss, som är operativsystemsberoende och rapporterar information om systemet som körs för tillfället.
Procedurskripten får använda andra standardkommandon för UNIX, som exempelvis expr, cp och ls samt andra kommandon som underlättar skalskript. Den aktuella alternativa roten (/) får dock inte ändras annat än inom de ramar som anges i avsnittet "Krav för alternativ rot (/) för anpassad JumpStart och Solaris Live Upgrade ".
Alla skript måste skrivas i bourne-skal (/bin/sh). Bourne-skal är tolken som används av kommandot pkgadd för att köra procedurskript.
Paketprocedurskript får inte anropa kommandon som inte finns i versioner före version 2.6. Paketprocedurskript kan till exempel inte anropa kommandot pgrep. Sedan version 2.6 har många kommandon fått ytterligare funktioner. Paketprocedurskript får inte använda kommandoalternativ som inte fanns i version 2.6. Alternativet -f är till exempel ett nytt alternativ för kommandot umount.
Alla paket måste genomgå en pkgchk-validering. När ett paket har skapats, måste det kontrolleras med följande kommando innan det installeras.
# pkgchk -d katalognamn paketnamn |
katalognamn |
Anger namnet på den katalog där paketet finns |
paketnamn |
Anger namnet på paketet |
Om ett paket finns i /export/SUNWvxvm, till exempel, utfärdar du följande kommando.
# pkgchk -d /export SUNWvxvm |
Inga fel visas.
När ett paket har skapats måste det testas genom att det installeras till en alternativ rotplats (/) med alternativet -R katalognamn till pkgadd. Så fort detta är färdigt måste paketet kontrolleras med pkgchk, som i följande exempel.
# pkgadd -d . -R /a SUNWvxvm # pkgchk -R /a SUNWvxvm |
Inga fel visas.
Paket får heller inte köra kommandon som levereras av paketet självt. Skälet är att kompatibilitet med skivlöshet eftersträvas och att kommandon som kräver delade bibliotek som ännu inte är installerade förhindras.
De här kraven för att skapa, ändra och ta bort filer kan verifieras med flera olika kommandon. Kommandona dircmp och fssnap till exempel kan användas för att verifiera att paketen fungerar som de ska. Dessutom kan kommandot ps användas för att testa bakgrundsprogramskompatibilitet genom att kontrollera att bakgrundsprogram inte stoppas eller startas av paketet. Kommandona truss och pkgadd kan testa paketinstallation vid körtid, men de fungerar inte alltid i alla situationer. I följande exempel stryker kommandot truss bort alla skrivskyddade, icke-$BASEDIR-åtkomst och visar bara icke-skrivskyddad åtkomst till sökvägar som inte ligger inom den alternativa rot (/) som angetts.
# BASEDIR=/a; export BASEDIR # truss -t open /usr/sbin/pkgadd -R ${BASEDIR} SUNWvxvm \ 2>&1> /dev/null | grep -v O_RDONLY | grep -v \ 'open("'${BASEDIR} |
Om du vill ha detaljerad information om kommandon som det refereras till i den här avsnittet, läser du i direkthjälpen (man pages), dircmp(1), fssnap(1M), ps(1), eller truss(1).