R installation of package ‘sodium’ had non-zero exit status 解決方法

問題描述

在 centOS6 作業系統中在安裝 R plumber,卻發生此問題那該怎麼辦呢?

solution

在我的 server 中,主要是缺乏 libsodium-devel 此套件,因此我們要去安裝此套件就能解決此問題。

以下是每一種 os 中如果要安裝 sodium 一定需要的套件

  • ubuntu 安裝 libsodium-dev
  • Fedora、EPEL 安裝 libsodium-devel
  • Solaris 安裝 libsodium_dev
  • OSX 安裝 libsodium

centOS 安裝 libsodium 出錯,內容為 error: ‘crypto_auth_hmacsha512_BYTES’ undeclared (first use in this function); did you mean ‘crypto_auth_hmacsha512256_BYTES’

根據前面,於是我開始安裝 libsodium,但卻發生此錯誤

先確認 libsodium 的版本,因為如果是早期 libsodium 的版本則有此漏洞,必須有新版本來改進此漏洞。

而在 R 語言中使用 libsodium 的版本必須是要 1.0.3 才不會遇到此漏洞,因此我們要更新 libsodium

安裝語法如下

1
2
3
yum install libsodium #安裝 libsodium 

yum update libsodium #如果之前有安裝,那麼更新就好

解決方法 - centOS6

可能是虛擬機服務商的 libsodium-level 最高版本就是 0.4.5,並不符合 R 的要求,因此我們必須要去有更新的 libsodium-level 的網站下載。

stackoverflow 建議的版本為 lux
此網頁很香,所有的套件都有

1
2
sudo rpm -Uvh http://repo.iotti.biz/CentOS/6/noarch/lux-release-6-3.noarch.rpm
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-LUX

再來我們去更改 repo 的位置
vim /etc/yum.repos.d/lux.repo 然後將內容修改為

1
2
3
4
5
6
[lux]
name=CentOS $releasever - $basearch - Lux
baseurl=http://repo.iotti.biz/CentOS/6
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LUX

再來我們重新安裝 sudo yum install libsodium-devel

之後我們 R 安裝 install.packages("sodium") 我就再也沒遇到問題。

參考連結

installation of package ‘sodium’ had non-zero exit status by Rstudio Community
Error installing on RHEL6 by github
sodium: A Modern and Easy-to-Use Crypto Library by cran-r

  • 版權聲明: 本部落格所有文章除有特別聲明外,均採用 Apache License 2.0 許可協議。轉載請註明出處!
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: