Я согласен с Жилем в том, что Стоу, вероятно, является подходящим инструментом для этой работы. Базовая модель 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, чтобы сделать программное обеспечение доступным, добавляя соответствующие символические ссылки.
У меня нет опыта работы с 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
И вы его выполнили.