¿Cómo agrego un directorio a MANPATH o INFOPATH?

19

Creo que entiendo las instrucciones dadas en ¿Cómo agregar un directorio a la RUTA? acerca de agregar directorios a $ PATH. Pero no entiendo cómo agregar directorios a $ MANPATH o $ INFOPATH.

Además, al buscar ayuda en Google, he notado que a veces las instrucciones dicen export PATH=/usr/share/lib/something:$PATHy otras dicen export PATH=$PATH:/usr/share/lib/something. Cual es

isomorfismos
fuente

Respuestas:

24
  1. Estos 2 son casi lo mismo:

    export PATH=/usr/share/lib/something:$PATH 
    export PATH=$PATH:/usr/share/lib/something
    

    La única diferencia es que el primero coloca el directorio para agregar al frente y el segundo lo coloca detrás de los directorios actuales $PATH. Solo importa si hay comandos dentro /usr/share/lib/somethingque tengan el mismo nombre dentro de uno de los directorios $PATH.

  2. Para agregar directorios $MANPATHo $INFOPATHsegún sea necesario desde el enlace que publicó, haga eso cambiando los archivos de configuración dentro del enlace.

    Dice abrir la versión global de bash.bashrccon:

    sudo vi /etc/bash.bashrc
    

    y agregar al final:

    PATH=/usr/local/texlive/2010/bin/x86_64-linux:$PATH; export PATH
    MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH
    INFOPATH=/usr/local/texlive/2010/texmf/doc/info:$INFOPATH; export INFOPATH
    

    Esto establece $PATH, $MANPATHy $INFOPATH. Y también te dice que edites /etc/manpath.configcon:

    sudo vi /etc/manpath.config
    

    y para agregar

    MANPATH_MAP /usr/local/texlive/2010/bin/x86_64-linux /usr/local/texlive/2010/texmf/doc/man
    

    debajo # set up PATH to MANPATH mapping.


Si no está seguro de esto, haga una copia de seguridad primero (nunca es malo) con:

sudo cp /etc/bash.bashrc /etc/bash.backup_$(date +"%Y_%m_%d").bashrc
sudo cp /etc/manpath.config /etc/manpath.backup_$(date +"%Y_%m_%d").config

La cadena extraña cambia a la fecha actual. Si comete un error, simplemente copie la copia de seguridad sobre el archivo original:

$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1  test1.2014_11_14  
Rinzwind
fuente
1
Instalé texlive 2012 en Ubuntu Precise y echo $MANPATHvuelve /usr/local/texlive/2012/texmf/doc/mana mí. Cuando agrego las rutas a los informes bash de configuración /usr/local/texlive/2012/texmf/doc/man:/usr/local/texlive/2012/texmf/doc/many zsh aún informan /usr/local/texlive/2012/texmf/doc/man. Para zsh agrego las rutas a /etc/zsh/zshrc. No estoy seguro si esto es correcto. También intenté editar /etc/environment, como se sugiere aquí , aunque sin éxito.
JJD
¿Qué comando puedo ver después de escribir MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH? Lo intenté man tlmgry dice que no existe.
Arturo
2

Si sus páginas de manual están en /usr/local/myproject/man, todo lo que necesita hacer es agregar eso a (al final de) /etc/manpath.config:

MANDATORY_MANPATH        /usr/local/myproject/man
Michel
fuente
0

x:y:z:$PATHo $PATH:x:y:z?

Apenas diferente. $PATHcontiene una :lista separada de lugares donde bash (el shell / terminal) debe verificar si hay un programa.

Por ejemplo, si escribe catla forma en que el terminal entiende lo que eso significa es mirar a través del primer, segundo, tercer elemento de $PATH, luego guarde la primera ubicación que encuentre para invocaciones posteriores cat.

Si tengo dos versiones diferentes de un programa en dos lugares diferentes, prefiriendo una de ellas y $PATHle dice al shell que busque en el orden incorrecto, entonces hay un problema. De lo contrario, no hay problema.


exportar

Abra una terminal y escriba

echo $a
a=5
echo a
echo $a

Verá que a=5establece el valor de la variable y $ahace referencia al nombre de la variable, no al valor.

Abra una segunda terminal y escriba echo $a. Debería estar nuevamente en blanco.

La diferencia entre exporty asignación ( =) se explica aquí: /programming/1158091/defining-a-variable-with-or-without-export .

isomorfismos
fuente