2014-04-19 13 views
37

आर 3.1.0 के रूप में मैं निम्नलिखित आर जांच हो: https://twitter.com/phylorich/status/431911660698083328नोट की जाँच करें: नहीं भंडार सेट है, तो चक्रीय निर्भरता की जांच को छोड़ दिया

नहीं जाने:

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

मैं इस सलाह की कोशिश की । मैंने पैकेज options(repos="http://cran.rstudio.com/") को पैकेज रूट निर्देशिका में .prprofile में रखा है। अभी भी नोट प्राप्त करें।

इसके अलावा Writing R Extensions राज्यों की धारा 1.3.1:

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. 

यह संभवतः set environment variable R_WIN_NO_JUNCTIONS का एक परिणाम है? यदि ऐसा है तो मैं ऐसा करने के बारे में कैसे जा सकता हूं? नोट या सुझाए गए फिक्स के किसी अन्य संभावित कारण?

+1

आप कहते हैं कि आपके पास पैकेज की मूल निर्देशिका में एक प्रोमोफाइल है - क्या आप अपनी होम निर्देशिका में आरप्रोफाइल से रिपो विकल्प चुन रहे हैं? आप यह जांच सकते हैं कि 'Sys.getenv ("R_USER")' – Dason

+2

@Dason I को चलाकर कौन सा है। 'होम' निर्देशिका में 'विकल्प' सेटिंग के साथ एक 'repos' सेट किया गया है। यह नोट से छुटकारा पाता है। क्या आप इसे उत्तर के रूप में फेंक सकते हैं? क्या 'रिपोज़' w/o को सेट करने का कोई तरीका है। मेरे घर डीआईआर में प्रोफाइलाइल, जो कि पैकेज निर्देशिका में कुछ सेट है जो 'repos' सेट करेगा? –

+3

'repos' के लिए एक पर्यावरण चर अच्छा होगा। – sgibb

उत्तर

20

From Writing R Extensions

वर्णन फ़ाइलों में चक्रीय घोषणाओं के परीक्षण की जरूरत खजाने (सहित क्रैन) सेट: ~/.Rprofile में ऐसा करते हैं, उदाहरण के लिए

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

अनुशंसित द्वारा

उपयोगकर्ता दोबारा जांच करनी चाहिए कि क्या उसका रिफॉफाइल अपने घर में है और इसमें उल्लिखित विकल्प है।

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

या आर सत्र से अतिरिक्त पैकेज का उपयोग:

library(pathological) 
r_profile() 

उपयोगकर्ता दोबारा जांच करता है, तो विकल्प प्रविष्टि निम्न कोड में की तरह अगर हालत में नेस्ट नहीं है, करना चाहिए:

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

किसी प्लेटफ़ॉर्म के लिए सूखी दौड़

यहां आर स्क्रिप्ट परीक्षण के लिए आर पैकेज के आसान अस्थायी मामले की तैयारी कर रहा है, जो आपके स्थानीय उपयोग में क्या गलत हो रहा है, तेज़ी से ढूंढने में मदद करता है। इस अपहरण ने मुझे यह जानने में मदद की कि मेरी क्या समस्या है। प्रोफोफाइल फ़ाइल और आम तौर पर प्रारंभिक स्थिति को स्थापित करने में मदद कर सकती है। सर्वोत्तम मामले में, चेक रन को नए सबमिशन के बारे में केवल 1 नोट दिखाना चाहिए।

  1. पहले कॉपी/कोड और अपने अनुसंधान सत्र में यह स्रोत पेस्ट (--vanilla अधिमानतः)
  2. तो परीक्षण का मामला जांच करने के लिए आदेश स्क्रिप्ट के द्वारा मुद्रित चलाने --as-Cran।

उदाहरण

# 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 

अपने .Rprofile यह मौजूद नहीं है, तो बनाया जाएगा और एक नई लाइन किसी भी मामले में फ़ाइल के अंत में रखा।

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) 

पैकेज

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

उपयोगकर्ता प्रोफ़ाइल और साइट प्रोफ़ाइल, आप ऊपर दृष्टिकोण में नहीं है साइट प्रोफ़ाइल (दूसरे चरण में नजरअंदाज जाँच हो रही है) पैकेज कंकाल विकल्प के लिए --no-site-file विकल्प का उपयोग कर।

पीडीएफ त्रुटियों

आप पीडीएफ और लेटेक्स से संबंधित त्रुटियों का अनुभव कर सकते, लापता या नहीं पूरा लेटेक्स instalation के द्वारा बहुत संभावना का कारण बना। पीडीएफ परीक्षणों को छोड़ने के लिए Ycan --no-manual विकल्प का उपयोग करें।

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

यह मैक ओएस एक्स पर भी काम करता है। केवल 1 त्रुटि होने के लिए: (1) शीर्षक में डॉट निकालें (2) तिथि को अपनी वर्तमान तिथि में बदलें। मेरा मामला मुझे मैकटेक्स को स्थापित करना था, (शायद किसी अन्य मुद्दे के लिए) जो मैंने यहां से किया था: https://tug.org/mactex/mactex-download.html – Picarus

6

ऊपर दिए गए उत्तर केवल लिनक्स के लिए काम करता है। विंडोज़ पर मुझे एक अलग विधि का उपयोग करना पड़ा।

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

मैं अपने नए पैकेज के रूट निर्देशिका में एक फ़ाइल .Rprofile बनाने की कोशिश की, लेकिन वह didn ': जब मैं निर्माण और विंडोज 7 पर आर 3.2.0 में अपने नए पैकेज की जाँच करने की कोशिश की, मैं एक ही त्रुटि मिली टी काम नहीं

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

और फ़ाइल को संपादित: बाद मैं Rprofile संपादित

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

:

Rprofile.site 

Rprofile.site फ़ाइल मैं सुझाव लाइन जोड़ा में इसके बजाय मैं जाना पड़ा .site फ़ाइल, नोट "कोई भंडार सेट नहीं है, इसलिए चक्रीय निर्भरता जांच छोड़ दी गई" अंततः गायब हो गई।

+0

मेरी टिप्पणी "होम निर्देशिका" कहती है, इस मामले में अपनी होम निर्देशिका बनें।यह आमतौर पर निर्देशिका में है जहां आपका पैकेज बनाया जाएगा और टैरबॉल आउटपुट होगा। –

+1

Rprofile.site को अनुकूलित करने का प्रयास करते समय मुझे "एक्सेस अस्वीकृत" मिलता है – Ruben

संबंधित मुद्दे