2014-04-19 11 views
37

Come di R 3.1.0 ottengo il seguente controllo R:NOTA in R CRAN: No set repository, in modo ciclico controllo delle dipendenze saltato

* checking package dependencies ... NOTE 
    No repository set, so cyclic dependency check skipped 

ho provato questo consiglio: https://twitter.com/phylorich/status/431911660698083328

No go . Inserisco la riga options(repos="http://cran.rstudio.com/") in un file .Rprofile nella directory root del pacchetto. Ottieni ancora la nota.

anche la sezione 1.3.1 della Writing R Extensions stati:

Some Windows users may need to set environment variable R_WIN_NO_JUNCTIONS 
to a non-empty value. The test of cyclic declarations33in DESCRIPTION 
files needs repositories (including CRAN) set: do this in ~/.Rprofile. 

È questo forse un risultato della set environment variable R_WIN_NO_JUNCTIONS? Se sì, come posso fare questo? Altre possibili cause della nota o correzioni suggerite?

+1

Si dice di avere un profilo .Rr nella directory radice del pacchetto - si sta impostando l'opzione di repository dal file .Rprofile nella propria directory home? È possibile controllare quale sia eseguendo 'Sys.getenv (" R_USER ")' – Dason

+2

@Dason Ho lanciato un profilo .Rr nella mia directory home con l'opzione 'options' a' repos'. Questo si sbarazza della NOTA. Puoi buttarlo giù come risposta? C'è un modo per impostare il 'repos' senza dover inserire un .Rprofile nella mia directory home, che è impostato qualcosa all'interno della directory del pacchetto che imposterà il' repos'? –

+3

Una variabile di ambiente per 'repos' sarebbe carina. – sgibb

risposta

20

From Writing R Extensions

La prova delle dichiarazioni ciclici nel file di descrizione ha bisogno di repository (compresi CRAN) set: farlo in ~/.Rprofile, per esempio

options(repos = c(CRAN="http://cran.r-project.org")) 

consigliato

utente dovrebbe ricontrollare se il suo profilo .Rprile è nella sua casa e che contiene l'opzione menzionata.

# in R session (any platform) 
# where is my profile? 
file.path(Sys.glob("~"),".Rprofile") 
# is it there? 
file.exists(file.path(Sys.glob("~"),".Rprofile")) 

O dalla sessione di R utilizzando il pacchetto aggiuntivo:

library(pathological) 
r_profile() 

utente dovrebbe poi controllare se la voce opzione non è annidato nella condizione se, come nel codice seguente:

# this will not help for R CMD check --as-cran 
if(interactive()) { 
options(repos = c(CRAN="http://cran.r-project.org")) 
} 

Corsa a secco per qualsiasi piattaforma

Ecco lo script R che prepara il caso temporaneo facile del pacchetto R per il test, aiutando a trovare più rapidamente ciò che sta andando storto nell'utilizzo locale. Questo approccio mi ha aiutato a individuare ciò che era sbagliato nel mio file .Rprofile e in generale può aiutare a impostare lo stato iniziale di lavoro. Nel migliore dei casi, l'esecuzione del controllo dovrebbe mostrare solo 1 NOTA sulla nuova presentazione.

  1. prima copia/incolla il codice e la fonte è nella sessione R (--vanilla preferibilmente)
  2. quindi eseguire il comando stampata dallo script per controllare banco di prova -come-cran.

Esempio

# for example 
R --vanilla -f makePackage.R 
# here the resulting package path is as below 
R --no-site-file CMD check --as-cran /tmp/pkgtest 
# now see the check log 

Se il .Rprofile non esiste verrà creato e una nuova linea di posto alla fine del file in ogni caso.

Lo script makePackage.R

# makePackage.R 
# makes simple package for playing with check --as-cran 

# copy this content to file makePackage.R 
# then source it into your R --vanilla session 

name <- "pkgtest" 

# 
# prepare and adjust package template 
# 

