সফ্টওয়্যার কেন / usr / lib এ ইনস্টল করে?


11

আমি এখন বছরের পর বছর ধরে লিনাক্স সার্ভারগুলি ব্যবহার করছি এবং আমি ফাইল সিস্টেম হায়ারার্কি স্ট্যান্ডার্ড দ্বারা বিভ্রান্তিতে রয়েছি। সাধারণত আমি বিভ্রান্তির সাথে বাঁচতে পারি। তবে এখন আমি লিনাক্সের জন্য আমার নিজস্ব সফ্টওয়্যার তৈরি করছি, প্যাকেজ পরিচালকদের দ্বারা এটি কোথায় ইনস্টল করার কথা রয়েছে তা আমার বুঝতে হবে।

আমি বেশ নিশ্চিত হয়েছি যে / অপ্ট আমার অ্যাপ্লিকেশনটির জন্য সঠিক অবস্থান। তবে আমার ডেবিয়ান ফাইল সিস্টেমটি তদন্ত করার পরে, আমি আর নিশ্চিত নই: আসলে / ইউএসআর / লিবিতে প্রচুর সফ্টওয়্যার ইনস্টল করা আছে! কয়েকটি নাম রাখার জন্য: মাইএসকিউএল, মাইএসকিউএল ওয়ার্কবেঞ্চ, নটিলাস, রাইথম্বক্স ...

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

আমার ডেবিয়ান সার্ভারের / usr / lib এ অবস্থিত প্রচুর সফ্টওয়্যারগুলি গ্রন্থাগার বা অভ্যন্তরীণ বাইনারি নয় তবে সম্পূর্ণ পরিপূর্ণ ব্যবহারকারী নির্বাহযোগ্য সফ্টওয়্যার!

আমার অ্যাপ্লিকেশনটি / অপ্ট ইন ইনস্টল করার জন্য আমি এখনও ট্র্যাকে রয়েছি। তবে আমি সত্যিই বুঝতে চাই যে এটি সঠিক কিনা এবং সর্বোপরি, কেন

আপনার ধরনের পরামর্শের জন্য অগ্রিম ধন্যবাদ,

এরিক।


2
স্পট চেকিং, যা আমি মাইএসকিউএলওয়র্কব্যাঞ্চ বলতে পারি তা থেকে / usr / lib এর অধীনে কেবল গ্রন্থাগার ইনস্টল করা হয়। আপনাকে কী ভাবতে বাধ্য করে যে / ইউএসআর / লিবিবতে "পরিপূর্ণ ব্যবহারকারী এক্সিকিউটেবল সফ্টওয়্যার" রয়েছে?
মার্ক ওয়াগনার

অ্যাপ্লিকেশন মেনুতে অবস্থিত প্রকৃত শর্টকাটটি যদি আমার সঠিকভাবে মনে থাকে তবে / usr / lib এ থাকা বাইনারিটির দিকে নির্দেশ করে।
এরিক মোড়ন্ড

আপনি তালিকাভুক্ত সফ্টওয়্যারটি কোথায় ইনস্টল করা হয়েছে তা সম্পর্কে আপনি বিভ্রান্ত বলে মনে করছেন। মাইএসকিউএল এবং নটিলাসের জন্য ফাইলগুলি এখানে লিস্টিংয়ের লিঙ্কগুলি। লক্ষ্য করুন যে এফএইচএস ঠিক যেমন ফাইলগুলি হওয়া উচিত সেগুলি ফাইলগুলি / ইত্যাদি, / usr / bin, / usr / lib ইত্যাদির মধ্যে বিভক্ত। packages.debian.org/wheezy/i386/mysql-server-5.5/filelist packages.debian.org/wheezy/i386/nautilus/filelist
sciurus

উত্তর:


6

ফাইল সিস্টেম হেরার্চি স্ট্যান্ডার্ড বোঝার আসল কীটি জেনে রাখা এটি নেটওয়ার্ক ফাইল সিস্টেমকে মনে রেখে ডিজাইন করা হয়েছে।

