RPM এবং .deb প্যাকেজ উভয়ই সমর্থন করে একটি লিনাক্স ডিস্ট্রো তৈরি করা সম্ভব?


29

আমি ভাবছি যে লিনাক্স ডিস্ট্রো তৈরি করা তাত্ত্বিকভাবে সম্ভব কিনা যা আরপিএম এবং ডিবিয়ান প্যাকেজ উভয়কেই সমর্থন করতে পারে।

সেখানে কি কোনও ডিস্ট্রো বাস করে যা উভয়কেই সমর্থন করে?

আর তা না হলে কি সম্ভব?


4
যদি না আমরা নির্ভরযোগ্য সংখ্যার নির্ভরযোগ্য সংখ্যার সাথে প্যাকেজগুলি বিবেচনা না করি, তবে এগুলি ইনস্টল করা কীভাবে তাত্ত্বিকভাবে অসম্ভব হতে পারে তা আমি দেখতে পাচ্ছি না ।
দিমিত্রি গ্রিগরিয়েভ

2
আপনি যদি নির্ভরতার রেজোলিউশনটি ব্যবহারকারীর কাছে রেখে দেন তবে এটি সম্ভব হবে :)
রেক্যান্ডবোনম্যান

@rackandboneman সেক্ষেত্রে স্ল্যাকওয়্যার প্লাস alienপ্যাকেজগুলিকে .tgz ফাইলগুলিতে রূপান্তর করার জন্য কাজ করবে :) আপনি যদি সোর্স ডেবস বা আরপিএমএস ব্যবহার করেন তবে এলএফএসও এটি করতে পারে।
ivanivan

@ দিমিত্রিগ্রিরিভ আইআইআরসি, নির্ভরতা রেজোলিউশনটি এনপি-সম্পূর্ণ যখন আপনি নেতিবাচক নির্ভরতা (দ্বন্দ্ব) মঞ্জুর করেন।
ব্যবহারকারী 253751

@ ইমিবিস এনপি-সম্পূর্ণ গণনাযোগ্যকে বোঝায়। ননকমপটেবলের অর্থ উদাহরণস্বরূপ "যদি এই প্রোগ্রামটি libc5 এর সাথে স্তব্ধ হয় তবে libc6 ইনস্টল করুন"।
দিমিত্রি গ্রিগরিয়েভ

উত্তর:



42

আমি মনে করি না সেখানে আউট কোন ডিস্ট্রিবিউশন যা উভয় স্থানীয়ভাবে সমর্থন আছে, কিন্তু এটা দেখা যাচ্ছে সেখানে উন্নয়নে এক, হয় bedrock লিনাক্স (ধন্যবাদ iMalinowski তথ্য জন্য)। অন্যান্য বিতরণগুলিতে আপনি রূপান্তর সরঞ্জামগুলি ব্যবহার করতে পারেন যেমন alienএক ফর্ম্যাট থেকে অন্য রূপান্তর করতে। সফ্টওয়্যার ভিত্তিক যেকোন কিছুই করণীয়, যথেষ্ট সময় এবং শক্তি দেওয়া, সুতরাং এই জাতীয় বিতরণ তৈরি করা সম্ভব হবে (তবে প্যাকেজগুলির ক্ষমতা .debএবং .rpmপ্যাকেজগুলির মধ্যে পার্থক্য দেওয়া বেশ জটিল)।

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

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

আপনার বিতরণকে এমন একটি ভিত্তি হিসাবে বিবেচনা করা উচিত যার ভিত্তিতে আপনার বিতরণটির নিয়ম এবং বাস্তুতন্ত্রের সাথে লেগে থাকা, অন্যান্য বিতরণ থেকে কোনও জিনিস মিশ্রিত না করে desired মিক্সিং এবং ম্যাচিং সমর্থন করার জন্য আপনার উচ্চ-স্তরের বিমূর্ততা প্রয়োজন (বা বরং, ক্রস-বিতরণ পরিবেশ সরবরাহের জন্য): স্টিম রানটাইম, ফ্ল্যাটপ্যাক ইত্যাদি support


10

না, এ জাতীয় দৈত্যটি তৈরি করা উচিত নয়। একটি ম্যাকোস অ্যাপ্লিকেশন বান্ডিলের বিপরীতে, অপারেটিং সিস্টেমটিতে অ্যাপ্লিকেশনটি চালানোর জন্য সাধারণত সমস্ত কিছু অন্তর্ভুক্ত করে, আরপিএম এবং .deb প্যাকেজগুলি প্রায়শই অন্যান্য প্যাকেজের উপর নির্ভরশীল যেমন লাইব্রেরিগুলি shared লিনাক্স প্যাকেজগুলি উপস্থিত অন্যান্য প্যাকেজগুলির তালিকা প্রদর্শন করে এবং প্যাকেজ পরিচালক এই প্রয়োজনীয়তাগুলি কার্যকর করতে সহায়তা করে। তদ্ব্যতীত, লিনাক্স বিতরণগুলি বিভিন্নভাবে করা হয় (যেমন /etc/network/interfaces.dবনাম /etc/sysconfig/network-scripts) in

এমনকি একই প্যাকেজ ফর্ম্যাট পরিবারের মধ্যে সালিসী সংগ্রহস্থল থেকে প্যাকেজগুলি মিশ্রিত করা উচিত নয়। অর্থাৎ, একটি CentOS মেশিনে SuSE প্যাকেজ ইনস্টল করা কেবল সমস্যা চাইছে, যদিও তারা উভয়ই RPM ব্যবহার করে। আমি একই ওএসের ভিন্ন সংস্করণের জন্য প্যাকেজগুলি ইনস্টল করব না (উদাহরণস্বরূপ, 16.04 সিস্টেমে উবুন্টু 14.04 প্যাকেজগুলি) যদি না জানতাম যে আমি কী করছি।

