R - devtools - Build - ZIP failure? - r

I have been trying to build a package in R using the package devtools and the build function but it keeps failing on the zip element despite having the zip package installed?
* installing to library
'C:/Users/OMICRON/AppData/Local/Temp/Rtmpc30Top/temp_libpath133c19a632ea'
* installing *source* package 'simTools' ...
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
converting help for package 'simTools'
finding HTML links ... done
sampleFromData html
** building package indices
** testing if installed package can be loaded
*** arch - i386
*** arch - x64
* MD5 sums
Warning in system(paste(shQuote(ZIP), "-r9Xq", filepath, paste(curPkg,
collapse = " "))) :
'"zip"' not found
running 'zip' failed
* DONE (simTools)
In R CMD INSTALL
[1] "D:/R/simTools_0.0.0.9000.zip"

My guess is that zip is referring to the Linux zip command and not the zip package.
Do you have R-tools installed? That includes a number of Linux commands and is necessary for building packages on Windows. It also needs to be included to your PATH (System Properties -> Environment Variables). You can check if it is properly set up using devtools::find_rtools().

Related

How do I get around the error in R package building

I built a R package using the build command shown below but now I can't build another with it. Please inform me on what is causing the error. The code is as follows:
C:\Users\abu\Documents> R CMD build analysiscb
The system cannot find the path specified.
checking for file 'analysiscb/DESCRIPTION' ... OK
preparing 'analysiscb':
checking DESCRIPTION meta-information ... OK
installing the package to process help pages
-----------------------------------
The system cannot find the path specified.
installing source package 'analysiscb' ...
** using staged installation
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
converting help for package 'analysiscb'
finding HTML links ... done
analysiscb-package html
bcr.decide html
npv.eval html
rbcr html
** building package indices
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
DONE (analysiscb)
-----------------------------------
ERROR: package installation failed
C:\Users\abu\Documents>
Somehow I renamed the functions, rerun the package skeleton and accessed the cmd as the administrator. Touché! It was successful.

Can't install package 'Liszt' (not in CRAN) in R 3.6.3

I want to install a package that is not found in CRAN.
Below is a downloadlink to the package.
The package makes use of JAGS, of which i have the 64 bit 4.3.0 version of.
rjags and r2jags packages are installed. Rtools is connected to the pathway. I checked this using
Sys.which("make")
## "C:\\rtools40\\usr\\bin\\make.exe"
Connection to path was done with devtools from this Stacklink:
How to add Rtools\bin to the system path in R
I use the following code to install the downloaded .tar.gz package:
install.packages("C:/Program Files/R/R-3.6.3/Liszt_0.8-5_1.tar.gz", repos=NULL,
type="source")
The package won't installl, instead i get the following error:
* installing *source* package 'Liszt' ...
** using staged installation
** R
** data
*** moving datasets to lazyload DB
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
converting help for package 'Liszt'
finding HTML links ... done
A3ModelFun html
A5ModelFun html
Caterpillar html
LL html
Liszt-package html
extract html
** building package indices
** testing if installed package can be loaded from temporary location
*** arch - i386
Error: package or namespace load failed for 'rjags':
.onLoad failed in loadNamespace() for 'rjags', details:
call: fun(libname, pkgname)
error: Failed to locate any version of JAGS version 4
The rjags package is just an interface to the JAGS library
Make sure you have installed JAGS-4.x.y.exe (for any x >=0, y>=0) from
http://www.sourceforge.net/projects/mcmc-jags/files
Error : package 'rjags' could not be loaded
Error: loading failed
Execution halted
*** arch - x64
ERROR: loading failed for 'i386'
* removing 'C:/Users/Sneve/Documents/R/win-library/3.6/Liszt'
Warning in install.packages :
installation of package ‘C:/PROGRA~1/R/R-36~1.3/Liszt_0.8-5_1.tar.gz’ had non-zero exit status
I am trying for a while no, but no success. Any help is much appreciated.
Website providing the package:
http://www.possinghamlab.org/2016-05-30-04-33-10/list-length-analysis.html
package is available here:
http://www.possinghamlab.org/images/LLA/Liszt_0.8-5_1.tar.gz
I installed the 64 Bit version of JAGS. Appearently, the package needs both the 32 and the 64 bit version installed on the PC to be able to work. After i installed also the 32 bit version of JAGS, package installed with no problem.

