
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 $PATH
me 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/paths
que 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 PATH
se completó originalmente la variable.
Puede agregar fácilmente nuevas rutas PATH
al final o al principio, y zsh
también tiene una forma conveniente de eliminar duplicados.
Puede hacer que la PATH
variable y la path
matriz 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 PATH
valor de la variable se actualizará en consecuencia.
Es posible que desee hacer esto en su $ZDOTDIR/.zprofile
archivo, que se obtiene automáticamente mediante cualquier zsh
shell de inicio de sesión. Hacerlo en su $ZDOTDIR/.zshenv
archivo sería innecesario ya que ese archivo proviene decualquier tipode zsh
invocación (y, por lo tanto, debe ser muy breve, si es que es necesario; simplemente lo puse ZDOTDIR=$HOME/.zsh
allí, por ejemplo).
Tenga en cuenta que PATH
ya es una variable de entorno, por lo que exportarla nuevamente no sirve para nada.
Respuesta2
El archivo /etc/zprofile
se utiliza /usr/libexec/path_helper
para establecer el valor predeterminado PATH
y no tenemos su código fuente.
A continuación se muestra cómo modificar según el usuario PATH
:
Cree/edite ~/.zprofile
y 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
:
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
.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
.