Jak mam postępować z ostrzeżeniem „pakiet 'xxx” nie jest dostępny (dla wersji R xyz)?


560

9
Zauważ, że podczas korzystania z RStudio to ostrzeżenie pojawia się również przy instalacji z innego repozytorium niż CRAN. To błąd, który zgłosiłem już kilka razy, ale nie wiem, czy już został posortowany.
Joris Meys,

Odpowiedzi:


562

1. Nie możesz przeliterować

Pierwszą rzeczą do przetestowania jest to, czy poprawnie przeliterowałeś nazwę paczki? W nazwach pakietów rozróżniana jest wielkość liter w R.


2. Nie szukałeś w odpowiednim repozytorium

Następnie sprawdź, czy pakiet jest dostępny. Rodzaj

setRepositories()

Zobacz także ? SetRepositories .

Aby zobaczyć, które repozytoria R będą szukać twojego pakietu, i opcjonalnie wybierz kilka dodatkowych. Przynajmniej zazwyczaj będziesz chciał CRANzostać wybrany, a CRAN (extras)jeśli korzystasz z systemu Windows i Bioc*repozytoriów, jeśli je masz[gen / prote / metabol / transkrypt] omiki analizy biologiczne.

Aby trwale to zmienić, dodaj wiersz podobny setRepositories(ind = c(1:6, 8))do swojego Rprofile.sitepliku.


3. Pakiet nie znajduje się w wybranych repozytoriach

Zwróć wszystkie dostępne pakiety za pomocą

ap <- available.packages()

Zobacz także nazwy dostępnych pakietów grupę R , ? Available.packages .

Ponieważ jest to duża matryca, możesz użyć przeglądarki danych do jej zbadania. Możesz też szybko sprawdzić, czy pakiet jest dostępny, testując nazwy wierszy.

View(ap)
"foobarbaz" %in% rownames(ap)

Alternatywnie listę dostępnych pakietów można zobaczyć w przeglądarce CRAN , CRAN (dodatki) , Bioconductor , R-forge , RForge i github .

Innym możliwym komunikatem ostrzegawczym, który może pojawić się podczas interakcji z serwerami lustrzanymi CRAN, jest:

Warning: unable to access index for repository

Co może wskazywać, że wybrane repozytorium CRAN jest obecnie niedostępne. Możesz wybrać inne dublowanie za pomocą chooseCRANmirror()i spróbować ponownie zainstalować.


Istnieje kilka powodów, dla których pakiet może być niedostępny.


4. Nie chcesz pakietu

Być może tak naprawdę nie chcesz pakietu. Często mylą się różnice między pakietem a biblioteką lub pakietem i zestawem danych.

Pakiet to ustandaryzowany zbiór materiałów rozszerzających R, np. Dostarczający kod, dane lub dokumentację. Biblioteka to miejsce (katalog), w którym R wie, że może znaleźć pakiety, których może użyć

Aby wyświetlić dostępne zestawy danych, wpisz

data()

5. R lub Bioconductor jest nieaktualny

Może zależeć od nowszej wersji R (lub jednego z pakietów, od których jest importowany / zależy). Patrzeć na

ap["foobarbaz", "Depends"]

i rozważ zaktualizowanie instalacji R do bieżącej wersji. W systemie Windows najłatwiej to zrobić za pomocą installrpakietu.

library(installr)
updateR()

(Oczywiście może być konieczne install.packages("installr")najpierw.)

Odpowiednio dla pakietów Bioconductor, może być konieczne zaktualizowanie instalacji Bioconductor.

source("http://bioconductor.org/biocLite.R")
biocLite("BiocUpgrade")

6. Pakiet jest nieaktualny

Być może został zarchiwizowany (jeśli nie jest już utrzymywany i nie przechodzi R CMD checktestów).

W takim przypadku możesz załadować starą wersję pakietu za pomocą install_version()

library(remotes)
install_version("foobarbaz", "0.1.2")

