Добавить программу в путь навсегда в Ubuntu 14.04

Добавить программу в путь навсегда в Ubuntu 14.04

Я пытаюсь решить «как добавить путь навсегда» с помощью Ubuntu 14.04. Если бы у меня была программа, которая сказала бы, samtools-1.2что я хочу добавить в путь, я думаю, я бы сделал:

export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2 >> .bashrc

Затем для проверки:

cat ~/.bashrc

решение1

Для этого вам нужно будет создать новый файл /etc/profiles.d/с любым именем, которое вы хотите, но убедитесь, что оно заканчивается, .shнапример, на... samtools.shзатем внутри файла поместите следующее:

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

После этого вам нужно будет запустить его source /etc/profileчерез командную строку.

Примечание: export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2после символа отсутствует косая черта :.

решение2

Более короткий ответ.

Так вы на 100% уверены, что знаете, что вы здесь делаете, даже если команда работает? Потому что, на мой взгляд, добавление каталога на рабочий стол пользователяпостояннов системный PATH кажется мне немного не тем. Такие вещи должны быть установлены как общесистемная установка, используя sudo make installпосле компиляции исходного кода.

Тем не менее, вот мой анализ того, что вы пытаетесь сделать, почему это не работает, что можно сделать, чтобы это исправить, и, помимо этого, как я только что сказал, почему это не очень хорошая идея.

Более развернутый ответ.

Во-первых, эта команда ничего не сделает:

export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2 >> .bashrc

Он неправильно смешивает несколько понятий.

  • Во-первых, если вы начнете команду с export PATH=и все, что она сделает, это присвоит новое PATHзначение.
  • Далее, путь, который вы добавляете, неверен: home/cmccabe/Desktop/NGS/samtools-1.2. Если что и должно быть, то /home/cmccabe/Desktop/NGS/samtools-1.2; обратите внимание на начальную косую черту перед этим путем.
  • Наконец, >> .bashrcв некоторой степени правильно, но то, что происходит перед ним, настолько неправильно, что это не имеет значения. The >>сообщает Bash о необходимости добавить то, что предшествовало ему, к .bashrc. И поскольку первая команда — export PATH=, она ничего не выводит. Поэтому все, что добавляется к , .bashrc— это пустая строка. А .bashrcдомашним каталогом вашего пользователя должен быть домашний каталог, поэтому обязательно добавьте , ~/например, к имени: ~/.bashrc.

Theнастоящийкоманда, если это то, что вы хотели, команда будет выглядеть примерно так; но, пожалуйста, не запускайте ее:

echo export PATH=$PATH:/home/cmccabe/Desktop/NGS/samtools-1.2 >> ~/.bashrc

Ключевым моментом здесь является echoто, что просто выведет то, что следует за ним — без выполнения каких-либо действий — в .bashrc. А затем вы запустите source ~/.bashrcи если вы запустите , echo $PATHто все должно быть готово.

Несмотря на все вышесказанное, это не кажется хорошей идеей.

Это ваша система, так что делайте с ней, что хотите. Но, глядя на то, чтоsamtools-1.2это просто исходный код программы. Если вы его скомпилировали, томожет бытьчто настройка PATH /home/cmccabe/Desktop/NGS/samtools-1.2имела бы смысл. Но даже в этом случае лучший способ работы с бинарными файлами — это их фактическая установка в системе, sudo make installкоторая разместит все связанные файлы в правильных местах, а затем просто установит бинарник, samtoolsв /usr/local/binкоторыйдолженуже являетесь частью вашего ПУТИ.

Тем не менее, если вы просто сделали базовую компиляцию samtools-1.2и хотите ее протестировать, то установка ее на указание каталога на рабочем столе пользователя имеет смысл. Но помимо всего этого, ваш вопрос опостояннодобавление программы в ваш путь. И в этом случае я быникогда не рекомендуювы когда-нибудь навсегда добавляете каталог на рабочем столе пользователя в свой PATH. Риск потерять что-то, находящееся на рабочем столе, слишком велик.

Связанный контент