
Estoy intentando resolver "cómo agregar una ruta de forma permanente" usando ubuntu 14.04. Si tuviera un programa que dijera samtools-1.2
que quería agregarlo a la ruta, creo que haría:
export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2 >> .bashrc
Luego para verificar:
cat ~/.bashrc
Respuesta1
Para lograr esto, deberá crear un nuevo archivo /etc/profiles.d/
con el nombre que desee, pero asegurándose de que termine con, .sh
por ejemplo... samtools.sh
luego, dentro del archivo, coloque lo siguiente:
#!/bin/sh
export PATH=$PATH:/home/cmccabe/Desktop/NGS/samtools-1.2
Luego querrás ejecutar source /etc/profile
a través de la línea de comando.
Nota: export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2
falta una barra después del :
carácter.
Respuesta2
Respuesta más corta.
Entonces, ¿está 100% seguro de saber lo que está haciendo aquí incluso si el comando funciona? Porque, en mi opinión, agregar un directorio en el escritorio del usuariopermanentementeal sistema PATH me parece un poco extraño. Cosas como esta deberían instalarse como una instalación para todo el sistema sudo make install
después de compilar el código fuente.
Dicho esto, aquí está mi desglose de lo que está intentando hacer, por qué no funciona, qué se puede hacer para remediarlo y más allá de eso, como acabo de decir, por qué no es una gran idea.
Respuesta más larga.
Primero, este comando no hará nada:
export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2 >> .bashrc
Confunde algunos conceptos incorrectamente.
- Primero, si inicia el comando con
export PATH=
y todo lo que hará será asignar un nuevoPATH
valor. - A continuación, la ruta que está agregando es incorrecta:
home/cmccabe/Desktop/NGS/samtools-1.2
. En todo caso debería ser/home/cmccabe/Desktop/NGS/samtools-1.2
; observe la barra inclinada delante de ese camino. - Finalmente,
>> .bashrc
es algo correcto, pero lo que sucede antes es tan incorrecto que no importa. Le dice a>>
Bash que agregue lo que lo precedió a.bashrc
. Y dado que el primer comando esexport PATH=
, eso no genera nada. Entonces todo lo que se agrega.bashrc
es una línea vacía. Y.bashrc
debería ser el directorio de inicio de su usuario, así que asegúrese de anteponerlo~/
al nombre de esta manera:~/.bashrc
.
Elrealcomando si esto es lo que quería que fuera el comando sería algo como esto; pero por favor no lo ejecutes:
echo export PATH=$PATH:/home/cmccabe/Desktop/NGS/samtools-1.2 >> ~/.bashrc
La clave aquí es echo
cuál simplemente imprimiría lo que le sigue, sin actuar en consecuencia, en .bashrc
. Y luego ejecutarías source ~/.bashrc
y, si ejecutas, echo $PATH
debería estar todo listo.
Dicho todo esto, esto no parece una gran idea.
Este es tu sistema, así que hazlo como quieras. Pero mirando lo quesamtools-1.2
es decir, eso es solo el código fuente del programa. Si lo compilaste entoncestal vezesa configuración de PATH /home/cmccabe/Desktop/NGS/samtools-1.2
tendría sentido. Pero incluso entonces, la mejor manera de lidiar con los binarios es instalarlos en el sistema, a través de sudo make install
lo cual se colocarían todos los archivos relacionados en los lugares correctos y luego simplemente instalar el samtools
binario en /usr/local/bin
el cualdeberíaYa sé parte de tu CAMINO.
Dicho esto, si simplemente hiciste una compilación básica samtools-1.2
y querías probarlo, entonces tiene sentido configurarlo para que apunte a un directorio en el escritorio de tu usuario. Pero más allá de eso, tu pregunta es sobrepermanentementeagregando un programa a su ruta. Y en ese caso lo haríanunca recomendaralguna vez agrega permanentemente un directorio en el escritorio de un usuario a su RUTA. El riesgo de perder algo que está en su escritorio es demasiado grande.