16/09/2018, 13:10

Làm thế nào để cài đặt R gói bằng cách sử dụng devtools trên Ubuntu 18.04

Giới thiệu Một ngôn ngữ lập trình nguồn mở phổ biến, R chuyên về tính toán thống kê và đồ họa. Nó được sử dụng rộng rãi để phát triển phần mềm thống kê và thực hiện phân tích dữ liệu. Cộng đồng R được biết đến với việc liên tục thêm các gói do người dùng tạo cho các lĩnh vực nghiên cứu cụ thể, ...

Giới thiệu

Một ngôn ngữ lập trình nguồn mở phổ biến, R chuyên về tính toán thống kê và đồ họa. Nó được sử dụng rộng rãi để phát triển phần mềm thống kê và thực hiện phân tích dữ liệu. Cộng đồng R được biết đến với việc liên tục thêm các gói do người dùng tạo cho các lĩnh vực nghiên cứu cụ thể, điều này làm cho nó có thể áp dụng cho nhiều lĩnh vực.

Trong hướng dẫn này, chúng tôi sẽ xem xét cách cài đặt devtools và sử dụng nó để cài đặt một gói R trực tiếp từ GitHub.

Điều kiện tiên quyết

Để làm theo hướng dẫn này, bạn sẽ cần một máy chủ Ubuntu 18.04 với:

  • ít nhất RAM 1 GB
  • một người dùng không phải root với sudo đặc quyền
  • R cài đặt, đạt được bằng cách làm theo bước 1 của hướng dẫn cài đặt R này

Khi các điều kiện tiên quyết này được đặt ra, bạn đã sẵn sàng bắt đầu.

Bước 1 - Cài đặt phụ thuộc hệ thống cho devtools

Chúng tôi sẽ cài đặt devtools từ trình vỏ tương tác, nhưng trước khi chúng tôi thực hiện, chúng tôi sẽ cần phải cài đặt các phụ thuộc hệ thống này:

sudo apt install build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev

Với những phụ thuộc này, chúng tôi sẵn sàng tiếp tục.

Bước 2 - Cài đặt gói devtools

Thông qua devtools, chúng tôi sẽ có thể cài đặt và xây dựng các gói trực tiếp từ GitHub, BitBucket, các tệp cục bộ và cài đặt các phiên bản cụ thể từ CRAN. Để làm cho các devtools có sẵn trên toàn hệ thống, chúng ta sẽ nhập vào trình bao của Rana như là root:

sudo -i R

Từ bên trong màn hình, chúng tôi sẽ sử dụng install.packages() chức năng cài đặt devtools từ chính thức Mạng lưu trữ toàn diện R (CRAN).

install.packages('devtools')

Quá trình cài đặt có thể mất một lúc. Khi nó kết thúc, gần cuối đầu ra cài đặt, chúng ta sẽ thấy:

Output...
** testing if installed package can be loaded
* DONE (devtools)

Tiếp theo, chúng tôi sẽ đưa nó vào thử nghiệm khi chúng tôi tìm nạp và tạo dự án trực tiếp từ GitHub.

Bước 3 - Cài đặt Gói R từ GitHub

Trong bước này, chúng tôi sẽ cài đặt bản phát triển mới nhất của Shiny, một khung ứng dụng web cho R, trực tiếp từ GitHub. Chúng tôi sẽ thực hiện việc này bằng cách sử dụng install_github chức năng được cung cấp bởi devtools. Gói GitHub được xác định bởi tác giả của nó (rstudio) và tên của nó (shiny) mà bạn có thể tìm thấy từ URL GitHub của trang dự án chính: https://github.com/rstudio/shiny.

Sử dụng lệnh sau để cài đặt:

devtools::install_github('rstudio/shiny')

Cài đặt đã hoàn tất thành công khi chúng ta thấy các dòng sau gần cuối đầu ra và được trả về dấu nhắc R:

Output. . .
** testing if installed package can be loaded
* DONE (shiny)
>

Chúng ta có thể thấy phiên bản cụ thể của Shiny mà chúng ta đã cài đặt với lệnh sau:

packageVersion("shiny")

Output[1] ‘1.1.0.9000’

Trong bước tiếp theo, chúng ta sẽ xem nhanh Shiny. Chúng tôi sẽ cần thực hiện một vài tác vụ cấp hệ thống trước tiên, vì vậy chúng tôi sẽ thoát khỏi màn hình bằng lệnh sau hoặc bằng cách sử dụng CTRL-D .:

q()

Một trong những điều này sẽ nhắc bạn lưu hình ảnh không gian làm việc của bạn, môi trường làm việc của RIA bao gồm các đối tượng do người dùng xác định. Điều này không cần thiết cho mục đích của chúng tôi, vì vậy bạn có thể nhập một cách an toàn n.

Vì chúng ta sẽ sử dụng trình duyệt web để xem ví dụ về những gì Shiny có thể làm, chúng tôi sẽ đảm bảo lưu lượng truy cập web được cho phép.

