Как организовать установленные программы в $HOME, чтобы shell искал их при запуске? [закрыто]

-2
18.03.2018, 00:56
2 ответа

Я согласен с Жилем в том, что Стоу, вероятно, является подходящим инструментом для этой работы. Базовая модель Stow заключается в том, что вы устанавливаете программное обеспечение в определенные каталоги, по одному на каждую часть программного обеспечения; в руководстве Stow вы найдете Perl и Emacs, используемые в качестве примеров, установленных соответственно в /usr/local/stow/perlи /usr/local/stow/emacs. Внутри этих каталогов у вас будет обычная структура — bin, shareи т. д. Stow «устанавливает» программное обеспечение, связывая каталоги и/или файлы с целью, обычно /usr/local. Установка perlгарантирует, что /usr/local/stow/perl/bin/perlбудет доступен как /usr/local/bin/perlи т. д. Таким образом, вам нужно только иметь /usr/local/binв PATH...

Stow можно указать использовать несколько каталогов Stow , что должно решить вашу проблему с ним. Пока каждая отдельная часть программного обеспечения имеет структуру каталогов, соответствующую типичной структуре каталогов в соответствии с /usr/local, им может управлять Stow.

Stow также хорошо работает с программами, хранящимися в вашем домашнем каталоге, с различными структурами. Таким образом, вы можете устанавливать программы в отдельные каталоги, но по-прежнему делать их доступными из одного общего каталога (, например.~/.local/bin).

Общий подход к Stow при сборке программ из исходного кода заключается в запуске./configure(или эквивалентного )с конечным целевым префиксом(/usr/local)и установке программного обеспечения с целевым каталогом внутри каталога Stow (. например, /usr/local/stow/perlв основном случае, описанном в руководстве; но /usr/local/Programming/perlтакже будет работать, используя /usr/local/Programmingв качестве каталога Stow ). Затем вы используете Stow, чтобы сделать программное обеспечение доступным, добавляя соответствующие символические ссылки.

1
28.01.2020, 05:15

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

Как вы написали, вы храните свои программы в /home/t/program_files/. Итак, скажем, у вас есть программа с именем GHR_Communicatorв папке communicators, которая, в свою очередь, имеет исполняемый файл ghrcпо пути:

/home/t/program_files/communicators/GHR_Communicator/ghrc

Теперь предположим, что вы назначаете общую папку для своих личных исполняемых файлов как /home/t/bin. Это будет единственная папка, которую нужно включить в переменную PATH. В некоторых дистрибутивах PATHсодержит его по умолчанию, так что проверьте его PATHи добавьте при необходимости.

Единственное, что вам нужно сделать, чтобы вызвать ghrcпо этому простому имени, — это создать ссылку в ~/bin, указывающую на исполняемый файл.

$ ln -sr ~/program_files/communicators/GHR_Communicator/ghrc ~/bin

Теперь просто позвониghrc:

$ ghrc

И вы его выполнили.

2
28.01.2020, 05:15

Теги

Похожие вопросы