"মেক ইনস্টল" এবং "সুডো মেক ইনস্টল" এর মধ্যে পার্থক্য


15

কখনও কখনও আমি ব্যবহার করে make installএমন সমস্যার মুখোমুখি হই যা permission deniedকিছু ফোল্ডারে লেখার সময় আমাকে একটি ত্রুটি দেয় । তাই সহজাত ব্যবহার করি sudo make install। এটি কি অতিরিক্ত সমস্যার পরিচয় দেবে?

আমি ডেবিয়ান ইচ ব্যবহার করছি।

উত্তর:


16

সিস্টেম ডিরেক্টরিতে স্থানীয় ইনস্টল করা এড়িয়ে চলুন। সিস্টেম ডিরেক্টরি যেমন /usrপ্যাকেজ পরিচালনা সিস্টেম ব্যবহারের জন্য সংরক্ষিত। সংজ্ঞা অনুসারে, আপনি যদি এটির make installঅর্থ করছেন তবে আপনি একটি স্থানীয় ইনস্টল করছেন এবং আপনার যদি এটির প্রয়োজন হয় sudo make installতার অর্থ আপনি যেখানেই লিখছেন সেখানে আপনার অনুমতি নেই।

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

নোট করুন যে প্যাকেজ পরিচালনা সিস্টেম বিপরীতে /usr/localএফএইচএসে ইনস্টল করে না । ডেবিয়ান নীতি ম্যানুয়াল বিভাগ 9.1 দেখুন - একটি সংক্ষিপ্তসার জন্য ফাইল সিস্টেমের স্তরক্রম


3

কমান্ডগুলির একটি বেসিক রুনডাউনটি হ'ল প্রশ্ন:

  • রুট হিসাবে একটি কমান্ড চালান
  • উত্স থেকে তৈরি করতে একটি স্ক্রিপ্ট তৈরি করুন

যেহেতু sudo কমান্ড আপনাকে কমান্ডটি রুট হিসাবে দেয় তাই এটি চালায় তাই এর অর্থ মেক কমান্ডটি সুপার-ব্যবহারকারীর সুবিধাগুলি রাখে। এর অর্থ হ'ল যদি মেকফাইলটি দূষিত হয় বা স্ক্রিপ্টগুলির মধ্যে এটি কল করতে পারে তবে এটি আপনার সিস্টেমে আপস করতে পারে।

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

বিঃদ্রঃ:

sudo make installsu; make installবেশিরভাগ ক্ষেত্রে যেমন হয়।


3
আপনি "বেশিরভাগ ক্ষেত্রে" দিয়ে শেষ করা ঠিক করেছিলেন। এখানে একটি কোণার কেস আছে।
এডিরাগ

3

উপরে উত্তর হিসাবে দেওয়া হয়েছে, sudo make installআপনাকে ডিরেক্টরিতে ফাইলগুলি ইনস্টল করতে দেয় যা অন্যথায় কেবল আপনাকে ব্যবহারকারী হিসাবে পঠনযোগ্য।

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

এই জাতীয় প্রোগ্রামগুলি ইনস্টল করার সর্বোত্তম উপায় হ'ল সেগুলি আপনার নিজের ডিরেক্টরিতে ইনস্টল করা। বিকল্প পাশ --prefix=/home/<user>/<some>/<directory>থেকে ./configure। এটি আপনার দ্বারা লেখার যোগ্য হওয়ার কারণে এটি আপনাকে ব্যবহার make installকরার অনুমতি দেবে । এছাড়াও আনইনস্টলেশন একটি স্ন্যাপ -sudo make install/home/<user>/<some>/<directory>rm -rf /home/<user>/<some>/<directory>

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