সঠিকভাবে পরিবেশ নির্ধারণ করা


15

জিনোম চালাতে আমি zsh এবং gdm ব্যবহার করছি। কিছু সময় আগে আমি আবিষ্কার করেছি যে ভেরিয়েবলগুলি সঠিকভাবে সেট করা নেই। উদাহরণস্বরূপ LANG / LC_ALL ভুল ( ""পরিবর্তে en_GB.UTF-8)।

আমি বিভক্ত .zshrcমধ্যে .zshrcএবং .profile। পরবর্তীকালে আমি পরিবেশের ভেরিয়েবলগুলি সেট করেছিলাম, তবে অধিবেশন শুরুর আগে আমি কীভাবে চলকগুলি সেট করতে পারি? আমি কয়েকটি পছন্দ ( .xinitrc, .xsessionrc) চেষ্টা করেছিলাম কিন্তু কোনওটিই কাজ করে নি বলে মনে হয়।

স্পষ্ট করার জন্য সম্পাদনা করুন - আমি এটি ব্যবহার করেছি .profileএবং ম্যানুয়ালি এটিকে উত্সাহিত করেছি .zshrc। এটি যেভাবেই প্রশ্ন পরিবর্তন করে না।


আপনার কি .profileআদৌ লোড হয় না, বা অন্য কিছু লোকেল ভেরিয়েবলগুলি ওভাররাইট করছে? (যেমন কিছু অন্যান্য পরিবর্তনশীল সেটিং ব্যবহার করে দেখুন export MACIEJ_PROFILE=yesনিশ্চিত করতে। set -x.profileকি মৃত্যুদন্ড কার্যকর করা হচ্ছে এবং পরে চেক করতে একটি ভালো উপায় হতে পারে .profile, যদি তা একবারেই পড়া যাচ্ছে না।) গুন করে কোনো লাভ নেই .profileথেকে .zshrc
গিলস'স'- দুষ্ট হওয়া বন্ধ করুন '

