./Configure ব্যবহার করার সময় --prefix ঠিক কী করে?


29

সুতরাং আমার কেবল একটি সহজ প্রশ্ন ছিল যা সম্ভবত আমাকে বোবা দেখায়, তবে আমি শিখছি

আমি যখন একটি

./configure --prefix/usr/bin/

উপসর্গটি কি করছে? এটি কি সেই জায়গায় প্যাকেজটি ইনস্টল করছে

এবং একটি উত্তর একটি জটিল ইনস্টলের জন্য আরও বিস্তৃত উত্তর দিতে পারে এবং এর সাথে যে উপসর্গ এবং বিকল্পগুলি রয়েছে সে সম্পর্কে বিশদভাবে ব্যাখ্যা করতে পারে।

যদি আমি একটি এপট-গেট ইনস্টল চালাতে পারি তবে আমি কীভাবে এটি উপস্থাপন সহ একটি নির্দিষ্ট স্থানে ইনস্টল করব

আমিও দেখেছি

 PREFIX=/tmp/installdir make


 PREFIX=/tmp/installdir make install

উপসর্গটি যদি ./ কনফিগারে ডাকা হয় তবে কেন এটি সর্বদা এই দুটি উদাহরণে তৈরি করা হচ্ছে?

তুমাকে অগ্রিম ধন্যবাদ!



আপডেট হওয়া উত্তরটি চেক করুন
luv.preet

freetds.org/userguide/config.htm , এটি আপনাকে আরও সাহায্য করবে
luv.preet

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

উত্তর:


32

আপনি যখন make installবা এর সাথে সফ্টওয়্যার ইনস্টল করেন তখন sudo make installবিভিন্ন ফাইল বিভিন্ন ডিরেক্টরিতে স্থাপন করা হয়। এক্সিকিউটেবলস যা কমান্ড সরবরাহ করে তা ব্যবহারকারী সাধারণত চালানোর উদ্দেশ্যে পরিচালিত হয় binগ্রন্থাগারগুলি সাধারণত একটি libডিরেক্টরিতে চলে যায়, ম্যানুয়াল পৃষ্ঠা সাধারণত একটি manডিরেক্টরিতে চলে যায় এবং আরও অনেক কিছু।

যখন আপনি চালাতে ./configure, বিকল্প যেখানে আপনি উল্লেখ করতে দেয় সেই ডিরেক্টরি হয় । এটি বলা হয় কারণ এটি আপনাকে যে ডিরেক্টরি বা আপনার লাইব্রেরি তৈরি করছে সেগুলি থেকে যে ডিরেক্টরিগুলি তৈরি করা হচ্ছে সেগুলির প্রতিটি ডিরেক্টরিতে পাথগুলিতে উপস্থিত উপসর্গটি দেয় । বেশিরভাগ স্ক্রিপ্টগুলি সমর্থন করে এবং এটিকে বাদ দেওয়া এবং কেবল চালানো সাধারণত সমতুল্য ।--prefix--prefixconfigure--prefix./configure./configure --prefix=/usr/local

এর আরও সম্পূর্ণরূপে উত্তর দেওয়ার জন্য, আমি কীভাবে তারার ফাইল "বিশ্বব্যাপী" ইনস্টল করতে পারি তার উত্তর থেকে দুটি বিভাগ পুনরুত্পাদন করেছি ? ( ইউনিক্স এবং লিনাক্সে ), যা এই প্রশ্নটিকে বিশেষভাবে সম্বোধন করে:

আপনার বিল্ড কনফিগার করা হচ্ছে

আপনার যখন সোর্স কোড থাকে যা চালিয়ে সংকলিত হয় ./configure এবং makeআপনি সাধারণত এটি ইনস্টল করতে make install(বা sudo make install) ব্যবহার করবেন । এটি বিল্ড ডিরেক্টরি থেকে ফাইলগুলি ইনস্টল করার স্থানে অনুলিপি করে। আপনি যে জিনিসটি ইনস্টল করছেন সেটি এক্সিকিউটেবল কমান্ড সরবরাহ করে, সেই এক্সিকিউটেবলগুলি সাধারণত একটি ডিরেক্টরিতে অনুলিপি করা হয় $PATHযা আপনার যুক্ত করা উচিত $PATH

যদিও সফ্টওয়্যারটি তৈরি এবং ইনস্টল করা প্রায়শই চলমান ./configure, makeকখনও কখনও make checkবা make testতারপরে make installবা sudo make installতার পরে সহজ , আপনি কখনও কখনও configureবিল্ডটি কনফিগার করার জন্য স্ক্রিপ্টে বিকল্পগুলি দিতে চান । বিশেষত, পিএফএনয়েজেল যেমন বলেছেন , সফ্টওয়্যারটি কোথায় ইনস্টল করা হবে তা আপনি কনফিগার করে নিন। যদিও make installপদক্ষেপটি আসলে সফ্টওয়্যারটি ইনস্টল করে, সমস্ত কিছু ইনস্টল করা হবে এমন জায়গাগুলি সাধারণত ./configureধাপে প্রতিষ্ঠিত ।

