স্থায়ীভাবে কীভাবে পরিবেশগত ভেরিয়েবল সেট করবেন


227

আমার পরিবর্তনগুলি হয়

LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64

স্থায়ীভাবে এই পরিবর্তনগুলি কীভাবে সংরক্ষণ করবেন?


2
এই পৃষ্ঠার অন্যান্য উত্তর দুর্দান্ত। একটি ছোট প্রস্তাবনা হ'ল পথের /usr/lib/oracle/11.2/client64/libনীচে একটি নতুন ফাইল যুক্ত করা /etc/ld.so.conf.d/। তারপরে আপনাকে এলডি_লিবিআরএআইপিএটিএল সেট করার দরকার নেই, এখানেও দেখুন
এলিয়ট ফ্রিচ

1
যত্নবান, প্রাথমিকভাবে প্রদর্শিত হওয়ার চেয়ে এই গল্পটির আরও অনেক কিছুই রয়েছে। আমি আপনাকে আমার উত্তর যাচাই করার জন্য আমন্ত্রণ জানাচ্ছি।
জেসনলনহার্ড

উত্তর:


252

আপনি এটি ফাইল .profileবা আপনার লগইন শেল প্রোফাইল ফাইল (আপনার হোম ডিরেক্টরিতে অবস্থিত) এ যুক্ত করতে পারেন।

পরিবেশগত পরিবর্তনশীল "স্থায়ীভাবে" পরিবর্তন করতে আপনাকে কমপক্ষে এই পরিস্থিতিতে বিবেচনা করতে হবে:

  1. লগইন / অ লগইন শেল
  2. ইন্টারেক্টিভ / অ-ইন্টারেক্টিভ শেল

সজোরে আঘাত

  1. লগ-ইন শেল হিসাবে ব্যাশ লোড করা হবে /etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profileঅনুক্রমে
  2. লগ-ইন না করা ইন্টারেক্টিভ শেল হিসাবে বাশ লোড হবে ~/.bashrc
  3. নন-লগইন অ-ইন্টারেক্টিভ শেল হিসাবে ব্যাশ পরিবেশের পরিবর্তনশীলগুলিতে নির্দিষ্ট কনফিগারেশনটি লোড করবে $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

zsh

$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

ksh

$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

csh বা tcsh

$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বোর্নের মতো শেলগুলির /etc/csh.loginজন্য (টি) সিএসএস /etc/zsh/zprofileএবং /etc/zsh/zshrcজেডএসের জন্য।

অন্য বিকল্পটি হ'ল /etc/environment, লিনাক্স সিস্টেমে প্যাম মডিউলটি পড়ে pam_envএবং কেবল সাধারণ অ্যাসাইনমেন্টগুলি সমর্থন করে, শেল-স্টাইলের বিস্তৃতি নয়। (এটিতে দেবিয়ানের গাইড দেখুন ))

এই ফাইলগুলিতে ইতিমধ্যে কিছু অ্যাসাইনমেন্ট রয়েছে বলে সম্ভবত আপনার ফাইলটিতে উপস্থিত সিনট্যাক্সটি অনুসরণ করুন।

পরিবর্তনগুলি প্রয়োগ করতে শেলটি পুনরায় চালু করতে এবং ব্যবহারকারীকে পুনরায় চালু করতে ভুলবেন না।

আপনার যদি সিস্টেম ওয়াইড এনভায়রনমেন্ট ভেরিয়েবল যুক্ত করার দরকার হয় তবে ভেরিয়েবল /etc/profile.dআরম্ভ করার জন্য ফোল্ডারে এখন sh স্ক্রিপ্ট রয়েছে।
আপনি এখানে রফতানি সমস্ত ভেরিয়েবলের সাথে আপনার শ স্ক্রিপ্ট রাখতে পারেন।
সতর্ক থাকুন যদিও এটি দেবিয়ানকে এনভির সাথে চলক যুক্ত করার মানক উপায় হিসাবে ব্যবহার করা উচিত নয়।


এই .profileমধ্যে /etc/কিন্তু আমি এই ভেরিয়েবল সেট কিভাবে কি .profileদয়া করে আমাকে বলবেন
user3021349

6
.profileআপনার বাড়ির ডিরেক্টরিতে নেই/etc/
কিউই

1
[Admin@localhost etc]$ cat ~/.profile cat: /home/Admin/.profile: No such file or directory [Admin@localhost etc]$
ব্যবহারকারী 3021349

4
@ ইউজার 3021349 আমি অভদ্রতা বোঝাতে চাইছি না তবে আপনি যদি এক সেকেন্ড মনে করেন তবে আপনি নিজেরাই আলাদা আলাদা সম্পাদকও ব্যবহার করতে পারেন। :wqভিআই-তে ফাইল লিখতে এবং প্রস্থান করার জন্য আদেশটি কি escআগে টাইপ করতে ভুলবেন না
কিউই

3
আপনাকে crontabস্ক্রিপ্টগুলিতে পরিবেশের পরিবর্তনগুলি বিবেচনা করতে হবে । কোনও crontabস্ক্রিপ্ট চলার সময় এই অবস্থানগুলির কোনওটিই সন্ধান করা হবে না ।
ইগেল

71

