পরিবেশের পরিবর্তনশীল কোথায় ঘোষণা করবেন?


59

এর জন্য সঠিক স্থানগুলি কী:

  1. সমস্ত ব্যবহারকারীকে প্রভাবিত করতে গ্লোবাল এনভায়রনমেন্ট ভেরিয়েবল বলতে বোঝায়?
  2. ব্যবহারকারী-নির্দিষ্ট পরিবেশের ভেরিয়েবল?

উত্তর:


16

আমি মনে করি এনভায়রনমেন্ট ভেরিয়েবলের সম্প্রদায়ের উইকি পৃষ্ঠা আপনাকে বাছাই করতে সহায়তা করবে


2
সমস্যাটি হ'ল লিঙ্কযুক্ত নথিটি ব্যবহারকারী-নির্দিষ্ট ভেরিয়েবলগুলির অংশে বিভ্রান্ত এবং / অথবা সাধারণ ভুল plain আমি এখনও এটি করার জন্য শেল-অজানাস্টিক উপায় খুঁজতে চেষ্টা করছি।
— OME

16
দয়া করে পাঠ্য আটকে দিন বা লিঙ্কযুক্ত সামগ্রীর স্ন্যাপশট নিন - এটি ভবিষ্যতে উপলভ্য নাও হতে পারে!
— নাম জি ভিইউ

4
যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
— থমাস ওয়ার্ড

75

সাগরচালাইসের উত্তরে যুক্ত করতে আমি লিঙ্কটি সেটিংসের জন্য উপযুক্ত স্থান হিসাবে কী প্রস্তাব দেয় তা সংক্ষেপে বলতে পারি।

গ্লোবাল সেটিংসের জন্য, সিস্টেম-ব্যাপী পরিবেশের ভেরিয়েবল

  • ব্যবহার /etc/environment
  • ব্যবহার করবেন না /etc/profileবা/etc/bash.bashrc

পৃষ্ঠা থেকে:

/etc/environment[...] বিশেষত সিস্টেম-ব্যাপী পরিবেশ পরিবর্তনশীল সেটিংসের জন্য বোঝানো হয়। এটি কোনও স্ক্রিপ্ট ফাইল নয়, বরং লাইন প্রতি এক করে অ্যাসাইনমেন্ট এক্সপ্রেশন নিয়ে গঠিত। বিশেষত, এই ফাইলটি সিস্টেম-বিস্তৃত লোকেল এবং পথের সেটিংস সঞ্চয় করে।

ব্যবহার /etc/profileকরা একটি খুব ইউনিক্স-ওয়াই পথ, তবে উবুন্টুর অধীনে এর কার্যকারিতাটি হ্রাস পেয়েছে। এটি কেবলমাত্র /etc/bash.bashrcএন্ট্রিগুলি নির্দেশ করে এবং সংগ্রহ করার জন্য বিদ্যমান /etc/profile.d।

আমার সিস্টেমে, প্রোফাইল /etc/profile.d/bash_completion.sh. d-এ একমাত্র আকর্ষণীয় এন্ট্রি is

স্থানীয় বা প্রতি ব্যবহারকারী সেটিংসের জন্য

উবুন্টু পৃষ্ঠার পূর্ববর্তী সংস্করণটি সুপারিশ করা হয়েছিল ~/.pam_environment, তবে পৃষ্ঠাটি বর্তমানে পরামর্শ দেয় যে এটি যদি কাজ না করে তবে আপনার ব্যবহার করা উচিত

  • ~/.profile - এটি সম্ভবত পরিবেশের পরিবর্তনশীল অ্যাসাইনমেন্ট স্থাপনের জন্য সেরা ফাইল, যেহেতু এটি প্রারম্ভিক প্রক্রিয়া ডেস্কটপ সেশনের সময় ডিসপ্লে ম্যানেজারের সাথে সাথে পাঠ্য কনসোল থেকে লগ-ইন করার সময় লগইন শেল দ্বারা স্বয়ংক্রিয়ভাবে কার্যকর হয়।

  • ~/.bash_profileবা ~./bash_login- এর মধ্যে যদি একটি বিদ্যমান থাকে তবে ~/.profileল্যাশ লগইন শেল হিসাবে বাশ শুরু হওয়ার পরিবর্তে ব্যাশ এটি কার্যকর করে। ব্যাশ গ্রহন করেবেন ~/.bash_profileকরতে ~/.bash_login। [...] এই ফাইলগুলি ডিফল্টরূপে কোনও গ্রাফিকাল সেশনে প্রভাব ফেলবে না। "

  • ~/.bashrc - "... ভেরিয়েবল সেট করার সহজতম জায়গা হতে পারে"।

1
কোন প্রোগ্রামগুলি /etc/environmentকখন এবং কখন পড়া হয় ? এটি ক্রোন দিয়ে কাজ করছে বলে মনে হচ্ছে না, এমনকি ব্যবহার করার পরেওSHELL=/bin/bash
— সিস্টেমপারাডক্স

1
এটি উপস্থিত হয় যে / etc / এনভায়রনমেন্টটি প্যামের অংশ, যার অর্থ এটি সমস্ত প্রক্রিয়ার জন্য ডিফল্ট পরিবেশ নির্ধারণ করা উচিত। ক্রোন বিশেষ (এটির ভাঙ্গা) বিশেষত নিজের নিজের সাথে এই পরিবেশটি ওভাররাইট করার ক্ষেত্রে।
— সিস্টেমপারাডক্স

কিভাবে .brcrc আচরণ করে? বাশ_প্রফাইলে পরে? প্রোফাইলে পরিবর্তে?
— খোলে