এর জন্য সর্বাধিক সাধারণ বিকল্প --prefix। ডিফল্ট উপসর্গ, আপনি যখন configureব্যবহার করবেন না বলবেন তখন সাধারণত হয় /usr/local। (মাঝে মাঝে কোনও প্রোগ্রাম বা গ্রন্থাগারের উত্স কোড অন্য কোনও উপসর্গের তুলনায় ডিফল্ট হয়। ভাগ্যক্রমে এটি বিরল)

তাই ./configureসাধারণত সমতুল্য ./configure --prefix=/usr/local। আপনার হোম ডিরেক্টরিতে সফ্টওয়্যার ইনস্টল করতে, আপনি ./configure --prefix=/home/galahad(যদি /home/galahadআপনার হোম ডিরেক্টরি হয়) বা ব্যবহার করতে পারেন --prefix="$HOME"। তারপরে অবশ্যই আপনার অবশ্যই সফ্টওয়্যারটি তৈরি এবং ইনস্টল করতে হবে make। আমার বলা উচিত যে উত্স কোড ফর্মে বিতরণ করা সমস্ত সফ্টওয়্যার এইভাবে নির্মিত হয় না। নিষ্ক্রিয় উত্স কোড সংরক্ষণাগারটির ভিতরে আপনার সর্বদা ডকুমেন্টেশন সন্ধান করা উচিত।

কি --prefixমানে

আপনি যখন চালান , আপনি ইঙ্গিত দিচ্ছেন যে সফ্টওয়্যারটি ডিরেক্টরিতে ইনস্টল করা উচিত । তবে এটি খুব কমই, কখনও কখনও, আলগা ফাইলগুলিতে রাখে । পরিবর্তে, এটি এমন ফাইলগুলিকে স্থাপন করে যা এর বিভিন্ন উপ-ডিরেক্টরিতে বিভিন্ন উদ্দেশ্যে কাজ করে । যদি এই উপ-ডিরেক্টরিগুলি বিদ্যমান না থাকে তবে এটি সেগুলি তৈরি করে।./configure --prefix=directorydirectorydirectorydirectory

এক্সিকিউটেবলগুলি সাধারণত সেখানে যায় directory/bin, যদিও তারা directory/sbinযদি সিস্টেম প্রশাসনের জন্য সাধারণত ব্যবহৃত হয় বা তারা directory/gamesগেম হয় তবে তারা (সম্ভবত খুব কমই, এই দিনগুলিতে) যেতে পারে । লাইব্রেরিগুলিতে directory/libবা অন্য একই নামে নামের ডিরেক্টরিতে যায় directory/lib32। শিরোলেখ ফাইলের মধ্যে যেতে directory/include। ম্যানুয়াল পাতায় যেতে directory/man। সফ্টওয়্যার দ্বারা ব্যবহৃত ডেটা ফাইলগুলি ভিতরে যায় directory/share

এটি directoryএকটি উপসর্গ হতে মানে । এটি প্যারেন্ট ডিরেক্টরি যা বিভিন্ন ফাইল ইনস্টল করা হবে সেই অবস্থানগুলি ধারণ করে। এটা এইভাবে একটি উপসর্গ হিসাবে প্রদর্শিত হবে মধ্যে পরম পাথ সবচেয়ে ফাইল ও ডিরেক্টরিগুলি চলমান দ্বারা নির্মিত এর make install বা sudo make install

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

অনেক সিস্টেমে আপনি চালিত করে টিপিক্যাল ফাইল সিস্টেম লেআউট সম্পর্কে আরও তথ্য পেতে পারেন man hier। আপনি যদি কোনও জিএনইউ / লিনাক্স সিস্টেম ব্যবহার করেন তবে আপনি ফাইল সিস্টেম হায়ারার্কি স্ট্যান্ডার্ডে আগ্রহী হতে পারেন ।


2

এটি বর্তমান প্যাকেজ বা সফ্টওয়্যার কনফিগার করার জন্য প্রয়োজনীয় জিনিসগুলির অবস্থানটি বলে।

একটি সাধারণ ক্ষেত্রে যেমন এটি এসএসএল লাইব্রেরির অবস্থান বলতে পারে:

--with-libssh2=/usr/local  #used in configuring nagios

এবং এটি আপনাকে জানায় যে কোন প্যাকেজগুলি কনফিগার করতে হবে না, আপনার সিস্টেম অনুসারে প্রোগ্রামটির উপযুক্ত সংকলন তৈরি করতে হবে:

--disable-shared  # used in configuring nagios
--disable-link-balancer  # used in configuring Firehol

আপনার সিস্টেমের জন্য একটি সংকলন উপযোগী করার জন্য এগুলি কেবলমাত্র অতিরিক্ত বিকল্প। এটা আমার মনে হয়। এটি অন্য কিছু হলে আমাকে সংশোধন করুন।

--prefix=PREFIXবিকল্প স্থাপত্য স্বাধীন ফাইল ইনস্টল করা PREFIX। আপনি যখন কোনও make installকমান্ড চালান , তখন লাইব্রেরি PREFIX/libডিরেক্টরিতে স্থাপন করা হবে , ডিরেক্টরিতে এক্সিকিউটেবল PREFIX/binএবং আরও কিছু হবে।

যদি এই আর্গুমেন্টটি configureকমান্ডে না পৌঁছে যায় তবে ডিফল্ট মান হয় /usr/local

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