ตัวแปรของฉันคือ
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
จะบันทึกตัวแปรเหล่านี้อย่างถาวรได้อย่างไร?
ตัวแปรของฉันคือ
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
จะบันทึกตัวแปรเหล่านี้อย่างถาวรได้อย่างไร?
คำตอบ:
คุณสามารถเพิ่มลงในไฟล์.profile
หรือไฟล์โปรไฟล์เชลล์ล็อกอินของคุณ (อยู่ในโฮมไดเร็กทอรีของคุณ)
หากต้องการเปลี่ยนตัวแปรด้านสิ่งแวดล้อม "อย่างถาวร" คุณจะต้องพิจารณาอย่างน้อยในสถานการณ์เหล่านี้:
/etc/profile
, ~/.bash_profile
, ~/.bash_login
, ~/.profile
ในการสั่งซื้อ~/.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
หากคุณต้องการทำให้มันถาวรสำหรับผู้ใช้ทั้งหมดคุณสามารถแก้ไขไฟล์ที่เกี่ยวข้องภายใต้/etc/
เช่น/etc/profile
สำหรับเชลล์เหมือน Bourne /etc/csh.login
สำหรับ (t) csh /etc/zsh/zprofile
และ/etc/zsh/zshrc
สำหรับ zsh
อีกทางเลือกหนึ่งคือการใช้งาน/etc/environment
ซึ่งในระบบ Linux นั้นอ่านด้วยโมดูล PAM pam_env
และรองรับการมอบหมายอย่างง่ายเท่านั้นไม่ใช่การขยายสไตล์เชลล์ (ดูคำแนะนำของ Debianในเรื่องนี้)
ไฟล์เหล่านี้น่าจะมีงานที่มอบหมายอยู่แล้วดังนั้นให้ทำตามไวยากรณ์ที่คุณเห็นอยู่ในไฟล์ของคุณ
ตรวจสอบให้แน่ใจว่าได้รีสตาร์ทเชลล์และเชื่อมต่อผู้ใช้ใหม่เพื่อใช้การเปลี่ยนแปลง
หากคุณต้องการเพิ่มตัวแปรสภาพแวดล้อมทั้งระบบตอนนี้จะมี/etc/profile.d
โฟลเดอร์ที่มีสคริปต์ sh เพื่อเริ่มต้นตัวแปร
คุณสามารถวางสคริปต์ sh ของคุณกับตัวแปรทั้งหมดที่ส่งออกได้ที่นี่
ระวังแม้ว่าสิ่งนี้ไม่ควรใช้เป็นวิธีมาตรฐานในการเพิ่มตัวแปรให้ env บน Debian
.profile
ใน/etc/
แต่ฉันไม่ได้ตั้งค่าตัวแปรในสิ่งนี้ได้.profile
โปรดบอกฉัน
.profile
ไม่อยู่ในสารบบบ้านของคุณ/etc/
[Admin@localhost etc]$ cat ~/.profile cat: /home/Admin/.profile: No such file or directory [Admin@localhost etc]$
:wq
เป็นคำสั่งในการเขียนไฟล์และออกใน vi อย่าลืมพิมพ์esc
ก่อน
crontab
สคริปต์ จะไม่มีการค้นหาตำแหน่งเหล่านี้เมื่อcrontab
สคริปต์ทำงาน
จะทำอย่างไรถ้าสำหรับผู้ใช้ทั้งหมด / เปลือกหอยขึ้นอยู่กับ distro คุณสามารถใช้หรือ/etc/environment
/etc/profile
การสร้างไฟล์ใหม่/etc/profile.d
อาจจะดีกว่าถ้ามีอยู่เนื่องจากมีโอกาสน้อยที่จะขัดแย้งกับการอัปเดตที่ทำโดยระบบบรรจุภัณฑ์
ใน/etc/environment
ตัวแปรมักจะถูกตั้งค่าด้วยname=value
เช่น:
ORACLE_HOME=/usr/lib/oracle/11.2/client64
ใน/etc/profile
คุณต้องใช้export
เนื่องจากนี่เป็นสคริปต์เช่น:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
กันไปสำหรับไฟล์ภายใต้/etc/profile.d
นอกจากนี้ยังอาจมีข้อ จำกัด การตั้งชื่อซึ่งจะต้องพบกับไฟล์ที่จะทำงาน บน Debian ไฟล์นั้นจะต้องมีนามสกุล.sh
(แม้ว่าจะไม่จำเป็นต้องมีสายบาง ๆ หรือการอนุญาตให้ใช้งานได้เนื่องจากมันมีที่มา) ตรวจสอบเอกสาร distro ของคุณหรือดูที่/etc/profile
สคริปต์เพื่อดูวิธีโหลดไฟล์เหล่านี้
โปรดทราบว่าแม้ว่าการตั้งค่าLD_LIBRARY_PATH
อย่างถาวรอาจเป็นปัญหารวมถึงการเสี่ยงต่อความปลอดภัย เป็นทางเลือกฉันขอแนะนำให้หาวิธีที่LD_LIBRARY_PATH
จะเติมจุดเริ่มต้นของบรรทัดคำสั่งสำหรับแต่ละโปรแกรมที่ต้องการก่อนที่จะทำงาน เช่น:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib myprog
วิธีหนึ่งในการทำเช่นนี้คือใช้สคริปต์ตัวตัดคำเพื่อเรียกใช้โปรแกรม คุณสามารถให้นี้ชื่อเดียวกับโปรแกรมของคุณและวางไว้ใน/usr/local/bin
หรือที่ใดก็ได้ที่ปรากฏขึ้นก่อนที่PATH
สถานที่ตั้งของโปรแกรมของคุณใน นี่คือตัวอย่างสคริปต์ (อย่าลืมchmod +x
สคริปต์):
#!/bin/sh
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"
environment
ไฟล์ของฉันสิ่งใดที่ทำให้โหลดขึ้นมา ตัวอย่างเช่นหลังจากออกจากตัวแก้ไข vi (การเปลี่ยนแปลงที่เขียนสำเร็จ) ฉันคาดว่าจะเขียนecho $MY_NEW_VARIABLE
และเห็นมันพิมพ์ออกมา - แก้ไข: ฉันเห็นพวกเขาอยู่ที่นั่นถ้าฉันเปิดใช้เชลล์คำสั่งใหม่
/etc/environment
source /etc/environment
ดังนั้นหากคุณมีปัญหาเกี่ยวกับตัวแปรสภาพแวดล้อมที่ไม่เป็นอมตะลองรีบูตเครื่อง
/etc/environment
ไม่ใช่สคริปต์ดังนั้นจึงไม่สามารถจัดหาได้ มันถูกโหลดในเวลาเข้าสู่ระบบ (และกิจกรรมอื่น ๆ ของระบบ) โดย PAM ดังนั้นคุณสามารถออกจากระบบ / เข้าสู่ระบบหรือเรียกใช้เซสชันการเข้าสู่ระบบใหม่ในเทอร์มินัลโดย$ su <your username here>
รับค่าใหม่ในเซสชันที่แยก ค่าจะหายไปเมื่อคุณออกดังนั้นจึงอาจเกิดข้อผิดพลาดน้อยกว่าเพียงแค่ออกจากระบบ / เข้าสู่ระบบอย่างสมบูรณ์
เมื่อคุณติดตั้ง oracle oracle จะขอให้คุณเรียกใช้สคริปต์ก่อนที่จะคลิกตกลง สคริปต์นั้นทำให้การตั้งค่าจำลองใน.bash_profile
ไดเรกทอรีบ้านของผู้ใช้ oracle หากต้องการดูไฟล์ls -al
จะแสดงไฟล์ที่ซ่อนไว้ทั้งหมด
พิมพ์nano bash_profile
เพื่อเปิดไฟล์ ทำการเปลี่ยนแปลงไฟล์เพื่อแสดงชื่อโฮสต์ของคุณและชื่อ sid ที่เหมาะสม ตรวจสอบการตั้งค่าอื่น ๆ ที่ต้องการแก้ไข กด control x เพื่อบันทึกและพิมพ์ y เมื่อถูกถามว่าคุณต้องการบันทึกหรือไม่ กดปุ่มย้อนกลับเพื่อบันทึก รีสตาร์ทคอมพิวเตอร์ เข้าสู่ระบบในฐานะผู้ใช้ oracle เริ่มฐานข้อมูลโดยการพิมพ์
sqlplus / as sysdba
startup
/usr/lib/oracle/11.2/client64/lib
ไฟล์ใหม่ภายใต้/etc/ld.so.conf.d/
เส้นทาง จากนั้นคุณไม่จำเป็นต้องตั้งค่า LD_LIBRARY_PATH ดูที่นี่ด้วย