簡體   English   中英

如何在離線的Debian機器上安裝一個R package?

[英]How can I install a R package on a offline Debian machine?

我有一個 Debian 虛擬機,它沒有連接到 inte.net。 然而,我仍然可以從具有 inte.net 連接的本地計算機上 scp 任何文件。 為了提供一點上下文,我嘗試在 VM 上托管一個 shiny 應用程序。

我仍然可以使用“apt-get”命令安裝舊版本的 R 3.1.1:

sudo apt-get update
sudo apt-get install r-base
sudo apt-get install r-base-dev

然而,在查看列表時仍然找不到“閃亮的”package:

sudo apt-cache search "^r-.*" | sort

所以,我在想我是否可以將“shiny.tar.gz”scp 到虛擬機並在本地安裝 package? 我怎么能離線安裝任何 R package?

我試過類似的東西:

install.packages('/home/mli/R/dir_pkg/shiny/shiny_0.13.2.tar.gz', repos = NULL, type = "source")

然而,它沒有通過 go 和錯誤消息如下:

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Error in type == "both" : 
comparison (1) is possible only for atomic and list types
Calls: install.packages
Execution halted

然后,我用另一個“R CMD”試了一下:

R CMD INSTALL /home/mli/R/dir_pkg/shiny/shiny_0.13.2.tar.gz

我收到錯誤消息,告訴我缺少依賴項:

* installing to library ‘/home/mli/R/x86_64-pc-linux-gnu-library/3.1’
ERROR: dependencies ‘httpuv’, ‘mime’, ‘jsonlite’, ‘xtable’, ‘digest’, ‘htmltools’, ‘R6’ are not available for package ‘shiny’
* removing ‘/home/mli/R/x86_64-pc-linux-gnu-library/3.1/shiny’

如何從源代碼成功安裝 shiny package? 我是否應該提前 go 來安裝所有依賴項和依賴項的依賴項?

Shiny有一些軟件包依賴項,“ R CMD INSTALL”將不會為您找到它們,因此您需要手動獲取它們。 根據Shiny的描述,它的依賴項為:'Rcpp','httpuv','mime','jsonlite','xtable','digest','htmltools','R6'。 因此,首先,請從cran獲取軟件包(以下是當前版本,但是它們會隨着時間的推移而變化。請注意,以下是針對連接到Internet的計算機的信息,在繼續之前,您需要將它們打包到脫機計算機中):

wget https://cran.r-project.org/src/contrib/Rcpp_0.12.4.tar.gz 
wget https://cran.r-project.org/src/contrib/httpuv_1.3.3.tar.gz 
wget https://cran.r-project.org/src/contrib/mime_0.4.tar.gz 
wget https://cran.r-project.org/src/contrib/jsonlite_0.9.19.tar.gz 
wget https://cran.r-project.org/src/contrib/digest_0.6.9.tar.gz 
wget https://cran.r-project.org/src/contrib/htmltools_0.3.5.tar.gz 
wget https://cran.r-project.org/src/contrib/R6_2.1.2.tar.gz 
wget https://cran.r-project.org/src/contrib/shiny_0.13.2.tar.gz

然后使用R CMD INSTALL按照相同的順序進行處理。 例如:

R CMD INSTALL Rcpp_0.12.4.tar.gz

一旦所有依賴項都存在,R CMD INSTALL應該讓您安裝Shiny。

要在Debian上安裝一些package-offline,可以使用apt-offline

apt-offline可以完全更新和升級基於APT的發行版,而無需連接到網絡,所有這些對APT都是透明的。

apt-offline可用於在計算機(無網絡)上生成簽名。 該簽名包含APT數據庫系統所需的所有下載信息。 該簽名文件可以在連接到互聯網的另一台計算機上使用(不必是Debian盒子,甚至可以運行Windows)以下載更新。 下載的數據將包含APT可以理解的格式的所有更新,並且apt-offline可以使用此數據來更新未聯網的計算機。

在離線os(Debian)上安裝apt-offline ,然后鍵入以下命令(以導入丟失的密鑰):

sudo apt-key exportall | sudo gpg --no-default-keyring --import --keyring /etc/apt/trusted.gpg

然后,您需要獲取your_package_name的簽名:

apt-offline set debian-install.sig --install-packages your_package_name

下一步,將debian-install.sig上載到在線系統並下載所需的文件。

apt-offline get debian-install.sig --bundle debian-install.zip 

將debian-install.zip文件上傳到離線系統,使用apt-offline實用程序進行安裝以更新APT數據庫。

sudo apt-offline install debian-install.zip 

安裝指定的包your_package_name

sudo apt-get install your_package_name

您可以使用Windows Machine Tuto下載軟件包

你在泡菜里 R包機制希望您進行連接以獲取依賴關系。 也就是說,您可以獲得一些幫助:

R> AP <- available.packages(contrib.url(options("repos")$repos[1]))
R> revs <- tools::package_dependencies("shiny", AP, recursive=TRUE)[[1]]
R> revs
 [1] "methods"   "utils"     "httpuv"    "mime"     
 [5] "jsonlite"  "xtable"    "digest"    "htmltools"
 [9] "R6"        "Rcpp"      "tools"     "stats"    
R> 

現在,您可以再次查看AP ,並將其輸入到download.packages()

另外,其中的幾個(全部?)都位於較新的 Debian發行版中,因此您可以在下載模式下使用apt-get (也許按照另一個問題的建議使用apt-offline )。

最后,我們確實提供了一個用於發光Docker容器,因此,如果您在VM上使用它,則不需要其他任何東西。

sudo apt-get更新

須藤apt-get install r-cran-digest


我不敢相信這是如此的容易。 我花了很長時間搜索,但得到的答案很差。 此命令可以解決所有問題。 我在trisquel上用過

在檢查了 stackoverflow 上的所有答案后,我無法准確找到如何在 Debian/linux 系統上安裝 r-base。 所以,我已經嘗試過自己並且能夠通過以下步驟運行:

Run below command on inte.net working Linux machine in a custom folder.

apt-get download r-base r-base-core r-recommended libmpfr6 libisl19 cpp cpp-8 cpp-4  gcc cpp-8 binutils-common libbinutils binutils-x86-64-linux-gn  gfortran linux-libc-dev g++ g++-8 libstdc make dpkg-dev perl-base perl-modules-5.28 libperl5.28 ibgdbm-compat4 zip  unzip  libpaper-utils xdg-utils libblas3 libblas.so.3 libcairo2 libcurl4 libgfortran5 libglib2.0-0 libice6 libicu63 libjpeg62-turbo liblapack3 liblapack.so.3 libpango-1.0-0 libpangocairo-1.0-0 libpng16-16 libsm6 libtcl8.6 libtiff5 libtk8.6 libx11-6 libxext6 libxss1 libxt6 ucf libfontconfig1 libfreetype6 libpixman-1-0 libxcb-render0 libxcb-shm0 libxcb1 libxrender1 libgssapi-krb5-2 libk5crypto3 libkrb5-3 libldap-2.4-2 libnghttp2-14 libpsl5 librtmp1 libssh2-1 libbsd0  x11-common fontconfig  libfribidi0 libthai0 libcairo2:amd64 libfontconfig1 libfreetype6 libpango-1.0-0:amd64 libpangoft2-1.0-0 fontconfig-config libkeyutils1 libkrb5support0 libkeyutils1 libkrb5support0 libkeyutils1 libkrb5support0 libsasl2-2 libldap-common fontconfig-config libharfbuzz0b libpaper1 libsasl2-modules-db libthai-data libdatrie1 libwebp6 libjbig0 libxft2 libx11-data libxau6 libxdmcp6 fonts-dejavu-core ttf-bitstream-vera fonts-liberation libgraphite2-3 lsb-base sensible-utils  r-cran-boot r-cran-cluster r-cran-foreign r-cran-kernsmooth r-cran-lattice r-cran-mgcv r-cran-nlme r-cran-rpart r-cran-survival r-cran-mass r-cran-class r-cran-nnet r-cran-spatial r-cran-codetools r-cran-matrix

This will create debian files inside the folder.

`Execute tar -zcf folder.tar.gz folder`

將此文件夾.tar.gz 復制到離線計算機中,進入文件夾后執行以下命令。

 dpkg -i *

現在通過鍵入檢查系統中的 R

R --version

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM