¿Cómo modificar las variables de entorno PATH en Catalina?

¿Cómo modificar las variables de entorno PATH en Catalina?

Alguna aplicación me dice que agregue algo a las variables de entorno PATH. Sé que una forma de hacerlo es creando un archivo en ~/.zshrc, pero me gustaría saber dónde está el archivo donde PATH=...se almacena la variable.

Cuando escribí echo $PATHme salió:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Xamarin Workbooks.app/Contents/SharedSupport/path-bin

Del archivo /etc/pathsque obtuve:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

Entonces, ¿qué archivo agregó las rutas adicionales?


Responder al comentario:

Obtuve: (perdóneme porque cambié mi nombre de usuario a alice)

grep: /Users/alice/.profile: No such file or directory
grep: /etc/environment: No such file or directory
grep: /etc/zsh/zprofile: No such file or directory
grep: /Users/alice/.zshrc: No such file or directory
grep: /Users/alice/.profile: No such file or directory

Respuesta1

Como dijiste entu propia respuesta, no es necesario saber dónde PATHse completó originalmente la variable.

Puede agregar fácilmente nuevas rutas PATHal final o al principio, y zshtambién tiene una forma conveniente de eliminar duplicados.

Puede hacer que la PATHvariable y la pathmatriz asociada sean únicas primero, usando

typeset -U -g PATH path

Las variables entoncespermanecerúnico en virtud de este comando.

Para anteponer un par de rutas:

path=( /new/path1 /new/path2 $path )

Para agregar un par de rutas:

path=( $path /new/path1 /new/path2 )

o,

path+=( /new/path1 /new/path2 )

El PATHvalor de la variable se actualizará en consecuencia.

Es posible que desee hacer esto en su $ZDOTDIR/.zprofilearchivo, que se obtiene automáticamente mediante cualquier zshshell de inicio de sesión. Hacerlo en su $ZDOTDIR/.zshenvarchivo sería innecesario ya que ese archivo proviene decualquier tipode zshinvocación (y, por lo tanto, debe ser muy breve, si es que es necesario; simplemente lo puse ZDOTDIR=$HOME/.zshallí, por ejemplo).

Tenga en cuenta que PATHya es una variable de entorno, por lo que exportarla nuevamente no sirve para nada.

Respuesta2

El archivo /etc/zprofilese utiliza /usr/libexec/path_helperpara establecer el valor predeterminado PATHy no tenemos su código fuente.

A continuación se muestra cómo modificar según el usuario PATH:

Cree/edite ~/.zprofiley agregue el siguiente contenido:

# append to PATH
export PATH="$PATH:.../to/target/bin"

# prepend to PATH
export PATH=".../to/target/bin:$PATH"

# remove duplicate in PATH
typeset -U PATH

Respuesta3

Los siguientes pasos le muestran cómo modificar el sistema PATH:

  1. Cree un archivo con la convención de nomenclatura: prioridad-nombre de la aplicación (por ejemplo, '20200418-vscode', solo uso la fecha para que la prioridad sea única). Luego almacene en él la ruta que desea agregar PATH.

  2. Mueve ese archivo a /etc/paths.d/, listo.

Aviso 1:Recuerde crear una nueva sesión de terminal para ver el cambio en echo $PATH.

Aviso 2: solo este métodoañadetu camino hacia PATH.

información relacionada