XDG_CONFIG_Home পরিবর্তনশীল কোথায় সংজ্ঞায়িত করা উচিত?


41

এক্সডিজি স্পেসিফিকেশন XDG_CONFIG_HOMEচলক সম্পর্কে কথা বলে , তবে এটি কোথায় সংজ্ঞায়িত করা উচিত তা নির্দিষ্ট করে না। আমাদের এটির সংজ্ঞা দেওয়া উচিত /etc/X11/Xsession, না এটি উইন্ডো পরিচালকের কনফিগারেশন ফাইল যা এটি সংজ্ঞায়িত করতে হবে?

আমি এটিকে / ইত্যাদি / পরিবেশ হিসাবে ঘোষণা করার চেষ্টা করেছি

XDG_CONFIG_HOME="$HOME/.config"

তবে এটি কার্যকর হয়নি, কারণ দেখে মনে হয় $ হোম সংজ্ঞা দেওয়া হয় না /etc/environment

আমি অনলাইনে কেবলমাত্র ডকুমেন্টেশন খুঁজে পেলাম এটি জেন্টোর পক্ষে ছিল, যেখানে এটি ঘোষণা করা হয়েছিল /etc/env.d/90xsession

আমি উবুন্টু ব্যবহার করছি দেবিয়ান ভিত্তিক ডিস্ট্রোসের সাধারণ সমাধান কী হবে?

উত্তর:


24

আর্ক লিনাক্সে, এটি /etc/profileএকটি /etc/profile.dস্ক্রিপ্ট ব্যবহার করে সংজ্ঞায়িত করা হয় ।

দেবিয়ান / উবুন্টুর জন্য যদি থাকে তবে /etc/profile.d- ভিতরে অনুরূপ স্ক্রিপ্ট তৈরি করুন; যদি এই জাতীয় ডিরেক্টরি উপস্থিত না থাকে - এটি সম্পাদনা /etc/profileকরুন।

export XDG_CONFIG_HOME="$HOME/.config"

/etc/environmentফাইল দ্বারা পার্স করা হয় pam_env, যা সহজ নাম = মান বরাদ্দকরণ যেমন একইরূপে করুন। তবে এটিরও রয়েছে /etc/security/pam_env.conf, যা পরিবর্তনশীল প্রসারকে সমর্থন করে এবং এই উদ্দেশ্যে ব্যবহার করা যেতে পারে।


সংক্ষিপ্ততা অনুপলব্ধ
বাজ

3
এটি /etc/profileআর্কে আর নেই, এবং কেবল একবার থেকে এটি উল্লেখ করা হয়েছে /etc/profile.d/locale.sh
ফিল পিরোজকভ

1
লিঙ্কটি মারা গেছে ...
ম্যানুয়েলস্কিনিড 3 ই

54

আপনি ডিফল্টটি পরিবর্তন করতে না চাইলে আপনার কোথাও এটি সংজ্ঞায়িত করার দরকার নেই

এক্সডিজি বেস ডিরেক্টরি স্পেসিফিকেশন পরিষ্কারভাবে বলেছে:

যদি $XDG_CONFIG_HOMEহয় সেট না হয় বা খালি হয়, সমান একটি ডিফল্ট $HOME/.configব্যবহার করা উচিত।

সুতরাং এটি ডিফল্ট মান হিসাবে সংজ্ঞায়িত করা নিরর্থক। সমস্ত সম্মতিযুক্ত অ্যাপ্লিকেশন ইতিমধ্যে ব্যবহার করা হবে$HOME/.config

তবে, আপনি যদি কোনও ডেবিয়ান / উবুন্টু সিস্টেমে ডিফল্টটি পরিবর্তন করতে চান তবে সেরা স্থানটি হ'ল:

  • সিস্টেম ব্যাপী পরিবর্তনের জন্য, সমস্ত ব্যবহারকারীকে প্রভাবিত করছে: /etc/profile
  • শুধুমাত্র আপনার ব্যবহারকারীর জন্য: ~/.profile

1
ডাউনভোটার উত্তরটি দিয়ে কী ভুল তা ব্যাখ্যা করতে স্বাগত জানায় এবং অগ্রাধিকার হিসাবে এটি উন্নত করতে সহায়তা করে
MestreLion

1
এই উত্তরটি তাত্ত্বিকভাবে পুরোপুরি ঠিক আছে, তবে আশেপাশে প্রচুর সফ্টওয়্যার রয়েছে যা এক্সডিজি বেস ডিরেক্টরি স্পেসিফিকেশন অনুসারে নয় এবং এই অজ্ঞতা থেকে উদ্ভূত একটি কোয়াটওয়ার্ডিকিলিয়ন বাগ রয়েছে।
ম্যানুয়েলস্কিনিড 3 আর

