Comment puis-je créer un paquet solaris qui ne détruira pas les liens souples lorsque le paquet sera installé? Ces liens symboliques font-ils partie du fichier prototype de votre package?Fichier prototype pkgadd qui ne casse pas les liens
Répondre
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.
Si oui, comment sont-ils définis?
Que voulez-vous dire par rompre les liens? Je peux penser à un certain nombre de choses qui pourraient arriver aux liens:
- Ecraser un lien symbolique avec un fichier
- Ecraser un lien symbolique avec un répertoire
- 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.
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
@ 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