2016-09-23 52 views
11

Rozwijam dwa pakiety na GitHub i próbuję je zainstalować za pomocą polecenia devtools::install_github().Problemy z instalowaniem pakietu r przez devtools install_github

Ponieważ repozytoria są prywatne, stworzyłem auth_token na moim koncie (o ile widzę, nie ma sposobu, aby to zrobić za pomocą pojedynczego repo?)

devtools::install_github("mariodejung/rMQanalysis", 
         auth_token="6cd2dbe8bd1f062842b90afXXXXXXXXXXXXXXXXX", 
         ref="develop", 
         dependencies=TRUE) 
devtools::install_github("mariodejung/cfpscripts", 
         auth_token="6cd2dbe8bd1f062842b90afXXXXXXXXXXXXXXXXX", 
         ref="develop") 

Instalacja pierwszego pakietu działa zgodnie z oczekiwaniami, drugi zaczyna się instalować, ale zatrzymuje się z błędem iz jakiegokolwiek powodu wspomniał o pierwszym już zainstalowanym pakiecie. Zobacz błąd w komentarzu na końcu. Nie wiem, dlaczego tak się dzieje i jak go rozwiązać.

Ponownie dodałem poniższy komunikat o błędzie, ponieważ zmieniłem już pewne rzeczy.

Przepraszamy za zmianę auth_token, ale skrypt powinien pozostać na razie prywatny.

Sprawdziłem również, aby zainstalować oba pakiety za pomocą tylko jednego polecenia, ale prowadzi to do tego samego komunikatu o błędzie. Dodałem także zmienną GITHUB_PAT w moim środowisku, zgodnie z sugestiami z komentarzy, aby nie używać publicznie tokena autoryzacji.

devtools::install_github(c("mariodejung/rMQanalysis","mariodejung/cfpscripts"), 
         ref="develop", 
         dependencies=TRUE) 

Polecenie to teraz instaluje pakiet rMQanalysis pomyślnie i nie z tego samego komunikatu o błędzie podczas instalowania cfpscripts. Wciąż nie wiadomo, jak rozwiązać problem. Działa na innych maszynach. Również wszystkie zależności są zainstalowane.

devtools::install_github(c("mariodejung/rMQanalysis","mariodejung/cfpscripts"), ref='develop', quiet=FALSE) 
Using GitHub PAT from envvar GITHUB_PAT 
Downloading GitHub repo mariodejung/[email protected] 
from URL https://api.github.com/repos/mariodejung/rMQanalysis/zipball/develop 
Installing rMQanalysis 
"C:/PROGRA~1/R/R-32~1.5/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL \ 
    "C:/Users/cfproteomics/AppData/Local/Temp/RtmpktvmUK/devtools43850da641a/mariodejung-rMQanalysis-0e38dd3463ea830b19f0afa2ade6f2e14db93041" \ 
    --library="C:/Users/cfproteomics/Documents/R/win-library/3.2" --install-tests 

* installing *source* package 'rMQanalysis' ... 
** R 
** data 
*** moving datasets to lazyload DB 
** inst 
** tests 
** preparing package for lazy loading 
** help 
No man pages found in package 'rMQanalysis' 
*** installing help indices 
** building package indices 
** installing vignettes 
** testing if installed package can be loaded 
*** arch - i386 
*** arch - x64 
* DONE (rMQanalysis) 
Downloading GitHub repo mariodejung/[email protected] 
from URL https://api.github.com/repos/mariodejung/cfpscripts/zipball/develop 
Installing cfpscripts 
Downloading GitHub repo mariodejung/[email protected] 
from URL https://api.github.com/repos/mariodejung/rMQanalysis/zipball/develop 
Error in stop(github_error(request)) : Not Found (404) 

użyłem również funkcję traceback() ale nie daje więcej spostrzeżeniami ...

15: stop(github_error(request)) 
14: download_github(dest, src, auth) 
13: remote_download.github_remote(remote, quiet = quiet) 
12: remote_download(remote, quiet = quiet) 
11: FUN(X[[i]], ...) 
10: vapply(remotes, install_remote, ..., FUN.VALUE = logical(1)) 
9: install_remotes(object$remote[behind], ..., quiet = quiet) 
8: update.package_deps(pkg, ..., Ncpus = threads, quiet = quiet, 
     upgrade = upgrade) 
7: update(pkg, ..., Ncpus = threads, quiet = quiet, upgrade = upgrade) 
6: install_deps(pkg, dependencies = initial_deps, upgrade = upgrade_dependencies, 
     threads = threads, force_deps = force_deps, quiet = quiet, 
     ...) 
5: install(source, ..., quiet = quiet, metadata = metadata) 
4: FUN(X[[i]], ...) 
3: vapply(remotes, install_remote, ..., FUN.VALUE = logical(1)) 
2: install_remotes(remotes, quiet = quiet, ...) 
1: devtools::install_github(c("mariodejung/rMQanalysis", "mariodejung/cfpscripts"), 
     ref = "develop", quiet = FALSE) 

Update2

Cały problem wydaje się być błąd w devtools 1.12.0. Działa dobrze w 1.11.1.
Wyliczyłem, że mój pakiet rMQanalysis jest wymieniony w cfpscripts jako Imports:. Jeśli usuniemy tę instrukcję Imports: z Description, pakiet zostanie poprawnie zainstalowany.
Nadal się zastanawiam, dlaczego nie mogę ustawić dependencies=FALSE, aby uniemożliwić install_github instalowanie zależnych pakietów.

Wypełniłem już zgłoszenie błędu na temat devtools, ale bez reakcji.

+4

Naprawdę powinieneś przechowywać swój token GitHub Auth w 'GITHUB_PAT' w' ~/.Renviron' (będziesz musiał zrestartować R, aby załadował dane do '.Renviron' do twojego środowiska).Pozwoli to zaoszczędzić mnóstwo pisania/czasu w przyszłości, pomoże zapobiec ekspozycji i może pomóc rozwiązać ten problem. – hrbrmstr

+0

Dzięki za podpowiedź z 'GITHUB_PAT', nie wiedziałem tego. Ale to nie rozwiązuje problemu. Nadal pojawia się ten sam błąd, ale z komentarzem "Używanie GitHub PAT z envvar GITHUB_PAT". – drmariod

+0

@ drmariod Zastanawiam się, czy jest to związane z "testowaniem, czy zainstalowany pakiet może zostać załadowany". Czy możesz uruchomić pierwszy skrypt instalacyjny, a następnie uruchomić ponownie sesję, uruchomić drugą instalację? Moja hipoteza jest taka, że ​​pierwszy pakiet został załadowany, ale nie rozładowany w sposób czysty, co sprawia, że ​​druga instalacja pakietu kończy się niepowodzeniem. – dracodoc

Odpowiedz

1

Czy próbowałeś pobrać lub sklonować repozytorium [od momentu zapłaty] i zainstalować z źródła?

install.packages("/Path/to/source", repos=NULL, type="source") 
0

Istnieją pewne błędy związane z instalacją z prywatnym repozytorium GitHub w najnowszej wersji devtools. Podniosłem issue i zrobiłem PR. Możesz znaleźć przyczyny tego problemu.

+0

Hm, twój raport wygląda o wiele ładniej niż mój, może twój zwrócił uwagę :-) Zredagowałem do wersji 'devtools 1.11.1' i działa od tego czasu ... Czekam na nowe wydanie' devtools' – drmariod