Wie soll ich mit der Warnung "Paket 'xxx' ist nicht verfügbar (für R-Version xyz)" umgehen?


560

9
Beachten Sie, dass Sie bei Verwendung von RStudio diese Warnung auch erhalten, wenn Sie von einem anderen Repo als CRAN installieren. Das ist ein Fehler, den ich bereits einige Male gemeldet habe, aber ich weiß nicht, ob er bereits sortiert ist.
Joris Meys

Antworten:


562

1. Du kannst nicht buchstabieren

Als erstes müssen Sie testen, ob Sie den Namen des Pakets richtig geschrieben haben. Paketnamen unterscheiden in R zwischen Groß- und Kleinschreibung.


2. Sie haben nicht im richtigen Repository gesucht

Als nächstes sollten Sie überprüfen, ob das Paket verfügbar ist. Art

setRepositories()

Siehe auch ? SetRepositories .

Um zu sehen, welche Repositorys R nach Ihrem Paket suchen, und wählen Sie optional einige zusätzliche aus. Zumindest möchten Sie normalerweise CRANausgewählt werden, undCRAN (extras) wenn Sie Windows verwenden, und die Bioc*Repositorys, wenn Sie welche tun[Gen / Prote / Metabol / Transkript] Omics biologische Analysen.

Um dies dauerhaft zu ändern, fügen Sie setRepositories(ind = c(1:6, 8))Ihrer Rprofile.siteDatei eine Zeile wie hinzu .


3. Das Paket befindet sich nicht in den von Ihnen ausgewählten Repositorys

Geben Sie alle verfügbaren Pakete mit zurück

ap <- available.packages()

Siehe auch Namen der verfügbaren Pakete von R , ? Available.packages .

Da dies eine große Matrix ist, können Sie sie mit dem Daten-Viewer untersuchen. Alternativ können Sie schnell überprüfen, ob das Paket verfügbar ist, indem Sie anhand der Zeilennamen testen.

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

Alternativ kann die Liste der verfügbaren Pakete in einem Browser für CRAN , CRAN (Extras) , Bioconductor , R-Forge , RForge und Github angezeigt werden .

Eine weitere mögliche Warnmeldung, die Sie bei der Interaktion mit CRAN-Spiegeln erhalten können, lautet:

Warning: unable to access index for repository

Dies kann darauf hinweisen, dass das ausgewählte CRAN-Repository derzeit nicht verfügbar ist. Sie können einen anderen Spiegel mit auswählen chooseCRANmirror()und die Installation erneut versuchen.


Es gibt mehrere Gründe, warum ein Paket möglicherweise nicht verfügbar ist.


4. Sie möchten kein Paket

Vielleicht möchten Sie nicht wirklich ein Paket. Es ist üblich, über den Unterschied zwischen einem Paket und einer Bibliothek oder einem Paket und einem Datensatz verwirrt zu sein .

Ein Paket ist eine standardisierte Sammlung von Material, das R erweitert, z. B. Code, Daten oder Dokumentation. Eine Bibliothek ist ein Ort (Verzeichnis), an dem R nach Paketen sucht, die es verwenden kann

Geben Sie Folgendes ein, um verfügbare Datensätze anzuzeigen

data()

5. R oder Bioconductor ist veraltet

Es kann eine Abhängigkeit von einer neueren Version von R haben (oder von einem der Pakete, die es importiert / von denen es abhängt). Ansehen

ap["foobarbaz", "Depends"]

und erwägen Sie, Ihre R-Installation auf die aktuelle Version zu aktualisieren. Unter Windows ist dies am einfachsten über das installrPaket möglich.

library(installr)
updateR()

(Natürlich müssen Sie möglicherweise install.packages("installr")zuerst.)

Entsprechend für Bioconductor-Pakete müssen Sie möglicherweise Ihre Bioconductor-Installation aktualisieren.

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

6. Das Paket ist veraltet

Möglicherweise wurde es archiviert (wenn es nicht mehr gewartet wird und die R CMD checkTests nicht mehr besteht ).

In diesem Fall können Sie eine alte Version des Pakets mit laden install_version()

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

Eine Alternative ist die Installation vom Github CRAN-Spiegel.

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

7. Es gibt keine Windows / OS X / Linux-Binärdatei

Möglicherweise ist keine Windows-Binärdatei vorhanden, da zusätzliche Software erforderlich ist, über die CRAN nicht verfügt. Darüber hinaus sind einige Pakete für einige oder alle Plattformen nur über die Quellen verfügbar. In diesem Fall befindet sich möglicherweise eine Version im CRAN (extras)Repository (siehe setRepositoriesoben).

