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


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.