Đặt biến môi trường trên Mac OS X Lion


532

Khi ai đó nói "chỉnh sửa tệp .plist của bạn" hoặc ".profile của bạn" hoặc ".bash_profile", v.v., điều này chỉ làm tôi bối rối. Tôi không biết các tệp này ở đâu, làm thế nào để tạo chúng nếu tôi phải làm điều đó, v.v. và tại sao dường như có rất nhiều tệp khác nhau (tại sao? Chúng có làm những việc khác nhau không?)

Vì vậy, ai đó có thể vui lòng giải thích rất kiên nhẫn với người dùng Windows trước đây (muốn tuyệt vọng làm quen với sự dễ chịu nếu ban đầu hơi khó hiểu về thế giới OS X) làm thế nào để làm điều này từng bước?

Tôi cần các biến được đặt cho cả ứng dụng GUI và ứng dụng dòng lệnh và hiện tại nó dành cho tập lệnh ant cần các biến, nhưng rất có thể sẽ có các nhu cầu khác.

Xin lưu ý rằng tôi cũng có Lion, vì nhiều câu trả lời mà bạn nhận được Googling dường như đã lỗi thời đối với Lion ...

Cũng lưu ý rằng tôi thực tế không có kinh nghiệm sử dụng Terminal. Tôi sẵn sàng học hỏi, nhưng làm ơn giải thích cho một người mới ...


Không có câu trả lời sẽ hoạt động nếu bạn cố đọc nó từ một số ứng dụng như mùa xuân.
Mehraj Malik

Câu trả lời:


403

Đầu tiên, một điều cần nhận ra về OS X là nó được xây dựng trên Unix. Đây là nơi .bash_profile xuất hiện. Khi bạn khởi động ứng dụng Terminal trong OS X, bạn sẽ nhận được một bash shell theo mặc định. Shell bash đến từ Unix và khi tải, nó chạy tập lệnh .bash_profile. Bạn có thể sửa đổi tập lệnh này cho người dùng của bạn để thay đổi cài đặt của bạn. Tập tin này được đặt tại:

~/.bash_profile

Cập nhật cho Mavericks

OS X Mavericks không sử dụng môi trường.plist - ít nhất là không cho các ứng dụng windows OS X. Bạn có thể sử dụng cấu hình launchd cho các ứng dụng cửa sổ. .Bash_profile vẫn được hỗ trợ vì đó là một phần của bash shell được sử dụng trong Terminal.

Sư tử và chỉ sư tử núi

Các ứng dụng cửa sổ OS X nhận các biến môi trường từ tệp môi trường.plist của bạn. Đây có thể là những gì bạn có nghĩa là bởi tập tin ".plist". Tập tin này được đặt tại:

~/.MacOSX/environment.plist

Nếu bạn thực hiện thay đổi tệp môi trường.plist thì các ứng dụng windows OS X, bao gồm cả ứng dụng Terminal, sẽ được đặt các biến môi trường đó. Bất kỳ biến môi trường nào bạn đặt trong .bash_profile sẽ chỉ ảnh hưởng đến các bash shell của bạn.

Nói chung, tôi chỉ đặt các biến trong tệp .bash_profile của mình và không thay đổi tệp .plist (hoặc tệp launchd trên Mavericks). Hầu hết các ứng dụng cửa sổ OS X không cần bất kỳ môi trường tùy chỉnh nào. Chỉ khi một ứng dụng thực sự cần một biến môi trường cụ thể, tôi mới thay đổi tệp môi trường.plist (hoặc tệp launchd trên Mavericks).

Nghe có vẻ như những gì bạn muốn là thay đổi tệp môi trường.plist, chứ không phải là .bash_profile.

Một điều cuối cùng, nếu bạn tìm những tập tin đó, tôi nghĩ bạn sẽ không tìm thấy chúng. Nếu tôi nhớ lại một cách chính xác, chúng không có trong bản cài đặt Lion ban đầu của tôi.

