নোড.জেএস / এনপিএম / সুরকার ছাড়াই

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


এটির আগেই এটি নিশ্চিত করা গুরুত্বপূর্ণ যে সুরকার এবং নোড উপলব্ধ নেই এবং নিম্নলিখিত লাইনগুলি কোনও আউটপুট তৈরি করে না:

16c389ff1cdd9380cc5f9244775eb6c8

প্রথমে, আমরা কিছু অস্থায়ী এনভায়রনমেন্ট ভেরিয়েবল নির্ধারণ করি যা আমাদের পরে প্রয়োজন হবে। এটি করার জন্য, আমরা ব্যবহারকারীর হোম ডিরেক্টরি (সাধারণত ~/, কিছু শেয়ার্ড হোস্টে /www/htdocs/xxxxxxx/-ও হতে পারে) এবং কাঙ্ক্ষিত PHP ভার্সন (উদাহরণস্বরূপ, All-Inkl প্রোভাইডার সহ /usr/bin/php72, DomainFactory প্রোভাইডার সহ /usr/local/bin/php7-72LATEST-CLI) নির্দিষ্ট করে দিই।:

16c389ff1cdd9380cc5f9244775eb6c8

এখন আমরা নিশ্চিত করব যে কনসোলে PHP তার সর্বশেষ সংস্করণে চলছে। এটি করার জন্য, আমরা হোম ডিরেক্টরিতে একটি নতুন ফোল্ডার তৈরি করব, একটি সিম্বলিক লিঙ্ক তৈরি করব এবং ডিরেক্টরিটি PATH এনভায়রনমেন্ট ভেরিয়েবলের শুরুতে যুক্ত করব।

16c389ff1cdd9380cc5f9244775eb6c8

এখন আমরা ইনস্টলেশন স্ক্রিপ্টটি ডাউনলোড, পরীক্ষা করে এবং প্রয়োগ করে গ্লোবাল কমপোজার ইনস্টল করি, তারপরে ব্যবহারকারী ডিরেক্টরিতে কমপোজার.ফার স্থাপন করে এবং আবার একটি সিমলিংক তৈরি করে:

16c389ff1cdd9380cc5f9244775eb6c8

আমরা Node.js ইনস্টল করার জন্য nvm ব্যবহার করি। এটি একটি ব্যাশ স্ক্রিপ্ট যা মূলত Node-এর বিভিন্ন ভার্সনের মধ্যে পরিবর্তন সহজ করার জন্য তৈরি করা হয়েছে। এখানে, আমরা এর সেই বৈশিষ্ট্যটির সুবিধা নিচ্ছি যেটি রুট প্রিভিলেজ ছাড়াই Node.js ইনস্টল করে।:

16c389ff1cdd9380cc5f9244775eb6c8

.Bashrc এ একটি ছোট সংশোধন আমার জন্য প্রয়োজনীয় ছিল:

16c389ff1cdd9380cc5f9244775eb6c8

এখন আমরা নোড.জেএস এর বর্তমান স্থিতিশীল সংস্করণ ইনস্টল এবং সক্রিয় করতে পারি:

16c389ff1cdd9380cc5f9244775eb6c8

এনভিএম এর সাহায্যে আমরা সহজেই সংস্করণগুলি স্যুইচ করতে পারি।

16c389ff1cdd9380cc5f9244775eb6c8

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

16c389ff1cdd9380cc5f9244775eb6c8

ভার্চুয়াল/শেয়ার্ড এনভায়রনমেন্টে `/proc/stat` অ্যাক্সেস করতেও সমস্যা হয়, যে কারণে, উদাহরণস্বরূপ, Node ফাংশন `os.cpus()` সঠিক কোর সংখ্যার পরিবর্তে `undefined` রিটার্ন করে । এর ফলে npm প্যাকেজ ইনস্টল করার সময় "Cannot read property 'length' of undefined"-এর মতো এরর মেসেজ আসে। আমি Node.js-এর একটি সাম্প্রতিক ভার্সন (যেমন, 11.15.0) ব্যবহার করে সমস্যাটি সমাধান করতে পেরেছি, যেটি এই সমস্যাটির সমাধান করে

পেছনে