Comment définir des variables d'environnement?

90

J'essaie de configurer Apache Tomcat sur mon ordinateur. Il souhaite que je configure une variable d'environnement pour CATALINA_HOME. Est-ce que tout le monde sait comment faire cela?

Jumpnett
la source

Réponses:

100

En bash, vous pouvez définir des variables comme ceci:

export CATALINA_HOME=/opt/catalina

la plupart des autres coquilles suivent cette convention, mais pas toutes. Vous pouvez le définir de manière permanente ~/.profilepour bash (et comme auparavant, d'autres coquilles ont d'autres emplacements)

Ressu
la source
6
pour les variables de session à l' échelle, help.ubuntu.com recommande ~/.profileque probablement le meilleur fichier pour placer les variables d' environnement dans, car il est exécuté automatiquement par le DisplayManager au cours du processus de démarrage session de bureau, ainsi que par le shell de connexion lorsque l' un des journaux en depuis la console textuelle.
McDowell
Mise à jour de la réponse. La raison pour laquelle j’ai utilisé .bashrc à la place est qu’à un moment donné, le profil .profile n’était pas généré automatiquement. Mais si cela fonctionne maintenant, il est préférable de l'utiliser.
Ressu
6
Le réglage ~/.profilene fonctionne pas pour moi. Cela fonctionne dans ~/.bashrcbien.
Jumpnett
Le réglage ~/.bash_profilefonctionne également.
Jumpnett
Il existe également un fichier système dans / etc. Cela fonctionne mais est par utilisateur.
Où sommes
26

Les variables d'environnement devraient déjà fonctionner

Si vous utilisez le paquet tomcat6 à partir des référentiels Ubuntu, alors CATALINA_HOME et d'autres variables d'environnement sont déjà définis dans le /etc/init.d/tomcat6script de démarrage.

Si vous installez tomcat en dehors du gestionnaire de paquets (dans / opt, sinon, ailleurs que dans le système de fichiers géré), vous devez exécuter l' TOMCAT/bin/startup.shemplacement relatif pour définir CATALINA_HOME.

Définition de la variable d'environnement

Si, pour une raison quelconque, vous devez toujours définir une variable d'environnement, vous pouvez ouvrir une fenêtre de terminal et entrer la commande suivante:

export CATALINA_HOME=/path/to/the/root/folder/of/tomcat

Cette variable d’environnement fonctionnera désormais dans cette fenêtre de terminal, mais si vous ouvrez une autre fenêtre ou si vous vous déconnectez / ouvrez une session, vous perdez ce paramètre.

Rendre la variable d'environnement permanente

Pour rendre le paramètre de variable d’environnement permanent, vous pouvez définir le paramètre à plusieurs endroits.

Pour être vraiment sûr que le paramètre est bien défini, ajoutez le paramètre ci-dessus à l'un des scripts de démarrage de tomcat:

yourtomcatfolder/bin/startup.sh

yourtomcatfolder/bin/catalina.sh

Remarque: startup.sh appelle catalina.sh. Vous devez ajouter le paramètre au début de l’un de ces fichiers (après les premiers commentaires)

La méthode standard pour les variables d'environnement globales consiste à ajouter une entrée dans /etc/environment(vous n'utilisez pas la commande export dans ce fichier car ce n'est pas un script bash normal)

CATALINA_HOME=/path/to/the/root/folder/of/tomcat

Non recommandé

Vous pouvez définir les variables d’environnement dans les fichiers de configuration bash (shell de ligne de commande), mais elles ne sont pas recommandées car elles ne sont pas toujours récupérées (par exemple, si vous utilisez un serveur auquel vous ne vous connectez pas pour exécuter tomcat): ~ / .bashrc | ~ / .profile | /etc.bash.bashrc | / etc / profile

jr0cket
la source
5
Il ne devrait pas être le startupou les catalinascripts, mais le setenv.shou setenv.batscénario, la création si besoin. « En dehors de CATALINA_HOME et CATALINA_BASE, toutes les variables d'environnement peuvent être spécifiées dans le « script setenv » le script est placé soit dans CATALINA_BASE / bin ou dans CATALINA_HOME Le répertoire / bin est nommé setenv.bat (sous Windows) ou setenv.sh (sous * nix). Le fichier doit être lisible. " ( Exécution du conteneur Servlet / JSP Apache Tomcat 7.0 , Section 3.4)
Olathe
23

Pour définir des variables d’environnement permanentes dans les dernières versions d’Ubuntu (à partir de 14.04), ajoutez les variables à /etc/environment. Pour cela suivez les instructions ci-dessous,

Ouvrez le terminal et lancez

sudo -H gedit /etc/environment

le fournir votre mot de passe, puis dans le fichier texte demandé

puis ajoutez les variables comme

ANT_HOME="/opt/ANT/"

Un exemple de /etc/environmentest donné ci-dessous

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/java-8-oracle/"
AXIS2_HOME="/opt/axis2-1.7.4/"
ANT_HOME="/opt/apache-ant-1.9.7/"

n'oubliez pas de vous déconnecter et de vous reconnecter pour activer les variables d'environnement.

Kasun Siyambalapitiya
la source
6

Le meilleur endroit pour cela dépend de comment et où vous avez installé Tomcat, des applications que vous souhaitez utiliser pour ce paramètre et de la portée globale que vous souhaitez donner à l'étendue.

La documentation Ubuntu sur les variables d'environnement décrit les avantages et les inconvénients des différentes options.

McDowell
la source
De quoi parlez-vous lorsque vous dites "meilleur endroit pour cela"?
Jumpnett
@ jumpnett - je veux dire où rendre le paramètre persistant afin qu'il soit toujours disponible pour les applications qui en dépendent. Sauf si vous êtes heureux en tapant le paramètre à chaque fois ou si vous voulez écrire votre propre script.
McDowell
4
nano ~/.bashrc

Cela contiendra probablement déjà pas mal de données. La plupart des définitions ici concernent la définition des options bash, qui ne sont pas liées aux variables environnementales. Vous pouvez définir des variables d'environnement comme vous le feriez depuis la ligne de commande:

export VARNAME=value

LIEN

Je l'ai testé sur Ubuntu 16.04. Fonctionne très bien.

Sunny127
la source
1

Après avoir parcouru la documentation Ubuntu sur les variables d'environnement, j'ai proposé la solution suivante:

##Save & run the following in a shell script,

export ENVIRON_VAR_NAME = Value
# any other initializations like
export PATH=$PWD:$PATH
bash

La dernière ligne crée un shell enfant, qui hérite des valeurs de variable d’environnement du shell parent (qui viennent d’être définies).

Ashish Sadhwani
la source