/ ইত্যাদি এবং / usr / স্থানীয় / ইত্যাদির মধ্যে পার্থক্য কী


24

আমি একটি ডেমন বিকাশ করছি যা প্রচুর অ্যাপ্লিকেশন ডেটা সংরক্ষণ করতে হবে এবং আমি লক্ষ্য করেছি যে আমার সিস্টেমে (ফেডোরা 15) একটি /usr/local/etcডিরেক্টরি রয়েছে।

আমি আমার ডেমনটি এতে ইনস্টল করার সিদ্ধান্ত নিয়েছি /usr/local/binএবং আমার কনফিগার ফাইলগুলির জন্য আমার একটি জায়গা প্রয়োজন।

আমি উইকিপিডিয়ায় এটি দেখিনি । এটি কি অ-মানক বা এটি কি /usr/local/binকনফিগার ফাইল সংরক্ষণের জন্য প্রোগ্রামগুলির জন্য আদর্শ জায়গা ?

কারণ হওয়ার কারণে, আমি এটি সিস-অ্যাডমিনদের কাছে বাজারজাত করতে চাই এবং এরকম কিছু ভুল পাওয়া কোনও বিক্রয় বিক্রয় পয়েন্ট নয় ...


2
কোনও কারণেই এটিকে সরাসরি অধীনে রাখবেন না /etc/myapp? আমি যদি কোনও কনফিগার পরিবর্তন করতে চাইছি তবে এটি আমার প্রথম স্থান হবে।
new123456

@ new123456- আমি ব্যক্তিগতভাবে কনফিগারেশন ফাইলগুলিকে বাইনারি (যেমন /usr/local/bin-> /usr/local/etc) কাছে রাখার ধারণা পছন্দ করি তবে কনভেনশনগুলি এই ক্ষেত্রে জিততে পারে।
বেটগ্যামিট

উত্তর:


24

/usr/localউত্স থেকে নির্মিত অ্যাপ্লিকেশন জন্য সাধারণত হয়। উদাহরণস্বরূপ, আমি আমার বেশিরভাগ প্যাকেজগুলির মতো কিছু ব্যবহার করে ইনস্টল করি aptতবে আমি যদি কোনও নতুন সংস্করণ বা আমার বিতরণের অংশ না করে এমন কোনও সফ্টওয়্যারের টুকরো ডাউনলোড করি তবে আমি উত্স থেকে এটি তৈরি করব এবং সবকিছুকে us / usr / স্থানীয় 'স্তরক্রমের মধ্যে রেখে দেব।

এটি বাকি বিতরণ থেকে পৃথক করার অনুমতি দেয়।

আপনি অন্যদের জন্য সফটওয়্যার এক টুকরা বিকাশ করছি, তাহলে আপনি এটি যাতে এটি যে কোন জায়গায় মানুষ চান ইনস্টল করা যাবে ডিজাইন করা উচিত, কিন্তু এটা নিয়মিত ডিফল্ট উচিত FHS সুনির্দিষ্ট সিস্টেমের ডিরেক্টরি যখন তারা উপসর্গ উল্লেখ করা /usr( /etc, /usr/binইত্যাদি)

অর্থাত্ /usr/localআপনার ব্যক্তিগত ব্যবহারের জন্য, এটি আপনার সফ্টওয়্যারটি ইনস্টল করার একমাত্র জায়গা নয়।

এফএইচএস সম্পর্কে ভালভাবে পড়ুন , এবং আপনার উত্সটি যে কোনও জায়গায় তৈরি এবং ইনস্টল করার জন্য মানক লিনাক্স সরঞ্জামগুলি ব্যবহার করুন যাতে বিভিন্ন বিতরণের প্যাকেজ নির্মাতারা তাদের বিতরণের জন্য প্রয়োজনীয়গুলি সেগুলি কনফিগার করতে পারে এবং ব্যবহারকারীরা /usr/local যদি ইচ্ছা করেন তবে এটি এতে স্থাপন করতে পারবেন বা নিয়মিত সিস্টেম ডিরেক্টরিগুলি তারা চাইলে।