সুতরাং, একই সিস্টেমে আরপিএম এবং .deb উভয়কেই সমর্থন করার চেষ্টা করা প্রশ্নটির বাইরে। কিছু হতাশ পরিস্থিতিতে আপনি নির্দিষ্ট প্যাকেজগুলি ব্যবহার করে রূপান্তর করতে পারেন alienতবে আপনার সমস্যা সমাধানের সমস্যাগুলিতে অনেক প্রচেষ্টা করার আশা করা উচিত যা অনিবার্যভাবে এই হ্যাকগুলি থেকে উদ্ভূত হবে would


3
এমনকি একই পরিবার থেকে উদ্ভূত ডিস্ট্রোদের জন্য, প্যাকেজগুলি মেশানো একটি খারাপ ধারণা হতে পারে। উদাহরণস্বরূপ ডেবিয়ান এবং উবুন্টু উভয়ই .deb ভিত্তিক কিন্তু উবুন্টু কিছু ডিজাইনের সিদ্ধান্ত নিয়েছে যা দেবিয়ান থেকে পৃথক হয় তাই ডাবিয়ান-এ উবুন্টু প্যাকেজগুলি ব্যবহার করা সবসময় কাজ না করে।
slebetman

1
এমনকি ডেবিয়ান ডিস্ট্রো সংস্করণ মিশ হয় একটা খারাপ ধারণা: wiki.debian.org/DontBreakDebian#Don.27t_make_a_FrankenDebian
stanri

তারপরে মিন্ট রয়েছে যা উবুন্টুর উপর ভিত্তি করে যে ডেবিয়ানের উপর ভিত্তি করে ... :-)
দেবসোলার

1
আমি এটি বলতে চাই না যে আমি এটি একটি ভাল ধারণা বলে মনে করি। একই সাথে, কেন এটি এত ভয়ঙ্কর ধারণা তা আমি ব্যর্থ হয়েছি। আমি মনে করি এই সমস্যাগুলি কাটিয়ে উঠতে পারে - এটি করার পক্ষে সত্যিকারের পুরষ্কার নেই।
এমোরি

9

ওয়েল, আছে alien( man পৃষ্ঠা ), যে মধ্যে রূপান্তর করতে rpm, debইত্যাদি, কিন্তু আমি অনুমান করা হবে প্রকৃত সমস্যার নির্ভরতা (সফ্টওয়্যার জন্য বিভিন্ন প্যাকেজের নাম), এবং কনফিগারেশন ফাইল স্থান হ্যান্ডলিং থেকে আসা।

অবশ্যই, যদি আপনি বোঝাতে চান যে উভয় প্রকারের প্যাকেজগুলি বিতরণ থেকেই এসেছিল, তবে সম্ভবত এটি প্রায় কাজ করা যেতে পারে তবে কেন কেউ তা করবে ... (এবং আপনাকে এখনও সমস্ত কিছু এক বা অন্যটিতে রূপান্তর করতে হবে , যেহেতু আমি ভাবি না যে dpkgকীভাবে rpmএবং এর বিপরীতে ডাটাবেসগুলি পড়তে হয় knows


3

হ্যাঁ, এটি সম্ভব তবে এটি বিতরণকে নষ্ট করে দেয়।

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

দ্রষ্টব্য: প্যাকেজ ইনস্টলেশন সরঞ্জামগুলি পোর্ট করা প্রয়োজন, কারণ একটিতে সমস্ত প্যাকেজ, সংস্করণ, নির্ভরতা, কনফিগারেশন ফাইল, প্রাক-এবং পোস্ট ইনস্টল স্ক্রিপ্টগুলির একটি কেন্দ্রীয় তালিকা থাকতে চান (যদি আপনি একটি প্যাকেজটিকে অন্য প্যাকেজের সাথে অন্যটির সাথে প্রতিস্থাপন করেন তবে ফর্ম্যাট, আপনি প্রত্যাশা যে নতুন সংস্থার স্ক্রিপ্টগুলি (পুরানো ফর্ম্যাট) নতুন প্যাকেজ সিস্টেম থেকে চালিত হয়।

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

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

শেষে, কেবল প্যাকেজ দ্বারা নয়, সামঞ্জস্যপূর্ণ প্যাকেজগুলি দ্বারা একটি বিতরণ করা হয়।


0

হ্যাঁ এবং সর্বাধিক .ডাব ভিত্তিক ডিস্ট্রোস এটি ইতিমধ্যে করেছে, তবে ...

ডেবিয়ান এবং সম্পর্কিত পরিবারগুলিতে কমপক্ষে আপনার কাছে রয়েছে alienযা আপনাকে আরপিএম-প্যাকেজ ইনস্টল করার অনুমতি দেবে।

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


0

হ্যা এবং না. দেব এবং আরপিএম কেবল ফর্ম্যাট। আপনি উভয় ফর্ম্যাটকে সমর্থন করতে পারেন তবে এর অর্থহীন। প্যাকেজগুলি সাধারণত বিতরণগুলির মধ্যে তুলনামূলক হয় না বিশেষত বিতরণগুলি যা একে অপরের ভিত্তিতে নয়।

যদি সমস্ত বিতরণগুলির একই সংস্করণ প্রয়োজনীয়তা থাকে তবে সমস্ত বিতরণ হ'ল প্যাকেজ নির্বাচন। আপনি প্যাকেজ তালিকা করে যে কোনও বিতরণ ইনস্টল করতে পারে।

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

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