একই ওএস, রিলিজ এবং আর্কিটেকচারের প্রতিটি মেশিনের জন্য, আপনি এনএফএসের মাধ্যমে ভাগ / usr করতে পারেন এবং এটি মাউন্ট করতে পারেন।
/ স্ট্রাইকটি নেটওয়ার্ক স্ট্যাক শুরু হওয়ার পরে মাউন্ট করা হয়েছে (পুনরায়)।

/var <-- local, r/w optimized
/usr <-- can be mounted over network, possibly even read-only!
/opt <-- local, read mostly
/etc <-- local, read mostly
/srv <-- local, r/w optimized

/home <-- either/or

স্থানীয় / রিমোট এবং আর - আর / ডাব্লু স্ট্যান্ডার্ডের জন্য কোনও লিঙ্ক সরবরাহ করতে আপনি কি আপত্তি করবেন?
ক্যাপ্টেন জিরাফ

এর অর্থ কি এই যে কোনও একটি নেটওয়ার্কের প্রতিটি লিনাক্স সার্ভার বা ওয়ার্কস্টেশনের জন্য একটি / usr "সংগ্রহস্থল" থাকতে পারে?
এরিক মোড়ন্ড

1
এটি কিছু কাজ নেয়, তবে হ্যাঁ, আপনি পারেন। হার্ড ড্রাইভগুলি যখন ব্যয়বহুল যেখানে কোনও বড় রোলআউটের জন্য আদর্শ ছিল Back
ড্যান গার্থওয়েট

@ এরিক-মোরান্ড থেকে এফএইচএস থেকে: "/ ইউএসআর ফাইল সিস্টেমের দ্বিতীয় প্রধান বিভাগ / "হোস্ট-নির্দিষ্ট এবং সময়ের সাথে পরিবর্তিত কোনও তথ্য অন্য কোথাও সংরক্ষণ করা হয়।" pathname.com/fhs/pub/fhs-2.3.html#
THEUSRHIERARCHY

উপস। উপরের মন্তব্যটি
@ ক্যাপ্টেন জিরাফের

12

পার্থক্যটি হ'ল সিস্টেমের অংশ হিসাবে/usr প্যাকেজ ইনস্টল করা । আপনি প্যাকেজগুলি ডিবিয়ান / উবুন্টু সংগ্রহস্থলগুলি, পিপিএ ইত্যাদির কাছ থেকে পান এখানে যান। যদিও /optআনবান্ডেলড তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলির জন্য যা বিতরণের প্যাকেজ বিতরণ প্রক্রিয়ার মাধ্যমে বিতরণ করা হয় না।

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


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

তাহলে / ইউএসআর / স্থানীয় সম্পর্কে কী হবে? বা এটি পৃথক
অ্যারোন কোপালি

@ অ্যারোনকপ্লে /usr/localএই প্রশ্নের সুযোগ ছিল না। তবে এটি তৃতীয় পক্ষের সফ্টওয়্যারগুলির জন্য যা স্থানীয় প্রশাসক সংকলন করে এবং ইনস্টল করে।
মাইকেল হ্যাম্পটন 15

এজন্যই আমি জিজ্ঞাসা করেছিলাম এটি কি আলাদা বিবেচিত হবে?
অ্যারন কোপালি

2

আপনি আপনার গ্রন্থাগারগুলিতে <prefix>/lib, আপনার বাইনারিগুলিতে <prefix>/bin, আপনার শিরোনামের ফাইলগুলিতে <prefix>/include, ম্যান পৃষ্ঠাগুলিতে prefix/[share/]man, pkgconfig ফাইলগুলিতে <prefix>/lib/pkgconfigবা <prefix/share/pkgconfigআপনার cmake .m4 ফাইলগুলিতে ইনস্টল করেন<prefix>/share/aclocal

তারপরে প্যাকেজ পরিচালককে উপসর্গের বিষয়ে সিদ্ধান্ত নিতে দিন। আপনি যদি আরএমপি / ডাবের নিজের বিতরণ করে /usrথাকেন তবে একটি উপসর্গের জন্য এটি একটি ভাল পছন্দ।

