Как и большинство людей, я время от времени устанавливаю что-то или пишу/использую скрипты, которые получены не из репозиториев моего дистрибутива или созданы «вручную», поэтому они могут не оказаться в системном пути по умолчанию или не должны туда добавляться.
Теперь есть разные способы действовать.
Что-то, что мне может понадобиться запускать только изредка или что в любом случае нужно запустить только в определенном каталоге, может оставаться таким, как есть, cd ~/stuff/fancyapp
и тогда ./fancyexecutable
этого будет достаточно.
Но иногда мне может понадобиться просто сделать что-то вроде backup.sh
из любого места, где я нахожусь, или другим программам нужно знать об определенном исполняемом файле, и для этого я могу обновить $PATH чем-то вроде PATH=$PATH:~/bin/backup/
, export PATH
и перезапустить сеанс. Однако это приводит меня к проблеме либо наличия "домашнего bin", куда я перемещаю/создаю символическую ссылку на каждый исполняемый файл ~/bin/
, либо, когда я хочу иметь упорядоченный домашний bin, необходимости добавлять каждый подкаталог в свой путь. (Или я мог быпридумайте что-нибудь, чтобы сделать путь рекурсивным)
Так каков же правильный, рекомендуемый и безопасный способ работы с вашим каталогом, bin
в котором будет несколько исполняемых файлов и подкаталогов?
решение1
Я устанавливаю все встроенное локальное ПО в /home/user/.local
каталог. Этот каталог в основном копирует структуру каталогов, /usr
как вы можете видеть:
> ls ~/.local
bin etc include jars lib lib64 libexec man share
Вы можете указать инструментам сборки задать этот каталог как префикс установки. Некоторые инструменты используют значение переменной среды PREFIX
для определения места установки, поэтому неплохо установить и его, но не полагайтесь на него.
Обратите внимание, что вам придется установить значение нескольких сред, таких как PATH
, LD_LIBRARY_PATH
, PKG_CONFIG_PATH
, CLASSPATH
соответственно.