OS X-də ətraf mühit dəyişənlərini qurmaq

OS X-də PATH kimi ətraf mühit dəyişənlərini dəyişdirmək üçün doğru yol nədir?

Google-a bir qədər axtarış etdilər və redaktə etmək üçün üç müxtəlif fayl tapdım:

  • / Etc / parçaları
  • ~ / .profile
  • ~ /. tcshrc

Hətta bu fayllardan bəziləri yoxdur və əminəm ki, .tcshrc səhvdir, çünki OS X indi bash istifadə edir. Bu dəyişənlər, xüsusilə PATH, harada müəyyən edilir?

OS X v10.5 (Leopard) əməliyyatını davam etdirirəm .

782
25 сент. Paul Wicks tərəfindən təyin olunan Sep 25 2008-09-25 23:06 '08 at 11:06 pm 2008-09-25 23:06
@ 29 cavab

Bruno doğru yolda. Geniş araşdırma etdim və bütün qrafik tətbiqlərdə mövcud dəyişənləri təyin etmək istəyirsinizsə, yalnız seçim /etc/launchd.conf .

Spotlight ilə işləyən tətbiqlər üçün .plist mühit işləmir. Burada Steve Saxton tərəfindən bəhs edilir .

  1. Terminala dəvətnamə açın

  2. sudo vi/etc/launchd.conf daxil edin (Qeyd: bu fayl hələ olmaya bilər)

  3. Məzmunu faylda bir faylda yerləşdirin.

    xargs göstərilən grep / xargs grep istifadə edin. 

  4. Değişkenlerinizin bir terminal penceresi açarak ve ihracat yazaraq export ve yeni değişkenleri göreceğinizi kanıtlayın. Onlar həmçinin Spotlight vasitəsilə başlayan IntelliJ IDEA və digər GUI tətbiqlərində də mövcud olacaq.

611
26 февр. Matthew McCullough tərəfindən verilmiş cavab 26 fevral. 2009-02-26 02:42 '09 at 2:42 am 2009-02-26 02:42

Spotlight işləyən yeni proseslər üçün ətraf mühitin qurulması (yenidən başlamadan)

launchctl setenv startd (və əlavə, Spotlight-da başlayan hər şey) tərəfindən istifadə olunan mühiti müəyyən edə bilərsiniz. Məsələn, yolunu təyin etmək üçün:

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

Yoxsa, .bashrc və ya oxşar olaraq özelleştirmek isterseniz, başlatma yerinde yansıtın:

 PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin launchctl setenv PATH $PATH 

Yenidən başlamağa ehtiyac yoxdur , amma dəyişdirilmiş mühitin göstərilməsini istəyirsinizsə onu yenidən başladın.

Bu, Terminal.app-da artıq işləyən hər hansı bir mərmi daxildir, baxmayaraq ki, siz orada olsanız da, məsələn, daha mühiti müəyyən edə bilərsiniz. export PATH=/opt/local/bin:/opt/local/sbin:$PATH ilə export PATH=/opt/local/bin:/opt/local/sbin:$PATH BAT və ya zsh üçün export PATH=/opt/local/bin:/opt/local/sbin:$PATH .

border=0

Yeniden başladıktan sonra dəyişiklikləri necə saxlamaq olar?

Yeniden /etc/launchd.conf sonra dəyişiklikləri saxlamaq üçün, məsələn, /etc/launchd.conf ətraf mühit dəyişənlərini təyin edə bilərsiniz:

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

launchd.conf avtomatik olaraq yenidən başladır.

Bu dəyişikliklərin indi qüvvədə olmasını istəyirsinizsə, launchctl.conf (əmr üçün launchctl.conf sayəsində) emal etmək üçün bu əmrdən istifadə etməlisiniz.

 egrep -v '^\s*#' /etc/launchd.conf | launchctl 

launchctl haqqında daha çox məlumat əldə edə bilərsiniz və man launchctl launchd.conf istifadə edərək man launchctl .

242
21 сент. Matt Curtis tərəfindən verilmiş cavab 21 Sep 2010-09-21 04:23 '10 at 4:23 pm 2010-09-21 04:23

OS X v10.7 (Lion) daxil və bunlara qədər aşağıdakıları quraşdırmaq olar:

 ~/.MacOSX/environment.plist 

Görmək üçün:

Terminaldakı PATH üçün, .bash_profile və ya .profile (siz onu yaratmaq lazım ola bilər)

OS X v10.8 (Mountain Lion) və daha çox üçün launchctllaunchctl istifadə etmək lazımdır .

102
25 сент. Cavab 25 sentyabr tarixində verilir 2008-09-25 23:08 '08 at 11:08 pm 2008-09-25 23:08

Bir qaydanın hər iki komanda xətti və qrafik tətbiqi üçün həll (Yosemite və El Capitan ilə işləyir)

~/.bash_profile , aşağıdakı ~/.bash_profile olduğu kimi, mühit dəyişən tərifləri var:

 export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)" export GOPATH="$HOME/go" export PATH="$PATH:/usr/local/opt/go/libexec/bin:$GOPATH/bin" export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH" 

Sistemə daxil olduğunuza və istənilən zaman hər hansı bir zamanda, bu dəyişənləri bir istifadəçi seansına yükləyəcək hər dəfə baş verəcək bir başlanğıc agentinə ehtiyacımız var. Həm də bu tərifləri təhlil etmək və agent tərəfindən icra edilmək üçün lazım olan əmrləri qurmaq üçün bir ssenari hazırlayacağıq.

Aşağıdakı məzmunlarla ~/Library/LaunchAgents/ in plist osx-env-sync.plist ilə bir fayl yaradın (məsələn, osx-env-sync.plist ):

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>osx-env-sync</string> <key>ProgramArguments</key> <array> <string>bash</string> <string>-l</string> <string>-c</string> <string> $HOME/.osx-env-sync.sh </string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> 

-l parametri çox vacibdir; script skriptini giriş ~/.bash_profile yerinə yetirmək lazımdır ki, ~/.bash_profile bu əmri yerinə yetirilməzdən əvvəl əvvəlcə qəbul olunur.

İndi shell skript. ~/.osx-env-sync.sh də aşağıdakı məzmunlarla yaradın:

 grep export $HOME/.bash_profile | while IFS=' =' read ignoreexport envvar ignorevalue; do launchctl setenv ${envvar} ${!envvar} done 

Ssenari kabuğunun icrası mümkün olduğundan əmin olun:

 chmod +x ~/.osx-env-sync.sh 

İndi cari seans üçün başlanğıc agentini yükləyin:

 launchctl load ~/Library/LaunchAgents/osx-env-sync.plist 

(Re) GUI tətbiqini başladın və ətraf mühit dəyişənlərini oxumağa əmin olun.

Ayar qalıcıdır. Yenidən yüklənmə və reloglara davam edəcək.

Başlanğıc quraşdırmadan sonra (yalnız etdiniz), daha sonra ~/.bash_profile bütün dəyişikliklərinizi yenidən əks etdirmək istəyirsinizsə launchctl load ... əmrini yenidən launchctl load ... istədiyiniz şeyi etməyəcəksiniz; əvəzinə aşağıdakılara bənzər bir xəbərdarlıq alacaqsınız:

<$HOME>/Library/LaunchAgents/osx-env-sync.plist: Operation already in progress

Çıxış / gediş prosesindən keçmədən ətraf mühit dəyişənlərini yenidən yükləmək üçün aşağıdakı adımları baxın:

 launchctl unload ~/Library/LaunchAgents/osx-env-sync.plist launchctl load ~/Library/LaunchAgents/osx-env-sync.plist 

Nəhayət, dəyişikliklər barədə məlumatlandırmaq üçün zaten çalışan proqramları (Terminal.app daxil olmaqla) yenidən başladın.

GitHub layihəsinə kod və şərhlər əlavə etdim: osx-env-sync .

Ümid edirəm ki, bu ən azı OS X-nin (Yosemite və El Capitan) ən yeni versiyaları üçün yekun qərar olacaqdır.

56
04 сент. Cavab Ersin Er 04 Sep tərəfindən verilir . 2015-09-04 23:06 '15 at 11:06 pm 2015-09-04 23:06

1.

 vim ~/.bash_profile 

Fayl mövcud olmaya bilər (əgər olmasa, sadəcə onu yarada bilərsiniz).

Bunun 2. növü və faylını saxlaya bilərsiniz:

 export PATH=$PATH:YOUR_PATH_HERE 

3.run

 source ~/.bash_profile 
