Как я устанавливаю глобальную переменную окружения PATH на OS X?

Я не полагаю, что BSD является вполне столь же сформировавшимся как Linux на Рабочем столе, но для серверов это - горное тело.

Хотите ли Вы установить BSD, или не зависит полностью от того, для чего Вы используете свою машину. В то время как много вещей подобны Linux, много вещей отличаются также.

Однако вот информация о другом BSDs

  • OpenBSD: Тем, если это - почтовые цели, должна быть самая безопасная ОС (и это, вероятно),

  • NetBSD: это - девиз, "Конечно, это выполнит NetBSD". Это должно быть одной из большинства переносимых информационных систем вокруг. Многие люди выполняют его на рабочих столах также.

  • FreeBSD: Очень популярный для серверов, хотя снова многие люди выполняют его на рабочем столе также. Вероятно, самый популярный из всего BSDs

  • DragonFly BSD: относительный новый посетитель (2003), это было ветвление FreeBSD 4.8. Я не использовал его сам, но по-видимому стабильно.

101
задан 26 August 2018 в 21:57
8 ответов

Вы оказываетесь перед необходимостью устанавливать его на основе оболочки оболочкой; Bash и подобные csh оболочки не совместно используют те же конфигурационные файлы и синтаксис для корректировки ПУТИ.

Попытка выполнить в этом launchctl не будет работать, потому что переменные среды установлены на входе в систему; они не существуют в масштабе всей системы в Unix за пределами сессии оболочки.

Таким образом, Вы собираетесь хотеть добавить

setenv PATH "$PATH:/add/my/extra/path"

кому: /etc/csh.cshrc и

export PATH="$PATH:/more/paths:/

кому: /etc/bashrc.

Если Вы хотите переменные среды в приложениях GUI, это более сложно. Необходимо создать a .MacOSX/environment.plist файл в корневом каталоге каждого пользователя. .MacOSX каталог не будет, вероятно, существовать по умолчанию, таким образом, необходимо будет создать его.

Формат файла похож так:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

    <key>PRINTER</key>
    <string>myprinter</string>

    <key>PATH</key>
    <string>/path/to/thing/I/need</string>

    <key>DISPLAY</key>
    <string>0:1</string>

</dict>
</plist>

Больше на environment.plist находится на сайте Apple.

7
ответ дан 28 November 2019 в 19:21
  • 1
    Но настройки действительно вступают в силу, когда установлено в/etc/launchd.conf... Хм... / меня перепутан. –  Xerxes 1 June 2009 в 17:59
  • 2
    В самом деле? Какую переменную среды Вы устанавливаете там? –  palmer 1 June 2009 в 19:07

Вы взглянули на страницу справочника для path_helper утилита командной строки на OS X? Я ответил на несколько связанный вопрос на том, Так, чтобы я думал, что можно найти полезным.

1
ответ дан 28 November 2019 в 19:21

Я не уверен, принимает ли launchd это, но попытку:

setenv PATH "$PATH:/my/path"
0
ответ дан 28 November 2019 в 19:21
  • 1
    К сожалению, это doesn' t работа. Это doesn' t похожи на launchctl, имеет доступ к переменным среды, настолько легким. Существует команда для получения переменных среды, но there' s абсолютно никакая документация относительно того, как использовать его. –  lajos 1 June 2009 в 06:18

Я не уверен, почему Вы использовали бы /etc/launchd.conf в противоположность /etc/profile - но я не эксперт в Mac OS X - я полагаю Вам в том, что я уверен, что он работает, но launchd реализация/замена Mac OS X для init - Mac OS X смущает меня.

Так или иначе, setenv PATH "$PATH:/more/paths:/and/more/paths" будет работать (tcsh), и ручей окружает эквивалентный, export PATH="$PATH:/more/paths:/and/more/paths" - Я понятия не имею как launchd связан с конкретной оболочкой также.

Я думаю, что задал больше вопросов затем, я ответил =)

0
ответ дан 28 November 2019 в 19:21
  • 1
    /etc/profile настройки пути не замечены ни одним из приложений для GUI OS X. То единственное применяется к удару. Я хочу, чтобы все приложения получили новую установку пути. –  lajos 1 June 2009 в 07:36
  • 2
    Unix? Несомненно, it' s Unix. Я имею в виду, вид. Да, мы повредили материал that' s работал в течение 30 лет, но it' s все еще Unix! / вздох –  Matt Simmons 1 June 2009 в 15:48

Можно отредактировать глобальный путь путем добавления строк к /etc/paths, один путь на строку.

sudo nano /etc/paths должен получить Вас там.

3
ответ дан 28 November 2019 в 19:21

информация о GUI паломника корректна, но существует более удобный в сопровождении способ изменить путь, замеченный оболочкой. Как сказанный mediaslave, можно отредактировать /etc/paths, но еще лучше можно отбросить текстовый файл в /etc/paths.d/ это имеет путь в нем, и все оболочки создадут путь правильно.

Например, в моей системе:

$ cat /etc/paths
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
$ ls /etc/paths.d
X11       git      postgres
$ cat /etc/paths.d/postgres
/Library/PostgreSQL/8.4/bin
$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Library/PostgreSQL/8.4/bin:/usr/X11/bin:/usr/local/mysql/bin
71
ответ дан 28 November 2019 в 19:21

Я не уверен, покрыл ли кто-либо самый простой и самый изящный путь. По крайней мере, на   Mac OS X v10.6 (Snow Leopard).

Питание с [/etc/|~/.] из [profile|bashrc] файлы могут работать, но это - своего рода взлом. /etc/paths.d/ каталог является способом пойти:

  • Sudo в Вашего любимого редактора.
  • Создайте новый названный файл *name* (просто не называйте его чем-то, что это уже там) в /etc/paths.d/ с путем на строку:

    /usr/X11/bin
    /Developer/usr/bin
    
  • Затем добавьте

    eval '/usr/libexec/path_helper -s`
    

    кому: profile или bashrc, и необходимо быть хорошими для движения.

1
ответ дан 28 November 2019 в 19:21

/etc/launchd.conf

launchd.conf файл ** единственное полное решение, которое будет работать и на командную строку и на приложения GUI на  OS X v10.8 (Пума) и v10.9 (Индивидуалисты), тот, который будет работать с GUI и консольными приложениями для всех пользователей.

sudo touch /etc/launchd.conf
sudo nano /etc/launchd.conf

Добавить

setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

В примере выше я добавил /usr/local/bin к стандартной среде оценивает за ПУТЬ.

Следует иметь в виду, что этот файл не является сценарием, и у Вас нет опции использовать замены. Кроме того, чтобы иметь, они применили Вас, должен перезагрузить.

Помните, все другие являются только частичными решениями:

  • environment.plist не работает на приложения, запущенные через Центр внимания.
  • /etc/paths - только для консоли
  • /etc/csh.cshrc или /etc/bashrc - только для некоторых оболочек

Этот ответ основан на том же вопросе от Установки переменных среды на  Mac OS X.

48
ответ дан 28 November 2019 в 19:21

Теги

Похожие вопросы