Alternatywą jest instalacja z kopii lustrzanej github CRAN.

library(remotes)
install_github("cran/foobarbaz")

7. Nie ma pliku binarnego Windows / OS X / Linux

Może nie mieć pliku binarnego Windows z powodu wymagania dodatkowego oprogramowania, którego nie ma CRAN. Ponadto niektóre pakiety są dostępne tylko za pośrednictwem źródeł dla niektórych lub wszystkich platform. W takim przypadku w CRAN (extras)repozytorium może znajdować się wersja (patrz setRepositorieswyżej).

Jeśli pakiet wymaga kompilacji kodu (np. C, C ++, FORTRAN), to w Windows zainstaluj Rtools lub w OS X zainstaluj narzędzia programistyczne towarzyszące XCode i zainstaluj wersję źródłową pakietu poprzez:

install.packages("foobarbaz", type = "source")

# Or equivalently, for Bioconductor packages:
source("http://bioconductor.org/biocLite.R")
biocLite("foobarbaz", type = "source")

W CRAN możesz sprawdzić, czy potrzebujesz specjalnych narzędzi do zbudowania pakietu ze źródła, patrząc na NeedsCompilationflagę w opisie.


8. Pakiet znajduje się na github / Bitbucket / Gitorious

Może mieć repozytorium na Github / Bitbucket / Gitorious. Te pakiety wymagają remoteszainstalowania pakietu.

library(remotes)
install_github("packageauthor/foobarbaz")
install_bitbucket("packageauthor/foobarbaz")
install_gitorious("packageauthor/foobarbaz")

(Podobnie jak w przypadku pierwszej installrpotrzeby, może być konieczne install.packages("remotes")).


9. Nie ma źródłowej wersji pakietu

Chociaż wersja binarna twojego pakietu jest dostępna, wersja źródłowa nie jest. Możesz wyłączyć tę kontrolę, ustawiając

options(install.packages.check.source = "no")

zgodnie z opisem w tej SO odpowiedzi imanuelc i sekcji Szczegóły ?install.packages.


10. Pakiet znajduje się w niestandardowym repozytorium

Twoja paczka znajduje się w niestandardowym repozytorium (np Rbbg.). Zakładając, że jest w wystarczającym stopniu zgodny ze standardami CRAN, nadal możesz go pobrać za pomocą install.packages; musisz tylko podać adres URL repozytorium.

install.packages("Rbbg", repos = "http://r.findata.org")

RHIPEz drugiej strony nie znajduje się w repozytorium podobnym do CRAN i ma własną instrukcję instalacji .


2
@KonradRudolph Viewdziała również w R GUI, Architect, Revo-R i Live-R. Nie próbowałem w emacs / ESS.
Richie Cotton,

Ach, mój zły. Myślałem, że sprawdziłem i stwierdziłem, że funkcja nie istnieje. Oczywiście działa (ale nie działa na mnie w OS X… ).
Konrad Rudolph

9
Myślę, że warto wspomnieć, że installrdziała tylko w
systemie

2
„Często myli się co do różnicy między pakietem a biblioteką” - cóż, duh: Sami programiści R są zdezorientowani. Jak inaczej wyjaśnić funkcję library? Czy w tym duchu ta odpowiedź nie powinna jednak wspomnieć / wyjaśnić .libPaths? Nieustawione lub niepisywalne ścieżki do biblioteki wydają się być jednym z najczęstszych problemów podczas instalowania pakietów.
Konrad Rudolph

1
Sugerowałbym uwzględnienie innego punktu: Próbowanie instalowania pakietów wchodzących w skład r-rdzenia, tak jak w tym pytaniu , w którym próbuje się instalować parallelpakiet, gdy jest już w r-rdzeniu
Sergio Fernández

90

W najnowszej wersji R (3.2.3) występuje błąd, który czasami uniemożliwia znalezienie poprawnego pakietu. Obejściem tego problemu jest ręczne ustawienie repozytorium:

install.packages("lubridate", dependencies=TRUE, repos='http://cran.rstudio.com/')

Znalazłem rozwiązanie w innym pytaniu


4
Podejrzewano, że tak było. Wygląda jednak na błąd w r-studio. Właśnie przetestowałem i nie muszę ustawiać repozytorium, jeśli uruchomię R z terminala - tylko z poziomu r-studio.
adempewolff

Oraz 3.5.1. Przed ustawieniem dependenciesi repos, R nie mógł się połączyć https://mirrors.sorengard.com/cran/src/contrib/PACKAGES(a zatem rozwiązywanie problemów w innym pytaniu nie działało). Potem mogłem uzyskać dostęp do tej witryny, mimo że pakiety nadal nie ładują się w prosty sposób.
user3386170,

Również na moim innym komputerze, który ma wersję 3.5.0.
user3386170,

Próbuję załadować blotter i quantstrat w wersji 3.6.0 i użyłem tego kodu, ale bezskutecznie: „Ostrzeżenie w install.packages: pakiet„ quantstrat ”nie jest dostępny (dla wersji R 3.6.0)”. Jakieś inne sugestie?
W Barker,

Miał ten sam problem z e1071i R 3.6.1 na macOS High Sierra. Dzięki za pomoc
Igor F.,

25

Wygląda na to, że jest problem z niektórymi wersjami Ri libcurl. Miałem ten sam problem na Mac (R version 3.2.2)i Ubuntu (R version 3.0.2)w obu przypadkach został rozwiązany po prostu działa to przed install.packageskomendą

options(download.file.method = "wget")

Rozwiązanie zostało zasugerowane przez znajomego, jednak nie udało mi się go znaleźć na żadnym z forów, dlatego też przesłałem tę odpowiedź innym osobom.


2
dla mojej instalacji, po curlzainstalowaniu apt w Ubuntu i starym R 2.15.0, install.packages(..., method="curl")naprawiłem problem
jangorecki 17.04.16

Musiałem method="curl"raczej to zrobić wget, ale to rozwiązało problem
Jeff

