আপনার উত্তরের সংক্ষিপ্ত সংস্করণ এবং দীর্ঘ সংস্করণ রয়েছে ...
সংক্ষিপ্ত সংস্করণ:
হিসাবে আপনার লিঙ্ক ইতিমধ্যে বললেন, /usr
জন্য একটি জায়গা সিস্টেম-ব্যাপী , শুধুমাত্র পাঠযোগ্য ফাইল। সুতরাং আপনার ইনস্টল করা সমস্ত সফ্টওয়্যার সেখানে যায়। এটি /
ছাড়া /bin
আর কোনও নাম নকল করে না /lib
, তবে মূলত ভিন্ন উদ্দেশ্য সহ: /bin, /lib
কেবল বুট করার জন্য প্রয়োজনীয় বাইনারি এবং লাইব্রেরিগুলির জন্য , /usr/bin, /usr/lib
অন্য সমস্ত এক্সিকিউটেবল এবং লাইব্রেরির জন্য। (এখন ভাল ছেলে হোন এবং এ সম্পর্কে জিজ্ঞাসা করবেন না /sbin
, এটি সর্বোপরি সংক্ষিপ্ত সংস্করণ)
আজকাল, "বুট করার জন্য প্রয়োজনীয়" এবং এর মধ্যে পার্থক্য হ্রাস পাচ্ছে না, যেহেতু উবুন্টু সহ বেশিরভাগ আধুনিক ডিস্ট্রোগুলি বেশ কয়েকটি ফাইল ছাড়া সঠিকভাবে বুট করতে পারে না /usr
। এবং সে কারণেই কেন মার্জ করার দিকে তীব্র আন্দোলন চলছে /usr/bin
এবং /bin
সম্ভবত অদূর ভবিষ্যতে (উবুন্টু ১২.১০ সম্ভবত?) এর /bin
একটি সিমিলিংক হবে /usr/bin
।
তবে আপনি কি বিভ্রান্ত করছেন /usr
এবং /usr/local
? কারণ হ্যাঁ, অনেকগুলি নকল ডিরেক্টরি নাম রয়েছে (এবং হওয়া উচিত) । আরও পরে ...
দীর্ঘ সংস্করণ:
S০ এর দশকে, ইউনিক্সে (হ্যাঁ, ইউনিক্স, লিনাক্সের আগে), ফ্লপিগুলিতে খুব কম জায়গা ছিল (কোনও এইচডি নেই, মনে আছে?), এবং একটি নির্দিষ্ট সময়ে সিস্টেম বাইনারিগুলির সংখ্যা এবং আকারে খুব বেশি বৃদ্ধি পেয়েছিল যে বিন্দুতে একটি একক ডিস্ক ফিট করে, এবং বিকাশকারীদের এগুলি কয়েকটি মিডিয়া জুড়ে বিভক্ত করতে হয়েছিল এবং এইভাবে তাদের জন্য নতুন মাউন্ট পয়েন্ট তৈরি করতে হয়েছিল। /bin
ফাইল সিস্টেমটি পূর্ণ ছিল, তাই তারা ... এ নতুন বাইনারিগুলি ইনস্টল করে /usr/bin
। এবং /usr
ছিল, সেই সময়ে, তাদের ... ব্যবহারকারী ডিরেক্টরি!
(প্রায় বিব্রতকর এবং প্রায়শই একটি রসিকতা / লোর হিসাবে বলা হয়েছিল) বিভক্ত হওয়ার পরে, তারা কী যাবে /bin
এবং কী যাবে সে সিদ্ধান্ত নেওয়ার জন্য তারা "কৃত্রিম" ন্যায্যতা (এবং মানদণ্ড) তৈরি করা শুরু করে /usr/bin
। অনানুষ্ঠানিক নিয়মটি ছিল: "প্রয়োজনীয়" স্টাফগুলিতে যান /bin
, "বাকী" যান /usr/bin
। একই সাথে /lib
। এটি /usr
ব্যবহারকারী-ডায়ারের সাথে মিশ্রিত সিস্টেম-সম্পর্কিত ডায়ারে ভিড় করার আগে খুব বেশি দিন হয়নি । এইভাবে /home
জন্ম নেওয়া হয়েছিল, সমস্ত ব্যবহারকারী-সম্পর্কিত ডায়ার রাখতে এবং /usr
কেবল সিস্টেম "স্টাফ" এর জন্য পরিষ্কার রাখতে ।
এটি এফএইচএসের অস্তিত্বের অনেক আগে ছিল। যখন এটি তৈরি করা হয়েছিল, এটি বর্তমান traditionতিহ্যটিকে আলিঙ্গন করেছে (এবং আনুষ্ঠানিকভাবে) এবং নামটি ধরে রেখেছে /usr
, যদিও সেই সময়টিতে এর সাথে ইতিমধ্যে "ব্যবহারকারীর" কোনও সম্পর্ক ছিল না। তাই হ্যাঁ, অভিনব নাম " ইউ কিসসু গুলি Ource দ epository" বা " ইউ কিসসু গুলি ystem দ esources" সব তৈরি আপ নাম, এবং এটি যেকোনোভাবে নামান্তর করতে খুব দেরি হয়ে গেছে। (তবে এতে একীভূত /bin
হতে খুব বেশি দেরি হয়নি)
"ঠিক আছে, কি হবে /usr/sbin
?" আপনি জিজ্ঞাসা করুন। অভিশাপ, আমি আশা করছিলাম আপনি ভুলে গেছেন। ঠিক আছে ... /usr/sbin
এমন কমান্ডগুলির জন্য যা root
ব্যবহারকারীর দ্বারা কার্যকর করা হতে পারে (বা কেবল তখনই অর্থবোধক) হতে পারে mount
এবং পছন্দ করে fdisk
।
"তবে কি প্রায় একই রকম নয় /bin
?" । হ্যাঁ, অবশ্যই, তবে ...
"দাঁড়াও, তবে কেন /sbin
খুব বেশি কিছু আছে? কোন মানে হয় না!" । ঠিক আছে, কারণ ... ভুল .. হুম ..
দেখুন, আপনার পিছনে একটি 3-মাথা वाला বানর!
ঠিক আছে, আশা করি, আপনি যথেষ্ট পরিমাণে বিভ্রান্ত হয়ে পড়েছেন। সরানো...
(যদি আপনি মনে হয় আমি প্রতারনা করছি, হ্যাঁ, আপনি সঠিক করছি। কিন্তু "সরকারী" উত্তর "অপরিহার্য কমান্ড যে শুধুমাত্র মূল সম্পাদন করতে পারে আগে আপনি এমনকি মাউন্ট উপলব্ধ থাকা আবশ্যক /
")। সত্যটি হ'ল: লাইনটি প্রকৃতপক্ষে অস্পষ্ট, এবং প্রচুর উত্তরাধিকারের নাম রয়েছে যা কেবল "আটকে" এবং এখন এ থেকে মুক্তি পাওয়া বেশ শক্ত hard
ডক্স থেকে মার্জ হওয়ার ক্ষেত্রে/usr
আরও systemd
:
/ Usr থেকে পৃথক একটি / বিন, / sbin এবং / lib এর historicalতিহাসিক ন্যায়সঙ্গততা আজ আর প্রযোজ্য নয়। দ্রুত হার্ড ডিস্কে নির্বাচিত সরঞ্জামগুলি (যা ছোট ছিল, কারণ এটি আরও ব্যয়বহুল ছিল) এবং ধীর / usr পার্টিশনটি মাউন্ট করার জন্য প্রয়োজনীয় সমস্ত সরঞ্জামগুলি ধারণ করার জন্য এগুলি বিভক্ত হয়ে যায়। প্রথমদিকে, বুট করার সময় ইতোমধ্যে পৃথক / usr পার্টিশনটি initramfs দ্বারা মাউন্ট করা আবশ্যক, এভাবে স্প্লিট-অফ মোটের ন্যায়সঙ্গততা তৈরি করা উচিত। তদ্ব্যতীত, স্থিতাবস্থায় / বিন এবং / এসবিনে প্রচুর সরঞ্জাম ইতিমধ্যে প্রাক-মাউন্টড / ইউএসআর ছাড়াই চালানোর ক্ষমতা হারিয়ে ফেলেছে। অপারেটিং সিস্টেমটি একাধিক শ্রেণিবিন্যাসে ছড়িয়ে যাওয়ার কোনও বৈধ কারণ নেই, এটি এর উদ্দেশ্যটি হারাতে বসেছে।
এবং /usr
বিভাজন এবং এর যুক্তি সম্পর্কে একটি আশ্চর্যজনক পাঠ , রব ল্যান্ডলি রচনা:
বিন, এসবিন, usr / বিন, usr / sbin বিভক্ত বোঝা
আজকাল
বর্তমানে ইনস্টল ডিরেক্টরিগুলি সম্পর্কে আপনার বোঝার সেরা উপায়টি এইভাবে চিন্তা করা:
/usr
- সমস্ত সিস্টেম-ব্যাপী, কেবল পঠনযোগ্য ফাইলগুলি ওএস দ্বারা ইনস্টল করা (বা সরবরাহ করা হয়)
/usr/local
- স্থানীয় প্রশাসক (সাধারণত, আপনি) দ্বারা সিস্টেম-বিস্তৃত, পঠনযোগ্য ফাইল ইনস্টল করা। এবং এজন্য বেশিরভাগ ডিরেক্টরির নাম /usr
এখানে নকল করা আছে।
/opt
- একটি নৃশংসতা মানে সিস্টেম-ব্যাপী, কেবল পঠনযোগ্য এবং স্ব-অন্তর্ভুক্ত সফ্টওয়্যার। সফটওয়্যার উপর যে তাদের ফাইল বিভক্ত নয়, হয় bin
, lib
, share
, include
ভালভাবে ভদ্র মত সফ্টওয়্যার উচিত।
~/.local
- এর প্রতি ব্যবহারকারীর প্রতিরূপ /usr/local
, এটি: প্রতিটি ব্যবহারকারীর দ্বারা ইনস্টল করা সফ্টওয়্যার (এবং এর জন্য)
~/.local/opt
- প্রতি ব্যবহারকারী প্রতিরূপ /opt
তাহলে কোথায় সফটওয়্যার ইনস্টল করবেন?
উপরের তালিকাটি ইতিমধ্যে আপনার ওরাকল জেডিকে প্রশ্নের অর্ধেক উত্তর, অন্তত এটি বেশ কয়েকটি ক্লু দেয়। চেকলিস্ট থেকে "আমি সফ্টওয়্যার এক্স কোথায় ইনস্টল করা উচিত?" এর দ্বারা যায়:
এটি কি একটি সম্পূর্ণ স্বয়ংসম্পূর্ণ, একক ডিরেক্টরি সফ্টওয়্যার, যেমন এক্লিপস আইডিই এবং অন্যান্য ডাউনলোড করা জাভা অ্যাপ্লিকেশনগুলির মতো, এবং আপনি চান যে এটি সমস্ত ব্যবহারকারীর জন্য উপলব্ধ রয়েছে? তারপরে ইনস্টল করুন/opt
উপরের মতো একই, তবে আপনি অন্যান্য ব্যবহারকারীদের সম্পর্কে চিন্তা করেন না এবং আমি আপনার ব্যবহারকারীর জন্য একা ইনস্টল করতে চাই? তারপরে ইনস্টল করুন~/.local/opt
এর ফাইলগুলি একাধিক ডায়ারের উপর বিভক্ত হয়, যেমন bin
এবং share
প্রচলিত সফ্টওয়্যারগুলির মতো সংকলিত এবং ইনস্টল করা ./configure && make && sudo make install
, এবং সমস্ত ব্যবহারকারীর জন্য কী উপলভ্য হবে? তারপরে ইনস্টল করুন/usr/local
উপরের মত একই, কিন্তু শুধুমাত্র আপনার ব্যবহারকারীর জন্য? তারপরে ইনস্টল করুন~/.local
ওএস দ্বারা ইনস্টল করা সফ্টওয়্যার, বা প্যাকেজ ম্যানেজারগুলির মাধ্যমে (যেমন সফ্টওয়্যার সেন্টার), এবং সবচেয়ে গুরুত্বপূর্ণ, আপডেট ম্যানেজার যখন এটি কোনও নতুন সংস্করণে আপগ্রেড করে তখন কোনও স্থানীয় পরিবর্তন ওভাররাইট করা যেতে পারে ? এটা যায়/usr
নোট:
এটি ব্যাখ্যা করে যে সংকলিত সফ্টওয়্যারটির জন্য ডিফল্ট ইনস্টল করা উপসর্গ /usr/local
কেন ./configure --prefix=$HOME/.local
এবং আপনার নিজের ব্যবহারকারীর জন্য সফ্টওয়্যার ইনস্টল করার সময় কেন এটি পরিবর্তন করা উচিত should
আপনি লক্ষ্য করেছেন যে উপরের সমস্ত ডিরেক্টরিগুলি কেবল পঠনযোগ্য (অবশ্যই আপনি যখন সফ্টওয়্যার ইনস্টল / অপসারণ করবেন)। লিখনযোগ্য ফাইলগুলি (কনফিগ ফাইলগুলির মতো) সাধারণত /etc
(সিস্টেম-ব্যাপী সফ্টওয়্যারগুলির জন্য) এবং ~/.config
(প্রতি ব্যবহারকারী সেটিংসের জন্য) যায়। যদিও বহু লিগ্যাসি সফ্টওয়্যার (এবং, দুর্ভাগ্যক্রমে, কিছু ~/.<software-name>
আধুনিকও ) ব্যবহার করে , আপনার বাড়ির ফোল্ডারটিকে কয়েক বিলিয়ন ডায়ার এবং ফাইল দিয়ে বিশৃঙ্খলা করছে।
~/.local
এবং ~/.config
এফএইচএস নির্দিষ্টকরণের অংশ নয় not এফএইচএস ব্যবহারকারীর হোম ফোল্ডারটি নিয়ে কাজ করে না। ডেস্কটপ এনভায়রনমেন্ট (যেমন জিনোম, কেডিএ এবং ইউনিটি) এর দিকে প্রস্তুত আরেকটি স্ট্যান্ডার্ড সংস্থা এক্সডিজি-র একটি প্রচেষ্টা, ব্যবহারকারীর বাড়ির কাঠামো সম্পর্কিত কিছু কনভেনশন সেট করার চেষ্টা করার জন্য। সমস্ত সফ্টওয়্যার এটি মেনে চলেন না (উদাহরণস্বরূপ, ~/.local/bin
ব্যবহারকারীর ডিফল্টটিতে নয় $PATH
, যদিও যুক্তি দিয়ে এটি করা উচিত) এবং কোনও ব্যবহারকারী এটি অনুসরণ করতে বাধ্য হয় না, তবে উভয়ই যদি আন্তঃব্যবহারযোগ্যতা লাভ করে তবে তারা তা করে।
আমি আশা করি এটি কিছুটা স্পষ্ট করতে সহায়তা করে। কোনও দ্বিধা জিজ্ঞাসা করুন যাতে আমি উত্তরটি উন্নত করতে পারি!
(এবং আমি আরও আশা করি যে শুদ্ধবাদীরা আমাকে এইরকম অত্যন্ত অনানুষ্ঠানিক ভাষা এবং ব্যাখ্যার জন্য মেরে ফেলবেন না It এটি উদ্দেশ্যমূলক ছিল এবং এর অবশ্যই অনেকগুলি ভুল-ত্রুটি রয়েছে, তবে আমি বিশ্বাস করি যে নতুনদের ইনস্টল সম্পর্কে একটি সংক্ষিপ্ত ধারণা উপলব্ধি করা ভাল উপায় believe ডিরেক্টরি যুক্তি)