Рейтинг:0

Изменить переменные окружения $PATH по умолчанию

флаг br

Я хочу изменить значение по умолчанию ДОРОЖКА Переменная в bash. Кроме того, я знаю, что могу написать экспорт PATH=$PATH:/путь/к/командам но это не мое решение. Я хочу, чтобы любые приложения использовали системный вызов, можно использовать новый путь.

Например, в коде Python:

  • из системы импорта ОС
  • система('моя-специальная-команда')

моя особая команда хранился в /path/to/my/commands/dir/my-special-command

Рейтинг:2
флаг cn

ОН ДОРОЖКА определяется на разных уровнях системы. Процессы и подоболочки наследуют настройки родительской оболочки. Итак, если вы экспорт путь в терминале, изменение будет действительным в текущей оболочке и любой подоболочке этого терминала.

Хотя вы можете добавить собственный путь для каждого исполняемого файла, который вы хотите разместить в любом месте вашей системы, этот подход быстро станет громоздким. Вам нужно будет добавить каталог в PATH для любого другого приложения, которое вы устанавливаете. Это ограничило бы переносимость вашей программы.

Прежде чем мы укажем, как можно изменить PATH на более высоком уровне, я бы предложил рассмотреть другие, лучшие подходы.

Поместите свой исполняемый файл в один из путей по умолчанию

Вместо этого придерживайтесь традиционного подхода к своим пользовательским приложениям, точно так же, как сопровождающие Ubuntu придерживаются некоторых преобразований при настройке приложений, поставляемых с системой.

Для ваших пользовательских приложений это означает: устанавливайте их где угодно. Затем установите исполняемый файл в один из каталогов, указанных в PATH.

Для ваших пользовательских программ, /USR/местные/бен это подходящие обычные места для размещения вашего исполняемого файла. Если вам нужно, чтобы исполняемый файл был доступен для каждого пользователя, поместите исполняемый файл в ~/.локальные/бен вместо. Оставлять /USR/бен к управлению системным программным обеспечением.

Исполняемый файл может быть двоичным, символической ссылкой на исполняемый файл, установленный в другом месте, или сценарием-оболочкой.

Кодирование пути в вашем исполняемом файле

Вместо того, чтобы полагаться на нестандартную общесистемную настройку PATH в вашей программе, определите пользовательские ПУТИ в самом исполняемом файле, где можно найти ресурсы. Чтобы сделать это переносимым, работайте с базовым каталогом, то есть с каталогом, в котором установлена ​​программа, и размещайте свои ресурсы в структуре каталогов под ним. Во время выполнения исполняемый файл может определить путь, по которому он находится. Поместите этот путь в переменную, например. RUN_PATH, затем найдите свои ресурсы, используя относительный путь, например. изображения в $RUN_PATHS/иконки и т. д.

Изменить общесистемный PATH

Если вы настаиваете на том, чтобы делать это по-своему, не стесняйтесь. Это ваша система. Это способ изменить переменную PATH в начале процесса загрузки. Как объяснялось ранее, этот подход сложен и неэлегантен для переноса. Если бы все решили работать по-вашему, это привело бы к большому PATH с пользовательскими записями в системе пользователя. Длинный путь замедляет поиск и выполнение любого исполняемого файла в системе.

vanadium avatar
флаг cn
@ bac0n, конечно, вы правы: спасибо, что указали.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.