R package not compatible with 3.5.3

I am attempting to install a package that was made on my computer, but I am having issues. Installing seemed to work fine, but I got a warning:
Warning in install.packages :
package ‘abcmlr’ is not available (for R version 3.5.3)
This naturally throws the error when calling library
Error in library(abcmlr) : 'abcmlr' Not a valid package that has already been installed
Using .libPaths() returns "C:/Users/amlut/Documents/R/win-library/3.5" "C:/Program Files/R/R-3.5.3/library". So I presume this is why library() is giving me an error.
Why does installing my package not work for version 3.5.3 (Does this question require additional information about my package)? Is it possible to make my package work for 3.5.3? What steps would be required to achieve this?
Thank you.
Edit: this is a package I made, and I am using devtools::install
DESCRIPTION:
Package: abcmlr
Type: Package
Title: Analysis of Bone Counts by Maximum Likelihood
Version: 0.1.0
Author:
Maintainer:
Description: See Rogers ABCML for details
License:
Encoding: UTF-8
LazyData: true
NeedsCompilation: no
Packaged: 2019-06-14 21:17:42 UTC; amlut
Built: R 3.5.3; ; 2019-06-14 21:17:43 UTC; windows
Output from devtools::install:
devtools::install("C:/Users/amlut/Documents/R/win-library/3.5/abcmlr")
WARNING: Rtools is required to build R packages, but the version of Rtools previously installed in C:/Rtools has been deleted.
Please download and install Rtools 3.5 from http://cran.r-project.org/bin/windows/Rtools/.
√ checking for file 'C:\Users\amlut\Documents\R\win-library\3.5\abcmlr/DESCRIPTION' ...
- preparing 'abcmlr':
√ checking DESCRIPTION meta-information ...
- checking for LF line-endings in source and make files and shell scripts
- checking for empty or unneeded directories
Removed empty directory 'abcmlr/man'
- building 'abcmlr_0.1.0.tar.gz'
Running "C:/PROGRA~1/R/R-35~1.3/bin/x64/Rcmd.exe" INSTALL "C:\Users\amlut\AppData\Local\Temp\RtmpGySaDj/abcmlr_0.1.0.tar.gz" --install-tests
* installing to library 'C:/Users/amlut/Documents/R/win-library/3.5'
* installing *source* package 'abcmlr' ...
** R
** byte-compile and prepare package for lazy loading
No man pages found in package ** help
'abcmlr'
*** installing help indices
** building package indices
** testing if installed package can be loaded
*** arch - i386
*** arch - x64
* DONE (abcmlr)
In R CMD INSTALL
library(abcmlr)

R-package missing functions, but has documentation

