Thank you. tools:::.install_packages works. It happens that one of the functions in my package is a utility to build packages. I guess I should change the install step.
Regards, Jorgen. #' Build package from source #' #' \code{roxygen2} & \code{devtools} have several steps to build a package, and #' \code{build.package} wraps them in one function. It can also clean up #' and protect the description file. #' #' @param package.dir the directory with the package files arranged as expected by #' \code{roxygen2} except as noted below #' @param clean whether to remove old \code{Rd} files before starting #' @param install whether to install the package after building it, which may make the latest #' version available in the current R session #' #' @note The description file should be in \code{DESC.source} rather than \code{DESCRIPTION}. #' \code{build.package} will then overwrite the machine-generated \code{DESCRIPTION} from the #' previous build with the true source. #' #' @return \code{invisible()} #' #' @export build.package <- function(package.dir,clean=TRUE,install=TRUE) { if (!require(roxygen2)) stop("Please install roxygen2 and its dependencies.") if (!require(devtools)) stop("Please install devtools and its dependencies.") if ( file.exists(file.path(package.dir,"DESC.source") -> DESC.source) ) file.copy(DESC.source, file.path(package.dir,"DESCRIPTION"), overwrite=TRUE) roxygenise(package.dir,clean=clean) tar <- devtools::build(package.dir) if (install) install.packages(tar,type='source',repos=NULL) invisible() } From: Ivan Krylov <ikry...@disroot.org> Date: Wednesday, March 20, 2024 at 14:12 To: Jorgen Harmse <jhar...@roku.com> Cc: Jorgen Harmse via R-help <r-help@r-project.org> Subject: [EXTERNAL] Re: [R] Building Packages. � Wed, 20 Mar 2024 17:00:34 +0000 Jorgen Harmse <jhar...@roku.com> �����: > Thank you, but I think I was already using utils. > > Regards, > Jorgen. > > > > environment(install.packages) > > <environment: namespace:utils> > > > utils::install.packages('/Users/jharmse/Library/CloudStorage/OneDrive-RokuInc/jhBase_1.0.1.tar.gz',type='source',repos=NULL) > > > > Error in library(jhBase) : there is no package called �jhBase� Sorry, then it has been my mistake to blame RStudio for this. We can try debugging this. If you start a fresh R process and run tools:::.install_packages(path_to_tarball), the installation will (try to) proceed in the current process instead of a child process. Once it fails, traceback() will be available to show you where the error condition has been raised. What does it say? Alternatively, 1. Check the package R files for stray library() calls. Generally, packages should not be calling library(). 2. Try a "binary search" approach. Make a copy of your package code but remove half of the files (or half of the functions if they live in a single file). Keep removing a half (or go to the other half) depending on whether the same error keeps happening. Good luck! -- Best regards, Ivan [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.