হ্যাঁ, আমি কাস্টমাইজেশনের অনুমতি দিচ্ছি তা ভাল, তবে আমি ভাবছিলাম যে /usr/local/etcএই ধরণের প্রোগ্রামগুলির জন্য কনফিগারেশন ফাইলগুলির জন্য মানক কিনা standard
বেটগ্যামিট

/ ইউএসআর / স্থানীয় / ইত্যাদি হ'ল আমি বেছে নিতে পারি যদি আমি উত্স থেকে আপনার ডিমন তৈরি করি তবে / ইত্যাদি সেই জায়গাটি বেছে নেবে যে কেউ আপনার ডেমনকে ডেবিয়ান বা উবুন্টু দিয়ে প্যাকেজ করে রাখে।
এইটবিটটনি

4
আসলে জিএনইউ স্ট্যান্ডার্ডগুলি প্যাকেজটিকে স্থানীয় পথে ডিফল্ট করার আহ্বান জানায় যেহেতু উত্স থেকে এটি নির্মাণ করা লোকেরা সাধারণত কোথায় নির্দিষ্ট করে না। বিতরণগুলি যখন প্যাকেজ / বিল্ড করবে তখন এটিকে স্থানীয় অ-স্থানীয় পথে পরিবর্তিত করবে।
psusi

@ পিছুসী- ভাল কথা, আমি এটি ডিফল্ট হিসাবে নিশ্চিত করব। আমার মেক ইনস্টলটি কখন রুট বা নিয়মিত ব্যবহারকারী হিসাবে চালানো হবে তা আমি সনাক্ত করব। রুট হলে, আমি / usr / স্থানীয়, ব্যবহারকারী যদি ব্যবহারকারীদের ডিরেক্টরি ডিরেক্টরিতে ডিফল্ট করব। আমি কনফিগারেশন সেটিংস যুক্ত করব।
বেটগ্যামিট

@ আইটবিটটনি- এমন কি অন্য কোনও প্ল্যাটফর্ম রয়েছে যার বিভিন্ন কনভেনশন রয়েছে? আমি ইতিমধ্যে বিভিন্ন প্ল্যাটফর্মগুলির জন্য বিভিন্ন স্টার্ট-আপ স্ক্রিপ্ট তৈরি করছি (upstart, systemd, init)।
বেটগ্যামিট

7

খুব সংক্ষিপ্ত উত্তর

/ ইত্যাদি এর কনফিগারেশন ফাইলগুলির জন্য আপনার ওএস দ্বারা ব্যবহৃত হয়

/ usr / স্থানীয় / ইত্যাদি আপনার কনফিগার করা ফাইলগুলির জন্য আপনি এবং আপনার সংযোজনযুক্ত ইনস্টল করা সফ্টওয়্যার দ্বারা ব্যবহার করা যেতে পারে


4

/usr/local/etcলিনাক্স বিশ্বে খুব কমই ব্যবহৃত হয়। কিন্তু সঞ্চয় কনফিগারেশন ফাইল করা হবে কিনা তা সিদ্ধান্ত /etc, /usr/local/etcঅথবা অন্য কোনো অবস্থান সাধারণত কম্পাইল সময়ে তৈরি করা হয় (এবং প্রায়ই একটি কমান্ড লাইন বিকল্প বা এনভায়রনমেন্ট ভেরিয়েবল মাধ্যমে ওভাররাইড করা যেতে পারে)। সংকলন করার সময় ডিফল্টটি আসলে কী তা বিবেচ্য নয়, কেবল এটি নির্ধারণ করা সহজ (সাধারণভাবে একটি বিকল্প --sysconfdir, অটোকনফ অনুসরণ করে) নিশ্চিত করুন। যদি আপনার ডিমন কোনও বিতরণের জন্য প্যাকেজ করা থাকে তবে এক্সিকিউটেবলটি /usr/sbin(উত্স থেকে বিল্ডিংয়ের সময় ডিফল্ট হওয়া উচিত /usr/local/sbin) এবং এর অধীনে কনফিগারেশনে চলে যায় /etc

