কেন অ্যাপটি-গেটের জন্য সুডোর প্রয়োজন?


12

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

যে উত্তরগুলি আমি খুঁজছি না:

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

আমি আশা করি আপনি জানেন যে আপনি নিজের হোম ডিরেক্টরিতে উত্স থেকে যে কোনও প্যাকেজ তৈরি করতে পারেন।
जॉবিন

ঠিক আছে, তবে আমি কেন এপ-গেট সীমাবদ্ধতার অন্তর্নিহিত তা সন্ধান করছি। উত্স থেকে বিল্ডিং যে উত্তর দেয় না।
প্যাটিমাসপ্রাইম

1
আমি মনে করি আপনি যে প্রশ্নটি সত্যিই জিজ্ঞাসা করছেন তা হ'ল "কেন বেশিরভাগ লিনাক্স সফ্টওয়্যার স্থানান্তরযোগ্য নয়?"। ব্যবহারকারী-স্থানীয় ডিরেক্টরিতে সফ্টওয়্যার ইনস্টল করার অনুমতি দেওয়া একেবারে সম্ভব হবে, তবে বেশিরভাগ সফ্টওয়্যার যেহেতু এটি সমর্থন করে না এটি করার ক্ষেত্রে খুব কমই থাকবে।

উত্তর:


10

কেন অ্যাপটি-গেটের জন্য সুডোর প্রয়োজন?

সর্বদা না। আপনি পুরোপুরি ব্যবহার করতে পারেন apt-getছাড়া sudo। এমন উদাহরণ রয়েছে যেখানে আপনার মোটেই প্রয়োজন sudoহয় না, যেমন আপনার বর্তমান ডিরেক্টরিতেapt-get download কোন প্যাকেজ ডাউনলোড করে , যা আপনার বর্তমান ডিরেক্টরিতেapt-get source ডেবিয়ান উত্স ফাইলগুলি ডাউনলোড করে, changelogযা কোনও প্রদত্ত প্যাকেজটির চেঞ্জলগ ডাউনলোড করে এবং মুদ্রণ করে এবং যে কোনও আদেশ রয়েছে --simulate/ --dry-run/ --no-act(ক্ষেত্রে installআপনার কাছে প্রয়োজন --no-download)।

কারণ এই ক্রিয়াগুলি / আদেশগুলি সিস্টেম ডিরেক্টরি লেখার প্রয়োজন হয় না।

এখন, কেন apt-getদরকার sudo? আসলে তা হয় না। আপনি অ্যাপটি-গেটটি খনন করতে পারেন, একটি প্যাকেজ ডাউনলোড wgetকরতে dpkg --extractএবং আপনার পছন্দসই ডিরেক্টরিতে প্যাকেজটি ব্যবহার করতে এবং বের করতে পারেন। --instdirশুধুমাত্র বাইনারি প্যাকেজ জন্য কাজ করা উচিত যা আছে ।

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

এখন, আপনি পরিবর্তে কি করতে পারেন? কিছু পরিবেশকে একটি লা ভ্যাচুয়ালেনভ ক্রোট করুন, যেখানে আপনি মূল ছাড়াই প্যাকেজ ইনস্টল করতে পারবেন।

সংক্ষিপ্তসার, এটিটিপ-গেটটি ব্যবহার করার উদ্দেশ্যে বোঝানো হয়নি এবং অ্যাপটি-গেটের মতো আর কোনও প্যাকেজ ম্যানেজার আমি জানি না যা আপনাকে এটি করতে দেয়। দিনের apt-getশেষে, dpkg এর সামনের এক প্রান্ত যা এর কিছু করতে পারে।


3

প্যাকেজের তথ্য নিজেই নির্ধারণ করে যে ফাইলগুলি কোথায় ইনস্টল করা হবে, সুতরাং আপনার প্যাকেজ ডাটাবেসটিতে sudoলিখতে /এবং পরিবর্তন করতে উভয়ই প্রয়োজন ।

