Biến của tôi là
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Làm thế nào để lưu các biến này vĩnh viễn?
Biến của tôi là
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Làm thế nào để lưu các biến này vĩnh viễn?
Câu trả lời:
Bạn có thể thêm nó vào tệp .profile
hoặc tệp hồ sơ vỏ đăng nhập của bạn (nằm trong thư mục chính của bạn).
Để thay đổi biến môi trường "vĩnh viễn", bạn cần xem xét ít nhất các tình huống sau:
/etc/profile
, ~/.bash_profile
, ~/.bash_login
, ~/.profile
theo thứ tự~/.bashrc
$BASH_ENV
$EDITOR ~/.profile
#add lines at the bottom of the file:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
$EDITOR ~/.zprofile
#add lines at the bottom of the file:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
$EDITOR ~/.profile
#add lines at the bottom of the file:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
$EDITOR ~/.profile
#add lines at the bottom of the file:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH ORACLE_HOME
$EDITOR ~/.login
#add lines at the bottom of the file:
setenv LD_LIBRARY_PATH /usr/lib/oracle/11.2/client64/lib
setenv ORACLE_HOME /usr/lib/oracle/11.2/client64
Nếu bạn muốn làm cho nó vĩnh viễn cho tất cả người dùng, bạn có thể chỉnh sửa các tệp tương ứng bên dưới /etc/
, ví dụ /etc/profile
như các shell giống như Bourne, /etc/csh.login
cho (t) csh /etc/zsh/zprofile
và /etc/zsh/zshrc
cho zsh.
Một tùy chọn khác là sử dụng /etc/environment
, mà trên các hệ thống Linux được đọc bởi mô-đun PAM pam_env
và chỉ hỗ trợ các bài tập đơn giản, không mở rộng kiểu vỏ. (Xem hướng dẫn của Debian về điều này.)
Các tệp này có thể đã chứa một số bài tập, vì vậy hãy làm theo cú pháp bạn thấy đã có trong tệp của mình.
Đảm bảo khởi động lại shell và đăng nhập lại người dùng, để áp dụng các thay đổi.
Nếu bạn cần thêm biến môi trường toàn hệ thống, giờ đây có /etc/profile.d
thư mục chứa tập lệnh sh để khởi tạo biến.
Bạn có thể đặt tập lệnh sh của bạn với tất cả các biến bạn đã xuất ở đây.
Hãy cẩn thận mặc dù điều này không nên được sử dụng như một cách chuẩn để thêm biến vào env trên Debian.
.profile
trong /etc/
nhưng tôi không làm thế nào để thiết lập các biến trong này, .profile
xin vui lòng cho tôi biết
.profile
có trong thư mục nhà của bạn không/etc/
[Admin@localhost etc]$ cat ~/.profile cat: /home/Admin/.profile: No such file or directory [Admin@localhost etc]$
:wq
là lệnh ghi tập tin và thoát trong vi đừng quên gõ esc
trước
crontab
các tập lệnh. Không có vị trí nào trong số này sẽ được tra cứu khi crontab
tập lệnh đang chạy.
Để làm nếu cho tất cả người dùng / shell, tùy thuộc vào distro bạn có thể sử dụng /etc/environment
hoặc /etc/profile
. Tạo một tệp mới trong /etc/profile.d
có thể thích hợp hơn nếu nó tồn tại, vì nó sẽ ít có khả năng xung đột với các bản cập nhật được thực hiện bởi hệ thống đóng gói.
Trong /etc/environment
, các biến thường được đặt với name=value
, ví dụ:
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Trong /etc/profile
, bạn phải sử dụng export
vì đây là tập lệnh, ví dụ:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
Cũng vậy với một tập tin dưới /etc/profile.d
hạn chế, cũng có thể được đặt tên mà phải được đáp ứng cho các tập tin để làm việc. Trên Debian, tệp phải có phần mở rộng .sh
(mặc dù không cần dòng bang hoặc quyền thực thi vì nó có nguồn gốc). kiểm tra tài liệu phân phối của bạn hoặc xem /etc/profile
tập lệnh để xem các tệp này được tải như thế nào.
Cũng lưu ý rằng cài đặt LD_LIBRARY_PATH
vĩnh viễn có khả năng có vấn đề , bao gồm cả rủi ro bảo mật. Để thay thế, tôi sẽ đề nghị tìm một số cách để LD_LIBRARY_PATH
bắt đầu dòng lệnh cho mỗi chương trình cần trước khi chạy. Ví dụ:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib myprog
Một cách để làm điều này là sử dụng tập lệnh bao bọc để chạy chương trình. Bạn có thể đặt cùng tên với chương trình của bạn và đặt nó vào /usr/local/bin
hoặc bất kỳ nơi nào xuất hiện trước vị trí của chương trình của bạn PATH
. Đây là một kịch bản ví dụ (đừng quên chmod +x
tập lệnh):
#!/bin/sh
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"
environment
tệp của mình , nguyên nhân nào khiến chúng tải lên? Ví dụ: sau khi thoát khỏi trình soạn thảo vi (các thay đổi được viết thành công), tôi hy vọng sẽ viết echo $MY_NEW_VARIABLE
và xem nó được in ra - EDIT: Tôi thấy chúng ở đó nếu tôi khởi chạy một shell lệnh mới
/etc/environment
, ngay cả khi tôi khởi động lại thiết bị đầu cuối bash hoặc gõ source /etc/environment
. Vì vậy, nếu bạn gặp vấn đề trong đó biến môi trường không tồn tại lâu, hãy thử khởi động lại.
/etc/environment
không phải là một tập lệnh, vì vậy nó không thể có nguồn gốc. Nó được PAM tải vào thời gian đăng nhập (và một số sự kiện hệ thống khác) bởi PAM, do đó bạn có thể đăng xuất / đăng nhập hoặc chạy phiên đăng nhập mới trong thiết bị đầu cuối bằng cách $ su <your username here>
chọn các giá trị mới trong phiên bị cô lập đó. Các giá trị sẽ biến mất sau khi bạn thoát, do đó có lẽ ít bị lỗi hơn khi chỉ đăng xuất / đăng nhập đầy đủ.
Khi bạn cài đặt oracle, oracle yêu cầu bạn chạy một số tập lệnh trước khi nhấp vào ok. Kịch bản lệnh đó đặt một thiết lập giả trong .bash_profile
thư mục nhà của người dùng oracle. Để xem tập tin, ls -al
sẽ hiển thị tất cả các tập tin ẩn.
gõ nano bash_profile
để mở tập tin. Thay đổi tệp để phản ánh tên máy chủ của bạn và tên sid phù hợp. kiểm tra bất kỳ cài đặt nào khác cần sửa đổi. nhấn control x để lưu và gõ y khi được hỏi nếu bạn muốn lưu. Nhấn phím quay lại để lưu. Khởi động lại máy tính. Đăng nhập như người dùng tiên tri. bắt đầu cơ sở dữ liệu bằng cách gõ
sqlplus / as sysdba
startup
/usr/lib/oracle/11.2/client64/lib
vào một tệp mới theo/etc/ld.so.conf.d/
đường dẫn. Sau đó, bạn không cần phải đặt LD_LIBRARY_PATH, xem thêm tại đây .