নোট করুন যে /etc"প্রচুর অ্যাপ্লিকেশন ডেটা" জন্য জায়গা নয়। যে ভিতরে যায় /var। উত্স থেকে বিল্ডিং যখন ডিফল্ট হতে পারে /var/local/mydaemonবা /var/lib/mydaemon; উত্স থেকে বিল্ড করার সময় আবার ডিফল্ট জন্য কোন শক্তিশালী কনভেনশন নেই। কম্পাইল-টাইম ডিফল্ট (সাধারণত সহ configure --localstatedir) এবং রান-টাইম ডিফল্ট উভয়ই পরিবর্তন করার একটি উপায় থাকতে হবে (একটি কনফিগারেশন ফাইলে একটি সেটিংস সহ, সম্ভবত একটি কমান্ড লাইন বিকল্প বা পরিবেশের ভেরিয়েবল সহ)।


/usr/local/etcখুব ঘন ঘন ব্যবহার না করার কারণ আছে কি ? আমি কনফিগার ফাইলগুলিকে বাইনারি হিসাবে ফাইল সিস্টেমের একই স্তরে রাখার ধারণা পছন্দ করি।
বেটগ্যামিট

1
@tjameson আমি জানি না এর কোনও বিস্তৃত কারণ আছে কিনা। বিএসডি সেভাবে করে। একজন প্রশাসক হিসেবে আমি মত যে সব কনফিগারেশন ফাইল (যেখানে ব্যাক আপ নেওয়া আবশ্যক এবং পরিবর্তন নিয়ন্ত্রিত, কাপড় অসদৃশ binএবং libএবং তাই যার উপর পুনরায় করা যেতে পারে) একই স্থানে বসবাস করে।
গিলস 'খারাপ হয়ে যাওয়া বন্ধ করুন'

1

একটি খিলান ব্যবহারকারী হিসাবে, আমি সম্পূর্ণরূপে / usr / স্থানীয় এড়ানো এবং কনফিগারেশনের জন্য ন্যায়বিচার / ইত্যাদি ব্যবহার করব। উত্স থেকে ইনস্টল করার সময়, আমি যখন থাকি তখন একটি ছোট পিকেজিইউইলডি ফাইল লিখতাম, এবং সম্ভবত এটি ভবিষ্যতে অন্যদের এবং নিজের জন্য অন্য কম্পিউটারে আর্ক ইউজার রিপোজিটরিতে (এআর) আপলোড করব। এআর-তে প্যাকেজ সংখ্যা এবং তারা যে গতির সাথে তৈরি হয় তা বিচার করে আমি এইভাবে ভাবতে একা নই। এটি উত্স থেকে ইনস্টল করার পরিবর্তে এবং / usr / স্থানীয় মত অপ্রচলিত অবস্থানগুলি এড়াতে সক্ষম হওয়ার পরিবর্তে প্যাকেজটি উপলব্ধ হওয়ার সম্ভাবনা সকলের পক্ষে বৃদ্ধি পায়।

ডেবিয়ান এছাড়াও, / usr / স্থানীয়, অত: পর মত ইউটিলিটি উৎস একটি প্যাকেজ নির্মাণের পরিবর্তে কিছু ইনস্টল করার ধারণা পছন্দ বলে মনে হয় checkinstall

আপনি যে উত্সটি ইনস্টল করতে চান তার একটি প্যাকেজ তৈরি করা ফাইলগুলি কোথায় রয়েছে তা ট্র্যাক করে রাখা এবং নিশ্চিত করুন যে তাদের মধ্যে কোনওটি অন্য প্যাকেজ বা অন্য কোনও "ইনস্টল করুন" দ্বারা অসামঞ্জস্যভাবে লিখিত হবে না। "মেক আনইনস্টল" দিয়ে আনইনস্টল করা ভাল সমাধান নয়। কোন সংস্করণ ইনস্টল করা হয়েছে সে সম্পর্কে তথ্য হ'ল আধুনিক প্যাকেজ পরিচালনাগুলি নজর রাখার ক্ষেত্রে ভাল।

আমি কেবল পূর্বে / ইউএসআর / স্থানীয়ভাবে পূর্বাবস্থায় নেব। এটি কোনও জিনিস রাখার পক্ষে ভাল জায়গা নয়, প্যাকেজ ইনস্টল করার জন্য নয় (সিস্টেম-প্রশস্ত ডিরেক্টরিগুলি আরও উপযুক্ত) এবং ব্যবহারকারীর জন্য নয়।

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