¿Cómo establecer permanentemente las variables ambientales PATH y M2_HOME en ubuntu para maven3?

30

He descargado el archivo más reciente apache-maven3.zip y extraída a la carpeta: /home/gaurav/Java/maven3.

No sé cómo establecer las variables ambientales para maven, como PATH y M2_HOME.

Intenté a continuación las cosas:

export M2_HOME=/home/gaurav/Java/maven3

export PATH= /home/gaurav/Java/maven3/bin:${PATH}

Después de configurar eso, corrí mvn --versiony se está ejecutando correctamente.

Pero cuando la próxima vez que inicie mi máquina, y escriba $M2_HOME, no me muestra los detalles de las variables de ruta, ni mvn --versionse está ejecutando.

Ayúdame a resolver este problema de establecer permanentemente variables de entorno en Ubuntu.

Gaurav Dighe
fuente
Echa un vistazo a esto
Mitch

Respuestas:

22

Actualización: Eliah me señaló que si no está construyendo dinámicamente sus variables de entorno, debe almacenarlas /etc/environment. Para establecer M2_HOMEy agregar el bindirectorio a su PATH, debe modificar su de la /etc/environmentsiguiente manera. Asegúrese de no solo copiar / pegar, porque su /etc/environmentarchivo podría tener una PATHvariable diferente a la mía.

M2_HOME="/home/gaurav/Java/maven3"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/gaurav/Java/maven3/bin"


Método alternativo (no como recomendado): como dijo Mitch, deberá editar un archivo de configuración para cambiar permanentemente su RUTA. Elegí editar mi /etc/profilearchivo de configuración, porque se aplica en todo el sistema. Para editar este archivo, ejecute sudo nano /etc/profileAquí está el extracto relevante de mi archivo de configuración:

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

JAVA_HOME=/usr/lib/jvm/java-6-oracle/
export JAVA_HOME

M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4
export M2_HOME
M2=$M2_HOME/bin
export M2

PATH=$PATH:$JAVA_HOME
PATH=$PATH:$M2
export PATH
Connor Brinton
fuente
1
Ninguna razón para no sólo hay que poner las JAVA_HOME, M2_HOMEy M2las definiciones en /etc/environment, en su lugar?
Eliah Kagan
Definitivamente, eso es lo semánticamente correcto (porque /etc/environmentes el lugar recomendado para almacenar variables de entorno de todo el sistema). Pero solo quería mantener todas mis variables de entorno en el mismo lugar. Si hubiera una forma en que pudiera construir dinámicamente mi PATHvariable usando solo /etc/environment, cambiaría inmediatamente.
Connor Brinton
1
Dado que esa es su motivación, es posible que desee agregar el uso /etc/environmentcomo una alternativa, teniendo en cuenta que el objetivo de colocar todas las asignaciones de variables de entorno en el mismo lugar no es necesariamente el objetivo de este OP o el objetivo de la mayoría de las otras personas que responden a esta pregunta. Además, es posible que desee volver a examinar ese objetivo: la mayoría de las veces, las variables de entorno deben agregarse a nivel de cuenta de usuario, para afectar a un solo usuario. (Entonces pueden entrar ~/.pam_environmento ~/.profile.) Es cierto que algunas asignaciones de variables de entorno son dinámicas y deben estar en scripts.
Eliah Kagan
@ connor.brinton, aunque dije que la ruta usando el método anterior (editando /etc/environment) mi ruta aún no está configurada
Kasun Siyambalapitiya
3

Debe agregar su RUTA a /etc/bash.bashrc como root.

Desde la raíz, siga estos pasos:

  1. sudo nano /etc/bash.bashrc
  2. Al final del archivo, agregue la siguiente línea:

    PATH=/home/computer/application/bin:$PATH  
    

Esto es solo una seudo dirección. Cámbielo según la dirección que desee y agregue :$PATHdespués.

Esto es para Ubuntu.

Café y códigos
fuente