Ну вот посадили мы каждое приложение в свой каталог а-ля винда (сосбвенно как я и предлагаю). Но дальше то нужно как-то удобно их запускать. Вот этот вопрос я и прорабатываю
Я думаю есть простое решение, надо поменять алгоритм поиска по переменной PATH: пусть в каталоге на который указывает эта переменная бинарники и библиотеки лежат не напрямую, а в директориях progname. Может в директориях вида /usr/progs/packet_prog_name/bin и /usr/progs/packer_prog_name/lib То есть принципиально ничего не меняется, но связанные файлы лежат ближе друг к другу. Но перелопачивать под это дистры и исходники будет та ещё возня.
Допустим, приложения ставятся в каталог ~/Apps по схеме ~/Apps/VideoLAN/VLC#3.6.8/{bin,lib,share}
Тогда можно сделать каталог ~/Apps/bin и внести его в глобальный PATH. В этот каталог пакетный менеджер будет класть автоматически сгенерированные скрипты, в нашем случае это скрипт под названием vlc#3.6.8. Этот скрипт будет через переменные LD_LIBRARY_PATH и прочие подхватывать для vlc каталоги bin, lib, share самого vlc и его зависимостей. А сам скрипт можно будет запускать глобально.
Т.е. будет запуск программ не напрямую бинарниками, а промежуточными сгенерированными скриптами, только и всего.
Ну вот посадили мы каждое приложение в свой каталог а-ля винда (сосбвенно как я и предлагаю). Но дальше то нужно как-то удобно их запускать. Вот этот вопрос я и прорабатываю
Я думаю есть простое решение, надо поменять алгоритм поиска по переменной PATH: пусть в каталоге на который указывает эта переменная бинарники и библиотеки лежат не напрямую, а в директориях progname. Может в директориях вида /usr/progs/packet_prog_name/bin и /usr/progs/packer_prog_name/lib То есть принципиально ничего не меняется, но связанные файлы лежат ближе друг к другу. Но перелопачивать под это дистры и исходники будет та ещё возня.
[ message lost ]
Допустим, приложения ставятся в каталог ~/Apps по схеме ~/Apps/VideoLAN/VLC#3.6.8/{bin,lib,share}
Тогда можно сделать каталог ~/Apps/bin и внести его в глобальный PATH. В этот каталог пакетный менеджер будет класть автоматически сгенерированные скрипты, в нашем случае это скрипт под названием vlc#3.6.8. Этот скрипт будет через переменные LD_LIBRARY_PATH и прочие подхватывать для vlc каталоги bin, lib, share самого vlc и его зависимостей. А сам скрипт можно будет запускать глобально.
Т.е. будет запуск программ не напрямую бинарниками, а промежуточными сгенерированными скриптами, только и всего.
Да, по такому пути можно попробовать пойти.
Ещё чуть-чуть и ты переизобретёшь Flatpak :P
Поэтому главное - вовремя остановиться 😁