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