¿Cómo agrego un directorio al $PATH
en Ubuntu y hago los cambios permanentes?
¿Cómo agrego un directorio al $PATH
en Ubuntu y hago los cambios permanentes?
Respuestas:
Una ruta establecida .bash_profile
solo se establecerá en un shell de inicio de sesión bash ( bash -l
). Si coloca su ruta .profile
, estará disponible para su sesión de escritorio completa. Eso significa que incluso metacity lo usará.
Por ejemplo ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Por cierto, puede verificar la variable PATH de un proceso mirando su entorno en /proc/[pid]/environ
(reemplace [pid] con el número de ps axf
). Ej. Usogrep -z "^PATH" /proc/[pid]/environ
bash
como un shell de inicio de sesión no se analiza .profile
si existe .bash_profile
o no .bash_login
. De man bash
:
busca ~ / .bash_profile, ~ / .bash_login y ~ / .profile, en ese orden, y lee y ejecuta comandos desde el primero que existe y es legible.
Ver las respuestas a continuación para obtener información sobre .pam_environment
, o .bashrc
en los depósitos interactivo de no ingreso, o establecer el valor global para todos los usuarios, poniendo una secuencia de comandos en /etc/profile.d/
o utilizar /etc/X11/Xsession.d/
para afectar a la sesión de los gestores de visualización.
PATH="$HOME/bin:$PATH"
¿Entonces lo agrego?
Edite .bashrc
en su directorio personal y agregue la siguiente línea:
export PATH="/path/to/dir:$PATH"
Deberá obtener su origen .bashrc
o cerrar sesión / iniciar sesión (o reiniciar el terminal) para que los cambios surtan efecto. Para obtener su fuente .bashrc
, simplemente escriba
$ source ~/.bashrc
.bashrc
"? ¿Cómo se "reinicia el terminal"?
.bashrc
No es el lugar adecuado para establecer variables de entorno. Deberían entrar .profile
o .pam_environment
. Ver mywiki.wooledge.org/DotFiles
. .bashrc
no .bashrc
:) o source .bashrc
para el caso
El lugar recomendado para definir las variables de entorno permanentes de todo el sistema que se aplican a todos los usuarios es:
/etc/environment
(que es donde PATH
se define el valor predeterminado )
Esto funcionará en escritorio o consola, gnome-terminal o TTY, llueva o truene;)
Para editar, presione Alt+ F2y escriba:
gksudo gedit /etc/environment
(o abra el archivo con sudo
su editor de texto favorito)
Para efectuar cambios, ejecute . /etc/environment
. Como este archivo es solo un script simple, se ejecutará y asignará la nueva ruta a la PATH
variable de entorno. Para verificar, ejecute env y vea el PATH
valor en el listado.
Relacionado:
source /etc/environment
para recargar los cambios
Creo que la forma canónica en Ubuntu es:
crear un nuevo archivo en /etc/profile.d/
sudo vi /etc/profile.d/SCRIPT_NAME.sh
agregar allí:
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
y darle permiso de ejecución
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
Para novatos completos (como yo) que se sienten más cómodos con GUI:
$HOME
carpeta..profile
y haga clic en Abrir con editor de texto .PATH="$PATH:/my/path/foo"
..profile
)$PATH:
bit que incluye la definición de RUTA existente
Para variables de entorno persistentes disponibles solo para usuarios particulares. Recomiendo mucho la documentación oficial de Ubuntu.
https://help.ubuntu.com/community/EnvironmentVariables
En referencia a la documentación anterior, configuré mis herramientas de ruta del SDK de Android de la siguiente manera:
~/.pam_environment
archivo en el directorio de inicio.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
.Pon esa línea en tu ~/.bashrc
archivo.
Se obtiene cada vez que abre una terminal
EDITAR : según los comentarios a continuación, para una configuración más general que se aplicará a todos los shells (incluso cuando presionas Alt- F2en Unity), agrega la línea a tu ~/.profile
archivo. Sin embargo, probablemente no debería hacer ambas cosas, ya que la ruta se agregará dos veces a su PATH
entorno si abre una terminal.
$HOME/.profile
para la configuración personal o /etc/profile
para todos los usuarios. Pero si solo es necesario para bash, supongo que cualquiera funcionará.
~/.bashrc
, solo estará disponible en los terminales que abra. Por ejemplo, si presiona Alt + F2 e intenta ejecutar un comando desde ese directorio, no lo encontrará. Si lo configura en ~/.profile
o ~/.pam_environment
, la sesión de gnome (o cualquier DE que use) lo heredará. Agregar PATH ~/.bashrc
también tiene el inconveniente de que si abre / exec bash de manera interactiva desde otro shell bash interactivo, se agregará varias veces.
~/.profile
embargo, creo que es correcto para los caminos personales; ahí es donde Ubuntu agrega el ~/bin
directorio. Y confieso que exageré un poco en la cantidad de formas, solo un poco.
~/.profile
en este caso.
Para configurarlo en todo el sistema, agregue la línea export PATH=/path/you're/adding:$PATH
al final de /etc/profile
.
Para agregar el directorio solo para el usuario conectado, agregue la misma línea a ~/.bash_profile
.
Agregarlo a .bashrc funcionará, pero creo que la forma más tradicional de configurar las variables de ruta es en .bash_profile agregando las siguientes líneas.
PATH=$PATH:/my/path/foo
export PATH
Según este hilo , parece que el comportamiento de Ubuntu es ligeramente diferente al de RedHat y los clones.
.bashrc
, pégalo en su .bashrc
lugar. Los terminales GUI en Ubuntu no son shells de inicio de sesión, por .bash_profile
lo que no se ejecutarán.
.bash_profile
. Si bash no encuentra un .bash_profile
(cuando inicia sesión de forma interactiva), lo buscará .profile
y usará en su lugar. Por defecto, tendrás un .profile
y .bashrc
en Ubuntu. Y .profile
es el lugar correcto para establecer variables de entorno si ignoramos pam_env.
En terminal, cd
athe_directory_you_want_to_add_in_the_path
echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc
Esta no fue mi idea. Encontré esta forma de exportar ruta en este blog aquí .
sudo vi /etc/profile.d/SCRIPT_NAME.sh
agregar allí
export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
sudo nano /etc/profile.d/SCRIPT_NAME.sh
Es más fácil para los principiantes.
gksu gedit /etc/profile.d/SCRIPT_NAME.sh
es aún más fácil.
Cada vez que "instalo" mi carpeta de scripts BASH, sigo el patrón de la prueba para una $HOME/bin
carpeta que se encuentra en la mayoría de los archivos .profile en versiones recientes de Ubuntu. Puse una prueba que se parece a
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
Funciona casi el 100% del tiempo, y me deja libre de cambiarlo en un editor de texto GUI con un rápido "Reemplazar todo" si alguna vez decidiera moverme a /scripts
algún lugar más cerca de mi $HOME
carpeta. No lo he hecho en 6 instalaciones de Ubuntu, pero hay "siempre mañana". S
BZT
El método recomendado para editar su PATH
es de /etc/environment
archivo
Ejemplo de salida de /etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Por ejemplo, para agregar la nueva ruta de /home/username/mydir
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
Luego, reinicie su PC.
Variables de entorno de todo el sistema
Un archivo adecuado para la configuración de las variables de entorno que afectan al sistema en su conjunto (en lugar de solo a un usuario en particular) es / etc / environment. Una alternativa es crear un archivo para ese propósito en el directorio /etc/profile.d.
/ etc / environment
Este archivo está específicamente diseñado para configuraciones variables de entorno de todo el sistema. No es un archivo de script, sino que consiste en expresiones de asignación, una por línea.
Nota: La expansión variable no funciona en / etc / environment.
Más información se puede encontrar aquí: EnvironmentVariables
Abra su terminal, escriba gedit .profile
e inserte lo siguiente:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
#the following line add Bin where you dont have a Bin folder on your $HOME
PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"
Cierre y abra la terminal, debería estar funcionando.
Incluso si las secuencias de comandos del sistema no usan esto, en cualquiera de los casos en los que se desea agregar una ruta (por ejemplo, $HOME/bin
) a la variable de entorno PATH, se debe usar
PATH="${PATH:+${PATH}:}$HOME/bin"
para anexar (en lugar de PATH="$PATH:$HOME/bin"
), y
PATH="$HOME/bin${PATH:+:${PATH}}"
para anteponer (en lugar de PATH="$HOME/bin:$PATH"
).
Esto evita el colon espurio $PATH
inicial / final cuando está inicialmente vacío, lo que puede tener efectos no deseados.
Ver, por ejemplo, https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-without-creating-leading-colon-if-unset
Para Ubuntu edite ~/.bashrc
y agregue la siguiente línea.
. ~/.bash_profile
Luego edite su .bash_profile como lo necesite .....
.bash_profile
lo que necesitas". ¿Qué necesito hacer exactamente con el .bash_profile
?
.profile
o .bash_profile
debe fuente .bashrc
. No de la otra manera.