আপনি যখন প্যাকেজ ইনস্টল করছেন, আপনি পূর্ব-নির্মিত বাইনারি ফাইল এবং সম্পর্কিত কনফিগারেশন এবং মেটা ফাইল এবং স্ক্রিপ্টগুলি প্যাকেজের প্রয়োজনীয় অংশগুলি ইনস্টল করছেন। এই স্ক্রিপ্টগুলি এবং কনফিগারেশন ফাইলগুলি নির্ভরতা এবং সিস্টেমের বাকী অংশগুলির সাথে দৃly়ভাবে লিঙ্কযুক্ত। আপনি কী করছেন ঠিক বুঝতে না পারলে আপনি এগুলি হালকাভাবে পরিবর্তন করতে চাইবেন না।

যদি আপনি কোনও সিস্টেমে থাকেন তবে কাজের জায়গায় বলুন, যেখানে আপনার sudoঅ্যাক্সেস নেই, আপনি উত্স থেকে সংকলন করতে পারেন এবং আপনার ডিরেক্টরিতে ইনস্টলেশন ডিরেক্টরি সেট করতে পারেন। তারপরে, এর দরকার নেই sudo। আপনি উত্স থেকে ইনস্টল করার সময়, আপনি সাধারণত প্যাকেজ ডাটাবেস পরিবর্তন করেন না।


উত্তর করার জন্য ধন্যবাদ! আমি জানি এবং কাজের ক্ষেত্রগুলি ব্যবহার করি, তবে আমি যা বোঝার চেষ্টা করছি তা হ'ল আমি সেগুলি কেন ব্যবহার করছি। আমি বিশ্বাস করি আপনি বলছেন যে সমস্যাটি হ'ল প্যাকেজ রক্ষণাবেক্ষণকারীদের দ্বারা ইনস্টল করার পথটি হার্ডকোড করা হয়েছে - কেন এটি পরিবর্তন করা যায় না?
প্যাটিমাসপ্রাইম

2

এটি একটি বোকা প্রশ্ন নয়।

একটি অপারেটিং সিস্টেমে প্রিভিলেজের স্তর

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

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

অ্যাপট-গেটের ভূমিকা

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

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

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


উত্তর দেওয়ার জন্য ধন্যবাদ, এবং সম্পূর্ণতার জন্য ধন্যবাদ। আমি অ্যাপট-গেটের সিস্টেম-ব্যাপী প্রকৃতিটি বুঝতে পারি, তবে আমি যা বোঝার চেষ্টা করছি তা কেন সেভাবে হওয়া উচিত।
প্যাটিমাসপ্রাইম

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

1

কেন ডিফল্টরূপে / (বা অনুরূপ) ডিরেক্টরিতে অ্যাপ্লিকেশনগুলি ইনস্টল করে?

এর সহজ কারণ হ'ল apt-getসফ্টওয়্যারটি কোথায় ইনস্টল করবেন তা স্থির করে না। এটি বিকাশকারীগণ দ্বারা সিদ্ধান্ত নেওয়া হয় এবং অ্যাপ্লিকেশনের ভিতরেই কোড করা হয়।

আমি কি অন্য ডিরেক্টরিতে ইনস্টল করতে পারি?

হ্যাঁ, আপনি অন্যান্য ডিরেক্টরিতে ইনস্টল করতে পারেন open মুক্ত উত্স সফ্টওয়্যারটির জন্য উত্সটি পান, ইনস্টলেশন ডিরেক্টরিটি পরিবর্তন করুন, সংকলন করুন, এটি তৈরি করুন এবং ইনস্টল করুন। অন্তর্ভুক্ত configureস্ক্রিপ্টে সাধারণত একটি বিকল্প থাকে যা আপনাকে কোথায় ইনস্টল করতে হবে তা নির্দিষ্ট করতে দেয়। এটি সাধারণত হয় --prefix

তবে আমি অ্যাপট-গেট ব্যবহারের জন্য জোর দিয়েছি। এখন কি করতে হবে?

