在 WSL 上安装 R devtools 包

Installing R devtools package on WSL

问题:

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

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

None 我试过的以下方法似乎有效:
* 我尝试使用 install.packages().
安装软件包 * 我试过从源代码安装到 /usr/local/lib/R/site-library.
* 我试过从源代码安装到个人图书馆。

错误信息:

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

问题:

如何在 WSL 上安装 devtools?

解决方案:

我能够通过重新开始来解决问题。我卸载了 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/")

权限错误:

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

Warning in install.packages("edgeR") :'lib = "/usr/local/lib/R/site-library"' is not writable Would you like to use a personal library instead? (y/n)

...您需要向用户提供对安装 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