Копирование файла оболочки в путь

Я новичок в WSL и Linux, но пытаюсь следовать инструкциям по установке rhasspy ( https://rhasspy.readthedocs.io/en/latest/installation/#windows-subsystem-for-linux-wsl ). Я запустилmake install команда успешно, и на следующем шаге говорится, что я должен скопировать rhasspy где-нибудь на моем пути, но я не могу понять, что означает копирование в путь.

When installation is finished, copy rhasspy.sh somewhere in your PATH and rename it to rhasspy.

Я добавил его в путь, но ничего не изменилось, поэтому мне было интересно, что я делаю не так. Прямо сейчас, когда я запускаю rhasspy на wsl, он говоритrhasspy.sh: command not found . Любая помощь могла бы быть полезна!

# windows-subsystem-for-linux
Источник
Codelisting
за 1 против
Лучший ответ

Он говорит, что поместите его в такое место, где система будет искать его, когда вы вводите его имя без полного пути в оболочке.

Есть переменная окруженияPATH который содержит все эти местоположения, разделенные: . (Проверитьecho $PATH .)

Итак, автор этих инструкций оставляет на ваше усмотрение, будет ли ...

  1. Вы хотите скопировать файл в выбранное вами место, которое уже находится вPATH , Такие как/usr/local/bin или~/bin .

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

    (Обратите внимание, что каталог~/bin добавлен вPATH По вашему.profile файл, только если он существует, поэтому, если у вас еще нет этого каталога и создайте его сейчас, вам нужно запустить новую оболочку входа или запустить. ~/.profile 1, прежде чем вы сможете его использовать.)

- ИЛИ -

  1. Вы хотите создать новый каталог специально для этого приложения (скажем, например~/opt/rhasspy ) и добавьте этот каталог вPATH Переменная.

    Это можно сделать, добавив строкуexport PATH=$PATH:~/opt/rhasspy на ваш~/.profile файл. Затем запустите новую оболочку входа или перезагрузите файл, используя. ~/.profile 1, чтобы изменения вступили в силу.

    Если каталог, в котором в настоящее время находится этот файл, можно оставить навсегда, вы также можете просто добавить этот каталог вPATH вместо создания нового.

Примечание .PATH всегда содержит пути к каталогам, в которых оболочка будет искать исполняемые файлы. Он не содержит фактических путей к файлам !


1: Да, технически «чище» войти в новую оболочку или запустить ее.export оператор вручную вместо использования. ~/.profile потому что последний будет применять вещи во второй раз, которые уже были выполнены ранее, поэтому, например, он может оказаться в том же каталоге вPATH несколько раз в текущем сеансе. Однако в большинстве случаев это нормально.

  • 2
    Альтернатива, которую я предпочитаю, потому что мне не нравится загроможденный домашний каталог, - это расширить указанный XDG "$ HOME / .local / share" очевидным способом, чтобы использовать дополнительные подкаталоги "$ HOME / .local" - включая bin, lib и opt. Сценарий входа в систему «$ HOME / .profile» в Ubuntu добавляет «$ HOME / .local / bin» в PATH если каталог существует.
за 0 против

PATHэто переменная среды. Когда вы запускаетеenv , вы увидите список известных переменных среды в вашей системе.

Чтобы что-то добавить в свойPATH переменной, вам нужно взять переменную, добавить упомянутый каталог (которому предшествует точка с запятой, скорее всего, в качестве разделителя) и снова сохранить его какPATH Переменная. Это можно сделать следующим образом (собственный пример):

export PATH=$PATH:/home/this_user
  • 0
    Мне было интересно, добавление чего-либо в путь - это то же самое, что копирование чего-либо в путь?
  • 0
    Будьте осторожны: вам всегда нужно что-то добавлять в путь, иначе ваша система может перестать работать. Какая у вас переменная PATH и какой каталог вы имеете в виду? Я посмотрю, как создать новую переменную PATH.
за -1 против

в"PATH" это относится к Linux, находится внутри папки с именем/usr/bin . когда вы вводите команду в терминал, он ищет программу с таким именем внутри местоположения. я не уверен, что этоPATH вы ищете, но надеетесь, что это поможет

  • 0
    /usr/bin обычно в PATH , но это не PATH .
  • 0
    Вы меня неправильно поняли, все наоборот. Попробуйте echo $PATH чтобы понять, что я имею в виду. /usr/bin - это один из каталогов , которые обычно задаются в переменной PATH Но эта переменная и какой-то каталог - это не одно и то же.
  • 0
    @CherryDT да, я понимаю, что вы имеете в виду сейчас, но я пытался сказать, что программа должна находиться в одной из тех папок, которые находятся в PATH, а не добавляться в PATH.
Codelisting
Популярные категории
На заметку программисту