Wenn für das Paket Code kompiliert werden muss (z. B. C, C ++, FORTRAN), installieren Sie unter Windows Rtools oder unter OS X die mit XCode gelieferten Entwicklertools und installieren Sie die Quellversion des Pakets über:

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

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

In CRAN können Sie anhand des NeedsCompilationFlags in der Beschreibung feststellen, ob Sie spezielle Tools zum Erstellen des Pakets aus dem Quellcode benötigen .


8. Das Paket befindet sich auf Github / Bitbucket / Gitorious

Es kann ein Repository auf Github / Bitbucket / Gitorious haben. Für diese Pakete muss das remotesPaket installiert sein.

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

(Wie bei installrmüssen Sie möglicherweise install.packages("remotes")zuerst.)


9. Es gibt keine Quellversion des Pakets

Obwohl die Binärversion Ihres Pakets verfügbar ist, ist die Quellversion nicht verfügbar. Sie können diese Prüfung durch Einstellen deaktivieren

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

wie in dieser SO-Antwort von imanuelc und im Abschnitt Details von beschrieben ?install.packages.


10. Das Paket befindet sich in einem nicht standardmäßigen Repository

Ihr Paket befindet sich in einem nicht standardmäßigen Repository (z Rbbg. B. ). Unter der Annahme, dass es den CRAN-Standards angemessen entspricht, können Sie es dennoch mit herunterladen install.packages. Sie müssen nur die Repository-URL angeben.

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

RHIPEAuf der anderen Seite befindet es sich nicht in einem CRAN-ähnlichen Repository und verfügt über eigene Installationsanweisungen .


2
@KonradRudolph Viewarbeitet auch in R GUI, Architect, Revo-R und Live-R. Ich habe es nicht in Emacs / ESS versucht.
Richie Cotton

Ah, mein schlechtes. Ich dachte, ich hätte nachgesehen und festgestellt, dass die Funktion nicht existiert. Das funktioniert natürlich (aber unter OS X funktioniert es bei mir nicht… ).
Konrad Rudolph

9
Ich denke, es ist erwähnenswert, dass dies installrnur unter Windows funktioniert
David Arenburg

2
"Es ist üblich, über den Unterschied zwischen einem Paket und einer Bibliothek verwirrt zu sein" - nun, duh: Die R-Entwickler selbst sind darüber verwirrt. Wie kann man die Funktion sonst noch erklären library? Sollte diese Antwort in diesem Sinne jedoch nicht erwähnen / erklären .libPaths? Nicht gesetzte oder nicht beschreibbare Bibliothekspfade scheinen eines der häufigsten Probleme bei der Installation von Paketen zu sein.
Konrad Rudolph

1
Ich würde vorschlagen, einen weiteren Punkt aufzunehmen: Der Versuch, Pakete zu installieren, die in r-core enthalten sind, wie in dieser Frage , in der versucht wird, ein parallelPaket zu installieren , wenn es sich bereits in r-core befindet
Sergio Fernández

90

In der neuesten Version R (3.2.3) gibt es einen Fehler, der manchmal verhindert, dass das richtige Paket gefunden wird. Die Problemumgehung besteht darin, das Repository manuell festzulegen:

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

Lösung in anderer Frage gefunden


4
Vermutlich war dies der Fall. Es scheint jedoch ein Fehler in R-Studio zu sein. Ich habe gerade getestet und muss das Repository nicht festlegen, wenn ich R nur vom Terminal aus starte - nur von r-studio aus.
Adempewolff

Und 3.5.1 auch. Vor dem Einstellen von dependenciesund reposkonnte R keine Verbindung herstellen https://mirrors.sorengard.com/cran/src/contrib/PACKAGES(und daher funktionierte die Fehlerbehebung in anderen Fragen nicht). Danach konnte ich auf diese Site zugreifen, obwohl Pakete immer noch nicht auf einfache Weise geladen werden.
user3386170

Auch auf meinem anderen Computer mit Version 3.5.0.
user3386170

Ich versuche, Blotter und Quantstrat in Version 3.6.0 zu laden und habe diesen Code verwendet, aber ohne Erfolg: "Warnung in install.packages: Paket 'Quantstrat' ist nicht verfügbar (für R Version 3.6.0)". Irgendwelche anderen Vorschläge?
W Barker

