TR / min - Installer les paramètres de temps
J'ai emballé mon application dans un package RPM, dire, myapp.tr /min. Lors de l'installation de cette application, j'aimerais recevoir des entrées de l'utilisateur (par exemple, pour l'entrée pourrait être l'environnement où l'application s'installe - "dev", "qa", "uat", "prod"). D'après les commentaires, l'application va installer les fichiers appropriés. Est-il possible de passer des paramètres lors de l'installation de l'application?
P. S.: Une solution possible pourrait être de créer un paquet RPM pour chaque environnement. Cependant, dans notre scénario, ce n'est pas une option viable, puisque nous avons autour de 20 environnements et nous ne souhaitons pas avoir 20 forfaits différents pour la même application.
OriginalL'auteur saravana_pc | 2011-11-24
Vous devez vous connecter pour publier un commentaire.
En général, les paquets RPM ne doit pas exiger l'interaction de l'utilisateur. Encore une fois, le RPM gens ont dit que c'est un but explicite de RPM pour ne pas avoir interactive installe. Pour les paquets qui ont besoin d'une sorte d'entrée avant la première utilisation, vous demander cette information lors de la première utilisation, notre vous mets tout ça dans des fichiers de configuration avec des macros ou quelque chose et de dire à vos utilisateurs qu'ils auront à configurer l'application pour qu'il soit utilisable.
Même le passage d'un paramètre de type de compte sous la forme d'une interaction de l'utilisateur. Je pense que ce que vous voulez est d'avoir votre pré ou installer des scripts de détection automatique de l'environnement en quelque sorte, peut-être par avoir un fichier à un endroit où ils peuvent examiner. Je vous ferais également remarquer qu'à partir d'un RPM de l'utilisateur du point de vue, un package nommé *-assurance de la qualité.rpm est beaucoup plus intuitif que le passage de certains paramètre aléatoire.
À votre problème, si vous installez un contenu différent, vous devrait créer des packages différents. Si vous essayez de faire les choses différemment, vous allez finir par combattre le système RPM de plus en plus.
Il n'est pas difficile de créer un système qui peut cracher 20+ les paquets qui sont tous pour la plupart similaires. Je l'ai fait avec un modèle-ish dans le fichier de spécification et de certains scripts sont exécutés par faire qui permettra de créer les différents fichiers de spec et de construire des Rpm. Sans connaître les détails, il semble que vous pourriez même avoir un package de base que tous les 20+ environnement paquets dépendent, puis l'environnement packages spécifiques à installer tout ce qui est spécifique à leur environnement cible.
Je voudrais compter que, comme l'interaction de l'utilisateur. Je pense que ce que vous voulez est d'avoir votre pré ou installer des scripts de détection automatique de l'environnement en quelque sorte, peut-être par avoir un fichier à un endroit où ils peuvent examiner. Je vous ferais également remarquer qu'à partir d'un RPM de l'utilisateur du point de vue, un package nommé *-assurance de la qualité.rpm est BEAUCOUP plus intuitif que le passage de certains paramètre aléatoire.
J'ai ajouté l'info dans le commentaire ci-dessus dans ma réponse.
Les variables d'environnement peuvent être référencées dans
%pre
et%post
par s'échapper de la$
, comme ceci:\$MY_SPECIAL_VARIABLE
...aussi, la variable\$RPM_INSTALL_PREFIX
fait référence à l'emplacement qui a été passé en--prefix $MY_CUSTOM_INSTALL_PATH
Vous pouvez utiliser d'exécution TR / min macros. La commande devrait ressembler à ceci:
rpm -i myapp.rpm -D "mode dev"
où la "mode" est le nom de la macro et "dev" ou n'importe quelle chaîne est de sa valeur qu'elle est développée dans les scriplets.OriginalL'auteur kbyrd
Vous pouvez utiliser le déplacer option, par exemple
et avoir votre script à rechercher la variable de données à partir d'un fichier situé dans le "env" annuaire
OriginalL'auteur CormacM
Je pense que c'est une très bonne question, spécialement dès que vous vous déplacez dans le développement de l'application royaume. Il y de configuration de l'application des différents systèmes cible est votre pain quotidien: vous devez configurer pour le Développement, Test d'Intégration, Test d'Acceptation, de Production, etc. Je ne pense pas que la construction d'un paquet séparé pour chaque environnement est la solution. Fondamentalement, il devrait être le même code qui s'exécute dans différents environnements.
Je sais que cette exigence n'est pas pris en charge par le rpm. Mais ce que vous pouvez faire pour contourner ce problème est d'utiliser un simple fichier de configuration, que l' %pré script sait
pour chercher. Le fichier de configuration pourrait être un simple script shell que, par exemple, définit les variables d'environnement, puis les différents und pré-et post-scripts peuvent utiliser ces.
OriginalL'auteur chenrici