نصب بسته های R با استفاده از devtools روی اوبونتو ۱۸.۰۴ – راهنمای جامع


زبان R به عنوان یک زبان برنامهنویسی متداول متن-باز به طور تخصصی در محاسبات آماری و گرافیکی استفاده میشود. این زبان کاربرد گستردهای در توسعه نرمافزارهای آماری و اجرای تحلیلهای دادهای دارد. جامعه برنامه نویسان R به طور مداوم بستههای تولید شده از سوی کاربران برای حوزههای تخصصی مطالعاتی را معرفی میکند که در رشتههای مختلف کاربرد دارند.
در این راهنما روش نصب devtools و استفاده از آن برای نصب مستقیم بستههای R از گیتهاب را مرور خواهیم کرد.
پیشنیازها
برای مطالعه و اجرای موارد مطرح شده در این راهنما باید یک سرور اوبونتو با مشخصات زیر داشته باشید:
- دست کم 1 گیگابایت رم
- یک کاربر غیر root با دسترسیهای sudo
- نصب زبان R.
زمانی که پیشنیازهای فوق آماده شدند، میتوانید شروع به مطالعه این راهنما بکنید.
گام 1 – نصب وابستگیهای سیستمی برای devtools
ما devtools را از محیط تعاملی shell نصب میکنیم؛ اما پیش از آغاز به کار باید این وابستگیهای سیستمی را نصب کنیم:
sudo apt install build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev
وقتی این وابستگیها نصب شده باشند، میتوانیم کار خود را ادامه دهیم
گام 2 – نصب بسته devtools
ما از طریق devtools میتوانیم بستههای مختلف زبان R را به طور مستقیم از طریق GitHub، BitBucket و فایلهای محلی دانلود کرده و نسخههای خاصی از CRAN را نصب کنیم برای این که devtools در سطح سیستمی در اختیار ما باشد باید به صورت کاربر root وارد شِل R شویم:
sudo -i R
از همین صفحه میتوانیم تابع ()install.packages را برای نصب devtools از شبکه آرشیو جامع R یعنی (CRAN) مورد استفاده قرار دهیم.
install.packages('devtools')
نصب این مورد ممکن است مدتی طول بکشد. زمانی که پایان یافت، در نزدیکیهای انتهای دستورهای خروجی نصب، موارد زیر را باید ببینیم:
خروجی
... ** testing if installed package can be loaded * DONE (devtools)
سپس برای این که آن را تست کنیم یک پروژه را از گیتهاب دانلود کرده و build میکنیم.
گام 3 – نصب بسته R از گیتهاب
در این مرحله میخواهیم آخرین بیلد Shiny را که یک فریمورک اپلیکیشن وب برای R است از گیتهاب به طور مستقیم دانلود و نصب کنیم. این کار از طریق تابع install_github که در devtools قرار دارد، ممکن میشود. یک بسته گیتهاب بر اساس مؤلف (rstudio) و نامش (shiny) توصیف میشود که میتوانید این موارد را در آدرس صفحه اصلی پروژه در گیتهاب مشاهده کنید.
از دستور زیر میتوانید برای نصب این بسته استفاده کنید:
devtools::install_github('rstudio/shiny')
زمانی که خطوط زیر را در نزدیکی انتهای خطوط خروجی ببینید و به اعلان R بازگشته باشید، میتوانید مطمئن باشید که نصب موفقیتآمیز بوده است:
خروجی
... ** testing if installed package can be loaded * DONE (shiny) >
میتوانیم با دستور زیر بینیم که کدام نسخه از Shiny را نصب کردهایم:
packageVersion("shiny")
خروجی
[1] ‘1.1.0.9000’
در مرحله بعد نگاه گذرایی به Shiny خواهیم داشت. ابتدا باید کارهایی در سطح سیستم انجام دهیم. از این رو با استفاده از دستور زیر یا از طریق CTRL+D از این صفحه خارج میشویم:
q()
هر کدام از روشهای فوق باعث میشوند که از شما در مورد ذخیره کردن تصویری از فضای کاری روی سیستم سؤال شود. محیط کاری R شامل اشیای تعریف شده از سوی کاربر است. ذخیره این موارد در این مثال ضرورتی ندارد و میتوانید با خیال راحت گزینه n را وارد کنید.
از آنجا که ما از یک مرورگر وب برای کاربردهای Shiny استفاده میکنیم، ابتدا باید مطمئن شویم که امکان مبادله ترافیک فعال است یا نه.
بررسی فایروال
Shiny یک فریمورک اپلیکیشن وب است. بنابراین برای مشاهده مثالهای آن در یک مرورگر باید مطمئن شویم که امکان تبادل ترافیک بر روی فایروال فعال است یا نه. وبسرور داخلی هر بار که آغاز به کار میکند به طور تصادفی یک شماره پورت انتخاب میکند؛ مگر این که ما در ابتدا یک مقدار خاص را تعیین کردهایم. برای این که کار مدیریت فایروال آسانتر باشد، شماره پورت 4040 را هنگام اجرای مثال خود تعیین میکنیم. ابتدا بررسی میکنیم که آیا فایروال فعال است یا نه:
sudo ufw status
اگر موارد پیشنیاز را رعایت کرده باشید، اینک تنها SSH باز است که در خروجی زیر نیز مشخص است:
خروجی
Status: active To Action From ------------ OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
ممکن است شما موارد دیگری را نیز در خروجی داشته باشید و یا این که کلاً هیچ چیزی نمایش نیابد. از آنجا که ترافیک SSH در این مورد مجاز است، ما پورت 4040 را اضافه کرده و وضعیت را دوباره بررسی میکنیم.
sudo ufw allow 4040/tcp sudo ufw status
خروجی
Status: active To Action From ------------ OpenSSH ALLOW Anywhere 4040/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 4040/tcp (v6) ALLOW Anywhere (v6)
زمانی که فایروال پیکربندی شد، آماده هستیم که Shiny را بررسی کنیم.
اجرای Shiny:
این بار به صورت یک کاربر عادی به R وصل خواهیم شد. مطمئن شوید که R را به عنوان وارد کردهاید:
R
سپس بسته Shiny را بارگذاری میکنیم:
library("shiny")
Shiny حاوی مثالهایی است که طرز کار آن را نشان میدهد. ما این کتابخانه را بارگذاری میکنیم و سپس نخستین مثال را اجرا میکنیم. از آنجا که بر روی یک سرور ریموت کار میکنیم، باید آدرسهاست را وارد کنیم تا بتوانیم از رایانه محلی آن را پیدا کنیم. همچنین متغیر launch.browser را به صورت FALSE تعیین میکنیم تا در سرور ریموت هیچ مرورگری باز نشود.
runExample("01_hello", host = "203.0.113.0", port = 4040, launch.browser= FALSE)
خروجی
Listening on http://203.0.113.0:4040
آدرس فوق را در مرورگر باز میکنیم:
ما Shiny را نصب کردیم تا نشان دهیم که چگونه میتوان از devtools برای نصب مستقیم بستهها از گیتهاب استفاده کرد. سپس اپلیکیشن نمونه Shiny را بدون هیچ دسترسی خاصی اجرا کردیم تا مطمئن شویم که همه کاربران به بستهها دسترسی دارند.
نصب مجدد نسخه پایدار Shiny
در موقعیت production میتوانیم devtools را از CRAN نصب کنیم؛ مگر این که ناچار باشیم از ریپازیتوری نصب کنیم.
اینک لحظهای وقت خود را صرف این میکنیم که به بسته پایدار بازگردیم. ابتدا سرور را با زدن دکمههای CTL + C متوقف میکنیم، سپس با دستور CTRL + D و ورود مجدد به صورت root به شل R باز میگردیم:
sudo -i R
میتوانیم نسخه پایدار را با استفاده از دستور زیر نصب کنیم که نصب قبلی از گیتهاب را که در مرحله قبل تکمیل کردیم، بازنویسی میکند:
install.packages("shiny")
اینک تغییر یافتن بسته را بررسی میکنیم:
packageVersion("shiny")
خروجی
[1] ‘1.1.0’
این خروجی نشان میدهد که به جای 1.1.0.9000 یعنی نسخهای که از گیتهاب نصب کردیم، اینک مشغول اجرای نسخه پایدار Shiny هستیم.
توجه کنید که اطلاعات نسخههای بستهها را میتوانیم با استفاده از خط فرمان سیستم از فایل DESCRIPTION آن به دست آوریم:
cat /usr/local/lib/R/site-library/shiny/DESCRIPTION
در این راهنما آخرین نسخه بسته Shiny را به طور مستقیم از گیتهاب نصب کردیم و یاد گرفتیم که چگونه میتوانیم نسخه پایدار آن را از CRAN مجدداً نصب کنیم. امیدواریم این راهنما مورد توجه شما واقع شده باشد. هر گونه دیدگاه یا پیشنهاد خود را میتوانید از طریق فرم ارسال نظرات در ادامه با ما و دیگر خوانندگان فرادرس در میان بگذارید.
اگر این نوشته مورد توجهتان قرار گرفته است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- آموزش برنامهنویسی R و نرمافزار R Studio
- آموزش مصورسازی داده (Data Visualization) در نرم افزار R با بسته ggplot2
- تشخیص ناهنجاری در داده کاوی — با استفاده از زبان برنامهنویسی R
- آموزش خوشه بندی تفکیکی با نرم افزار R
- مجموعه آموزشهای نرم افزارهای آماری
- آموزش تکمیلی برنامهنویسی R و نرمافزار RStudio
- مجموعه آموزشهای آمار، احتمالات و دادهکاوی
==