tempbase <- dirname(tempdir()) 
e <- new.env() 
path <- dirname(tempdir()) 

# make simple package in path 
e$fu <- function(){"Hello"} 
package.skeleton(name=name,force=T,path=path,environment=e) 
nil <- file.remove(
    file.path(path,name,'Read-and-delete-me'), 
    file.path(path,name,'man',paste0(name,'-package.Rd')) 
    ) 

# adjust DESCRIPTION 
D <- readLines(file.path(path,name,"DESCRIPTION")) 
D[grepl("^Title: ",D)] <- "Title: Testing Skeleton" 
D[grepl("^Author: ",D)] <- "Author: John Doe" 
D[grepl("^Description: ",D)] <- "Description: Checking --as-cran check." 
D[grepl("^Maintainer: ",D)] <- "Maintainer: John Doe <[email protected]>" 
D[grepl("^License: ",D)] <- "License: GPL (>= 2)" 
write(D,file.path(path,name,"DESCRIPTION")) 

# make fu.Rd 
write(
"\\name{fu}\\alias{fu}\\title{Prints}\\description{Prints} 
\\usage{fu()}\\examples{fu()}", 
file.path(path,name,'man','fu.Rd')) 

# 
# ensure that .Rprofile contains repos option 
# add fresh new line et the end of .Rprofile 
# 

userRp <- file.path(Sys.glob("~"),".Rprofile") 
write("options(repos = c(CRAN='http://cran.r-project.org'))",file=userRp, append=TRUE) 

# 
# print final message 
# 

msg <- sprintf(" 
Your test package was created in %s, 
under name %s, 
your user .Rprofile in %s was modified (option repos), 
now check this test package from command line by command: 

R --no-site-file CMD check --as-cran %s 
", path, name, userRp, file.path(path,name) 
) 

# now is time to check the skeleton 
message(msg) 

Controllare il pacchetto

# replace package-path by the path adviced by the sourcing the script above 
R --no-site-file CMD check --as-cran package-path 

C'è profilo utente e profilo del sito, l'approccio di cui sopra si aggira profilo del sito (in seconda fase) utilizzando l'opzione --no-site-file per l'opzione scheletro del pacchetto.

errori PDF

Si può sperimentare PDF e errori correlati lattice, causato molto probabilmente da mancante o non instalation lattice completa. Ycan usa l'opzione --no-manual per saltare i test PDF.

R --no-site-file CMD check --no-manual --as-cran /tmp/pkgtest 
+0

Questo ha funzionato anche su Mac OS X. Per avere solo 1 errore: (1) Rimuovere il punto nel titolo (2) Modificare la data nella data corrente. Nel mio caso ho dovuto installare MacTex, (probabilmente per un altro problema) che ho fatto da qui: https://tug.org/mactex/mactex-download.html – Picarus

6

La risposta sopra funziona solo per Linux. Su Windows ho dovuto usare un metodo diverso. Quando ho cercato di costruire e controllare il mio nuovo pacchetto nella R 3.2.0 su Windows 7, ho ottenuto lo stesso errore:

checking package dependencies ... NOTE 
No repository set, so cyclic dependency check skipped 

Ho cercato di creare un file .Rprofile nella directory principale del mio nuovo pacchetto, ma che didn' lavoro. Invece ho dovuto andare a:

C:\Program Files\R\R-3.2.0\etc 

e modificare il file:

Rprofile.site 

Nel file Rprofile.site ho aggiunto la linea suggerita:

options(repos = c(CRAN="http://cran.r-project.org")) 

Dopo aver modificato il Rprofile .site, la NOTA "Nessun set di repository, quindi il controllo della dipendenza ciclica saltato" è finalmente scomparso.

+0

Il mio commento dice "home directory", in questo caso che capita di sii la tua home directory.Solitamente si trova nella directory in cui verrà creato il pacchetto e verrà generato il tarball. –

+1

Ottengo "Accesso negato" quando provo ad adattare Rprofile.site – Ruben

Problemi correlati