ইউনিক্স ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য আমার অ্যাপ্লিকেশন ক্যাশে কোথায় রাখা উচিত?


10

আমি কমান্ড লাইন অ্যাপ্লিকেশন তৈরি করছি, এবং আমার ফাইলে কিছু অস্থায়ী ডেটা সংরক্ষণ করা দরকার। আমি জানি না যে ইউনিক্স ভিত্তিক সিস্টেমে অ্যাপ্লিকেশনগুলি তাদের ক্যাশে সংরক্ষণ করার জন্য কনভেনশন কোথায় (এই ক্ষেত্রে উবুন্টু 12.0.4)?

উত্তর:


12

"ইউনিক্স ভিত্তিক সিস্টেম" সাধারণত-প্রযোজ্য সংকল্প যে কোন ধরণের যে প্রয়োগ করা হবে করতে পর্যন্ত খুব সাধারণ একটি বিভাগ হয় সব ইউনিক্স ভিত্তিক সিস্টেম। সমস্যাটি হ'ল ফাইল সিস্টেমে কাঠামো (এবং "যথাযথ" / "প্রচলিত" জিনিসগুলি রাখার জায়গা) "ইউনিক্স" এর বিভিন্ন স্বাদের (যদি আপনি এটি এটিকেও বলতে পারেন) এর মধ্যে এতটাই ভিন্ন যে আপনাকে এটি পরিচালনা করতে হবে ক্ষেত্রে ভিত্তি করে একটি মামলা উপর.

কয়েকটি উদাহরণ:

  • উবুন্টুতে, -৪-বিট লাইব্রেরিগুলি / usr / lib বা / usr / lib / x86_64-linux / এবং 32-বিট লাইব্রেরিগুলিতে / usr / lib32 এ যায়
  • ফেডোরায়, -৪-বিট লাইব্রেরিগুলি / usr / lib64 এ যায় এবং 32-বিট লাইব্রেরিগুলি / usr / lib এ যায়
  • ফেডোরার আর / lib বা / বিন সম্পর্কে ধারণা নেই (এগুলি কেবল সমতুল্য / usr ডিরেক্টরিগুলির মধ্যে প্রতিচ্ছবি)
  • বেশিরভাগ লিনাক্স ডিস্ট্রস ব্যবহারকারী / ইনস্টল করা সফ্টওয়্যার ইনস্টল করতে পছন্দ করে (এটি প্যাকেজ ম্যানেজার দ্বারা সরবরাহ না করা সফ্টওয়্যার) / ইউএসআর / লোকাল / (লিবিব, বিন, ইত্যাদি, ভেরি, এবং এর সাথে / usr / স্থানীয় / এর মধ্যে)
  • অনেক লিনাক্স ক্যাশের জন্য / ভার / ক্যাশে ব্যবহার করে, যদিও এটি "ক্ষণস্থায়ী" (এটি হারিয়ে গেলে কিছুই যায় না), এটি / টেম্পে সংরক্ষণ করা যেতে পারে
  • কিছু "একটি ফোল্ডারে অ্যাপ্লিকেশন" টাইপ অ্যাপ্লিকেশনগুলি / অপ্টের একটি উপ-ডিরেক্টরিতে (বিশেষত ক্লিকর্যাপ ইনস্টলারগুলি) সমস্ত কিছু সঞ্চয় করে
  • কিছু অ্যাপ্লিকেশন কেবল ব্যবহারকারীর ~ ডিরেক্টরিটির একটি উপ-ডিরেক্টরিতে ইনস্টল করে (সাধারণত / হোম / ব্যবহারকারীর নাম)
  • সোলারিসে, আমি / এসআরভি / অপ্টের সাথে একইভাবে ব্যবহার করেছি বা কখনও কখনও / এসআরভিটি www-root

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

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

সমস্ত কারণ বিবেচনা না করে এর জন্য সরাসরি কোনও উত্তর নেই। তবে, উবুন্টু 12.04 এর জন্য , যদি আপনি পিপিএতে.deb বিতরণ করার জন্য বা উবুন্টুর নিজস্ব প্যাকেজ সংগ্রহস্থলের ( mainবা universe) জমা দেওয়ার জন্য কোনও ফাইলের মধ্যে আপনার প্যাকেজ তৈরি করে থাকেন , তবে আমি প্রস্তাব দিচ্ছি যে ক্যাশেটি সংরক্ষণ করা উচিত /var/cache। তবে এটি কেবল উবুন্টুর জন্য এবং আপনার অবশ্যই এই ধারণাটি প্রয়োগ করা উচিত নয় যে প্রতিটি ডিসট্রো বা ইউনিক্স-ভিত্তিক ওএস এটি গ্রহণযোগ্য বিবেচনা করবে।

তদতিরিক্ত, যদি সিস্টেমের বুটগুলিতে ক্যাশে ডেটা সংরক্ষণ করার কোনও সুবিধা না থাকে তবে আমি মনে করি এটি / টেম্পেও অন্তর্ভুক্ত থাকতে পারে।

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

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

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


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

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

তুমি পারবে না, এবং ডেটা লেখা উচিত /usr, /libবা /binআপনার অ্যাপ্লিকেশন থেকে।
ctrl-alt-delor
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.