46
25 нояб. Cavab MrROY 25 noyabr tarixində verilir. 2011-11-25 07:29 '11 at 7:29 2011-11-25 07:29

OS X-də ətraf mühit dəyişənləri ilə işləyərkən həll edilməsi lazım olan iki problem var. Birincisi Spotlight (Mac menyu / status çubuğunun sağ tərəfində böyüdücü şüşə simvolu) proqramlarını çağırır və ikincisi Dock proqramlarından, Terminal proqramı mühüm deyil, çünki standart ~/.profile ətraf mühit oxuyur ( ~/.profile , ~/.bash_profile , ~/.bashrc ~/.bash_profile , və s.).

Dock proqramlarından istifadə edərkən <dict> elementinin <key>KEY</key><string>theValue</string> bir ardıcıllığı olan ~/.MacOSX/environment.plist istifadə edin.

Spotlight proqramlarından zəng edərkən, setupd bütün lazımi əsas / dəyər parametrləri ilə konfiqurasiya olunduğundan əmin olun.

Hər iki problemi eyni zamanda həll etmək üçün mənim istifadəçi hesabımdakı giriş elementini (Sistem Tercihləri vasitəsi ilə) istifadə edirəm. Giriş elementi Emacs lisp funksiyasını çağırır, lakin əlbəttə ki, eyni şeyi etmək üçün sevimli scripting vasitənizdən istifadə edə bilərsiniz. Bu yanaşma hər hansı bir zamanda işləyən əlavə üstünlüyə malikdir və bir yenidən başlamağı tələb etmir, yəni. ~/.profile faylını ~/.profile bilərsiniz, giriş elementini istənilən qabığa ~/.profile və Dock-dan və ya Searchlight-dan yeni çağırılan proqramlara dəyişikliklər edə bilərsiniz.

Ətraflı:

Giriş Elementi: ~/bin/macosx-startup

 #!/bin/bash bash -l -c "/Applications/Emacs.app/Contents/MacOS/Emacs --batch -l ~/lib/emacs/elisp/macosx/environment-support.el -f generate-environment" 

Emacs lisp funksiyası: ~/lib/emacs/elisp/macosx/envionment-support.el

 ;;; Provide support for the environment on Mac OS X (defun generate-environment () "Dump the current environment into the ~/.MacOSX/environment.plist file." ;; The system environment is found in the global variable: ;; 'initial-environment' as a list of "KEY=VALUE" pairs. (let ((list initial-environment) pair start command key value) ;; clear out the current environment settings (find-file "~/.MacOSX/environment.plist") (goto-char (point-min)) (setq start (search-forward "<dict>\n")) (search-forward "</dict>") (beginning-of-line) (delete-region start (point)) (while list (setq pair (split-string (car list) "=") list (cdr list)) (setq key (nth 0 pair) value (nth 1 pair)) (insert " <key>" key "</key>\n") (insert " <string>" value "</string>\n") ;; Enable this variable in launchd (setq command (format "launchctl setenv %s \"%s\"" key value)) (shell-command command)) ;; Save the buffer. (save-buffer))) 

Qeyd. Bu həll, xüsusilə Matt Curtis'in ~/.bash_profile bir şey mənim əlavə etdi, lakin mən qəsdən müstəqil content platforma ~/.bash_profilelaunchd mühiti qəbulu (Mac yalnız alət) ayrı bir script .

34
26 марта '11 в 23:03 2011-03-26 23:03 Cavab verilir pajato0 26 mart '11 də 23:03 2011-03-26 23:03

Digər, pulsuz, açıq mənbə, Mac OSX Mountain Lion (10.8). / Environment.plist panel seçimi EnvPane'dir .

EnvPane mənbə kodu Github-da mövcuddur. EnvPane, müqayisə edilə bilən RCEnvironment funksiyalarına bənzəyir, ancaq bu anında saxlanılan dəyişənləri, yəni yenidən başlamağa və ya girişə ehtiyac duymadan, yenilənə bilər.

Geliştirici tərəfindən bildirildiyi kimi:

EnvPane Mac OS X 10.8 (Mountain Lion) üçün bir seçim çubuğudur ki, həm qrafik və həm də terminal iclaslarında bütün proqramlar üçün ətraf mühit dəyişənlərini təyin etməyə imkan verir. Yalnız Dağlıq Lion'da ~ / .MacOSX / environment.plist üçün dəstəyi bərpa etməklə yanaşı, çıxış və geri ehtiyacınız olmadan da ətraf mühitə ani dəyişikliklərinizi dərc edir.
< Snip gt;
EnvPane giriş açıldıqdan əvvəl başlayan 1) başlanğıc agentini açır (və avtomatik quraşdırır) və 2) hər zaman ~ / .MacOSX / environment.plist dəyişir. Agent ~ / .MacOSX / environment.plist faylını oxuyur və startctl setenv və launchctl unsetenv tərəfindən istifadə edilən eyni API vasitəsilə cari istifadəçi başlatma instansiyası üçün bu fayldan mühit dəyişənləri ixrac edir.

Disclaimer: Mən heç bir şəkildə geliştirici və ya onun layihəsi ilə bağlı deyiləm.

PS Mən adını sevirəm ("Ends Pain" kimi səslənir).

21
15 янв. cavab 15 yanvarda Big Rich tərəfindən verilir . 2013-01-15 17:04 '13 at 17:04 2013-01-15 17:04

Dağlıq Aslanda, /etc/paths/etc/launchd.conf bütün dəyişikliklər heç bir təsiri yoxdur!

Apple Forumları Forumları deyirlər:

"Info.plistin özünü dəyişdirin .app istədiyiniz bir ətraf mühit dəyişənləri ilə bir" LSEnvironment "lüğətini ehtiva edir.

~ / .MacOSX / environment.plist artıq dəstəklənmir. "

Beləliklə, birbaşa Info.plist proqramını düzəldirdim ("AppName.app" (bu halda, SourceTree-i sağa) və sonra " Show package contents ")

2019

17
24 янв. Cavab Flori tərəfindən 24 yanvarda verilir 2013-01-24 15:30 '13 saat 15:30 'da 2013-01-24 15:30

Buradakı cavablar "yanlış" deyildirsə, başqa bir şey əlavə edəcəyəm: OS X-də dəyişən heç bir dəyişikliyi heç vaxt "bütün proseslərə" təsir edən və ya hətta kənardan, müəyyən bir istifadəçi ilə interaktiv şəkildə həyata keçirilən bütün proseslər üçün.

Mənim təcrübəmdə, bütün proseslər üçün PATH kimi ətraf mühitin dəyişənlərindəki qlobal dəyişikliklər OS X-yə görə Windows-dan daha çox poza bilər. Bunun səbəbi, bir çox OS X proqramının və digər proqramların (bəlkə də OS komponentlərinin özləri daxil olmaqla) başlıq altında UNIX komanda satırına aid olduğundan və sistem tərəfindən verilən bu alətlərin versiya davranışını üstələyir və mütləq yolları oxşar şərhlər DYLD_ *) dinamik yüklənmiş kitabxanalar və ətraf mühit dəyişənlərinə aiddir. Məsələn, OS X tərəfindən buraxılan Python və Ruby kimi tərcüməçilərin versiyalarının dəyişdirilməsinə dair müxtəlif suallara ən yüksək cavab verdiyini düşünün, "bunu etməyin".

OS X bu baxımdan digər Unix kimi əməliyyat sistemləri (məsələn, Linux, FreeBSD və Solaris) fərqlənmir; Ən çox ehtimal ki, Apple bunu asan bir şəkildə təmin etmir, çünki vəziyyətin pozulmasına səbəb olur. Windows, bu problemlərə həssas olmadığı ölçüdə, bu iki şeyə bağlıdır: (1) Windows proqramı, UNIX proqramının tətbiq etdiyi ölçüdə komanda-line vasitələrinə güvənməyə məcbur deyildir və (2) Microsoft həm də "DLL-Cəhənnəm" və "PATH" kimi "qlobal" konfiqurasiya parametrlərinin təsirini məhdudlaşdırmaq üçün Windows'un daha yeni versiyalarında dinamik yükləmə davranışını dəyişdirən bütün proseslərə təsir edən dəyişikliklərin səbəb olduğu təhlükəsizlik problemlərinin geniş tarixi.

Bu dəyişiklikləri daha kiçik ərazilərə məhdudlaşdırdığınız təqdirdə, daha çox sabit sisteminiz olacaq.

16
17 июля '12 в 4:46 2012-07-17 04:46 Cavab Jason T. Miller tərəfindən 17 iyul 'da 4:46' də verildi 2012-07-17 04:46

Bəzən əvvəlki bütün cavablar işləmir. Eclipse və ya IntelliJ IDEA sistemində dəyişən bir sistemə (məsələn, M2_HOME ) daxil olmaq istəyirsinizsə, bu halda mənim üçün işləyən yeganə şeydir:

Birincisi (addım 1) edit /etc/launchd.conf /etc/launchd.conf satırını ehtiva edir: "setenv VAR dəyəri" və sonra (addım 2) yenidən başladın.

.Bash_profile üçün sadə bir dəyişiklik işləməyəcək, çünki OS X-də digər Unix-lərdə olduğu kimi tətbiqlər də işləmir; onlar orijinal qabığın dəyişənlərini devralmırlar. Bütün digər dəyişikliklər naməlum bir səbəblə işləməyəcəkdir. Bəlkə başqası bunu aydınlaşdıra bilər.

15
16 янв. Cavab Bruno Ranschaert tərəfindən verilir 2009-01-16 15:12 '09 saat 15:12 'da 2009-01-16 15:12

Ətraf üstünlükləri panelini təqib etdikdən və linkin pozulduğunu və Apple saytından bir axtarışın bu barədə unutduqlarını göründüyünü göründükdən sonra ... Mən çətin bir başlama prosesinin izinə dönməyə başladım.

Mənim sistemimdə (Mac OS X 10.6.8), environment.plist-də müəyyən edilmiş dəyişənlərin etibarlı şəkildə Spotlight'dan (launchd vasitəsilə) tətbiq olunan proqramlara ixrac edildiyi ortaya çıxdı. Mənim problemim ondan ibarətdir ki, bu variantlar terminaldakı yeni başlama sessiyalarına ixrac edilmir. Yəni mən burada əks olunmuş bir problemim var.

Qeyd: environment.plist daha əvvəl təsvir edildiyi kimi XML deyil, JSON kimi görünür.

Spotlight tətbiqlərini vars redaktə etmək üçün ~ / MacOSX / environment.plist faylını əldə edə bildim və mənim .profile faylına aşağıdakıları daxil etməklə eyni varsa yeni bir terminal iclasına məcbur edə bildim:

 eval $(launchctl export) 
13
07 июля '11 в 2:59 2011-07-07 02:59 Cavab Russell B tərəfindən 07.07.2011 tarixində saat 02.05-də verilir

Güncelleme (2017-08-04)

MacOS 10.12.6 (Sierra) 'dan gəldikdə, bu üsul Apache httpd ( systemuser launchctl config parametrləri) üçün dayandırılıb. Digər proqramlar təsirlənməyəcəkdir. Bu, yəqin ki, bir httpd səhvidir.

Orijinal cavab

Bu, OS X 10.10 + (10.11 + xüsusilə köksiz rejimi, burada /usr/bin yazılmadığı üçün) üçün aiddir.

Bir neçə yerdə oxumaq ki, PATH dəyişənini təyin etmək üçün launchctl setenv PATH <new path> edir, OS X-də (şəxsi təcrübədən asılı görünür) səhv işləmir. PATH yayınlanmayan tətbiqlər üçün başqa PATH metodunun təyin oluna biləcəyini tapdım:

 sudo launchctl config user path <new path> 

Bu parametr startct başlanğıc səhifəsində sənədləşdirilir:

sistem konfiqurasiyası xüsusi parametr dəyər

Launchd (8) domainləri üçün davamlı konfiqurasiya məlumatlarını təyin edir. Yalnız sistem domen və istifadəçi domenləri konfiqurasiya edilə bilər. Daimi saxlanmanın yeri tətbiqin detallarıdır və bu saxlama dəyişikliyi yalnız bu subcommand istifadə edilməlidir. Bu subcommand bir dəyişiklik bir yenidən başladın tələb edir.

[...]

yol

Hedef etki alanındaki bütün hizmetler üçün PATH ortam değişkeni dize değerine ayarlar. Dəmir dəyəri ətrafdakı PATH ətraf mühit dəyişkənliyi üçün müəyyən edilmiş formata uyğun olmalıdır (7). Bir xidmətin öz PATH'sını göstərdiyini nəzərə alsaq, xidmətə xas olan ətraf mühit dəyişkənliyi üstünlük təşkil edəcəkdir.

