কীভাবে বলবেন যে নির্ভরতাগুলি ম্যানুয়ালি সমাধান করা হয়?


14

ধরা যাক এমন একটি সফ্টওয়্যার রয়েছে যার মাধ্যমে আমি ইনস্টল করতে চাই না apt, তবে ম্যানুয়ালি। (টেক্সলাইভ, কারণ আমি ২০১১ এর রিলিজটি ব্যবহার করতে চাই এবং aptকেবল এটির ২০০৯ সংস্করণ রয়েছে))

ধরা যাক যে আমি আরও একটি সফ্টওয়্যার ইনস্টল করতে চাই apt, যা প্রথম সফ্টওয়্যারটির উপর নির্ভর করে। (সিস্টেমের ব্যাপী ব্যবহারের জন্য ম্যানুয়ালি ইনস্টল করতে ব্যথা হওয়ায় ভিম ল্যাটেক্সসুয়েট))

ডিফল্ট হিসাবে, aptপ্রথম সফ্টওয়্যারটি "দেখায়" না এবং কেবল নির্ভরতা মেটাডেটা সন্তুষ্ট করার জন্য প্রচুর অপ্রয়োজনীয় এবং অবাঞ্ছিত ক্রাফ্ট (অর্থাত্ টেক্সলাইভ ২০০৯) ইনস্টল করতে এগিয়ে চলেছে।

আমি কীভাবে পারি:

  • বলুন aptযে একটি প্রদত্ত প্যাকেজ (যেমন texlive) হয় সব ব্যবহারিক উদ্দেশ্যে ইনস্টল করা, এবং এটি অন্য কিছু প্যাকেজের নির্ভরতা যেমন ইনস্টল করা যাবে করা উচিত?

  • কোনও নির্ভরতা সম্পর্কে উদ্বিগ্ন না হয়ে aptকোনও প্রদত্ত প্যাকেজ (উদাহরণস্বরূপ vim-latexsuite) ইনস্টল করতে বলুন ?

আমি বিভিন্ন aptসম্পর্কিত সম্পর্কযুক্ত ম্যানপেইজগুলি পরীক্ষা করে খালি এসেছি, এবং এই প্রশ্নটি এই সাইটেও পেয়েছি তবে মনে হয় এটি করার জন্য কোনও কম হ্যাকিশ উপায় আছে, না?

(আমার জেন্টোর সময় থেকে, আমি মনে করি emerge --injectএবং /etc/portage/package.provides, এবং মূলত aptসমানতালের সন্ধান করি))


টেক্স লাইভ ২০১১ সম্প্রতি ডেবিয়ান সিডে যুক্ত করা হয়েছে, সুতরাং এটি খুব শীঘ্রই বা পরে মিন্টেও প্রচার করা উচিত (তবে উবুন্টু ১২.০৪ এটি "মিস করেছে" তাই উবুন্টু ১২.১০ এর সাথে অক্টোবরের শেষের আগে নয়)। আপনি যদি সত্যিই দুঃসাহসী হন তবে আপনি সম্ভবত ডেবিয়ান সিড থেকে প্যাকেজগুলি দখল করতে পারেন, তবে যেহেতু এটি অনেক প্যাকেজ সম্পর্কিত, এটি সম্ভবত একটি ভাল সমাধান নয়। লঞ্চপ্যাড.টোন / ~টেক্স্লাইভ -বন্দরগুলি /+ আরচাইভ / পিপিএ সেটআপে একটি পিপিএ রয়েছে ( উবুন্টুতে এই বাগ রিপোর্টটি দেখুন ) যা আপনি সম্ভবত মিন্টেও ব্যবহার করতে পারেন।
ড্যানিয়েল অ্যান্ডারসন


তিন বছর পরে কোন মন্তব্য কম নয় ... ব্যাখ্যা করার জন্য যত্নশীল?
দেবসোলার

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

উত্তর:


13

equivsএই নির্ভরতাগুলি সরবরাহ করে এমন মেটা-প্যাকেজগুলি তৈরি করতে আপনার প্যাকেজটি ব্যবহার করা উচিত এবং তারপরে dpkgএই প্যাকেজগুলি ইনস্টল করার জন্য ব্যবহার করা উচিত।

equivsএটির ডকুমেন্টেশন ইনস্টল করা এবং পড়া যথেষ্ট হওয়া উচিত তবে উবুন্টুর জন্য এই গাইডটি বেশ বিস্তৃত এবং অন্যান্য এপিটি সিস্টেমেও প্রয়োগ করা উচিত।


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

