2010-03-04 14 views
0

J'ai demandé une question similaire pour Linux RPM (Adding License Agreement in RPM package). Maintenant, j'ai la même requête pour le paquet Solaris. Je n'ai pas pu trouver de lien/détails utiles si c'est possible. Mais j'ai trouvé un paquet qui fait exactement la même chose mais comment il a été implémenté, ce n'est pas mentionné.Ajout d'un contrat de licence utilisateur dans le package Solaris

$pkgadd -d . SUNWsamfsr SUNWsamfsu 

Processing package instance from 

Sun SAM and Sun SAM-QFS software Solaris 10 (root)(i386) 4.6.5,REV=5.10.2007.03.12 

Sun SAMFS - Storage & Archiving Management File System 

Copyright (c) 2007 Sun Microsystems, Inc. 

All Rights Reserved. 


----------------------------------------------------- 

In order to install SUNWsamfsr, you must accept the terms of 
the Sun License Agreement. 
Enter "y" if you do, "n" if you don't, or "v" to view agreement. y 

-The administrator commands will be executable by root only (group bin). 

If this is the desired value, enter "y". If you want to change 
the specified value enter "c". y 
... 
... 

Des idées pour implémenter une telle chose pour le paquet Solaris?

Répondre

0

J'ai trouvé un moyen de le résoudre.

Le binaire auto-extractible est la façon de le faire.

Créez un script shell qui affichera d'abord la licence de l'utilisateur final et acceptera l'entrée de l'utilisateur, que l'utilisateur soit d'accord ou non.

Une fois que l'utilisateur est d'accord, extrayez le fichier binaire (fichier package solaris) incorporé dans le script shell et installez-le.

Pour intégrer installateur pacakge, ajoutez d'abord un marqueur permet de dire PKG_DATA:

shell script contents 
exit 0 
PKG_DATA 

renseignera le fichier package:
chat pkg_file_name >> your_shell_script

Extrait du paquet et l'installer:

ARCHIVE=awk '/^__PKG_DATA__/ {print NR + 1; exit 0; }' $0 
outname=install.$$ 
tail -n+$ARCHIVE $0 > $outname 

echo "Extracting..." 
pkgadd -d $outname 
rm -f $outname #we dont need it anymore 

exit 0 

PKG_DATA 
<pkg file data here> 
+0

liens Usefule: http://www.linuxjournal.com/content/add-binary-payload-your-shell-scripts http://www.linuxjournal.com/node/ 1005818 – Adil

0

Je l'implémenterais en utilisant le script checkinstall. "Exit 3" dans ce script termine gracieusement l'installation du package.

Ce n'est pas trivial car vous devez créer un script de requête et le référencer dans le script checkinstall.

http://docs.oracle.com/cd/E18752_01/html/817-0406/ch1designpkg-24309.html#ch1designpkg-4

+0

En fait, 'checkinstall' est censé être non-interactif. 'request' est interactif, et il est exécuté pendant l'installation du paquet - vous n'avez pas besoin d'exécuter' request' depuis 'checkinstall'. – Kenster

+0

C'est ce que je voulais dire, mais pas assez clairement. Vous utilisez le script de requête pour interagir avec l'utilisateur et quitter 3 à partir du fichier checkinstall. Par référence, je veux dire que le script de requête définit une variable qui sera utilisée dans checkinstall. C'est ainsi que la demande est conçue. http://docs.sun.com/app/docs/doc/806-7008/6jftmsc2v?a=view – jlliagre

+0

Le contrat de licence doit être affiché et accepté avant d'installer le pacakge. – Adil