1
@ ওপেনসাস আপনার সম্ভবত একটি পৃথক প্রশ্ন হিসাবে জিজ্ঞাসা করা উচিত, এটি একটি বা উত্তর উল্লেখ করে।
— belacqua

@belacqua আমি 2 বা তার বেশি এনভায়রনমেন্ট ভেরিয়েবল যোগ করতে প্রয়োজন করতে দেয় /etc/environmentপছন্দ JAVA_HOME="/opt/java" এবং ANT_HOME="/opt/ant" এটা কিভাবে
— Kasun Siyambalapitiya

7

আপনি পেয়েছেন:

/ ইত্যাদি / প্রোফাইল: বোর্ন শেল (sh (1)) এবং বোর্ন সামঞ্জস্যপূর্ণ শেল (বাশ (1), কেএসএ (1), অ্যাশ (1), ...) এর জন্য সিস্টেম-প্রশস্ত। প্রোফাইল ফাইল।

যা লুসিড এবং ম্যাভারিক চালায়

/etc/profile.d/*.sh

যদি উপস্থিত থাকে এবং যদি ব্যবহারকারীর শেলটি বাশ হয়:

/etc/bash.bashrc

ব্যবহারকারীর পরিবেশের জন্য, শেলের সাথে সম্পর্কিত একটি বিভ্রান্তিকর অ্যারে রয়েছে এবং এটি "লগইন শেল" হিসাবে বিবেচিত কিনা। শেল বশ হলে:

   ~/.bash_profile
          The personal initialization file, executed for login shells
   ~/.bashrc
          The individual per-interactive-shell startup file

sh / ড্যাশ জন্য:

$HOME/.profile

zsh জন্য, আমি এমনকি এটি বোঝার চেষ্টা করতে যাচ্ছি না ।


5

Https://help.ubuntu.com/commune/En વા্যোয়ার্ন ভেরিয়েবলগুলিতে প্রস্তাবিত হিসাবে :

  1. গ্লোবাল এনভায়রনমেন্ট ভেরিয়েবল সমস্ত ব্যবহারকারী প্রভাবিত বোঝানো মধ্যে যেতে হবে /etc/environment।

  2. ব্যবহারকারী-নির্দিষ্ট পরিবেশের ভেরিয়েবলগুলি সেট করা উচিত ~/.pam_environment।

উবুন্টুতে পরিবেশের ভেরিয়েবল সেট করার জন্য প্রোফাইল এবং আরসি ফাইলগুলি এড়িয়ে চলুন। তারা তাদের মূল্যবোধের তুলনায় আমাকে বেশি মাথাব্যথার কারণ করেছে।

তবে এর চেয়ে সহজ বলা যায়;)

এটা সম্ভব যে আপনি আমার জন্য বিদ্যমান একই কনফিগারেশন ব্যবধানে দৌড়াতে পারেন। নীচে এনক্রিপ্ট করা বাড়ির জন্য কাজটি দেখুন।

আমার ~/.pam_environment:

PATH            DEFAULT=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:${HOME}/bin
IDEA_JDK        DEFAULT=${HOME}/Applications/jdk

কুরুচিপূর্ণ স্থির পথ কেন? ${PATH}আমার জন্য কাজ করবে না। আমি আমার লগইনটিকে চারপাশে কাজ করার চেষ্টা করে বেশ কয়েকবার চেষ্টা করেছি যাতে আমি ডিফল্টদের কুরুচিপূর্ণ স্ট্যাটিক অনুলিপিটির সাথে লেগে আছি :)

এনক্রিপ্ট করা হোম ফোল্ডারগুলির জন্য কার্যপ্রণালী

উবুন্টুতে যথাযথ 12.04 বিটা 2 অবধি প্রকাশিত হয় এবং যদি আপনি কোনও এনক্রিপ্ট করা হোম ডিরেক্টরি ব্যবহার করে থাকেন তবে /etc/pam.d/common-sessionএটি লোড করার জন্য আপনাকে পরিবর্তন করতে হবে ~/.pam_environment। এই সমাধানটি দৃশ্যত পূর্ববর্তী রিলিজগুলির জন্য কাজ করে, তবে আমি এটি পরীক্ষা করে দেখিনি।

গেন্টার মন্টাগ (জি-মন্টাগ) 2010-08-19 এ লিখেছেন:

এটি এনক্রিপ্ট করা হোম ডিরেক্টরিগুলির সাথে একটি সমস্যা বলে মনে হচ্ছে। আমি যোগ করলাম

সেশন প্রয়োজন pam_env.so

/etc/pam.d/common-session এর শেষে এবং এখন ~ / .প্যাম_পরিবেশটি পঠিত হয়। এনক্রিপ্ট করা হোম ডিরেক্টরিগুলি ছাড়াও অন্য সিস্টেমে (এছাড়াও 10.04) চারপাশের কাজ করার প্রয়োজন নেই। সম্ভবত আমার ক্ষেত্রে সিস্টেমটি ডিক্রিপ্ট হওয়ার আগে ~ / .pam_en वातावरण পড়ার চেষ্টা করে।

সুপার ব্যবহারকারীটিতে আমার উত্তর থেকে গৃহীত: https://superuser.com/a/408373/66856


এটি এখনও ভুল: ${HOME}কোনওটিই কাজ করবে না। এর কোনও প্রসার নেই .pam_environment।
— স্পষ্টভাবে

2
@ খুব সহজেই এর সম্প্রসারণ হয় .pam_environmentতবে HOMEতা সাধারণত সেট করা হয় না। যদি সেই লাইনটি পড়ে থাকে DEFAULT=${PATH}/Applications/jdkতবে PATHআপনি এটিতে of োকানো মানটি দেখতে পেতেন।
— মুড়ু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.