Agregar programa a la ruta de forma permanente en Ubuntu 14.04

Agregar programa a la ruta de forma permanente en Ubuntu 14.04

Estoy intentando resolver "cómo agregar una ruta de forma permanente" usando ubuntu 14.04. Si tuviera un programa que dijera samtools-1.2que 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, .shpor ejemplo... samtools.shluego, dentro del archivo, coloque lo siguiente:

#!/bin/sh
export PATH=$PATH:/home/cmccabe/Desktop/NGS/samtools-1.2

Luego querrás ejecutar source /etc/profilea través de la línea de comando.

Nota: export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2falta 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 installdespué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 nuevo PATHvalor.
  • 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, >> .bashrces 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 es export PATH=, eso no genera nada. Entonces todo lo que se agrega .bashrces una línea vacía. Y .bashrcdeberí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 echocuál simplemente imprimiría lo que le sigue, sin actuar en consecuencia, en .bashrc. Y luego ejecutarías source ~/.bashrcy, si ejecutas, echo $PATHdeberí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.2es 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.2tendría sentido. Pero incluso entonces, la mejor manera de lidiar con los binarios es instalarlos en el sistema, a través de sudo make installlo cual se colocarían todos los archivos relacionados en los lugares correctos y luego simplemente instalar el samtoolsbinario en /usr/local/binel cualdeberíaYa sé parte de tu CAMINO.

Dicho esto, si simplemente hiciste una compilación básica samtools-1.2y 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.

información relacionada