5
@ ম্যানুয়েলস্কিনিড 3r খুব সত্য, তবে এই জাতীয় সফটওয়্যার সেটিংয়ের XDG_CONFIG_HOMEজন্য যাইহোক, যদি কিছু হয় তবে কিছুটা পার্থক্য আনবে।
MestreLion

2
এমন XDG_CONFIG_HOMEকোনও সফ্টওয়্যার থাকতে পারে যা অনুমিত অনুসরণ না করে অন্ধভাবে ব্যবহার করে, এটি ধরে নেওয়া যে এটি একটি স্ট্যান্ডার্ড লিনাক্স বা তৃতীয় পক্ষের নির্দিষ্টকরণের অংশের চেয়ে ইউনিক্স বৈশিষ্ট্য rather
-চোখ

3
@ এমসনেসিয়াম আমি বলছি এটি সম্ভবত আঘাত করতে পারে না। যদিও সম্ভব হয়, অ্যাপ্লিকেশনটি নিজেই ঠিক করা এবং ফিক্সটি প্রবাহকে প্রেরণ করা ভাল।
গল-আই

5

আমি খুঁজে পেয়েছি যে এটি পামের মাধ্যমে পরিবেশের ভেরিয়েবলগুলি সেট করতে সবচেয়ে ভাল কাজ করে। আধুনিক লিনাক্স ডিস্টোজের জন্য, এর অর্থ /etc/environmentবা $HOME/.pam_environment(দেখুন man pam_env)। আপনি এগুলি /etc/security/pam_env.confএকটি বিশেষ সিনট্যাক্স ব্যবহার করে সেট করতে পারেন । এখানে আমি কীভাবে আমার এক্সডিজি ভেরিয়েবলগুলি সেট করব /etc/security/pam_env.conf

XDG_CACHE_HOME  DEFAULT=@{HOME}/.xdg/cache
XDG_CONFIG_HOME DEFAULT=@{HOME}/.xdg/config
XDG_DATA_HOME   DEFAULT=@{HOME}/.xdg/data
XDG_STATE_HOME  DEFAULT=@{HOME}/.xdg/state

পূর্বে আমি এই ভেরিয়েবলগুলিতে সেট করতাম /etc/profile.d/custom.sh। তবে কিছু অ্যাপ্লিকেশন সেই ফাইলটি পড়ার আগেই শুরু হয়। পিএএম পদ্ধতিতে স্যুইচ করা একাধিক অ্যাপ্লিকেশন যারা এইভাবে আচরণ করেছে তাদের জন্য সমস্যাটি সমাধান হয়েছে।



2
@ টমহেল অবশ্যই নয়, ভেরিয়েবলগুলি নির্ধারণের পুরো পয়েন্টটি ডিফল্টগুলিকে ওভাররাইড করে। আপনি যদি ডিফল্টগুলি নিয়ে খুশি হন তবে আপনার এই ভেরিয়েবলগুলি সেট করার দরকার নেই।
carlwgeorge

1
উবুন্টু 14.04 এক্সডিজি ডিরেক্টরি ভেরিয়েবলগুলি ডিফল্টরূপে সেট করে না - কেবলমাত্র একটি নির্দিষ্টকরণের অর্থ এই নয় যে এর ডিস্ট্রো এটি অনুসরণ করে।
টম হেল

2
আমি export LESSHISTFILE="$XDG_CACHE_HOME"/less/historyযেখানে চান lessতা অনুধাবন করতে না চাই এবং ডিফল্টগুলি এখনও আমার ডিস্ট্রো দ্বারা সেট করা হয়নি কিনা তা বিবেচ্য।
টম হেল

2
@ টমহেল স্পেকটি অপারেটিং সিস্টেমের ভেরিয়েবলগুলি কী সেট করতে হবে তা নির্ধারণ করে না ; এটি ভেরিয়েবল সংজ্ঞায়িত করে, এটি যদি সংজ্ঞায়িত হয় এবং খালি না হয় তবে অ্যাপ্লিকেশনটি ব্যবহার করা উচিত। এবং যদি ভেরিয়েবলটি সংজ্ঞায়িত না করা হয় বা খালি থাকে তবে অ্যাপ্লিকেশনটিতে অনুমিত অবস্থায় ডিফল্ট পাথ ব্যবহার করা উচিত। সুতরাং আপনার সংক্ষিপ্ত উদাহরণটি অনুমানযোগ্য নয়, যেহেতু এটি প্রথমে XDG_CACHE_HOMEসংজ্ঞায়িত এবং খালি নয় তা যাচাই করে না । পরিবর্তে এটি হওয়া উচিত:export LESSHISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}"/less/history
ভিলাপেক্স

0

Zsh ব্যবহারকারীদের জন্য, এটি আপনার .zshenvফাইলে সংজ্ঞায়িত করুন

export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"

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