Hatte das gleiche Problem mit e1071und R 3.6.1 unter macOS High Sierra. Vielen Dank für
Igor F.

25

Bei einigen Versionen von Rund scheint es ein Problem zu geben libcurl. Ich habe das gleiche Problem hatte auf Mac (R version 3.2.2)und Ubuntu (R version 3.0.2)und in beiden Fällen war es einfach gelöst , indem diese vor dem install.packagesFahrbefehl

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

Die Lösung wurde von einem Freund vorgeschlagen, ich konnte sie jedoch in keinem der Foren finden und habe diese Antwort daher für andere eingereicht.


2
Für mein Setup, nachdem curlapt in Ubuntu und dem alten R 2.15.0 installiert war, wurde install.packages(..., method="curl")das Problem
behoben

Ich musste method="curl"eher tun als wget, aber es hat das Problem behoben
Jeff

install_versionin devtoolshat mir geholfen, das zu umgehen. Mein Mac mochte es auch nicht wget. (Ich hatte R 3.2.3 beschwert, dass ich kein Archivpaket mit finden konnte http://. Andere Pakete wurden einwandfrei installiert)
D. Woods

Dies funktionierte für mich mit einer Installation von R 3.2.2 unter Ubuntu Linux 64 Bit
Darren Wilkinson

22

Diese Lösung könnte R brechen, aber hier ist eine einfachste Lösung, die 99% der Zeit funktioniert.

Sie müssen nur Folgendes tun:

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

Wie vom Autor hier erwähnt


2
und diese 1% bin ich: / install.packages ('graph', repos = ' cran.us.r-project.org' )
Sahil Nagpal

Ich habe versucht, das Paket stringrmit diesem Befehl zu installieren , aber es ist für mich fehlgeschlagen. 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

sieht so aus, als wäre ich auch Teil der 1%, es hat bei mir nicht funktioniert
NetEmmanuel

15

11. R (oder eine andere Abhängigkeit) ist veraltet und Sie möchten es nicht aktualisieren.

Warnung: Dies ist nicht gerade die beste Vorgehensweise.

  • Laden Sie die Paketquelle herunter.
  • Navigieren Sie zur DESCRIPTIONDatei.
  • Entfernen Sie die fehlerhafte Zeile mit Ihrem Texteditor, z

    Depends: R (>= 3.1.1)
  • Installieren Sie von lokal (dh aus dem übergeordneten Verzeichnis von DESCRIPTION), z

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

7
Normalerweise wird angegeben, dass die Abhängigkeit von der R-Version aus einem bestimmten Grund besteht. Es kann sinnvoll sein, zu überprüfen, welche Änderungen möglicherweise nicht möglich sind.
Jangorecki

1
@dardisco Die Abhängigkeit wurde nicht entfernt, aber dank Ihres Kommentars habe ich die Abhängigkeiten gefunden und sehe, dass ich nur R aktualisieren muss. Danke
sa_zy

9

Eine Sache, die mir passiert ist, ist, dass die von meiner Linux-Distribution bereitgestellte Version von R (R-Version 3.0.2 von Ubuntu 14.04) zu alt für die neueste Version des auf CRAN verfügbaren Pakets war (in meinem Fall plyrVersion 1.8.3) Ab heute). Die Lösung bestand darin, das Verpackungssystem meiner Distribution zu verwenden, anstatt zu versuchen, es von R aus zu installieren ( apt-get install r-cran-plyrbekam mir Version 1.8.1 von plyr). Vielleicht hätte ich versuchen können, R mithilfe von zu aktualisieren updateR(), aber ich befürchte, dass dies den Paketmanager meiner Distribution beeinträchtigen würde.


Bei Problemen mit Ubuntu überprüfen Sie die README: cran.r-project.org/bin/linux/ubuntu/README
Joris Meys

Diese Lösung funktionierte für mich für Debian für das Paket mvtnorm, das ksdavon abhängt. Befehl warapt-get install r-cran-mvtnorm
Justapigeon

8

Dies hat mir viel Zeit beim Debuggen gespart, was falsch ist. In vielen Fällen sind nur Spiegel veraltet. Diese Funktion kann mehrere Pakete mit ihren Abhängigkeiten installieren, indem sie 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

Dies ist, was ich endlich tun konnte, um das Psych-Paket in R-3.4.1 zu installieren, als ich die gleiche Warnung erhielt

1: Für dieses Paket gegoogelt.

2: Manuelles Herunterladen mit der Erweiterung tar.gz.