এটি কি টার্মিনাল উইন্ডো বা অন্য কোথাও সমস্যা? আপনি যখন রান করেন তখন আপনার পছন্দসই লোকেল সেটিংস পাওয়া যায় ssh localhost zsh? কি হবে ssh localhost bash? যদি বাশ ঠিক থাকে তবে zsh না, সম্ভবত আপনি কোনও কিছু রেখেছেন /etc/zshenvবা ~/.zshenv(যা প্রায়শই খারাপ ধারণা।
গিলস 'এস-অশুভ হওয়া বন্ধ করুন'

কোনও শেল ঠিকঠাক কাজ করছে না (বিভাজনের আগে এবং পরে)। সমস্যাটি হ'ল gnome-sessionএই ভেরিয়েবলস সেট নেই।
ম্যাকিয়েজ পাইচোটকা

উত্তর:


21

সহজ উপায় হ'ল একটি টাইম মেশিন উদ্ভাবন করা, বিভিন্ন ব্যক্তি যারা শেল স্টার্টআপ ফাইলগুলি তৈরি করেছিলেন তাদের সাথে যান এবং তাদের পরিষ্কারভাবে তিনটি জিনিসের মধ্যে পার্থক্য করতে বলুন:

  • সেশন সেটআপ, উদাহরণস্বরূপ পরিবেশ পরিবর্তনশীল;
  • অধিবেশন প্রবর্তন, উদাহরণস্বরূপ, কমান্ড-লাইন শেল বা উইন্ডো ম্যানেজার শুরু করা বা চলমান startx;
  • শেল প্রারম্ভিককরণ, যেমন এলিয়াস, প্রম্পট, কী বাইন্ডিং।

ঠিক পোর্টেবল উপায়ে সেশন বনাম শেল পাওয়া খুব বেশি কঠিন নয়: লগইন-সময় সূচনাটি .profile(বা .zprofile, বা .login) মধ্যে যায়, শেল ইনিশিয়ালাইজেশন যায় .bashrcবা হয় .zshrc। আমি এর আগে লিখেছিলাম .bash_profile, জেডএস বনাম অন্যান্য শেল , বহনযোগ্যতা সম্পর্কে (বেশিরভাগ বাশ সম্পর্কে) আরও.profile , কে পড়েন সে সম্পর্কে আরও

একটি অবশিষ্ট সমস্যা সেশন সেটআপ এবং সেশন আরম্ভের মধ্যে পার্থক্য করে। বেশিরভাগ ক্ষেত্রে, ~/.profileযখন আপনি লগ ইন করেন তখন কার্যকর হয় এবং উভয় হিসাবে দ্বিগুণ করতে পারেন তবে ব্যতিক্রমগুলি রয়েছে:

  • যদি আপনার লগইন শেলটি (টি) csh বা zsh হয় ~/.loginএবং এর ~/.zprofileপরিবর্তে উত্সাহিত হয় ~/.profile। ব্যাশ এবং জন্য পূর্বোক্ত ~/.bash_profile, কিন্তু এই সহজে গুন দ্বারা মীমাংসিত হয় ~/.profileথেকে ~/.bash_profile
  • আপনি যদি কোনও ডিসপ্লে ম্যানেজারের অধীনে (xdm, gdm, kdm,…) লগ ইন করেন তবে আপনার পড়াটি ~/.profileপ্রোগ্রামের সংস্করণ, আপনার বিতরণ (লিনাক্স বা অন্যথায়) এবং আপনি কোন সেশনের ধরণের উপর নির্ভর করে তার উপর নির্ভর করে।
    • আপনি যদি আপনার জন্য একটি সেশন শুরু করার জন্য ডিসপ্লে ম্যানেজারের উপর নির্ভর করেন তবে আপনার .profileঅবশ্যই পরিবেশের ভেরিয়েবল সেট করতে হবে তবে একটি সেশন শুরু করবেন না (যেমন উইন্ডো ম্যানেজার)।
    • এক্স সেশনগুলির জন্য traditionalতিহ্যবাহী কনফিগারেশন ফাইলটি ~/.xsessionসেশন সেটআপ এবং সেশন প্রবর্তন উভয়ই করে। সুতরাং ফাইলটি মূলত হতে পারে . ~/.xsession; . ~/.xinitrc। কিছু বিতরণ উত্স ~/.profileআগে ~/.xsession। আধুনিক বিতরণগুলি কেবল ~/.xsessionতখনই উত্স হয় যখন আপনি ডিসপ্লে ম্যানেজারের কাছ থেকে একটি "কাস্টম" সেশনটি নির্বাচন করেন এবং এই জাতীয় সেশনটি সর্বদা উপলব্ধ থাকে না।
    • আপনার সেশন ম্যানেজারের পরিবেশের ভেরিয়েবলগুলি সেট করার নিজস্ব নিজস্ব পদ্ধতি থাকতে পারে। (এটি আপনার ডেস্কটপ এনভায়রনমেন্টের একটি partচ্ছিক অংশ, আপনার দ্বারা একটি কনফিগারেশন ফাইলের মাধ্যমে বা লগ ইন করার সময় একটি সেশনের ধরণের নির্বাচন করে নির্বাচিত; ডিসপ্লে ম্যানেজার দ্বারা প্রদত্ত সেশন প্রারম্ভিক স্ক্রিপ্টগুলির সাথে এটি বিভ্রান্ত করবেন না, যা আপনার ব্যবহারকারীর অধীনে কার্যকর হয় তবে সিস্টেম-ওয়াইড ভিত্তিতে বেছে নেওয়া হয়েছে Yes হ্যাঁ, এটি একটি গোলযোগ।

সংক্ষেপে, ~/.profileপরিবেশ ভেরিয়েবলের জন্য সঠিক জায়গা। যদি এটি না পড়ে থাকে তবে এটি থেকে সোর্স করার চেষ্টা করুন ~/.xsession(এবং সেখান থেকে আপনার এক্স প্রোগ্রামগুলি শুরু করুন), বা সিস্টেম-নির্দিষ্ট পদ্ধতির সন্ধান করুন (যা আপনার বিতরণ, ডিসপ্লে ম্যানেজারের উপর নির্ভর করে যদি ডিসপ্লে ম্যানেজার, সেশন টাইপ এবং ডেস্কটপ পরিবেশ বা সেশন ম্যানেজার)।


.xsessionআমি যে ফাইলটি সন্ধান করছিলাম তা ছিল।
ম্যাকিয়েজ পাইচোটকা

1
আমি আপনার সংক্ষিপ্তসার ব্যতীত সমস্ত কিছুর সাথে দৃ strongly়ভাবে একমত। আমি মনে করি না আপনি এই পয়েন্টটি প্রতিষ্ঠা করেছেন। আপনার যদি .profileউৎস .bashrcবা অনুরূপ, তারপর আপনি করতে পারেন নির্ভরযোগ্যভাবে সেট এনভায়রনমেন্ট ভেরিয়েবল .bashrcনা শুধুমাত্র লগইন সেশনগুলির জন্য, কিন্তু নতুন শাঁস বিভিন্ন সেটিংস প্রয়োজন যে, যেমন যদি আপনি একটি শুরুর জন্য xtermথেকে gnome-terminalএবং বিভিন্ন চান dircolors
মাইকেল

@ মাইকেল যদি আপনি পরিবেশের ভেরিয়েবল সেট করে থাকেন তবে .bashrcসেগুলি আপনার পূর্ববর্তী সেটিংসকে ওভাররাইড করবে। উদাহরণস্বরূপ, যদি আপনি নির্দিষ্ট পরিবেশের ভেরিয়েবলগুলির সাথে স্ক্রিন বা টিমাক্স উদাহরণ শুরু করেন তবে যে কোনও কিছু আপনি সেট করেছেন .bashrcসেটি এই সেটিংসকে ওভাররাইড করে। LS_COLORSএটি একটি বিশেষ কেস কারণ এটি সত্যিই প্রতি টার্মিনাল সেটিং; আদর্শভাবে এটি টার্মিনাল এমুলেটর দ্বারা সেট করা উচিত, এবং এটি একটি শেল আরসি ফাইলে সেট করা একটি সর্বোত্তম প্রচেষ্টা প্রচেষ্টা হিসাবে কাজ করা উচিত।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

1

জেন্টু ডকুমেন্টেশনে জেন্টু লিনাক্স স্থানীয়করণ গাইড নিবন্ধ রয়েছে । তৃতীয় অধ্যায়টি লোকেল নির্ধারণের বিষয়ে।

সর্বাধিক সাধারণত ব্যবহারকারীরা বৈশ্বিক ভিত্তিতে শুধুমাত্র LANG ভেরিয়েবল সেট করে। এই উদাহরণটি একটি ইউনিকোড জার্মান লোকালের জন্য:

কোড তালিকা 3.1: ডিফল্ট সিস্টেমের মধ্যে লোকাল সেট করা /etc/env.d/02locale

LANG="en_GB.UTF-8"

আমার জেন্টুতে LANGএই ফাইলটিতে সেট করা আছে এবং সবকিছু ঠিকঠাকভাবে কাজ করছে ...

pbm@tauri ~ $ cat /etc/env.d/02locale 
LANG="pl_PL.UTF-8"

pbm@tauri ~ $ locale
LANG=pl_PL.UTF-8
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

আপনি যে অংশটি উদ্ধৃত করেছেন তা ঠিক আছে, তবে গাইডটি কোনও পরিবেশের পরিবর্তনশীল সেট করার পরামর্শ দেয় .bashrcযা ভুল (আমার উত্তরটি দেখুন এবং বিশেষত superuser.com/questions/217431 দেখুন )।
গিলস'স'- দুষ্ট হওয়া বন্ধ করুন '

এত বিস্তৃত তথ্যের জন্য ধন্যবাদ ... :) আমি কখনই এটি ব্যবহার করি নি .বাশার্ক অংশ - এর সেটিংস env.dআরও সার্বজনীন।
pbm

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