Como definir permanentemente variáveis ​​ambientais PATH e M2_HOME no ubuntu for maven3?

30

Tenho baixado o arquivo apache-maven3.zip mais recente e extraído para a pasta: /home/gaurav/Java/maven3.

Não sei como definir as variáveis ​​ambientais para o maven - como PATH e M2_HOME.

Eu tentei abaixo as coisas:

export M2_HOME=/home/gaurav/Java/maven3

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

Depois de definir isso, eu corri mvn --versione ele está sendo executado corretamente.

Mas quando da próxima vez eu iniciar minha máquina, e digitar $M2_HOME, não está me mostrando os detalhes das variáveis ​​do caminho, nem mvn --versionserá executado.

Por favor, ajude-me a resolver esse problema de definir permanentemente variáveis ​​de ambiente no Ubuntu.

Gaurav Dighe
fonte
Veja isto
Mitch

Respostas:

22

Atualização: Eliah me indicou que, se você não estiver construindo dinamicamente suas variáveis ​​de ambiente, deve armazená-las /etc/environment. Para definir M2_HOMEe adicionar o bindiretório ao seu PATH, você deve modificá-lo da /etc/environmentseguinte maneira. Certifique-se de não copiar / colar, porque seu /etc/environmentarquivo pode ter uma PATHvariável diferente da minha.

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 (não como recomendado): Como Mitch disse, você precisará editar um arquivo de configuração para alterar permanentemente seu PATH. Eu escolhi editar meu /etc/profilearquivo de configuração, porque ele se aplica a todo o sistema. Para editar este arquivo, execute sudo nano /etc/profileAqui está o trecho relevante do meu arquivo de configuração:

# /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
fonte
1
Qualquer razão para não apenas colocar as JAVA_HOME, M2_HOMEe M2definições em /etc/environment, em vez disso?
Elias Kagan
Essa é definitivamente a coisa semanticamente correta a ser feita (porque /etc/environmenté o local recomendado para armazenar variáveis ​​de ambiente em todo o sistema). Mas eu só queria manter todas as minhas variáveis ​​de ambiente no mesmo lugar. Se houvesse uma maneira de construir dinamicamente minha PATHvariável usando apenas /etc/environment, eu trocaria imediatamente.
connor.brinton
1
Como essa é a sua motivação, você pode adicionar o uso /etc/environmentcomo alternativa, considerando que o objetivo de colocar todas as suas atribuições de variáveis ​​de ambiente no mesmo local não é necessariamente o objetivo desse OP ou o objetivo da maioria das pessoas que se deparam com essa pergunta. Além disso, convém reexaminar esse objetivo: Na maioria das vezes, as variáveis ​​de ambiente devem ser adicionadas no nível da conta do usuário, para afetar apenas um único usuário. (Eles podem entrar ~/.pam_environmentou ~/.profile.) É verdade que algumas atribuições de variáveis ​​de ambiente são dinâmicas e devem estar em scripts.
Elias Kagan
@ connor.brinton embora eu disse que o caminho usando o método acima (a edição do /etc/environment) meu caminho ainda não está definido
Kasun Siyambalapitiya
3

Você precisa adicionar seu PATH ao /etc/bash.bashrc como root.

A partir da raiz, execute estas etapas:

  1. sudo nano /etc/bash.bashrc
  2. No final do arquivo, adicione a seguinte linha:

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

Este é apenas um pseudo endereço. Altere-o de acordo com o endereço desejado e adicione o :$PATHdepois.

Isto é para o Ubuntu.

Café e códigos
fonte