3: Wählen Sie die Option "Paketarchivdatei (.zip; .tar.gz)" für die Installation von Paketen in R.

4: lokal zu dem Ort durchsucht, an dem es heruntergeladen und auf Installieren geklickt wurde

Möglicherweise wird eine Warnung angezeigt: Abhängigkeiten 'xyz' sind für das Paket nicht verfügbar. Installieren Sie diese zuerst aus dem Repository und führen Sie dann die Schritte 3-4 aus.


4

Ich habe diesen Fehler unter Ubuntu behoben, indem ich die Anweisungen zur Installation von R sorgfältig befolgt habe . Dies beinhaltete:

  1. Hinzufügen deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/zu meiner Datei /etc/apt/sources.list
  2. Laufen sudo apt-get update
  3. Laufen sudo apt-get install r-base-dev

Für Schritt 1 können Sie einen beliebigen CRAN-Downloadspiegel anstelle meiner Universität von Toronto auswählen, wenn Sie möchten.


Auf diese Weise wurde mein Problem gelöst, aber ich aktualisiere mein R immer noch auf die neueste Version (von 3.02bis 3.4). Wenn Sie Ihr R aktualisieren möchten, ist dies eine gute Möglichkeit.
Belter

4

Ich habe den Fehler gemacht, zu vergessen, repos=NULLbei der Installation des R-Pakets aus dem Quellcode zu setzen. In diesem Fall ist die Fehlermeldung leicht irreführend:package 'foobarbaz' is not available (for R version x.y.z)

Das Problem war nicht die Version von R, sondern der reposParameter. Ich habe getan, install.packages('path/to/source/code/of/foobarbaz', type='source', repos=NULL)was bei dieser Gelegenheit für mich funktioniert hat.

Hoffe das hilft jemandem.


1
Wenn ich install.packages ('foobarbaz', repos = NULL) versuche, erhalte ich die Fehlermeldung "Fehler in install.packages (" pair ", repos = NULL): type ==" both "kann nicht mit 'repos = NULL' verwendet werden."
Ajay B

1
Vielen Dank für den Kommentar. Ich glaube, ich habe vergessen, den type="source"Parameter zu schreiben , da ich erwähnt habe, dass ich dieses Paket aus dem Quellcode installiert habe. Ich werde die Antwort bearbeiten.
Damjan

3

Ich hatte das gleiche Problem (unter Linux), das durch Ändern der Proxy-Einstellungen gelöst werden konnte. Wenn Sie sich hinter einem Proxyserver befinden, überprüfen Sie die Konfiguration mit Sys.getenv("http_proxy")R. In meinem hatte ~/.Renvironich die folgenden Zeilen (von https://support.rstudio.com/hc/en-us/articles/200488488-Configuring-R-to-Use) -an-HTTP-or-HTTPS-Proxy ) verursacht das Problem:

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

Ändern in

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

Problem gelöst. Sie können das gleiche für tunhttps .

Es war nicht der erste Gedanke, als ich las "Paket xxx ist nicht verfügbar für r version-xyz" ...

HTH


2

Ein weiterer Grund + Lösung

Beim Versuch, pkgdown zu installieren, tritt dieser Fehler auf ("Paket XXX ist für R-Version XXX nicht verfügbar") in meinem RStudio auf dem HPC meines Unternehmens .

Es stellt sich heraus, dass der CRAN-Schnappschuss, den sie auf dem HPC haben, vom Januar 2018 (fast 2 Jahre alt) stammt und tatsächlich pkgdown damals nicht existierte. Das sollte die Quelle von Paketen für Laien steuern, aber als Entwickler können Sie dies in den meisten Fällen ändern, indem Sie:

## 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()

Wenn Sie wissen, was Sie tun, und möglicherweise mehr als ein Paket benötigen, das möglicherweise nicht im CRAN Ihres Systems verfügbar ist, können Sie dies in Ihrem Projekt einrichten .Rprofile.

Wenn es nur ein Paket ist, verwenden Sie es vielleicht einfach install.packages("package name", repos = "a newer CRAN than your company's archaic CRAN snapshot").


2
  1. Besuchen Sie https://cran.r-project.org/src/contrib/Archive/ .
  2. Suchen Sie das Paket, das Sie mit Ctrl+ installieren möchtenF
  3. Klicken Sie auf den Paketnamen
  4. Bestimmen Sie, welche Version Sie installieren möchten
  5. Öffnen Sie RStudio
  6. Geben Sie " install.packages("https://cran.r-project.org/src/contrib/Archive/[NAME OF PACKAGE]/[VERSION NUMBER].tar.gz", repos = NULL, type="source")" ein

In einigen Fällen müssen Sie mehrere Pakete im Voraus installieren, um das gewünschte Paket zu verwenden.

Zum Beispiel musste ich 7 - Pakete installieren ( Sejong, hash, rJava, tau, RSQLite, devtools, stringr) zu installieren KoNLPPaket.

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

Es funktioniert fast immer bei mir, wenn ich Bioconductor als Quelle verwende und dann BiocLite aufrufe. Beispiel:

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

1
Dies gilt nur für Bioconductor-Pakete, und auf diese Weise müssen auch Bioconductor-Pakete installiert werden.
Joris Meys

@JorisMeys Es scheint mir, dass alle Pakete, die ich bisher zu installieren versucht habe, über diese Methode verfügbar waren, aber ich verwende hauptsächlich R für die Bioinformatik.
bli

1
@JorisMeys Ich weiß nicht wie, kann biocLitediese Pakete aber transparent auf cran abrufen und installieren. Ich habe gerade getestet dplyr(auf Xubuntu 16.04, wenn das wichtig ist). In der Hoffnung, Unordnung so weit wie möglich zu vermeiden, versuche ich jetzt, alle Pakete "auf die gleiche Weise" zu installieren (derzeit verwendet biocLite).
bli

2
@bli du hast recht, ich stehe korrigiert. Der Code in biocLiteerkennt die richtigen Repos für das Paket und ruft dann install.packages()auf, um die eigentliche Installation durchzuführen. Aber es funktioniert nicht, weil Sie verwenden biocLite. Es funktioniert, weil install.packages()es das tut, was es tun soll. Es gibt keinen Unterschied zwischen der Verwendung von biocLite()und install.packages()außer dem Overhead und der Tatsache, dass biocLite()standardmäßig auch alle anderen Pakete aktualisiert werden, die es für notwendig hält. Daher würde ich immer noch empfehlen, install.packages()für Nicht-Bioconductor-Pakete zu verwenden.
Joris Meys

2
@bli es garantiert keine Kompatibilität, es aktualisiert alles auf die neueste Version (es sei denn, Sie setzen suppressUpdates = TRUE). Dies ist das gleiche wie anrufen update.packages()und dann install.packages(). Denn genau das biocLitemacht es unter der Haube.
Joris Meys

0

Eine weitere kleine Neuerung beim Versuch, mithilfe des Docker-Images auf eine alte R-Version zu testen rocker/r-ver:3.1.0

  1. Die Standardeinstellung reposist MRANund es werden nicht viele Pakete abgerufen.
  2. Diese Version von R hat nicht https, also zum Beispiel: install.packages("knitr", repos = "https://cran.rstudio.com")scheint zu funktionieren.

0

Ich habe festgestellt, dass eine geringfügige Abweichung von Paket Nr. 6 von der hervorragenden Lösung von @Richie Cotton veraltet ist.

Manchmal zeigt der Paketbetreuer Lücken in der R-Version an, die er nicht unterstützt. In diesem Fall haben Sie mindestens zwei Möglichkeiten: 1) Aktualisieren Sie Ihre R-Version auf die nächste, die das Zielpaket bereits unterstützt, 2) Installieren Sie die neueste Version der älteren verfügbaren Version, die mit Ihrer R-Version funktionieren würde.

Ein konkretes Beispiel: Die neueste CRAN-Version des Pakets rattlefür Data Mining, 5.3.0, unterstützt R-Version 3.4 nicht, da zwischen den Paketversionen 5.2.0 (R> = 2.13.0) und 5.3.0 (R) ein großes Update durchgeführt wurde > = 3,5).

In einem solchen Fall ist die bereits erwähnte Lösung die Alternative zum Upgrade der R-Installation. Installieren Sie das Paket, devtoolswenn Sie es nicht haben (es enthält ein Paket remotes), und installieren Sie dann die spezifische Version, die in Ihrem aktuellen R funktioniert. Sie können diese Informationen auf der CRAN-Seite für die spezifischen Paketarchive nachschlagen.

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

0

In meinem Fall bestand die Lösung darin, einfach R zu aktualisieren.


-1

Wie hier (auf Französisch) erwähnt, kann dies passieren, wenn Sie zwei Versionen von R auf Ihrem Computer installiert haben. Deinstallieren Sie die älteste und wiederholen Sie die Paketinstallation! Es hat gut für mich funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.