2010-01-13 11 views

Répondre

0

Vous pouvez utiliser le champ de classe dans le fichier prototype pour installer les objets de manière conditionnelle. Par exemple:

d none /foo 0775 $USER $GROUP 
d createbar /bar 0775 $USER $GROUP 

Le répertoire/foo sera normalement toujours créé car "none" est la classe par défaut. D'un autre côté,/bar ne sera créé que si le programme d'installation est configuré pour installer des éléments dans la classe "createbar".

L'ensemble initial de classes à installer est défini dans le fichier pkginfo. Vous pouvez modifier la liste des classes dans les scripts request ou checkinstall. L'idée est que l'un de ces scripts effectue une vérification pour décider d'installer les composants optionnels, puis modifie les CLASSES de manière appropriée. Par exemple:

# Create /bar unless it already exists as a symlink 
if [ ! -L /bar ] 
then 
    echo "CLASSES=${CLASSES} createbar" 
fi 

Si cette réponse ne répond pas à vos besoins, vous pourriez peut-être donner une meilleure description de ce que vous essayez de faire.

0

Si oui, comment sont-ils définis?

+0

Si vous avez une nouvelle question, posez-la en cliquant sur le bouton [Poser une question] (http://stackoverflow.com/questions/ask). Incluez un lien vers cette question si cela aide à fournir un contexte. – memmons

+0

@ MichaelG.Emmons Pas une nouvelle question, cela aurait dû être un commentaire à la question OP. Une erreur de quatre ans. Va l'enlever rapidement – jlliagre

0

Que voulez-vous dire par rompre les liens? Je peux penser à un certain nombre de choses qui pourraient arriver aux liens:

  1. Ecraser un lien symbolique avec un fichier
  2. Ecraser un lien symbolique avec un répertoire
  3. Mettez un fichier dans un répertoire pour lequel un lien symbolique est pointage (disons, vous installez dans/opt/foo/bar, et/opt/foo est un lien symbolique)

Il serait utile si vous avez clarifié votre question.

Dans les deux cas cependant, les class action scripts sont quelque chose que vous pourriez vouloir regarder, si vous voulez manipuler certains fichiers de votre paquet d'une manière spéciale.

Dans le fichier prototype, vous devez attribuer un nom de classe à un fichier, et dans un package différent, vous devez fournir un script qui gérera cette classe. Vous pouvez jeter un oeil à CSWcswclassutils, un paquet qui fournit un certain nombre d'exemples d'actions de classe. Vous créez un package similaire fournissant un script d'action de classe et utilisez les scripts de votre package avec des fichiers spéciaux.