install_versionw devtoolspomogło mi to obejść. Mój Mac też nie lubił wget. (Miałem R 3.2.3 narzekałem na to, że nie byłem w stanie znaleźć pakietu archiwum przy użyciu http://. Inne pakiety instalowały się dobrze)
D. Woods

Działa to dla mnie z instalacją wersji R 3.2.2 na 64-bitowym systemie Ubuntu Linux
Darren Wilkinson

22

To rozwiązanie może złamać R, ale tutaj jest najłatwiejsze rozwiązanie, które działa 99% czasu.

Musisz tylko zrobić:

install.packages('package-name',repos='http://cran.us.r-project.org')

Jak wspomniano tutaj autor


2
i że 1% to ja: / install.packages ('graph', repos = ' cran.us.r-project.org' )
Sahil Nagpal

Próbowałem zainstalować pakiet stringrza pomocą tego polecenia, ale dla mnie nie powiodło się. install.packages('stringr',repos = "http://cran.us.r-project.org", dependencies = TRUE) Installing package into ‘/usr/lib/spark/R/lib’ (as ‘lib’ is unspecified) Warning: unable to access index for repository http://cran.us.r-project.org/src/contrib: cannot open URL 'http://cran.us.r-project.org/src/contrib/PACKAGES' Warning message: package ‘stringr’ is not available (for R version 3.4.1)
Regressor

wygląda na to, że jestem częścią 1%, to nie zadziałało dla mnie
NetEmmanuel

15

11. R (lub inna zależność) jest nieaktualna i nie chcesz jej aktualizować.

Ostrzeżenie, że nie jest to najlepsza praktyka.

  • Pobierz źródło pakietu.
  • Przejdź do DESCRIPTIONpliku.
  • Usuń obraźliwą linię za pomocą edytora tekstu, np

    Depends: R (>= 3.1.1)
  • Zainstaluj z lokalnego (tj. Z katalogu nadrzędnego DESCRIPTION) np

    install.packages("foo", type="source", repos=NULL)

7
Zasadniczo podana jest zależność od wersji R, dlatego warto sprawdzić, co taka zmiana może przerwać.
jangorecki 17.04.16

1
@dardisco Nie usunąłem zależności, ale dzięki twojemu komentarzowi znalazłem zależności i widzę, że muszę tylko zaktualizować R. Dziękuję
sa_zy

9

Jedna rzecz, która się wydarzyła, to to, że wersja R dostarczona przez moją dystrybucję linuksową (wersja R 3.0.2 dostarczona przez Ubuntu 14.04) była za stara dla najnowszej wersji pakietu dostępnego na CRAN (w moim przypadku plyrwersja 1.8.3 od dzisiaj). Rozwiązaniem było użycie systemu pakowania mojej dystrybucji zamiast próby instalacji z wersji R ( apt-get install r-cran-plyrmam wersję 1.8.1 plyr). Być może mógłbym spróbować zaktualizować R przy użyciu updateR(), ale obawiam się, że spowodowałoby to zakłócenie menedżera pakietów mojej dystrybucji.


W przypadku problemów z Ubuntu sprawdź plik
Joris Meys

To rozwiązanie działało dla mnie dla debiana dla pakietu, mvtnormktóry kszależy od. Dowództwo byłoapt-get install r-cran-mvtnorm
Justapigeon

8

Zaoszczędziło mi to dużo czasu na debugowanie, co jest nie tak. W wielu przypadkach są tylko nieaktualne kopie lustrzane. Ta funkcja może instalować wiele pakietów wraz z ich zależnościami https://cran.rstudio.com/:

packages <- function(pkg){
    new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
    if (length(new.pkg))
        install.packages(new.pkg, dependencies = TRUE, repos='https://cran.rstudio.com/')
    sapply(pkg, require, character.only = TRUE)
}

packages(c("foo", "bar", "baz"))

6

To właśnie mogłem w końcu zrobić, instalując pakiet psych w wersji R-3.4.1, kiedy dostałem to samo ostrzeżenie

1: Googled dla tego pakietu.

2: pobrałem go ręcznie, mając rozszerzenie tar.gz

3: Wybierz opcję „Plik archiwum pakietów (.zip; .tar.gz)” dla pakietów instalacyjnych w języku R

4: lokalnie przejrzałem do miejsca, w którym został pobrany i kliknął zainstalować

Może pojawić się ostrzeżenie: zależności „xyz” są niedostępne dla pakietu, następnie najpierw zainstaluj je z repozytorium, a następnie wykonaj kroki 3-4.


4

Naprawiłem ten błąd na Ubuntu przez starannie wykonując instrukcje dotyczące instalowania R . Obejmowało to:

  1. dodawanie deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/do mojego pliku /etc/apt/sources.list
  2. Bieganie sudo apt-get update
  3. Bieganie sudo apt-get install r-base-dev

W kroku 1 możesz wybrać dowolne lustro pobierania CRAN zamiast mojego uniwersytetu w Toronto, jeśli chcesz.


W ten sposób rozwiązałem mój problem, ale wciąż aktualizowałem mój R do najnowszej wersji (od 3.02do 3.4). Jeśli chcesz zaktualizować swój R, jest to dobry sposób.
Belter

4

Popełniłem błąd, zapominając o wstawieniu repos=NULLpodczas instalowania pakietu R z kodu źródłowego. W takim przypadku komunikat o błędzie jest nieco mylący:package 'foobarbaz' is not available (for R version x.y.z)

Problemem nie była wersja R, tylko reposparametr. Zrobiłem to, install.packages('path/to/source/code/of/foobarbaz', type='source', repos=NULL)co zadziałało dla mnie przy tej okazji.

Mam nadzieję, że to komuś pomoże.


1
Kiedy próbuję install.packages („foobarbaz”, repos = NULL) pojawia się błąd „Błąd w install.packages („ para ”, repos = NULL): type ==„ oba ”nie mogą być używane z„ repos = NULL ””
Ajay B,

1
Dzięki za komentarz - myślę, że zapomniałem napisać type="source"parametr, ponieważ wspomniałem, że zainstalowałem ten pakiet z kodu źródłowego, zmienię odpowiedź.
Damjan

3

Miałem ten sam problem (w systemie Linux), który można rozwiązać, zmieniając ustawienia proxy. Jeśli jesteś za serwerem proxy, sprawdź konfigurację za pomocą Sys.getenv("http_proxy")R. W moim ~/.Renvironmiałem następujące wiersze (od https://support.rstudio.com/hc/en-us/articles/200488488-Configuring-R-to-Use -an-HTTP-or-HTTPS-Proxy ) powodujący problem:

http_proxy=https://proxy.dom.com:port
http_proxy_user=user:passwd

Zmieniam na

http_proxy="http://user:passwd@proxy.dom.com:port"

Rozwiązać problem. Możesz zrobić to samo dla https.

To nie była pierwsza myśl, kiedy przeczytałem „pakiet xxx nie jest dostępny dla wersji r-xyz” ...

HTH


2

Kolejny powód + rozwiązanie

Wystąpił ten błąd („pakiet XXX nie jest dostępny dla wersji R XXX”) podczas próby zainstalowania pkgdown w moim RStudio na HPC mojej firmy.

Okazuje się, że migawka CRAN, którą mają na HPC, pochodzi z stycznia 2018 r. (Prawie 2 lata) i rzeczywiście wtedy pkgdown nie istniał. Miało to kontrolować źródło pakietów dla zwykłych użytkowników, ale jako programista możesz w większości przypadków to zmienić poprzez:

## checking the specific repos you currently have
getOption("repos")

## updating your CRAN snapshot to a newer date
r <- getOption("repos")
r["newCRAN"] <- "https://cran.microsoft.com/snapshot/*2019-11-07*/"
options(repos = r)

## add newCRAN to repos you can use
setRepositories()

Jeśli wiesz, co robisz i być może potrzebujesz więcej niż jednego pakietu, który może nie być dostępny w systemie CRAN systemu, możesz to skonfigurować w swoim projekcie .Rprofile.

Jeśli to tylko jedna paczka, może po prostu użyj install.packages("package name", repos = "a newer CRAN than your company's archaic CRAN snapshot").


2
  1. Odwiedź https://cran.r-project.org/src/contrib/Archive/ .
  2. Znajdź pakiet, który chcesz zainstalować za pomocą Ctrl+F
  3. Kliknij nazwę pakietu
  4. Określ, którą wersję chcesz zainstalować
  5. Otwórz RStudio
  6. Wpisz „ install.packages("https://cran.r-project.org/src/contrib/Archive/[NAME OF PACKAGE]/[VERSION NUMBER].tar.gz", repos = NULL, type="source")

W niektórych przypadkach konieczne jest wcześniejsze zainstalowanie kilku pakietów, aby użyć pakietu, którego chcesz użyć.

Na przykład, musiałem zainstalować 7 pakietów ( Sejong, hash,rJava , tau, RSQLite, devtools, stringr), aby zainstalować KoNLPpakiet.

install.packages('Sejong')
install.packages('hash')
install.packages('rJava')
install.packages('tau')
install.packages('RSQLite')
install.packages('devtools')
install.packages('stringr')

library(Sejong)
library(hash)
library(rJava)
library(tau)
library(RSQLite)
library(devtools)
library(stringr)

install.packages("https://cran.r-project.org/src/contrib/Archive/KoNLP/KoNLP_0.80.2.tar.gz", repos = NULL, type="source")
library(KoNLP)

1

Prawie zawsze działa dla mnie, gdy używam bioprzewodnika jako źródła, a następnie wywołuję biocLite. Przykład:

source("https://bioconductor.org/biocLite.R")
biocLite("preprocessCore")

1
Dotyczy to tylko pakietów bioprzewodników, i tak też muszą być instalowane pakiety bioprzewodników.
Joris Meys,

@JorisMeys Wydaje mi się, że wszystkie pakiety, które do tej pory próbowałem zainstalować, były dostępne tą metodą, ale używam głównie R do bioinformatyki.
bli

1
@JorisMeys Nie wiem jak, ale jestem w stanie przejrzeć biocLitete pakiety w Cran i zainstalować je. Właśnie testowałem dplyr(na Xubuntu 16.04, jeśli to ma znaczenie). Mając nadzieję na uniknięcie bałaganu w jak największym stopniu, teraz próbuję zainstalować wszystkie pakiety „w ten sam sposób” (obecnie używa biocLite).
bli

2
@bli masz rację, poprawiam się. Kod w biocLiterozpoznaje prawidłowe repozytorium dla pakietu, a następnie wywołuje install.packages()rzeczywistą instalację. Ale to nie działa, ponieważ używasz biocLite. Działa, ponieważ install.packages()robi to, co powinien. Nie ma różnicy między używaniem biocLite()a install.packages()innymi niż narzutem i faktem, że biocLite()domyślnie aktualizuje również wszystkie inne pakiety, które uważa za konieczne. Więc nadal radziłbym używać install.packages()do pakietów nie bioprzewodników.
Joris Meys,

2
@bli nie gwarantuje zgodności, aktualizuje wszystko do najnowszej wersji (chyba że umieścisz suppressUpdates = TRUE). To jest to samo, co dzwonienie, update.packages()a potem install.packages(). Bo to dosłownie biocLitedziała pod maską.
Joris Meys,

0

Kolejny drobny dodatek, podczas próby przetestowania starej wersji R przy użyciu obrazu dokera rocker/r-ver:3.1.0

  1. Ustawieniem domyślnym reposjest MRANto, że nie można uzyskać wielu pakietów.
  2. Ta wersja R nie ma https, więc na przykład: install.packages("knitr", repos = "https://cran.rstudio.com")wydaje się działać.

0

Odkryłem, że niewielka różnica w pakiecie nr 6 jest nieaktualna stosunku do doskonałego rozwiązania @Richie Cotton.

Czasami opiekun pakietu może pokazywać luki w wersji R, których nie obsługuje. W takim przypadku masz co najmniej dwie opcje: 1) uaktualnij wersję R do następnej, którą pakiet docelowy już obsługuje, 2) zainstaluj najnowszą wersję ze starszych dostępnych, która będzie działać z twoją wersją R.

Konkretny przykład: najnowsza wersja CRAN pakietu rattledo eksploracji danych, 5.3.0, nie obsługuje wersji R 3.4, ponieważ miała dużą aktualizację między wersjami pakietu 5.2.0 (R> = 2.13.0) i 5.3.0 (R > = 3,5).

W takim przypadku alternatywą dla uaktualnienia instalacji R jest już wspomniane rozwiązanie. Zainstaluj pakiet, devtoolsjeśli go nie masz (zawiera pakiet remotes), a następnie zainstaluj konkretną wersję, która będzie działać w bieżącym R. Informacje te można znaleźć na stronie CRAN dla konkretnych archiwów pakietów.

library("devtools")
install_version("rattle", version = "5.2.0", repos = "http://cran.us.r-project.org")

0

W moim przypadku rozwiązaniem było po prostu uaktualnienie R.


-1

Jak wspomniano tutaj (w języku francuskim), może się to zdarzyć, gdy na komputerze są zainstalowane dwie wersje R. Odinstaluj najstarszy, a następnie spróbuj ponownie zainstalować pakiet! Dla mnie działało dobrze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.