লিনাক্সে আমার কোন ডিরেক্টরিতে প্রোগ্রাম ইনস্টল করা উচিত?


43

আমি লিনাক্সে একটি প্রোগ্রাম ইনস্টল করতে এবং এটি একটি ডেমন হিসাবে চালাতে চাই। (এই ক্ষেত্রে টিম 3 বলুন, তবে প্রশ্নটি প্রকৃতির সাধারণ)। এখানে কোনও প্যাকেজ সরবরাহ করা হয়নি, কেবলমাত্র বাইনারি রয়েছে। ডিরেক্টরি কাঠামোয় আমি কনভেনশন দ্বারা এই জাতীয় প্রোগ্রাম রাখা উচিত?

ওয়েবে আমি দেখতে পেলাম / অপ্টটি "alচ্ছিক অ্যাডন অ্যাপস" এর জন্য, যখন / ইউএসআর "ব্যবহারকারী প্রোগ্রাম" এর জন্য। আমি একটি টিউটোরিয়াল পেয়েছিলাম / প্রস্তাব দিচ্ছিলাম যখন অন্যজন / ইউএসের সাজেস্টেড।

সুতরাং কোনটি "আরও সঠিক"?


1
"আরও সঠিক" আপনার বিতরণের উপর নির্ভর করে। প্যাকেজ ব্যবস্থাপক (প্রায়শই /usr/local) পরিচালনা করে না এমন সফ্টওয়্যারটি কোথায় রাখবেন বা এর জন্য কীভাবে আপনার নিজের প্যাকেজ তৈরি করবেন সে সম্পর্কে আপনার বিতরণের নির্দেশিকাগুলি পরীক্ষা করা উচিত ।
লিয়াজ

ধন্যবাদ লিয়াজ আপনার মন্তব্য আমাকে উত্তরটি জিজ্ঞাসা করতে সহায়তা করেছে ( Askubuntu.com / প্রশ্নগুলি / ১১৪৮ / / )। সুতরাং আমি অনুমান করি এটি আমার ক্ষেত্রে / অপ্ট হওয়া উচিত (লিনাক্স মিন্ট ব্যবহার করা যা উবুন্টুর উপর ভিত্তি করে) এবং অ্যাপ্লিকেশনটি একটি ফোল্ডার ব্যবহার করছে। আপনি যদি আপনার মন্তব্যটিকে উত্তরে রূপান্তর করেন তবে আমি তা গ্রহণ করব।
আইভার

উত্তর:


27

"আরও সঠিক" আপনার বিতরণের উপর নির্ভর করে। প্যাকেজ ব্যবস্থাপক (প্রায়শই /usr/local) পরিচালনা করে না এমন সফ্টওয়্যারটি কোথায় রাখবেন বা এর জন্য কীভাবে আপনার নিজের প্যাকেজ তৈরি করবেন সে সম্পর্কে আপনার বিতরণের নির্দেশিকাগুলি পরীক্ষা করা উচিত ।

আপনি যেমনটি বলেছিলেন যে টিমস্পেক সব কিছু কেবল একটি ফোল্ডারে রেখেছিল (এবং পুনর্গঠন করা সহজ নাও হতে পারে), হ্যাঁ /opt/সম্ভবত সেরা।

(তবে, উদাহরণস্বরূপ, আর্চলিনাক্সে, প্যাকেজ ম্যানেজার সেখানে ইনস্টল করতে পারে, তাই আমি ইনস্টল করার জন্য এখনও একটি পিকেজিইউইলডি তৈরি করব /opt।)

এছাড়াও বিতরণগুলি সাধারণত ফাইল সিস্টেম হায়ারার্কি স্ট্যান্ডার্ডকে অনুসরণ করার চেষ্টা করে , তাই এটি আরও জেনেরিক সম্মেলনের সন্ধান করার জন্য।


ব্যবহারের দ্বারা প্রতিটি ডিরেক্টরি কোথায় অবস্থিত তা জানতে কিছু নাম আছে? (উদাহরণস্বরূপ, রুট কনফিগারেশনগুলি কোথায় রাখবেন, কোথায় বাইনারি, নির্ভরতা, টেম্পলেট স্থাপন করবেন ...)
স্যান্ডবুর্গ