এই ক্ষেত্রে , texlive-base-bin(যেহেতু সম্ভবত অংশে কেবল "প্রস্তাবিত" থেকে হতে হবে এবং একটি "নির্ভরতা" বেস ডেবিয়ান বিতরণে অন্তত মনে হয় texliveএই ধরনের একটি বিরাট প্যাকেজ), কিন্তু কারণ এটি যেহেতু ডেবিয়ান উপর মূল প্রজেক্টের TeX লাইভ ইনস্টল করতে দেখা যায় বিতরণ সংস্করণটি প্রায়শই পিছনে থাকে (এই কারণে যে প্যাকেজটি এমন একটি প্রাণী যে প্রায়শই যথেষ্ট কাজ ব্যতীত প্যাকেজ করা যায় না, যা বেশিরভাগই এক বা কয়েকটি ব্যক্তি সম্পন্ন করেন, যারা দাবি করেন যে তাদের দেবিয়ার পাশেই জীবন রয়েছে), equivsকৌশল প্রায়শই টেক্স লাইভ দিয়ে ব্যবহৃত হয় (বাহ, সেই বাক্যটি হাতছাড়া হয়ে যায় :-))।


সংযোজন : প্যাকেজ সিস্টেমের বাইরে টেক্সএল লাইভ ইনস্টল করতে চাইছেন তাদের আরও বিস্তারিত নির্দেশাবলীর জন্য, টেক্স.এসএক্স-এ এই নির্দেশাবলী আরও বিস্তৃত এবং সম্ভবত আপডেট রাখা অবিরত থাকবে। এগুলি equivsপদক্ষেপ সম্পর্কিত আরও স্পষ্ট নির্দেশাবলী অন্তর্ভুক্ত ।


আমি জানি না কীভাবে এটি ঘটেছিল, তবে লিনাক্স মিন্ট টেক্সলাইভকে "শক্ত" নির্ভরতা করে তোলে ... equivsপ্যাকেজটি চেষ্টা করবে ।
দেবসোলার

equivsদুর্দান্ত কাজ করেছে আমি texlive-base-binএকই নামের আসল "ডামি" প্যাকেজটিকে ওভাররাইড করে 9999 সংস্করণ তৈরি করেছি texlive-binariesএবং vim-latexsuiteকোনও ঝামেলা ছাড়াই ইনস্টল করেছি ।
দেবসোলার

1

আপনি --nodepsdpkg এ পতাকা ব্যবহার করতে পারেন , এটির কোনও নির্ভরতা ছাড়াই প্যাকেজটি ইনস্টল করা উচিত।

   --ignore-depends=package,...
          Ignore  dependency-checking for specified packages (actu-
          ally, checking is performed, but only warnings about con-
          flicts are given, nothing else)

সার্ভারফল্টে খুব অনুরূপ একটি প্রশ্ন রয়েছে যা দেখতেও মূল্যবান


আহ ... এমন কিছু নেই? (কমপক্ষে আমার এখানে থাকা লিনাক্স মিন্ট 12 বাক্সে নেই))
দেবসোলার

1
এইচএম, আমি একটি ভুল করেছি বলে মনে হচ্ছে - এটি dpkg এর জন্য, apt-get - এই প্রতিফলিত করার জন্য আমার উত্তরটি সম্পাদনা করেছে
জার্নম্যান গেক

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

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

এটি আপনার উত্তরটিকে আমার আসল সমস্যার জন্য আমার পছন্দের সমাধান হিসাবে বিবেচনা করে , কারণ কোনও কিছুই ঘুরে ফিরে ভিএম-লেটেক্সসুইটের উপর নির্ভর করে না। যাইহোক, এই সমাধানটি "টেক্সলাইভ" উপস্থিত হিসাবে চিহ্নিত করে না , এটি কেবল ভিম-লেটেক্সসুইটকে এটি চাইতে জিজ্ঞাসা করে। যেমনটি, ড্যানিয়েলের উত্তর প্রশ্নের শিরোনামের সাথে আরও ভাল ফিট করে। চেকমার্ক তার কাছে যায়, কুডোস আপনার কাছে যায়। ;-)
দেবসোলার

1

নিম্নলিখিতটি একটি .deb ফাইল থেকে নির্ভরতা সরিয়ে ফেলবে, এক্ষেত্রে ফ্রিডিয়াস থেকে libperl5.20 নির্ভরতা অপসারণ:

dpkg-deb -x freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius
dpkg-deb -e freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius/DEBIAN
sed -i  -e 's/, libperl5.20 (>= 5.20.2)//g' freeradius/DEBIAN/control
dpkg-deb -b freeradius freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb

এটি নির্ভরতা বিদ্যমান তা জেনেও আপনাকে প্যাকেজটি ইনস্টল করতে দেয়।

আপনি যদি ম্যানুয়ালি প্যাকেজগুলির নির্দিষ্ট সংস্করণ ইনস্টল apt-get upgradeকরে থাকেন তবে ভবিষ্যতে আপনি প্যাকেজটি আপগ্রেড করা থেকে বিরত থাকতে পারেন :

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