বাইনারি প্যাকেজ কি? এগুলি কীভাবে তৈরি করবেন?


12

আমি বাইনারি প্যাকেজ সম্পর্কে বিশদ পেতে এবং সেগুলি লিনাক্সে চালাতে চাই। আমি ডেবিয়ান বেস (উবুন্টু / লিনাক্স পুদিনা) লিনাক্স ওএস চালাচ্ছি।

  1. উত্স থেকে বাইনারি প্যাকেজ কিভাবে তৈরি করবেন? এবং আমি কী সরাসরি অ্যাপ্লিকেশনগুলির জন্য বাইনারি প্যাকেজ ডাউনলোড করতে পারি (যেমন ফায়ারফক্স ইত্যাদি) এবং গেমস (যেমন বোসওয়ারস ইত্যাদি)?
  2. আমি কিছু সরাসরি প্যাকেজ পরিচালনা করি যা "xyz.linux.run" ফর্ম্যাটে রয়েছে এই প্যাকেজটি কী? তারা নির্ভরতা থেকে স্বতন্ত্র? বা এটি কি পূর্ব-নির্মিত বাইনারি প্যাকেজগুলি?
  3. এগুলি কীভাবে তৈরি করবেন যা লিনাক্সে সরাসরি "xyz.linux.run" দ্বারা লিনাক্স অপারেটিং সিস্টেমে চালিত হতে পারে।
  4. বাইনারি প্যাকেজ এবং দেব প্যাকেজের মধ্যে দ্বিধা কী?

উত্স থেকে বাইনারি প্যাকেজ কীভাবে তৈরি করবেন তা আপনি খুঁজে পেয়েছেন ?!
ডাঃ জ্যাকি

উত্তর:


17

কঠোর অর্থে একটি বাইনারি ফাইল এমন একটি যা মানব পাঠযোগ্য পাঠ্য হিসাবে এনকোড করা অক্ষর নয়। আরও কথোপকথন হিসাবে, একটি "বাইনারি" সংকলিত একটি ফাইলকে বোঝায়, এক্সিকিউটেবল কোড, যদিও ফাইলটি নিজেই এক্সিকিউটেবল নাও হতে পারে (একা চালানোর ক্ষমতা সম্পর্কে অনুমতিগুলির পক্ষে এতটা উল্লেখ না করা; কিছু বাইনারি কোড ফাইল যেমন গ্রন্থাগারগুলি হ'ল সংকলিত, তবে অনুমতি নির্বিশেষে এগুলি নিজেই কার্যকর করা যাবে না)। বাইনারি যা স্ট্যান্ডেলোন এক্সিকিউটেবল হিসাবে চালিত হয় এটি একটি "এক্সিকিউটেবল", যদিও সমস্ত এক্সিকিউটেবল ফাইলগুলি বাইনারি হয় না (এবং এটি অনুমতি সম্পর্কিত: এক্সিকিউটেবল টেক্সট ফাইল যা শিবাংয়ের মাধ্যমে দোভাষীকে অনুরোধ করে যেমন #!/bin/shএক্সিকিউটেবলও হয়)।

বাইনারি প্যাকেজ কী?

লিনাক্স প্রসঙ্গে একটি বাইনারি প্যাকেজ হ'ল একটি অ্যাপ্লিকেশন প্যাকেজ যা উত্স কোডের বিপরীতে এক্সিকিউটেবল (পূর্ব-নির্মিত) থাকে।

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

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

বাইনারি প্যাকেজ এবং দেব প্যাকেজের মধ্যে দ্বিধা কী?

- সেখানে নেই .debযদিও আছে প্যাকেজ বাইনারি প্যাকেজ হয়, .debগুলি যা পরিবর্তে উৎস রয়েছে, এই সাধারণত আছে -srcতাদের নামের যোগ।

আমি কিছু সরাসরি প্যাকেজ পরিচালনা করি যা "xyz.linux.run" ফর্ম্যাটে রয়েছে এই প্যাকেজটি কী?

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


দুর্দান্ত উত্তর !, আমাকে কি এই প্রশ্নগুলি থেকে আলাদা করা উচিত: উত্স থেকে প্রাক বিল্ট এক্সিকিউটেবল (বাইনারি প্যাকেজ) কীভাবে তৈরি করবেন?
পান্ড্য

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

6

যেহেতু আপনার বাকী প্রশ্নের জবাব সোনাডিলকস দিয়েছেন, আমি উত্স থেকে জিনিসগুলি কীভাবে তৈরি করব তা আমি প্রথম অংশে বিবেচনা করব।

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

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

    #include <stdio.h>

    int main( ) {
        printf("Hello World!");
    }

এবং টাইপ করুন gcc helloWorld.cএবং gccসেই বাইনারি এবং আউটপুট এমন একটি প্রোগ্রাম তৈরি করবে যা "হ্যালো ওয়ার্ল্ড!" রান করার সময় কনসোলটিতে।

ঠিক আছে, সুতরাং এখন আপনি একটি প্রোগ্রাম তৈরি করেছেন, তবে কি প্রতিটি সংকলনের জন্য আপনি প্রতিবার সংকলন করতে চেয়েছিলেন এমন একক উত্স ফাইলটিতে টাইপ করতে হবে না? এটা কি makefilesজন্য হয়। আপনি একটি প্রোগ্রাম সোর্স ফাইল এটি সাধারণত একটি Makefile অথবা অন্য কোনো বিল্ড অটোমেশন ফাইল (সাথে আসবে একটি গুচ্ছ আছে যা জুড়ে চালানো হলে ant, Cmakeঅথবা autoconfবা কিছু)।

এই জাতীয় প্রোগ্রাম তৈরি করতে, কেবল make <build target>ডিরেক্টরি ভিতরে চালান । আমার হ্যালো ওয়ার্ল্ড প্রোগ্রামের জন্য একটি helloworldমেকফিলের মধ্যে এমন একটি টার্গেট অন্তর্ভুক্ত থাকতে পারে যা হ্যালো ওয়ার্ল্ড সি। কে সংকলন করে। আমি make helloworldএটি দ্বারা চালিত এবং এটি একটি বাইনারি আউটপুট হবে।

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

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