Node.js یک محیط runtime Javascript است که بر اساس موتور منبع باز V8 ساخته شده توسط Google ساخته شده و در اصل در Chrome استفاده شده است. با تشکر از Node.js که می توانیم Javascript را خارج از متن مرورگر اجرا کنیم و از آن نیز مانند یک زبان برنامه نویسی سمت سرور استفاده کنیم ، بنابراین یک برنامه وب کامل در اطراف آن ایجاد می کنیم. در این آموزش نحوه نصب Node.js را در توزیع RHEL 8 / CentOS 8 مشاهده خواهیم کرد.
- در این آموزش می آموزید:
- چگونه می توان نسخه های موجود Node.js را در RHEL 8 / CentOS 8 لیست کرد
- نحوه نصب یک نسخه خاص از Node.js
- نحوه جابجایی بین نسخه های Node.js در RHEL 8 / CentOS 8
الزامات و قراردادهای نرم افزاری مورد استفاده
دسته بندی | الزامات ، کنوانسیون ها یا نسخه نرم افزار مورد استفاده |
---|---|
System | RHEL 8 / CentOS 8 |
Software | نرم افزار مورد نیاز برای دنبال کردن این آموزش قبلاً در حداقل نصب Rhel 8 گنجانده شده است |
Other | امتیازات ریشه را برای نصب بسته های مورد نیاز (و یا یوزر با دسترسی sudo ) |
کدام نسخه از Node.js؟
همانطور که در مقاله قبلی در مورد نصب php در Rhel8 مشاهده کردیم ، نسخه Red Hat Enterprise Linux روش جدیدی برای سازماندهی نرم افزار در مخازن معرفی می کند. به طور پیش فرض فقط دو منبع نرم افزاری در توزیع فعال هستند: BaseOs و Appstream. اولی شامل بسته های اصلی مورد نیاز سیستم عامل است ، در حالی که دومی میزبان انواع مختلفی از نرم افزارهای سازمان یافته در ماژول ها است.
مزیت اصلی استفاده از این پارادایم این است که امکان انتخاب بین نسخه های مختلف یک برنامه یا ابزار مشابه وجود دارد. Node.js یکی از برنامه های موجود در مخزن Appstream است ، بنابراین برای بررسی نسخه های این زمان اجرا Javascript در RHEL 8 ، تمام کاری که ما باید انجام دهیم این است که از ماژول ، زیرفرمان dnf ، مدیر بسته توزیع استفاده کنیم. ما اجرا می کنیم:
1 2 |
$ sudo dnf module list nodejs |
خروجی دستور ماژول های موجود و وضعیت آنها را نشان می دهد:
1 2 3 4 5 6 |
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) Name Stream Profiles Summary nodejs 10 [d] development, minimal, s2i, default [d] Javascript runtime nodejs 8 development, minimal, s2i, default [d] Javascript runtime Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled |
این خروجی به ما چه می گوید؟ اول از همه می توانیم ببینیم که دو نسخه (یا “جریان”) از Node.js در سیستم وجود دارد: 10 و 8. همچنین می توانیم ببینیم که سابق به عنوان [d] علامت گذاری شده است و بنابراین به عنوان به طور پیش فرض نصب شود. برای هر جریان ، چندین نمایه در دسترس است: بسته به نوع انتخاب شده ، بسته های مختلفی نصب خواهد شد.
برای دیدن لیست بسته هایی که با هر نمایه نصب می شوند ، می توانیم دستور زیر را اجرا کنیم:
1 2 |
$ sudo dnf module info --profile nodejs |
نحو دستور بصری است: ما برای درخواست اطلاعات در مورد ماژول nodejs از dnf به همراه زیرفرمان ماژول و عملکرد info استفاده کردیم. با ارائه گزینه –profile ، مشخص کردیم که می خواهیم درباره پروفایل های موجود اطلاعاتی کسب کنیم. در اینجا خروجی دستور وجود دارد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Name : nodejs:10:20181011133319:9edba152:x86_64 development : nodejs : nodejs-devel : npm minimal : nodejs s2i : nodejs : nodejs-nodemon : npm default : nodejs : npm Name : nodejs:8:20181011134412:9edba152:x86_64 development : nodejs : nodejs-devel : npm minimal : nodejs s2i : nodejs : nodejs-nodemon : npm default : nodejs : npm |
برای هر جریان در دسترس ، لیست بسته های موجود در هر نمایه نمایش داده می شود. می توانیم ببینیم که با استفاده از نمایه پیش فرض ، بسته های موجود در نصب خود nodejs و npm ، مدیر بسته Node هستند. با استفاده از نمایه توسعه ، بسته nodejs-devel به لیست اضافه می شود ، در حالی که هنگام استفاده از حداقل ، تنها بسته نصب شده nodejs است. سرانجام ، نمایه s2i (منبع به تصویر) شامل nodejs ، npm و nodejs-nodemon است که اساساً اسکریپتی است که قرار است در طول توسعه برنامه node.js استفاده شود.
نصب نسخه پیشفرض ( default)
اکنون که نسخه های موجود Node.js را شناختیم ، می توانیم تصمیم بگیریم که کدام یک را نصب کنیم. همانطور که در بالا گفتیم ، نسخه های پیش فرض 10 است. اگر این مورد دلخواه باشد ، تنها کاری که باید انجام دهیم این است:
1 2 |
$ sudo dnf install nodejs |
خلاصه ای از بسته های نصب شده و وابستگی آنها در ترمینال نمایش داده می شود و سیستم برای ادامه تأیید درخواست می کند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Installing: nodejs x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 8.4 M Installing dependencies: npm x86_64 1:6.4.1-1.10.11.0.2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 3.6 M libuv x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 134 k http-parser x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 40 k Enabling module streams: nodejs 10 Transaction Summary ====================================================================================================================================================== Install 4 Packages Total download size: 12 M Installed size: 57 M Is this ok [y/N]: |
تعیین نسخه برای نصب
اگر بخواهیم نسخه دیگری (جریانی در اصطلاح Rhel) یا نمایه دیگری را نصب کنیم ، چه می کنیم؟ کاملاً ساده است:
1 2 |
name:stream/profile |
اساساً ، برای نصب نسخه پیش فرض ماژول nodejs ، اما با مشخصات توسعه ، ما اجرا خواهیم کرد:
1 2 |
$ sudo dnf module install nodejs:10/development |
لیست بسته هایی که نصب می شوند ، با توجه به تغییر مشخصات ، افزایش می یابد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Installing group/module packages: npm x86_64 1:6.4.1-1.10.11.0.2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 3.6 M nodejs-devel x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 11 M nodejs x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 8.4 M Installing dependencies: redhat-rpm-config noarch 115-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 82 k perl-srpm-macros noarch 1-25.el8 Rhel-8-for-x86_64-appstream-beta-rpms 11 k go-srpm-macros noarch 2-16.el8 Rhel-8-for-x86_64-appstream-beta-rpms 14 k dwz x86_64 0.12-9.el8 Rhel-8-for-x86_64-appstream-beta-rpms 109 k libuv x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 134 k http-parser x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 40 k python3-rpm-macros noarch 3-35.el8 Rhel-8-for-x86_64-appstream-beta-rpms 13 k rust-srpm-macros noarch 5-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 9.3 k ocaml-srpm-macros noarch 5-4.el8 Rhel-8-for-x86_64-appstream-beta-rpms 9.5 k efi-srpm-macros noarch 3-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 22 k qt5-srpm-macros noarch 5.11.1-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 11 k http-parser-devel x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 18 k nodejs-packaging noarch 17-2.el8+1541+81a6effd Rhel-8-for-x86_64-appstream-beta-rpms 19 k libuv-devel x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 34 k ghc-srpm-macros noarch 1.4.2-7.el8 Rhel-8-for-x86_64-appstream-beta-rpms 9.4 k python-srpm-macros noarch 3-35.el8 Rhel-8-for-x86_64-appstream-beta-rpms 14 k openblas-srpm-macros noarch 2-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 8.0 k krb5-devel x86_64 1.16.1-19.el8 Rhel-8-for-x86_64-baseos-beta-rpms 546 k libsepol-devel x86_64 2.8-1.el8 Rhel-8-for-x86_64-baseos-beta-rpms 85 k libcom_err-devel x86_64 1.44.3-1.el8 Rhel-8-for-x86_64-baseos-beta-rpms 37 k pcre2-devel x86_64 10.31-11.el8 Rhel-8-for-x86_64-baseos-beta-rpms 591 k zip x86_64 3.0-21.el8 Rhel-8-for-x86_64-baseos-beta-rpms 270 k libkadm5 x86_64 1.16.1-19.el8 Rhel-8-for-x86_64-baseos-beta-rpms 184 k unzip x86_64 6.0-38.el8 Rhel-8-for-x86_64-baseos-beta-rpms 192 k keyutils-libs-devel x86_64 1.5.10-6.el8 Rhel-8-for-x86_64-baseos-beta-rpms 48 k openssl-devel x86_64 1:1.1.1-6.el8 Rhel-8-for-x86_64-baseos-beta-rpms 2.3 M libselinux-devel x86_64 2.8-5.el8 Rhel-8-for-x86_64-baseos-beta-rpms 199 k zlib-devel x86_64 1.2.11-10.el8 Rhel-8-for-x86_64-baseos-beta-rpms 56 k pcre2-utf16 x86_64 10.31-11.el8 Rhel-8-for-x86_64-baseos-beta-rpms 223 k libverto-devel x86_64 0.3.0-5.el8 Rhel-8-for-x86_64-baseos-beta-rpms 18 k pcre2-utf32 x86_64 10.31-11.el8 Rhel-8-for-x86_64-baseos-beta-rpms 215 k Installing module profiles: nodejs/development Enabling module streams: nodejs 10 Transaction Summary ====================================================================================================================================================== Install 34 Packages |
به همین ترتیب ، برای نصب نسخه 8 زمان اجرا Javascript با مشخصات پیش فرض ، ما اجرا خواهیم کرد:
1 2 |
$ sudo dnf module install nodejs:8 |
در این حالت ، از آنجا که می خواستیم از نمایه پیش فرض استفاده کنیم ، از افزودن آن در دستور صرف نظر کردیم. همانطور که می توانید در خروجی زیر تأیید کنید ، نسخه بسته های نصب شده دوباره تغییر کرد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Installing group/module packages: nodejs x86_64 1:8.11.4-2.el8+2022+2ec55091 Rhel-8-for-x86_64-appstream-beta-rpms 7.5 M npm x86_64 1:5.6.0-1.8.11.4.2.el8+2022+2ec55091 Rhel-8-for-x86_64-appstream-beta-rpms 4.1 M Installing dependencies: libuv x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 134 k http-parser x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 40 k Installing module profiles: nodejs/default Enabling module streams: nodejs 8 Transaction Summary ====================================================================================================================================================== Install 4 Packages |
فرض کنید ما نصب لیست بسته های فوق را تأیید کردیم. اگر اکنون اجرا کنیم:
1 2 |
$ sudo dnf module list nodejs |
ما می توانیم تغییرات منعکس شده با علامت گذاری شده در خروجی را مشاهده کنیم:
1 2 3 4 5 |
Name Stream Profiles Summary nodejs 10 [d] development, minimal, s2i, default [d] Javascript runtime nodejs 8 [e] development, minimal, s2i, default [d] [i] Javascript runtime Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled |
نسخه 10 همچنان به عنوان نسخه پیش فرض علامت گذاری شده است ، اما اکنون جریان نسخه 8 با [e] مشخص شده است که به این معنی است که به طور خودکار فعال شده است. علاوه بر این ، علامت [i] در قسمت پروفایل های همان جریان ، نزدیک به نام یک نصب شده استفاده می شود.
تغییر نسخه NodeJs
اگر نسخه خاصی از Node.js را نصب کنیم و بخواهیم آن را به نسخه دیگری تغییر دهیم ، چه می کنیم؟ در واقع ، ما باید نسخه جدید را برای نصب مشخص کنیم و سیستم بقیه موارد را مراقبت می کند. به عنوان مثال ، برای بازگشت به نسخه 10 دوباره اجرا می کنیم:
1 2 |
$ sudo dnf module install nodejs:10/default |
اقداماتی که به منظور جلب رضایت درخواست انجام می شود ، برای ما محاسبه و نمایش داده می شود. در بخش خلاصه تراکنش در خروجی زیر ، در واقع می توانیم مشاهده کنیم که 2 بسته (nodejs و npm) به روز می شوند:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Upgrading: npm x86_64 1:6.4.1-1.10.11.0.2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 3.6 M nodejs x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 8.4 M Switching module streams: nodejs 8 -> 10 Transaction Summary ====================================================================================================================================================== Upgrade 2 Packages |
نتیجه گیری
Node.js اساس موتور جاوا اسکریپت V8 ساخته شده توسط google است و در ابتدا در مرورگر Chrome استفاده شده است. با استفاده از آن می توانیم برنامه هایی با استفاده از Javascript خارج از زمینه مرورگر وب ایجاد کنیم. در این آموزش نحوه نصب بسته nodejs روی سیستم عامل RHEL / CentOS Linux 8 ، نسخه هایی از بسته موجود در مخازن پیش فرض ، نصب یک نسخه خاص و نحوه تشکر از ماژول های جدید را مشاهده کردیم. روش سازماندهی نرم افزار در آخرین نسخه از توزیع سازمانی Red Hat ، ما می توانیم از یک نسخه به نسخه دیگر تغییر دهیم.
منبع :
https://linuxconfig.org/
https://www.itzgeek.com/