【问题标题】:Installing R devtools package on WSL在 WSL 上安装 R devtools 包
【发布时间】:2019-07-16 16:46:24
【问题描述】:

问题:

我正在尝试为 R 安装 devtools 软件包。我在 WSL(Linux 的 Windows 子系统)上使用 Ubuntu 18.04 LTS。

我可以通过在 WSL 上的 R 中简单地调用 install.packages() 来安装一些软件包。但是,其他包似乎给我带来了麻烦。

我尝试过的以下方法似乎都不起作用:
* 我尝试使用install.packages() 安装软件包。
* 我尝试从源代码安装到/usr/local/lib/R/site-library
* 我尝试从源代码安装到个人库中。

错误信息:

我收到了与here 讨论的类似的错误消息,但我无法通过编辑unpackPkgZip 来解决问题,因为它不存在。

问题:

如何在 WSL 上安装 devtools?

【问题讨论】:

  • 所以你是说这行不通? digitalocean.com/community/tutorials/…如果不是,请提供R终端吐出的错误信息。
  • 谢谢!我应该包含一条错误消息。我打赌这行得通,但我发布了对我有用的解决方案。

标签: r linux bash windows-subsystem-for-linux


【解决方案1】:

解决方案:

我能够通过重新开始来解决问题。我卸载了 Ubuntu,然后重新安装了它。全新安装 Ubuntu 18.04 我遵循了这些instructions。还有其他在线教程可能工作得很好,但我遵循了这个。如果你愿意,你可以忽略关于安装 rstudio 服务器和 fsl 包的部分。

# Install R on WSL
sudo apt-get update -qq -y
sudo apt-get install -y wget git
OS_DISTRIBUTION=$(lsb_release -cs)
wget -O- http://neuro.debian.net/lists/${OS_DISTRIBUTION}.us-nh.full | sudo tee /etc/apt/sources.list.d/neurodebian.sources.list
sudo apt-key adv --recv-keys --keyserver hkp://pool.sks-keyservers.net:80 0xA5D32F012649A5A9
sudo apt-get update

sudo apt-get install libopenblas-base r-base
sudo apt-get update -qq -y
sudo apt-get install -y libgit2-dev 
sudo apt-get install -y libcurl4-openssl-dev libssl-dev
sudo apt-get install -y zlib1g-dev libssh2-1-dev libpq-dev libxml2-dev 
#sudo apt-get install -y libhdf5 # This didn't work.

现在尝试在 R 中安装 devtools。

# Install devtools
install.packages("devtools", repos = "https://cran.rstudio.com/")

权限错误:

如果遇到如下的权限错误...

install.packages("edgeR") 中的警告:'lib = "/usr/local/lib/R/site-library"' is not writable 您想改用个人库吗? (是/否)

...您需要为用户提供对安装 R 包的目录的写入权限(请参阅here)。尝试更改此目录的组所有权:

# Who has ownership of /usr/local/lib/R/site-library/?
ls -l /usr/local/lib/R/
# drwxrwsr-x 1 root staff 512 Jul 18 21:38 site-library

# Change ownership.
sudo chgrp twesleyb /usr/local/lib/R/site-library/
ls -l /usr/local/lib/R/
#drwxrwxr-x 1 root twesleyb 512 Jul 18 21:38 site-library

# In this case I have write access, but in case you need to add it, try:
# $ sudo chmod g+w /usr/local/lib/R/site-library

你现在应该可以install.packages("package")了。

我是 linux 新手,但我认为这是一件好事。

更新:

您也可以尝试关注duckmayr的instructions

【讨论】:

  • 不,不要通过sudo 开始R。将默认包目录(可能是/usr/local/lib/R/site-library)设为可由您或您的组写入,将您自己添加到组staff。之前已经讨论过了。
  • Hey Dirk,如果我不使用 sudo 启动 R,然后尝试安装一个包,我会收到如下错误:install.packages("edgeR") 中的警告:'lib = " /usr/local/lib/R/site-library"' 不可写您想改用个人库吗? (是/否)。因此,正如您所建议的,我需要将自己添加到拥有 /usr/local/lib/R/site-library 的组中。但是,当我做sudo useradd -G staff twesleyb 时,我已经在群组中了!你能指出我之前讨论过的地方吗?
  • 是的。我写了“使您或您的团队可以写入默认包目录 [...]”。显然你没有。您可能需要chmodchgrp 的组合——这是设置权限和模式的标准Unix 票价。但如果你从来没有做过......
  • 有时需要登录和注销。检查id 命令的内容。和/或检查目录是否可由您所属的组组写入。此外,虽然我不使用 Windows 或 WSL,但我最近在这里读到存在问题并且 WSL2 更好。祝你好运!
  • 谢谢德克。我想我已经弄明白了=)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 2020-01-08
  • 2013-12-12
  • 2015-09-26
  • 1970-01-01
  • 2019-08-08
  • 2014-12-14
相关资源
最近更新 更多