./configure --prefix=~/.local/ এখনও কাজ করা উচিত, তাই দয়া করে কোথাও আপনার পথ হার্ডকোডিং না যান!

কিছু লাইব্রেরিগুলিকে অন্য কোনও সরঞ্জামে আবৃত করা হয় যা এগুলি গ্রন্থাগার হিসাবে কার্যকর ও ব্যবহারযোগ্য করে তোলে, তবে তারা এখনও গ্রন্থাগারগুলি, আপনার AT PATH তে নয়, সুতরাং আমার অনুমান / lib এ সেগুলি লেখাই ঠিক।


1

আমি আপনার অ্যাপ্লিকেশনটিকে / অপ্টের অধীনে ইনস্টল করা এড়াতে পরামর্শ দেব। কারণ 1: কিছু ডিস্ট্রোর ডিফল্টরূপে / অপ্ট থাকে না কারণ 2: / usr / lib গ্রন্থাগারগুলির জন্য একটি স্ট্যান্ডার্ড পাথ other অন্যান্য অ্যাপ্লিকেশনগুলিকে আপনার লাইব্রেরিটি ব্যবহার করার প্রয়োজন হলে আপনাকে নিজের লাইব্রেরির পাথ ম্যানুয়ালি / etc / ldconfig} / opt এ যুক্ত করতে হবে আপনি স্বতঃস্ফূর্ত অ্যাপ্লিকেশনগুলি রাখুন যা আপনি ম্যানুয়ালি ইনস্টল করেন এবং সেগুলি কোথায় রয়েছে তা আপনি জানতে চাইলে আরও সুবিধাজনক

সম্পূর্ণরূপে নির্বাহযোগ্য এক্সিকিউটেবলগুলি / usr / lib এর অধীনে অবস্থিত হওয়ার একটি কারণ হতে পারে যে তারা অন্যান্য স্ক্রিপ্ট থেকে ব্যবহৃত হয়। {উদাহরণস্বরূপ ব্যাশ স্ক্রিপ্টগুলি সরাসরি কোনও এপিআই ব্যবহার করতে পারে না। এই কারণে একটি সাধারণ কৌশল হ'ল এই এপিআইয়ের চারপাশে একটি "র‍্যাপার" তৈরি করা এবং স্ক্রিপ্টের আর্গুমেন্ট হিসাবে প্যারামিটারগুলি ধাক্কা}


2
আমি একমত নই যদি সে ইন / অপ্ট ইন ইনস্টল করতে চায় তবে প্যাকেজ ম্যানেজার ডিরেক্টরিটি তৈরি করবে, সুতরাং এটি কোনও সমস্যা নয়। এছাড়াও, / usr / lib এ বাইনারি ইনস্টল করা একটি খারাপ ধারণা।
ওয়াল্টার

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

0

দয়া করে এটি ইনস্টল করুন / অপ্ট করুন।

90 এর দশকে উইন্ডোজ বিকাশকারীরা অনেকগুলি লিনাক্স অ্যাপ্লিকেশন একইভাবে তৈরি করে।

আমাদের স্টাফগুলি সি: \ উইন্ডোতে ইনস্টল করতে দিন যাতে এটি সহজ এবং সহজে খুঁজে পাওয়া যায় (এবং কিছুটা দ্রুত)। এরপরে 15 বছর ধরে ডিএলএল হেল্ক এসেছে কারণ বিভিন্ন সফ্টওয়্যার প্যাকেজগুলির একই লাইব্রেরির বিভিন্ন সংস্করণ প্রয়োজন (যা উইন্ডোজে লাইব্রেরির সংস্করণ ছিল না)।

আপনি প্রকৃত সিস্টেম সফ্টওয়্যার না লিখলে এটিকে / অপ্টে রাখুন, যাতে লোকেরা কী ইনস্টল করে তা আরও ভালভাবে জানতে পারে।


4
এটি উইন্ডোজ নয়। আমাদের প্যাকেজ পরিচালক রয়েছে যা কাজ করে এবং এটি আসলে খুব বেশি সমস্যা হয় না।
মাইকেল হ্যাম্পটন

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