সমস্ত ব্যবহারকারী / শেলগুলির জন্য, ডিস্ট্রো নির্ভর করে আপনি ব্যবহার করতে পারেন /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, ফাইলের কাজ করার জন্য নামকরণের সীমাবদ্ধতাও থাকতে হবে যা অবশ্যই পূরণ করতে হবে। ডেবিয়ান-তে, ফাইলটির অবশ্যই এক্সটেনশন থাকতে হবে .sh(যদিও এটি উত্সাহিত হওয়ার কারণে ব্যাং লাইন বা এক্সিকিউটেবল অনুমতি প্রয়োজন নেই)। আপনার ডিস্ট্রো ডকুমেন্টেশন চেক করুন বা /etc/profileএই ফাইলগুলি কীভাবে লোড হচ্ছে তা দেখতে স্ক্রিপ্টটি দেখুন।

সুরক্ষা ঝুঁকি হওয়া সহ LD_LIBRARY_PATHস্থায়ীভাবে স্থিতি স্থাপন করা সম্ভাব্য সমস্যাযুক্ত হলেও নোট করুন । বিকল্প হিসাবে, আমি LD_LIBRARY_PATHপ্রতিটি প্রোগ্রামের যে কমান্ড লাইন চালানোর আগে এটির প্রয়োজন হবে তার জন্য প্রিপেন্ড করার জন্য কিছু উপায় অনুসন্ধান করার পরামর্শ দেব । উদাহরণ:

LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib myprog

এটি করার একটি উপায় হল প্রোগ্রামটি চালানোর জন্য একটি র‌্যাপার স্ক্রিপ্ট ব্যবহার করা। আপনি এটি আপনার প্রোগ্রামের মতো একই নামটি দিতে এবং এটি আপনার প্রোগ্রামের অবস্থানের আগে/usr/local/bin উপস্থিত বা অন্য যে কোনও জায়গায় রেখে দিতে পারেন । এখানে একটি উদাহরণ স্ক্রিপ্ট (স্ক্রিপ্টটি ভুলে যাবেন না ):PATHchmod +x

#!/bin/sh
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"

সুতরাং, আমি যদি আমার environmentফাইলে মান জোড়া যুক্ত করে থাকি তবে কী কারণে লোড হবে? উদাহরণস্বরূপ, vi সম্পাদক থেকে বেরিয়ে আসার পরে (সফলভাবে লিখিত পরিবর্তনগুলি), আমি echo $MY_NEW_VARIABLEএটি প্রিন্ট করে লিখতে এবং দেখতে প্রত্যাশা করছি - সম্পাদনা: আমি দেখছি তারা সেখানে আছে যদি আমি একটি নতুন কমান্ড শেল চালু করি
bkwdesign

এটি ব্যক্তিগত সমস্যা বা কী তা নিশ্চিত করুন না, তবে আমি /etc/environmentবাশ টার্মিনালটি পুনরায় চালু করেছি বা টাইপ করলেও আমাকে এটি সেট করার পরে আমার ওএস পুনরায় চালু করতে হয়েছিল source /etc/environment। সুতরাং আপনার যদি পরিবেশের পরিবর্তনশীল স্থায়ী হয় না এমন সমস্যাগুলি হয় তবে পুনরায় চালু করার চেষ্টা করুন।
ব্লেয়ারজ 23

@bkwdesign @ Blairg23, /etc/environmentকোনও স্ক্রিপ্ট নয়, সুতরাং এটি উত্সাহিত করা যায় না। এটি পিএএম দ্বারা লগইন করার সময় (এবং এক মুঠোয় অন্যান্য সিস্টেম ইভেন্ট) এ লোড করা হয়, সুতরাং আপনি $ su <your username here>বিচ্ছিন্ন সেশনে নতুন মানগুলি বাছাই করে টার্মিনালে লগআউট / লগইন বা একটি নতুন লগইন সেশন চালাতে পারেন run আপনি প্রস্থান করার পরে মানগুলি অদৃশ্য হয়ে যাবে, সুতরাং কেবলমাত্র সম্পূর্ণ লগআউট / লগইন করার জন্য এটি সম্ভবত কম ত্রুটি-প্রবণ।
অ্যারোনডানিয়েলসন

2

যখন আপনি ওরাকল ইনস্টল করেন, ওরাকল আপনাকে ঠিক আছে ক্লিক করার আগে কিছু স্ক্রিপ্ট চালানোর জন্য জিজ্ঞাসা করেছিল। এই স্ক্রিপ্টটি .bash_profileওরাকল ব্যবহারকারী হোম ডিরেক্টরিতে একটি ডামি সেটিং রেখেছিল। ফাইলটি দেখতে, ls -alসমস্ত লুকানো ফাইলগুলি প্রদর্শন করবে।

nano bash_profileফাইলটি খুলতে টাইপ করুন। আপনার হোস্টনাম এবং যথাযথ sid নামটি প্রতিবিম্বিত করতে ফাইলটিতে পরিবর্তন করুন। সংশোধন প্রয়োজন যে কোনও অন্যান্য সেটিংস চেক করুন। সংরক্ষণ করতে কন্ট্রোল এক্স টিপুন এবং আপনি সংরক্ষণ করতে চান কিনা জানতে চাইলে y টাইপ করুন। সংরক্ষণ করতে রিটার্ন কী টিপুন। কম্পিউটার পুনরায় চালু করুন। ওরাকল ব্যবহারকারী হিসাবে লগইন করা হচ্ছে। টাইপ করে ডাটাবেস শুরু করুন

sqlplus / as sysdba

startup  

এটি কীভাবে গৃহীত উত্তর থেকে আলাদা ?
রোয়াইমা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.