অ্যাপিট-গেট এনভিএম এর মাধ্যমে ইনস্টল করা নোড সফ্টওয়্যারকে স্বীকৃতি দেয় না


15

আমি একটি .debপ্যাকেজ ইনস্টল করার চেষ্টা করছি তবে এর জন্য নোডেজ, নোডেজ-আন্ডারস্কোর এর মতো বেশ কয়েকটি নির্ভরতা প্রয়োজন তবে সেগুলি ইতিমধ্যে ইনস্টল করা রয়েছে nvmএবং এটি উপলব্ধ।

যাহাই হউক না কেন আমি কি পেতে পারি কি apt-getnvm মাধ্যমে ইনস্টল করা প্যাকেজ চিনতে যাতে তারা সংঘর্ষ না? আমি জানি যে অ্যাপটি-গেট সিস্টেম-প্রশস্ত যেখানে এনভিএম স্থানীয় ব্যবহারকারী-স্পেসে কাজ করে তাই এর জন্য কিছু হ্যাকিংয়ের প্রয়োজন হতে পারে।

উত্তর:


13

সহজ পদ্ধতির, যখনই সম্ভব হয় কেবলমাত্র উভয় nvm বা .deb প্যাকেজ ব্যবহার করা । এটি সম্ভবত আপনাকে দীর্ঘকালীন প্রচুর মাথাব্যথা বাঁচাতে পারে, তাই প্রথমে এটি দেখুন। এটি .debপ্যাকেজ দ্বারা সরবরাহিত নোড-সম্পর্কিত যে কোনও কিছু এর nvmপরিবর্তে ইনস্টল করা যেতে পারে বলে মনে হচ্ছে ।

তবে যদি এটি সত্যিই সম্ভব না হয় তবে আপনি .debব্যবহার করে "ডামি" প্যাকেজ তৈরি করতে equivs-controlএবং আপনার নির্ভরতা ইনস্টল করা আছে equivs-buildতা বলতে সক্ষম হতে পারেন apt। মনে রাখবেন যে আপনি যদি কিছু ভুল করে থাকেন তবে এটিকে সম্ভাব্যভাবে বিভ্রান্ত করতে পারে। এছাড়াও, আপনি nvmপ্যাকেজগুলি আনইনস্টল করলেও, অ্যাপটি এখনও আপনাকে ডামি প্যাকেজগুলি নিজেরাই আনস্টল না করা পর্যন্ত ডামি প্যাকেজগুলিতে সংজ্ঞায়িত বিকল্পগুলি মনে করবে।

প্রথমে "সমতুল্য" ইনস্টল করুন যাতে আমরা ডামি প্যাকেজগুলি তৈরি করতে পারি:

sudo apt-get install equivs

একটি ডেমি প্যাকেজ বর্ণনা করে এমন একটি নিয়ন্ত্রণ ফাইল তৈরি করুন:

cd ~
equivs-control nodejs-dummy

এই নিয়ন্ত্রণ ফাইলটি সম্পাদনা করুন:

nano nodejs-dummy

কন্ট্রোল ফাইলে আন-মন্তব্য করুন এবং পছন্দসই লাইন পরিবর্তন করুন। নির্দিষ্ট পরিচিতির সমষ্টি ইন "প্রদান করে:" লাইন প্যাকেজ আপনার ব্যবহার করা প্রতিস্থাপিত করে থাকেন তালিকা nvm। উদাহরণ স্বরূপ:

Package: nodejs-dummy
Version: (version slightly higher than what the apt package actually provides)
Maintainer: Your Name <yourname@example.com>
Provides: nodejs
Architecture: all
Description: Something that will remind you what this does ;)

প্যাকেজটি তৈরি করুন:

equivs-build nodejs-dummy

শেষ পর্যন্ত, এটি ইনস্টল করুন:

sudo dpkg -i nodejs-dummy_use_the_actual_filename.deb

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


1
তোমার উত্তরের জন্য অনেক ধন্যবাদ! আমার র‌্যাঙ্কিং কম তাই আপভোট গণনা করে না তবে আমি ভোট দিয়েছি!
লুইসভিভি

3
@ লইসজিভি যদি এটি আপনার প্রশ্নের উত্তর দেয় তবে তা গ্রহণ করার বিষয়টি বিবেচনা করুন ।
বোরিস স্পাইডার

সমতা সম্পর্কে জানতেন না। এটি একটি দুর্দান্ত সরঞ্জাম, ধন্যবাদ!
ব্র্যান্ডিজি

5

এনভিএম কীভাবে সফ্টওয়্যার বিতরণ করে তা নিয়ে এটি একটি সমস্যা। তারা কেবল কোনও ডিস্ট্রো নির্দিষ্ট প্যাকেজিং করছে না। সুনির্দিষ্ট হওয়ার জন্য এনভিএম এর দ্রুত পড়তে পারে এবং তারা কেবল বাইনারিগুলি জাগিয়ে তুলছে। উদাহরণস্বরূপ, এটি নোডেজ 6: https://nodejs.org/.../lats.../node-v6.3.1-linux-x64.tar.gz জন্য যা ইনস্টল করে তা এখানে কোনও মানক .deb বা ধারণ করে না .rpm মেটাডেটা যতক্ষণ না তারা যথাযথভাবে প্যাকেজগুলি রিলিজ না করে যতক্ষণ না ডিস্ট্রো স্তরের প্যাকেজ পরিচালকদের তেমন কিছু করতে পারে এবং তারা সম্ভবত একে অপরের সাথে বিরোধে লিপ্ত হয়। যদি আমি এনভিএমকে সঠিক প্যাকেজগুলি প্রকাশের বিষয়টি বুঝতে পারি তবে তারা আগ্রহী হ'ল না কারণ এটি তাদের ডিস্ট্রো নির্দিষ্ট প্যাকেজ সমর্থন করার সাথে যুক্ত করে। সুতরাং পরিবর্তে আমাদের হ্যাক যে এনভিএম হয়। তাদের গিট বিরুদ্ধে একটি সমস্যা ফাইল হতে পারে। এটি কেবল নোডেজ সম্প্রদায় দ্বারা সংশোধন করা যেতে পারে।

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


4

না, আপনি যেমনটি ইতিমধ্যে বলেছিলেন তেমন করতে পারবেন না। অ্যাপটি সিস্টেম স্তরে কাজ করে, যেখানে নিয়মিত এনভিএম ব্যবহারকারী স্তরে প্যাকেজ ইনস্টল করে।

আপনার দুটি বিকল্প রয়েছে -

  • হয় আপনার পছন্দসই প্যাকেজটি এনভিএম এর মাধ্যমে এবং অন্যান্য এনভিএম প্যাকেজ ইতিমধ্যে অন্তর্ভুক্ত ব্যবহার করুন, বা

  • প্যাকেজটি ব্যবহার করে ইনস্টল করুন apt-getএবং এর সাথে সমস্ত নির্ভরতা ইনস্টল করুন।

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