5

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

আপনি যখন সফ্টওয়্যার সংকলন করছেন, --prefix=চালনার সময় বিকল্পটি ব্যবহার করে ইনস্টলেশন অবস্থান নির্দিষ্ট করা যেতে পারে ./configure। এটি অত্যন্ত প্রস্তাবিত যে আপনি রান করে আপনার প্যাকেজটির জন্য উপলব্ধ সমস্ত বিকল্পের দিকে নজর দিন $ ./configure --help | less। অতিরিক্তভাবে, আপনার প্যাকেজের সাথে সরবরাহ করা ইনস্টল এবং রিডএমই ডকুমেন্টগুলি ব্রাউজ করা ভাল ধারণা। তারা ইনস্টলেশন নির্দেশাবলী এবং প্যাকেজ নির্দিষ্ট যে নির্ভরতা তথ্য অন্তর্ভুক্ত থাকে।

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

অবশেষে, আপনাকে নিশ্চিত করতে হবে যে আপনার ইনস্টলেশন অবস্থানটি আপনার অন্তর্ভুক্ত রয়েছে $PATH। আপনি যদি নিজের প্যাকেজটি ইনস্টল করার সিদ্ধান্ত নেন /optতবে এটি $PATHআপনার শেলের মধ্যে নেই তবে এক্সিকিউটেবলগুলি খুঁজে পাবেন না এবং আপনার প্রোগ্রামগুলি শুরু করার জন্য আপনাকে পরম পথটি ব্যবহার করতে হবে। আপনার কনফিগারেশন সম্পর্কে এ এউ থেকে কিছু দুর্দান্ত আলোচনা এখানে দেওয়া হয়েছে$PATH

অতিরিক্ত পড়া: man hier


5

লিনাক্স স্ট্যান্ডার্ড বেস এবং ফাইলসিস্টেম শ্রেণীক্রম স্ট্যান্ডার্ড তর্কসাপেক্ষে কোথায় এবং কিভাবে আপনি একটি Linux সিস্টেমে সফ্টওয়্যার ইনস্টল করা উচিত মান এবং যে হয় আপনার বিতরণে অন্তর্ভুক্ত করা হয় না স্থাপন সফ্টওয়্যার সুপারিশ করবে /optঅথবা /usr/local/বরং বা সাবডিরেক্টরি তাতে ( /opt/<package> /opt/<provider> /usr/local/bin)।

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


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

1

বাইনারিগুলি binসাধারণ কনভেনশন অনুসারে ফোল্ডারে যায়, আপনি কীভাবে আপনার প্যাকেজ কাঠামোটি সংগঠিত করবেন তা আপনার উপর নির্ভর করে, আমি ভাবতে /opt/<prog_name>/পারি এটি কেবল বাইনারিগুলির একটি তালিকা কিনা।


আমি আশঙ্কা করছি যে টিম স্পিক 3 জন প্রোগ্রামটি এমনভাবে তৈরি করেছিল যাতে এটির প্রয়োজনীয় সমস্ত কিছু কেবল একটি ফোল্ডারে বসে থাকে (বাইনারি, কনফিগারেশন ফাইল, লগ), সুতরাং এটি / বিন বা / ইত্যাদি বা / ভার / লগ ব্যবহার করে না
আইভার

1

Eclipse ইনস্টলারটির মাধ্যমে Eclipse ইনস্টল করার সময় আমারও একই প্রশ্ন ছিল।

আমি লক্ষ্য করেছি যে গিম্প, পার্ল এবং ভিম /usr/shareফোল্ডারে ইনস্টল করা আছে এবং সেখানে এটি ইনস্টল করার সিদ্ধান্ত নিয়েছে।


0

প্রোগ্রামগুলি কীভাবে প্যাক করা হয়েছে তার উপর নির্ভর করে দুটি উপায় প্রোগ্রাম ইনস্টল করা যেতে পারে।

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

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

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