Chỉnh sửa: Dưới đây là một số hướng dẫn để tạo một tệp plist.

  1. Mở Xcode
  2. Chọn Tệp -> Mới -> Tệp mới ...
  3. Trong Mac OS X, chọn Tài nguyên
  4. Chọn một tập tin
  5. Làm theo phần còn lại của lời nhắc

Để chỉnh sửa tệp, bạn có thể bấm Điều khiển để nhận menu và chọn Thêm Hàng. Sau đó, bạn có thể thêm một cặp giá trị quan trọng. Đối với các biến môi trường, khóa là tên biến môi trường và giá trị là giá trị thực cho biến môi trường đó.

Khi tệp plist được tạo, bạn có thể mở nó bằng Xcode để sửa đổi nó bất cứ lúc nào bạn muốn.


Được rồi cảm ơn. Tôi nghĩ rằng tôi đã hiểu rằng dấu ngã có nghĩa là thư mục nhà của tôi, phải không (tức là / Người dùng / Anders trong trường hợp của tôi)? Vì vậy, nếu chúng không tồn tại, tôi nên tạo một tệp văn bản trống mới, với tên bạn đã đề cập (tôi có được phép tạo tệp bắt đầu bằng dấu chấm không?)? Và sau đó thêm những gì trong các tập tin để thiết lập một biến môi trường? Chẳng hạn, tôi cần thêm một biến AHF_OPT sẽ trỏ đến một thư mục cần thiết bởi một tập lệnh ant, làm cách nào để thêm nó vào hai tệp này?
Anders

1
Hai điều cần thử: Đầu tiên, chuỗi đã dán của bạn có dấu chấm phẩy không chính xác sau ".dtd>" Có thể đó là lỗi sao chép và dán, nhưng tôi đã phải xóa nó để lấy Xcode để đọc tệp. Thứ hai, bạn có thể cần phải đăng xuất và đăng nhập lại để các hiệu ứng diễn ra.
David V

7
Ngoài ra nó rất hữu ích để biết về ~/.bashrc. ~/.bashrctệp chạy mỗi khi bạn mở shell bash không đăng nhập mới, chẳng hạn như xterm / aterm và ~/.bash_profilechỉ chạy với shell đăng nhập tức là khi bạn đăng nhập lần đầu vào hệ thống.
DanSkeel

1
Tìm thấy một lời giải thích rõ ràng tốt đẹp về việc thêm môi trường.plist tại đây developer.apple.com/l Library / mac / # qa / qa1067 / _index.html .
Và cuối cùng là

1
Great câu trả lời, ngoại trừ cụm từ vụng về "OS X cửa sổ ứng dụng." Điều đó thậm chí còn tệ hơn cả việc gọi X11 là "X Windows." Tốt hơn nên gọi nó là Aqua hoặc chỉ là "ứng dụng .app".
SigmaX

222

Của bạn .profilehoặc .bash_profilechỉ đơn giản là các tập tin có trong thư mục "nhà" của bạn. Nếu bạn mở cửa sổ Finder và nhấp vào tên tài khoản của bạn trong khung Favorites, bạn sẽ không thấy chúng. Nếu bạn mở một cửa sổ Terminal và gõ lsvào danh sách các tệp bạn vẫn sẽ không thấy chúng. Tuy nhiên, bạn có thể tìm thấy chúng bằng cách sử dụng ls -atrong thiết bị đầu cuối. Hoặc nếu bạn mở trình soạn thảo văn bản yêu thích của mình (giả sử TextEdit vì nó đi kèm với OS X) và thực hiện File-> Mở rồi nhấn Command+ Shift+. và nhấp vào tên tài khoản của bạn (thư mục chính), bạn cũng sẽ thấy chúng. Nếu bạn không nhìn thấy chúng, thì bạn có thể tạo một cái trong trình soạn thảo văn bản yêu thích của bạn.

Bây giờ, việc thêm các biến môi trường tương đối đơn giản và đặc biệt giống với các cửa sổ về mặt khái niệm. Trong .profilephần thêm của bạn , một dòng trên mỗi dòng, tên biến và giá trị của nó như sau:

export JAVA_HOME=/Library/Java/Home
export JRE_HOME=/Library/Java/Home

Vân vân.