Kiểm tra tường lửa

Shiny là một khung ứng dụng web, do đó, để xem các ví dụ của nó trong một trình duyệt, chúng tôi sẽ cần phải đảm bảo rằng lưu lượng truy cập web được cho phép trên tường lửa của chúng tôi. Máy chủ web tích hợp chọn ngẫu nhiên một cổng mỗi khi nó được khởi động trừ khi chúng ta khởi tạo nó với một giá trị cụ thể. Để quản lý tường lửa dễ dàng hơn, chúng tôi sẽ chỉ định cổng 4040 khi chúng tôi chạy ví dụ của mình.

Hãy kiểm tra trạng thái của tường lửa, nếu chúng ta đã bật nó:

sudo ufw status

Nếu bạn làm theo hướng dẫn tiên quyết của chúng tôi, chỉ cho phép SSH, như được chỉ ra trong đầu ra sau:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Bạn có thể có các quy tắc khác tại chỗ hoặc không có quy tắc tường lửa nào cả. Vì chỉ lưu lượng truy cập SSH được cho phép trong trường hợp này, chúng tôi sẽ thêm cổng 4040 và kiểm tra trạng thái khi chúng tôi đã hoàn tất.

sudo ufw allow 4040/tcp

sudo ufw status

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
4040/tcp                   ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
4040/tcp (v6)              ALLOW       Anywhere (v6)

Với tường lửa được cấu hình, chúng tôi sẵn sàng xem xét Shiny.

Chạy sáng bóng:

Chúng tôi sẽ kết nối với R, lần này là người dùng thông thường. Hãy chắc chắn nhập R như trường hợp tiêu đề.

R

Tiếp theo, chúng tôi sẽ tải gói Shiny:

library("shiny")

Sáng bóng bao gồm mười một ví dụ được xây dựng trong đó chứng minh làm thế nào nó hoạt động. Chúng tôi sẽ tải thư viện, sau đó chạy ví dụ đầu tiên. Vì chúng tôi đang làm việc trên một máy chủ từ xa, chúng tôi sẽ chỉ định địa chỉ máy chủ để duyệt từ máy cục bộ của chúng tôi. Chúng tôi cũng sẽ đặt launch.browser đến FALSE do đó, nó không cố gắng khởi chạy trình duyệt trên máy chủ từ xa.

runExample("01_hello", host = "203.0.113.0", port = 4040, launch.browser= FALSE)

OutputListening on http://203.0.113.0:4040

Hãy truy cập URL này trong trình duyệt web:

Screenhot of Shiny's 01-Hello example

Chúng tôi đã cài đặt Shiny để minh họa bằng cách sử dụng devtools để cài đặt trực tiếp từ kho lưu trữ GitHub. Sau đó, chúng tôi chạy ứng dụng Ví dụ sáng bóng mà không có đặc quyền nâng cao để xác minh rằng tất cả người dùng đều có quyền truy cập vào gói.

Cài đặt lại phiên bản ổn định của Shiny

Đối với một tình huống sản xuất, chúng tôi sẽ cài đặt từ CRAN trừ khi chúng tôi có lý do thuyết phục để cài đặt từ kho lưu trữ.

Hãy dành một chút thời gian để quay trở lại gói ổn định. Trước tiên, chúng tôi sẽ ngắt máy chủ với CTRL + C, sau đó thoát khỏi trình bao R bằng CTRL + D và nhập lại dưới dạng root:

sudo -i R

Chúng ta có thể cài đặt phiên bản ổn định với lệnh sau, nó sẽ ghi đè cài đặt từ GitHub mà chúng ta đã hoàn thành trong bước trước.

install.packages("shiny")

Hãy xác minh thay đổi trong phiên bản:

packageVersion("shiny")

Output[1] ‘1.1.0’

Đầu ra chỉ ra rằng thay vì 1.1.0.9000, phiên bản chúng tôi đã cài đặt từ GitHub, chúng tôi hiện đang chạy bản phát hành ổn định.

Chú thích: Chúng tôi cũng có thể tìm hiểu thêm thông tin về phiên bản của gói từ dòng lệnh hệ thống từ tệp DESCRIPTION của gói.

cat /usr/local/lib/R/site-library/shiny/DESCRIPTION 

Phần kết luận

Trong hướng dẫn này, chúng tôi đã cài đặt gói Shiny mới nhất trực tiếp từ GitHub và tìm hiểu cách cài đặt lại bản phát hành ổn định của nó từ CRAN.

Nếu bạn muốn tìm hiểu thêm về Shiny, bạn có thể xem RStudio Hướng dẫn sáng bóng. Bạn cũng có thể quan tâm cài đặt RStudio Server nguồn mở, một giao diện cho một phiên bản R chạy trên một máy chủ Linux từ xa, mang một IDE đến triển khai dựa trên máy chủ.

0