Qeyd. Bu alət bir domendə bütün xidmətlər üçün ümumi ətraf mühit dəyişənlərini təyin etmək üçün istifadə edilə bilməz. Bu qəsdən PATH dəyişkən mühitə bağlıdır və təhlükəsizlik səbəbləri üçün heç bir şey yoxdur.

Mən bunu getenv ( getenv almaq üçün PATH istifadə edən) çalışan GUI proqramı ilə işləməyi təsdiqləyib. Xahiş edirik unutmayın ki, yalnız bir dəfə bunu etməlisiniz və dəyişiklik yenidən başlamadan daimi olacaq.

13
02 окт. Cavab Max Leske 02 okta verildi . 2015-10-02 10:31 '15 at 10:31 'da 2015-10-02 10:31

İstədiyiniz şeyi etmək çox sadə bir üsuldur. Mənim vəziyyətimdə işləmək üçün gradle ( Android Studio )

  • Terminal açın.
  • Aşağıdakı əmri çalıştırın:

    sudo nano /etc/paths və ya sudo vim /etc/paths

  • İstendiğinde parolunuzu daxil edin.

  • Dosyanın sonuna keçin və əlavə etmək istədiyiniz yolu daxil edin.
  • Hit-kontrolün çıxması.
  • Modifikasiya edilmiş tamponu saxlamaq üçün "Y" daxil edin.
  • Yeni bir terminal pəncərəsini açın və daxil edin:

    echo $PATH

PATH-ın sonuna əlavə olunan yeni yolu görmək lazımdır.

Bu məlumatı bu mesajdan əldə etdim:

http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q

Ümid edirəm ki, bu, başqasına kömək edə bilər.

10
24 сент. Cavab verilir wired00 24 sep . 2013-09-24 06:24 '13 saat 06:24 'da 2013-09-24 06:24

Baş Bash fayllarının hər hansı biri ~/.bash_profile , ~/.profile , ~/.profile . GUI tətbiqlərində ~/.MacOSX/environment.plist dəyişənləri üçün ~/.MacOSX/environment.plist adlı bəzi qəribə fayl da var.

10
25 сент. John Millikin tərəfindən verilmiş cavab 25 sentyabr 2008-09-25 23:08 '08 at 11:08 pm 2008-09-25 23:08

Matt Curtis kimi, mən ətraf mühiti dəyişənləri launchctll vasitəsilə təyin etdim, ancaq ixrac etdiyim bir funksiyaya büküldüm ki, mən hər zaman olduğu kimi dəyişən bir ixracat verdiyim zaman mənim .bash_profile üçün də işə salındı. İşdə budur:

  • Mənim .bash_profile yalnız bir xəttdən ibarətdir (bu yalnız şəxsi seçimdir).

     source .bashrc 
  • My .bashrc aşağıdakılara malikdir:

     function export() { builtin export "$@" if [[ ${#@} -eq 1  "${@//[^=]/}" ]] then launchctl setenv "${@%%=*}" "${@#*=}" elif [[ ! "${@//[^ ]/}" ]] then launchctl setenv "${@}" "${!@}" fi } export -f export 
  • Yuxarıdakı "ixrac" ilə yükü ağır yükləyəcək və adi olaraq hər şeyi ixrac edəcəyik ("ixracat" ilə bunu nəzərə alacaqsınız!) Və sonra düzgün olaraq launchbox istifadə edərək OS X tətbiqləri üçün bunları quraşdırın, aşağıdakılardan hər hansı birini istifadə edirsiniz:

     export LC_CTYPE=en_US.UTF-8 # ~$ launchctl getenv LC_CTYPE # en_US.UTF-8 PATH="/usr/local/bin:${PATH}" PATH="/usr/local/opt/coreutils/libexec/gnubin:${PATH}" export PATH # ~$ launchctl getenv PATH # /usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin export CXX_FLAGS="-mmacosx-version-min=10.9" # ~$ launchctl getenv CXX_FLAGS # -mmacosx-version-min=10.9 
  • Таким образом, мне не нужно отправлять каждую переменную в launchctctl каждый раз, и я могу просто настроить мой .bash_profile/.bashrc так, как я хочу. Откройте окно терминала, проверьте переменные среды, которые вас интересуют, с помощью launchctl getenv myVar , измените что-то в своем .bash_profile/.bashrc, закройте окно терминала и снова откройте его, снова проверьте переменную с помощью launchctl и voilá, он изменился.