Nếu bạn đang sửa đổi biến "PATH" của mình, hãy đảm bảo bao gồm PATH mặc định của hệ thống đã được đặt cho bạn:

export PATH=$PATH:/path/to/my/stuff

Bây giờ đây là phần kỳ quặc, bạn có thể mở một cửa sổ Terminal mới để các biến mới có hiệu lực, hoặc bạn sẽ cần phải gõ .profile hoặc .bash_profiletải lại tệp và áp dụng nội dung vào môi trường Terminal hiện tại của bạn.

Bạn có thể kiểm tra xem các thay đổi của mình có hiệu lực hay không bằng cách sử dụng lệnh "set" trong Terminal. Chỉ loạiset (hoặc set | morenếu bạn thích một danh sách phân trang) và chắc chắn những gì bạn đã thêm vào tệp ở đó.

Đối với việc thêm các biến môi trường vào các ứng dụng GUI, điều đó thường không cần thiết và tôi muốn nghe thêm về những gì bạn đang cố gắng làm để cung cấp cho bạn câu trả lời tốt hơn cho nó.


2
Cảm ơn, mặc dù tôi không hiểu phần cuối, tôi phải mở cửa sổ Terminal để đặt chúng hoặc gõ .profile? Nhưng tôi có phải mở cửa sổ Terminal để gõ .profile không? Và nếu chúng được tự động thiết lập chỉ bằng cách mở một cửa sổ Terminal, vậy tại sao tôi cần phải gõ nó ...? Và khi tôi đã mở một cái, liệu chúng có được đặt vĩnh viễn không? Có lẽ tôi đã hiểu lầm bạn, bởi vì ngay cả câu hỏi của tôi cũng không có ý nghĩa với tôi ...
Anders

4
Nếu bạn mở cửa sổ Terminal trước khi thay đổi hồ sơ của mình, những thay đổi đó sẽ không được phản ánh trong môi trường của Terminal hiện tại. Giải pháp nhanh chóng của bạn là chỉ cần mở một cửa sổ Terminal mới. Đó là tất cả. Mỗi cửa sổ mới sẽ có mọi thứ trong .profile được đặt trên đó. Luôn luôn. Cách để sửa các cửa sổ cũ, đã mở là gõ ".profile" 2 dấu chấm, 1 khoảng trắng giữa chúng. Lệnh "set" là đặt các biến môi trường sẽ chết khi bạn kết thúc phiên bạn đặt chúng. Sử dụng "set" không có đối số liệt kê các biến hiện được đặt.
tokkov

1
Ahhh, tôi thấy sự nhầm lẫn tôi tạo ra. Nếu bạn không có cửa sổ terminal mở, sau đó mỗi cửa sổ mới sẽ được tải .profile khi nó được mở ra và bạn cần phải làm gì cả. Mặt khác, nếu bạn đã chỉnh sửa .profile trong cửa sổ đầu cuối của bạn hoặc có các cửa sổ đầu cuối mở trước đó và muốn các thay đổi trong chúng, thì bạn chỉ cần gõ . .profileđể tải chúng.
tokkov

2
Tôi không thể làm cho nó hoạt động. Tôi đã thêm một tệp .bash_profile trong / Users / Anders, với dòng xuất AXF_DIR = / Ứng dụng / Anten / AHFormatterV53, nhưng quá trình ant vẫn không tìm thấy biến AXF_DIR ... và có rất nhiều thông tin, nhưng không có gì về biến này. Lưu ý rằng tôi cũng đã khởi động lại hệ thống chỉ để đảm bảo, và tôi cũng đã bắt đầu một cửa sổ Terminal mới ...
Anders

2
Hãy thử đặt tên cho nó .profile. Tôi vừa lén nhìn vào một chiếc máy mà tôi mới mua và dường như họ đang sử dụng .profilenhững ngày này chứ không phải.bash_profile
tokkov

77

Dưới đây là một số thông tin cụ thể về biến PATH trong Lion OS 10.7.x:

Nếu bạn cần thiết lập PATH trên toàn cầu, PATH được hệ thống tạo theo thứ tự sau:

  1. Phân tích nội dung của tệp /private/etc/paths , một đường dẫn trên mỗi dòng
  2. Phân tích nội dung của thư mục /private/etc/paths.d . Mỗi tập tin trong thư mục đó có thể chứa nhiều đường, một trong những con đường trên mỗi dòng. Thứ tự tải được xác định bởi tên tệp trước, và sau đó là thứ tự của các dòng trong tệp.
  3. Một setenv PATHcâu lệnh /private/etc/launchd.conf, sẽ nối đường dẫn đó đến đường dẫn đã được xây dựng ở # 1 và # 2 (bạn không được sử dụng $ PATH để tham chiếu biến PATH đã được xây dựng cho đến nay). Tuy nhiên, việc đặt PATH ở đây là hoàn toàn không cần thiết với hai tùy chọn khác, mặc dù đây là nơi có thể đặt các biến môi trường toàn cầu khác cho tất cả người dùng.

Các đường dẫn và biến này được kế thừa bởi tất cả người dùng và ứng dụng, vì vậy chúng thực sự mang tính toàn cầu - đăng xuất và đăng nhập sẽ không đặt lại các đường dẫn này - chúng được tạo cho hệ thống và được tạo trước khi bất kỳ người dùng nào có cơ hội đăng nhập, vì vậy những thay đổi này đòi hỏi phải khởi động lại hệ thống để có hiệu lực.

BTW, bản cài đặt sạch của OS 10.7.x Lion không có cái environment.plistmà tôi có thể tìm thấy, vì vậy nó có thể hoạt động nhưng cũng có thể không được dùng nữa.


1
Đúng, cảm ơn rất nhiều! Đây là nhiều hơn một chút liên quan đến hơn một .profile đơn giản.
Felixyz

2
Nếu bạn sử dụng đường dẫn.d và bạn có một đường dẫn chứa các thư mục chứa khoảng trắng, chỉ cần để chúng không bị xóa. nếu bạn cố gắng thoát khỏi chúng (đó là thông lệ tôi nghĩ vậy?) thì nó không hoạt động (ít nhất là đối với tôi). tôi đọc cái này ở đây: sweeting.org/mark/blog/2008/05/26/ (tìm kiếm 'dấu cách'). Hy vọng điều này sẽ giúp bất cứ ai khác!
Michael Trouw

1
@MichaelTrouw Nhận xét của bạn đã giúp tôi rất nhiều! Tôi đã thêm lối thoát cho các không gian, nhưng điều đó là không bắt buộc! Tôi đang dùng Mac OS 10.9.2
kpsfoo

@jon, paths.dkhác nhau như thế nào paths? Ngoài ra, cái trước có ghi đè lên cái sau không?
Pacerier

53
echo $PATH

nó in giá trị đường dẫn hiện tại

Sau đó làm vim ~/.bash_profilevà viết

export PATH=$PATH:/new/path/to/be/added

Ở đây bạn đang nối vào đường dẫn cũ, vì vậy hãy giữ đường dẫn cũ và thêm đường dẫn mới của bạn vào đường dẫn đó

sau đó làm

source ~/.bash_profile

Điều này sẽ thực thi nó và thêm đường dẫn

sau đó một lần nữa kiểm tra với

echo $PATH

2
lệnh "vim" phải là vim ~ / .bash_profile Tôi đã cố chỉnh sửa bài đăng nhưng SO bảo tôi chỉnh sửa phải có 6 ký tự: /
Jason Polites

31

Thật không may, không có câu trả lời nào trong số này giải quyết được vấn đề cụ thể mà tôi có.

Đây là một giải pháp đơn giản mà không cần phải lộn xộn bash. Trong trường hợp của tôi, nó đã được gradlelàm việc (cho Android Studio).

Btw, Các bước này liên quan đến OSX (Mountain Lion 10.8.5)

  • Mở Terminal.
  • Chạy lệnh sau:

    sudo nano /etc/paths(hoặc sudo vim /etc/pathscho vim)

    nano

  • Đi đến cuối tập tin và nhập đường dẫn bạn muốn thêm.
  • Nhấn control-x để thoát.
  • Nhập 'Y' để lưu bộ đệm đã sửa đổi.
  • Mở một cửa sổ terminal mới, sau đó gõ:

    echo $PATH