My problem is when i build a package using devtools, or R CMD INSTALL -build the package builds, but when I install the resulting .zip (when I've tried binary builds) or .tar.gz
the functions in the package don't show up. I can SEE the functions in the .tar.gz when I unzip and the files are sufficiently large so as not to empty. ANY help appreciated.
what I'm using: Rstudio, R v 3.1.0
>install.packages("E:/R/Rpackage_meadq/meadq_1.0.4.tar.gz", repos = NULL, type = "source")
'\\AA.AD.EPA.GOV\ORD\RTP\USERS\A-D\dhall05\Net MyDocuments'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
* installing *source* package 'meadq' ...
** R
** data
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
*** arch - i386
*** arch - x64
* DONE (meadq)
>installed.packages()
...
meadq "3.1.0"
> library('meadq')
>ls('package:meadq')
character(0)
## to take an example function within package
> create_ont_csv()
Error: could not find function "create_ont_csv"
>?create_ont_csv
this pulls up the function documentation for create_ont_csv that's in the package
when I look at the "meadq_1.0.4.tar.gz" using winzip, I can see all the functions.
I've tried building in binary and the same thing happens where the functions are missing, but the documentation is there.
I've tried re-building a lot with this code and also R CMD INSTALL -build ... :
> library('devtools')
Attaching package: ‘devtools’
The following objects are masked from ‘package:utils’:
?, help
The following object is masked from ‘package:base’:
system.file
> build("E:/R/Rpackage_meadq/meadq")
"C:/PROGRA~1/R/R-31~1.0/bin/x64/R" --vanilla CMD build "E:\R\Rpackage_meadq\meadq" \
--no-manual --no-resave-data
* checking for file 'E:\R\Rpackage_meadq\meadq/DESCRIPTION' ... OK
* preparing 'meadq':
* checking DESCRIPTION meta-information ... OK
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
* looking to see if a 'data/datalist' file should be added
* building 'meadq_1.0.4.tar.gz'
[1] "E:/R/Rpackage_meadq/meadq_1.0.4.tar.gz"

ERROR: a 'NAMESPACE' file is required

I am trying to install some R packages on a Linux machine using
R CMD INSTALL -l <ourRlibrarylocation> <path where I saved the packagename.tar.gz file>
and I see an error message:
ERROR: a 'NAMESPACE' file is required
I am using R 3.0.1. Please help, I am new to R and just downloaded these packages for customers.
One example:
R CMD INSTALL -l /abcde/R/R-3.0.0/library /home/RFILES/PKG/UScensus2000tract_0.03.tar.gz
* installing *source* package âUScensus2000tractâ ...
ERROR: a 'NAMESPACE' file is required
* removing â/abcde/R/R-3.0.0/library/UScensus2000tractâ
According to the R documentation for writing extensions, all packages destined for version 3.0.0 and later must contain a NAMESPACE file. If you download an R package that gives you the above error, here's what you should try:
Untar the package:
tar -xvf the_package.tar.gz
Add a NAMESPACE file with the line exportPattern( "." ):
cd the_package
echo 'exportPattern( "." )' > NAMESPACE
cd ..
Re-tar the package:
tar -zcf the_package.tar.gz the_package
Try and install it again.
Hope that helps.
I actually just hit the same thing when compiling R-3.0.1. It looks to be that the package version that I was using was out of date. This was for proto:
# /var/local/R-3.0.1/bin/R CMD INSTALL -l /var/local/R-3.0.1/lib64/R/library proto_0.3-9.2.tar.gz
* installing *source* package ‘proto’ ...
ERROR: a 'NAMESPACE' file is required
* removing ‘/var/local/R-3.0.1/lib64/R/library/proto’
But there was a newer version for proto (0.3-10) which worked fine:
# ../var/local/R-3.0.1/bin/R CMD INSTALL -l ../var/local/R-3.0.1/lib64/R/library proto_0.3-10.tar.gz
* installing *source* package ‘proto’ ...
** package ‘proto’ successfully unpacked and MD5 sums checked
** R
** demo
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
‘proto.Rnw’
‘protoref.Rnw’
** testing if installed package can be loaded
* DONE (proto)
I had an older install of R (2.15), which the older proto package worked with:
# /var/local/R-2.15.0/bin/R CMD INSTALL -l /var/local/R-2.15.0/lib64/R/library proto_0.3-9.2.tar.gz
* installing *source* package 'proto' ...
** Creating default NAMESPACE file
** R
** demo
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
'proto.Rnw'
'protoref.Rnw'
** testing if installed package can be loaded
It looks like the older version of R actually creates the missing NAMESPACE file, but the new version bails. Hope this helps you!
I found the following link more useful:
How should I deal with "package 'xxx' is not available (for R version x.y.z)" warning?
6. The package is out of date
It may have been archived (if it is no longer maintained and no longer passes R CMD check tests).
In this case, you can load an old version of the package using install_version()
library(devtools)
install_version("foobarbaz", "0.1.2")
An alternative is to install from the github CRAN mirror.
library(devtools)
install_github("cran/foobarbaz")
One can now use remotes::install_url() or remotes::install_local().
It installs dependencies and generates the NAMESPACE file automatically.

Resources