'মেক ইনস্টল' কী করে?


52

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

ধরুন আমি উত্স কোডটি ডাউনলোড করেছি, এটি কনফিগার করেছি এবং তারপরে বাইনারি ব্যবহার করে তৈরি করব make। এখন এটি কেবল একটি বাইনারি, এখনও ব্যবহারের যোগ্য প্রোগ্রাম নয়। এটি কীভাবে 'ইনস্টল' হয়ে যাচ্ছে? দ্বারা make install? এবং এই আদেশটি ঠিক কি করে?


1
আমার স্ট্যাকওভারফ্লো / প্রশ্নগুলি / ৫২৮৩৯৯/২ এর উত্তরটি make installপ্রোগ্রামারদের দৃষ্টিকোণ থেকে পদক্ষেপগুলি দ্বারা করা সাধারণ ধরণের জিনিসগুলির একটি সংক্ষিপ্ত বিবরণ দেয় ।
dmckee

উত্তর:


44

মেক হ'ল একটি সাধারণ উদ্দেশ্য ওয়ার্কফ্লো প্রোগ্রাম, সাধারণত সংকলনের জন্য ব্যবহৃত হয়। তবে এটি যে কোনও কিছুর জন্য ব্যবহার করা যেতে পারে।

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

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


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

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

@sharjeel এটা কীভাবে আমি নিয়ম নামে জানতে পারেন বলতে সহায়ক হবে allমধ্যে Makefile, এবং কি যে অধ্যায় সৌন্দর্য শেষ মার্কার পছন্দ তাই আমি য়েখানে নিয়ম প্রক্রিয়াকরণ দেখতে পারেন allস্টপ।
প্রো ব্যাকআপ

36

make installMakefileলেখক যা কিছু করতে চান তা করেন। সাধারণত, এই মুহুর্তে, ইনস্টল ডিরেক্টরিটি পরিবর্তন করতে খুব দেরি হয়, কারণ এটি প্রায়শই আগে জানা যায়, বিল্ড চলাকালীন, সুতরাং সহায়তা ফাইল এবং কনফিগারেশন ফাইলগুলি সঠিক পথের নামের সাথে উল্লেখ করা যেতে পারে।

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

যখন কোনও প্রকল্প অটোটুলগুলি ব্যবহার করে, এটি ইনস্টল করার জন্য সাধারণ মন্ত্রটি হ'ল:

./configure
make
make install

./configureসাধারণত তোমার মত কমান্ড লাইন বিকল্প ব্যবহার করতে পারবেন --prefix /opt/apacheঅথবা একটি ভিন্ন পথনাম নির্দিষ্ট করার অনুরূপ কিছু। /usr/local/একটি সাধারণ ডিফল্ট prefix। : এটা পর্যন্ত এক জায়গায় ও বন্টন প্রদত্ত সফ্টওয়্যার বাস করতে স্থানীয়ভাবে নির্মিত সফ্টওয়্যার জন্য সহজ "প্রধান ডিরেক্টরি 'বাস হয় /usr/ /bin/তাই, এবং। (প্যাকেজকারীরা ফাইলগুলিতে কখনও স্পর্শ করতে খুব সতর্ক থাকে - তারা জানে এটি কেবলমাত্র সিস্টেম প্রশাসকদের জন্য))/usr/local/

যাইহোক, প্রোগ্রামটি সংকলনের সময় ম্যানুয়াল পৃষ্ঠাগুলি সংশোধন করে ম্যানুয়াল পৃষ্ঠাগুলি সংশোধন করার জন্য উইলগুলি উপলভ্য ./configure --prefix /path/to/new/prefixএকটি ভেরিয়েবল সেট করবে Makefileযাতে তারা ফাইলগুলির জন্য সঠিক অবস্থানগুলি, কনফিগারেশন ফাইলগুলিতে পরিবর্তন ইত্যাদির দিকে ইঙ্গিত করে তাই makeআপনার প্রয়োজনীয় ইনস্টল অবস্থানের জন্য বিশেষত সফ্টওয়্যারটি তৈরি করবে এবং make installএটি সেই জায়গায় ইনস্টল করবে।

বেশিরভাগ প্রোগ্রাম চূড়ান্ত make installপদক্ষেপ ছাড়াই চলতে পারে - ./program_nameপ্রায়শই সেগুলি শুরু করা হবে। এই হ 'ল প্রতি প্রকল্পের জিনিস - কিছু, মত postfix, qmailইত্যাদি আপ বিভিন্ন চলমান টুকরা দিয়ে তৈরি এবং তাদের সব একসঙ্গে কাজ উপর নির্ভর করছে। অন্যরা, নিজেরাই তৈরি করা ডিরেক্টরি থেকে জরিমানা চালানোর মতো lsবা suস্বতঃস্ফূর্ত হতে পারে ((এটি প্রায়শই কার্যকর হয় না - তবে কখনও কখনও খুব দরকারী))

যাইহোক, সমস্ত প্রকল্প অটটুলগুলি ব্যবহার করে না - এগুলি রক্ষণাবেক্ষণের জন্য বিশাল , জটিল এবং দু: খজনক। হস্ত-লিখিত Makefileগুলি লিখতে অনেক সহজ, এবং আমি ব্যক্তিগতভাবে মনে করি যে Makefileউপলব্ধ কনফিগারেশন ভেরিয়েবলগুলির সাথে একটি সহজ বিতরণ করা বিকাশকারী এবং ব্যবহারকারী উভয়ের পক্ষে অনেক সহজ। (যদিও এটি কার্যকর হলে ./configure ; make ; make installমন্ত্রটি ব্যবহারকারীদের পক্ষে খুব সহজ)


19

make installকম কিছু করে না তখন installআপনার মধ্যে ফাংশন / বিভাগ চালায়Makefile


ঠিক আছে, এটি কেবল পছন্দ করে make clean, মূলত এটি কেবল এই বিভাগের অধীনে কোডগুলি কার্যকর করে।
ওলফ্রিক লি

8

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

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

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

অতিরিক্ত নোট হিসাবে, উবুন্টুর মতো বিতরণে সর্বদা পুরানো প্যাকেজ থাকে তবে আর্ক লিনাক্সের মতো বিতরণগুলিও সর্বদা আপ টু ডেট থাকে (যদিও তারা লিনাক্সের জন্য প্রকাশিত প্রতিটি প্রোগ্রাম যেমন ডেবিয়ান / উবুন্টুর মতো দেওয়া হয় না)।

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

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