Bạn sẽ thấy con đường mới nối vào cuối của PATH

Tôi đã nhận được những chi tiết từ bài viết này:

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

Tôi hy vọng có thể giúp đỡ người khác


Sau 3 giờ cố gắng để hiểu và thực hiện xuất khẩu bất cứ công việc gì tôi đã thử và nó đã hoạt động. Một bước bị thiếu. Tôi sẽ thêm nó.
1,21 gigawatt

@ 1.21gigawts ahh tuyệt vời, rất vui vì nó đã giúp bạn ra ngoài, cảm ơn vì các chỉnh sửa
Wired00

1
Cập nhật: Điều này hoạt động nhưng sẽ phải khởi động lại hệ thống sau khi chỉnh sửa.
Anant Simran Singh

Giải pháp hoàn hảo!
Jayant Varshney

Hoàn hảo cho MacOS 10.12.X
Camille G.

23

Giải thích đơn giản

Bài đăng / câu hỏi này là loại cũ, vì vậy tôi sẽ trả lời một phiên bản đơn giản hóa cho người dùng OS X Lion. Theo mặc định, OSX Lion không có bất kỳ tệp nào sau đây:

  • ~ / .bashrc
  • ~ / .bash_profile
  • ~ /.

Nhiều nhất, nếu bạn đã làm bất cứ điều gì trong thiết bị đầu cuối, bạn có thể thấy ~ / .bash_history

Nó có nghĩa là gì

Bạn phải tạo tệp để đặt các lệnh bash mặc định của mình (thường là trong ~ / .bashrc). Để làm điều này, hãy sử dụng bất kỳ loại trình soạn thảo nào, mặc dù đơn giản hơn để thực hiện nó trong thiết bị đầu cuối:

  1. %> emacs .profile
  2. [từ loại w / trong emacs:] source ~/.bashrc
  3. [từ w / in emacs gõ:] Ctrl + x Ctrl + s(để lưu tệp)
  4. [từ loại w / in emacs:] Ctrl + x Ctrl + c(để đóng emacs)
  5. %> emacs .bashrc
  6. [từ w / in emacs gõ / dán tất cả các lệnh bash của bạn, lưu và thoát]

Lần sau khi bạn thoát và tải lại thiết bị đầu cuối, nó sẽ tải tất cả các tùy chọn bash của bạn. Để có biện pháp tốt, thông thường nên tách các lệnh của bạn thành các tên tệp hữu ích. Chẳng hạn, từ bên trong ~ / .bashrc, bạn nên có một source ~/.bash_aliasesvà đặt tất cả các lệnh bí danh của mình vào ~ / .bash_aliases.


Tại sao họ loại bỏ nó btw?
Pacerier

@Pacerier Tôi không chắc liệu họ có xóa nó không, nhưng không có các tùy chỉnh mà các tệp đó không cần thiết. Vấn đề là đối với bất kỳ ai mới sử dụng terminal / shell, OSX hoặc BSD, các tệp đó không rõ ràng và do đó khó tìm hiểu hơn.
vol7ron

Vậy họ đã thay thế nó bằng gì?
Pacerier

Chúng là tùy chọn, vì vậy họ không thay thế nó bằng bất cứ thứ gì; đó là một tệp RC
vol7ron

18

Điều làm việc cho tôi là tạo ra một .launchd.confbiến với các biến tôi cần:

setenv FOO barbaz

Tập tin này được đọc bởi launchd lúc đăng nhập. Bạn có thể thêm một biến 'đang hoạt động' vào launchd đang chạy bằng cách sử dụng:

launchctl setenv FOO barbaz`

Trong thực tế, .launchd.condchỉ đơn giản là chứa các lệnh launchctl.

Các biến được đặt theo cách này dường như có mặt trong các ứng dụng GUI đúng cách.

Nếu bạn đang cố gắng đặt các biến LANG hoặc LC_ của mình theo cách này và bạn tình cờ sử dụng iTerm2, hãy đảm bảo bạn vô hiệu hóa cài đặt 'Đặt biến cục bộ tự động' trong tab Terminal của Cấu hình bạn đang sử dụng. Điều đó dường như ghi đè các biến môi trường của launchd và trong trường hợp của tôi là đặt LC_CTYPE bị hỏng gây ra sự cố trên các máy chủ từ xa (đã vượt qua biến).

(Các environment.plist vẫn dường như làm việc trên Lion của tôi mặc dù. Bạn có thể sử dụng RCenvironment khung ưu đãi để duy trì các tập tin thay vì bằng tay chỉnh sửa nó hoặc yêu cầu Xcode. Tuy nhiên dường như làm việc trên Lion, mặc dù nó là bản cập nhật cuối cùng là từ Snow Leopard thời đại. Làm cho nó phương pháp của tôi cá nhân ưa thích.)


Cho đến nay câu trả lời dễ nhất. Lưu ý rằng bạn cần đóng hoàn toàn ứng dụng đầu cuối và mở lại ứng dụng để mọi thay đổi có hiệu lực - không chỉ đóng một cửa sổ đầu cuối duy nhất.
Timmmm

1
Câu trả lời này quá xa vời để được sử dụng cho OP. Tạo thế nào? Tạo ở đâu?
HenryRootTwo

15

Thiết lập biến môi trường PATH của bạn trên Mac OS

Mở chương trình Terminal (theo mặc định trong thư mục Ứng dụng / Ứng dụng của bạn). Chạy lệnh sau

touch ~/.bash_profile; open ~/.bash_profile

Điều này sẽ mở tệp trong trình soạn thảo văn bản mặc định của bạn.

Ví dụ với SDK ANDROID:

Bạn cần thêm đường dẫn vào thư mục công cụ và công cụ nền tảng SDK Android của mình. Trong ví dụ của tôi, tôi sẽ sử dụng "/ Development / android-sdk-macosx" làm thư mục mà SDK được cài đặt. Thêm dòng sau:

export PATH=${PATH}:/Development/android-sdk-macosx/platform-tools:/Development/android-sdk-macosx/tools

Lưu tệp và thoát khỏi trình soạn thảo văn bản. Thực thi .bash_profile của bạn để cập nhật PATH của bạn.

source ~/.bash_profile

Bây giờ, mỗi khi bạn mở chương trình Terminal, PATH sẽ bao gồm SDK Android.


Cảm ơn. Không biết tại sao, nhưng chỉ có giải pháp này hiệu quả với tôi, không phải những giải pháp trên.
kroky

Tôi đã thêm biến môi trường như bạn nói nhưng tôi không thể sử dụng nó trong xcode, bạn có ý tưởng gì không? Tôi cần sử dụng nó trong đường dẫn tìm kiếm tiêu đề. Cảm ơn trước.
Yucel Bayram

11

Thêm biến đường dẫn vào OS X Lion

Điều này khá dễ dàng và làm việc cho tôi, trong thiết bị đầu cuối:

$echo "export PATH=$PATH:/path/to/whatever" >> .bash_profile #replace "/path/to/whatever" with the location of what you want to add to your bash profile, i.e: $ echo "export PATH=$PATH:/usr/local/Cellar/nginx/1.0.12/sbin" >> .bash_profile 
$. .bash_profile #restart your bash shell

Một câu trả lời tương tự đã có ở đây: http://www.mac-forums.com/forums/os-x-operating-system/255324-probols-setting-path-variable-lion.html#post1317516


1
Điều đáng chú ý là bạn sẽ cần chạy cái này từ thư mục gốc. Hãy chắc chắn rằng đó là nơi bạn tại bằng cách ban hành cdmà không có đối số hoặc cd ~/.
ephsmith

3
Cũng không cần phải khởi động lại vỏ. Sử dụng source .bash_profile.
ephsmith

Tôi thích phương pháp này vì nó ngắn. Nhưng nó dường như không hoạt động. Tôi đã làm echo "export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin/mysql" >> .bash_profileSau đó, lần duy nhất tôi có thể làm mysql -u root -plà nếu tôi đã chạy root. Trong khi đó tôi có thể sử dụng Applications/XAMPP/xamppfiles/bin/mysql -u root -pbất cứ nơi nào. Tôi đã thử cả hai phương pháp khởi động lại được đề cập: Yaw's và @ ephsmith's.
kasavbere

Ngoài ra, nếu tôi thực hiện ech $ PATH là root (tức là sudo su) tôi sẽ nhận được /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/XAMPP/xamppfiles/bin. Khi tôi không root tôi nhận được/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
kasavbere

Các $PATHbiến là người dùng cụ thể (root là một người sử dụng).
ephsmith

7

Mở thiết bị đầu cuối:

vi ~/.bash_profile

Áp dụng thay đổi cho hệ thống (không cần khởi động lại máy tính):

source ~/.bash_profile

(Cũng hoạt động với macOS Sierra 10.12.1)


5

Tôi gặp vấn đề với Eclipse (bắt đầu là GUI, không phải từ tập lệnh) trên Maverics rằng nó không có PATH tùy chỉnh. Tôi đã thử tất cả các phương pháp được đề cập ở trên nhưng không có kết quả. Cuối cùng tôi đã tìm thấy câu trả lời làm việc đơn giản nhất dựa trên gợi ý từ đây :

  1. Tới /Applications/eclipse/Eclipse.app/Contents thư mục

  2. Chỉnh sửa tệp Info.plist bằng trình soạn thảo văn bản (hoặc XCode), thêm từ điển LSEn môi trường cho biến môi trường với đường dẫn đầy đủ . Lưu ý rằng nó cũng bao gồm / usr / bin, v.v .:

    <dict>
      <key>LSEnvironment</key>
      <dict>
            <key>PATH</key>
            <string>/usr/bin:/bin:/usr/sbin:/sbin:/dev/android-ndk-r9b</string>
      </dict>
      <key>CFBundleDisplayName</key>
      <string>Eclipse</string>
      ...
    
  3. Tải lại thông số cho ứng dụng với

    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.fra‌​mework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
    
  4. Khởi động lại Eclipse


5

Hãy để tôi minh họa bạn từ ví dụ cá nhân của tôi một cách rất dư thừa.

  1. Đầu tiên sau khi cài đặt JDK, hãy chắc chắn rằng nó đã được cài đặt. nhập mô tả hình ảnh ở đây
  2. Đôi khi macOS hoặc Linux tự động thiết lập biến môi trường cho bạn không giống như Windows. Nhưng đó không phải là trường hợp luôn luôn. Vì vậy, hãy kiểm tra nó. nhập mô tả hình ảnh ở đây Dòng ngay sau echo $ JAVA_HOME sẽ trống nếu biến môi trường không được đặt. Nó phải trống trong trường hợp của bạn.

  3. Bây giờ chúng tôi cần kiểm tra xem chúng tôi có tệp bash_profile không. nhập mô tả hình ảnh ở đây Bạn thấy rằng trong trường hợp của tôi, chúng tôi đã có bash_profile. Nếu không, chúng ta phải tạo một tệp bash_profile.

  4. Tạo một tệp bash_profile. nhập mô tả hình ảnh ở đây

  5. Kiểm tra lại để đảm bảo tập tin bash_profile ở đó. nhập mô tả hình ảnh ở đây

  6. Bây giờ hãy mở tệp bash_profile. macOS mở nó bằng chương trình TextEdit mặc định. nhập mô tả hình ảnh ở đây

  7. Đây là tập tin lưu giữ các biến môi trường. Nếu bạn đã mở một tệp bash_profile mới, nó phải trống. Trong trường hợp của tôi, nó đã được đặt cho ngôn ngữ lập trình python và phân phối Anaconda. Bây giờ, tôi cần thêm biến môi trường cho Java, chỉ cần thêm dòng đầu tiên. BẠN PHẢI KIẾM dòng đầu tiên ĐỘNG TỪ. CHỈ dòng đầu tiên. Lưu và đóng TextEdit. Sau đó đóng thiết bị đầu cuối. nhập mô tả hình ảnh ở đây

  8. Mở thiết bị đầu cuối một lần nữa. Hãy kiểm tra xem biến môi trường có được thiết lập không. nhập mô tả hình ảnh ở đây


4

Tôi đi theo con đường ngốc. Đã thêm những thứ này vào cuối / etc / profile

for environment in `find /etc/environments.d -type f`
do
     . $environment
done

đã tạo một thư mục / etc / môi trường tạo một tệp trong đó gọi là "oracle" hoặc "anything" và thêm những thứ tôi cần được đặt trên toàn cầu vào nó.

/ etc $ cat /etc/envirments.d/Oracle

export PATH=$PATH:/Library/Oracle/instantclient_11_2
export DYLD_LIBRARY_PATH=/Library/Oracle/instantclient_11_2
export SQLPATH=/Library/Oracle/instantclient_11_2
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export TNS_ADMIN=/Library/Oracle/instantclient_11_2/network/admin

1

Chi tiết hơn, có lẽ có thể hữu ích cho ai đó:

Do những khám phá của riêng tôi, bây giờ tôi biết cách đặt các biến môi trường theo 7 trong 8 cách khác nhau. Tôi đã cố gắng đưa envar thông qua một ứng dụng tôi đang phát triển theo Xcode. Tôi đặt các envars "tracer" bằng các phương thức khác nhau này để cho tôi biết những cái nào đưa nó vào phạm vi ứng dụng của tôi. Từ bên dưới, bạn có thể thấy rằng chỉnh sửa "lược đồ" trong Xcode để thêm các đối số hoạt động, cũng như "putenv". Điều gì đã không đặt nó trong phạm vi đó: ~ / .MACOS / môi trường. một nhưng quên mất cái mà tôi đã gọi là người theo dõi và không thể tìm thấy nó bây giờ; có lẽ nó ở trên một máy khác ....)

GPU_DUMP_DEVICE_KERNEL là 3

GPU_DUMP_TRK_ENVPLIST là (null)

GPU_DUMP_TRK_APPPLIST là (null)

GPU_DUMP_TRK_DOTPROFILE là (không)

GPU_DUMP_TRK_RUNSCRIPT là (không)

GPU_DUMP_TRK_SCHARGS là 1

GPU_DUMP_TRK_PUTENV là 1

... mặt khác, nếu tôi vào Terminal và nói "set", có vẻ như người duy nhất nó nhận được là từ .profile (tôi đã nghĩ rằng nó sẽ nhận môi trường. Cũng vậy, và tôi chắc chắn rằng một khi tôi đã nhìn thấy một người theo dõi thứ hai trong Terminal, vì vậy một cái gì đó có lẽ đã trở nên tồi tệ kể từ đó. Ngày dài ....)


0

Bước 1: mở ~/.bash_profile

Bây giờ một trình soạn thảo văn bản mở ra:

Bước2: tên biến phải ở dạng chữ hoa. trong ví dụ này làNODE_ENV

Bước 3: export NODE_ENV=development

Lưu nó và đóng lại.

Khởi động lại hệ thống của bạn.

Làm xong.

Để kiểm tra biến env: mở terminal và gõ

echo $NODE_ENV 

0

Nên kiểm tra shell terminal mặc định trước khi đặt bất kỳ biến môi trường nào, thông qua các lệnh sau:

$ echo $SHELL
/bin/zsh

Nếu thiết bị đầu cuối mặc định của bạn là / bin / zsh (Z Shell) như trong trường hợp của tôi (Cá nhân thích Z Shell), thì bạn nên đặt biến môi trường này trong tệp ~ / .zshenv với nội dung sau (Trong ví dụ này, đặt biến môi trường JAVA_HOME , nhưng áp dụng tương tự cho những người khác):

export JAVA_HOME="$(/usr/libexec/java_home)"

Tương tự, bất kỳ loại thiết bị đầu cuối nào khác không được đề cập ở trên, bạn nên đặt biến môi trường trong tệp env thiết bị đầu cuối tương ứng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.