ঠিক আছে. এপটি-গেট দিয়ে এখনও এটি করার একটি উপায় রয়েছে, যদিও এটি শেষ ব্যবহারকারীর পক্ষে খুব বেশি। পদক্ষেপগুলো অনুসরণ কর.

  1. উত্স পান।
  2. ইনস্টলেশন ডিরেক্টরিটি এমন কিছুতে পরিবর্তন করুন $HOME
  3. সংকলন এবং নির্মাণ।
  4. এটি একটি .deb ফাইলে প্যাকেজ করুন
  5. একটি লঞ্চপ্যাড অ্যাকাউন্ট তৈরি করুন।
  6. উবুন্টু আচরণবিধি স্বাক্ষর করুন (আমি নিশ্চিত না যে এটির প্রয়োজনীয় কিনা)।
  7. নিজের জন্য একটি পিপিএ তৈরি
  8. ডিপ প্যাকেজ পিপিএতে আপলোড করুন।
  9. আপনার উত্সগুলিতে পিপিএ যুক্ত করুন।
  10. চালান sudo apt-get update
  11. চালান apt-get install package

এটি খুব সহজ / শক্ত ছিল installation ইনস্টলেশনের সময় ডিরেক্টরিটি নির্বাচন করা সম্ভব?

হ্যা এবং না.

হ্যাঁ কারণ এটা সম্ভব, কিছু সফটওয়্যার এই পদ্ধতিটি ব্যবহার, শুধুমাত্র এক আমি জানি যে হয় Qt5.এটা টি .run ফাইল যা, যখন মৃত্যুদন্ড কার্যকর অনেক অন্যান্য ইনপুট মধ্যে ইনস্টলেশন ডিরেক্টরি জন্য অনুরোধ।

না কারণ এই পদ্ধতিটি ব্যবহার করে না apt-get

আমি কি কোনও দিন সহজেই এটি করতে পারি apt-get?

আমি মনে করি না apt-getসফ্টওয়্যারগুলির বিকাশকারী এবং এবং / অথবা বিকাশকারীরা এটি করতে আগ্রহী হবে তবে কিছু সফ্টওয়্যার বিকাশ করা যেতে পারে যা কেবলমাত্র ডিরেক্টরি ডিরেক্টরি জিজ্ঞাসা করে স্বয়ংক্রিয়ভাবে উত্সটি, পরিবর্তন, সংকলন, বিল্ডিং, পদক্ষেপগুলি ইনস্টল করবে।

আমার 6th ষ্ঠ ইন্দ্রিয়টি আমাকে বলে যে আদেশটি হবে

apt-dont-get install pkg1 pkg2 ...

উত্তরের জন্য ধন্যবাদ - এটি পুরোপুরি এবং আমার প্রশ্নের সমাধান করে। তবে আমি কেন বুঝতে পারছি না কেন এপ-গেটে একক ব্যবহারকারীর কার্যকারিতা বিকাশের আগ্রহ থাকবে না। দেখে মনে হচ্ছে যে নির্দিষ্ট ব্যবহারের ক্ষেত্রে কার্যকারিতা অত্যন্ত কার্যকর হবে।
প্যাটিমাসপ্রাইম

ভাল তথ্য, তবে প্রশ্নোত্তরের মধ্যে একটি প্রশ্নোত্তর বিন্যাস ...? :) আইডিক, সম্ভবত আপনার কোনও স্ট্যান্ডার্ড ফর্ম্যাটে এডিট করা উচিত? শুধু একটি ভাবনা.
28:38

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

De HOME এ ফাইলগুলি ইনস্টল করতে কোনও ডেবিয়ান নীতি লঙ্ঘন। আপনার কখনই এটি করা উচিত নয়। যদি কিছু থাকে /opt/packageতবে পরিবর্তে ডিরেক্টরিটি ব্যবহার করুন এবং chmod করুন।
ব্রায়াম

@ ব্রাইয়াম: আমি দেখেছি লোকেরা প্যাকেজ ইনস্টল করার পরামর্শ দিচ্ছে $HOME/opt/যদি তাদের মধ্যে প্যাকেজ ইনস্টল করার সুযোগ না থাকে /opt/..
আদিত্য

-1

Chmodded এমন ফাইলগুলি সম্পাদনা করার কারণ আপনি সেগুলি ব্যবহার করতে পারবেন না। আপনি তাদের chmod করতে সক্ষম হবেন যাতে আপনি যদিও এটি করে পুনরুদ্ধার করতে পারবেন না


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