Como devo lidar com o aviso “pacote 'xxx' não está disponível (para a versão R xyz)” ”?


561

9
Observe que, ao usar o RStudio, você recebe esse aviso também ao instalar a partir de outro repositório que não o CRAN. Esse erro já foi relatado algumas vezes, mas não sei se já foi resolvido.
Joris Meys

Respostas:


563

1. Você não pode soletrar

A primeira coisa a testar é que você digitou o nome do pacote corretamente? Os nomes dos pacotes diferenciam maiúsculas de minúsculas em R.


2. Você não procurou no repositório certo

Em seguida, você deve verificar se o pacote está disponível. Tipo

setRepositories()

Veja também ? SetRepositories .

Para ver quais repositórios o R procurará seu pacote e, opcionalmente, selecione alguns adicionais. No mínimo, você geralmente desejará CRANser selecionado e, CRAN (extras)se usar o Windows e os Bioc*repositórios, se fizer alguma[gen / prote / metabol / transcript] omics análises biológicas.

Para alterar isso permanentemente, adicione uma linha como setRepositories(ind = c(1:6, 8))no seu Rprofile.sitearquivo.


3. O pacote não está nos repositórios que você selecionou

Retorne todos os pacotes disponíveis usando

ap <- available.packages()

Veja também nomes de pacotes disponíveis de R , ? Available.packages .

Como essa é uma matriz grande, convém usar o visualizador de dados para examiná-la. Como alternativa, você pode verificar rapidamente se o pacote está disponível testando os nomes das linhas.

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

Como alternativa, a lista de pacotes disponíveis pode ser vista em um navegador para CRAN , CRAN (extras) , Biocondutor , R-forge , RForge e github .

Outra possível mensagem de aviso que você pode receber ao interagir com os espelhos CRAN é:

Warning: unable to access index for repository

O que pode indicar que o repositório CRAN selecionado não está disponível no momento. Você pode selecionar um espelho diferente chooseCRANmirror()e tentar a instalação novamente.


Existem várias razões pelas quais um pacote pode não estar disponível.


4. Você não quer um pacote

Talvez você realmente não queira um pacote. É comum ficar confuso sobre a diferença entre um pacote e uma biblioteca ou um pacote e um conjunto de dados.

Um pacote é uma coleção padronizada de material que estende R, por exemplo, fornecendo código, dados ou documentação. Uma biblioteca é um local (diretório) onde R sabe encontrar pacotes que pode usar

Para ver os conjuntos de dados disponíveis, digite

data()

5. R ou biocondutor está desatualizado

Pode ter dependência de uma versão mais recente do R (ou de um dos pacotes que importa / depende). Olhe para a

ap["foobarbaz", "Depends"]

e considere atualizar sua instalação do R para a versão atual. No Windows, isso é feito com mais facilidade através do installrpacote.

library(installr)
updateR()

(Claro, você pode precisar install.packages("installr")primeiro.)

Equivalentemente para pacotes de biocondutores, pode ser necessário atualizar a instalação do biocondutor.

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

6. O pacote está desatualizado

Pode ter sido arquivado (se não for mais mantido e não passar mais nos R CMD checktestes).

Nesse caso, você pode carregar uma versão antiga do pacote usando install_version()

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

Uma alternativa é instalar a partir do espelho github CRAN.

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

7. Não há binário Windows / OS X / Linux

Pode não haver um binário do Windows devido à necessidade de software adicional que o CRAN não possui. Além disso, alguns pacotes estão disponíveis apenas através das fontes para algumas ou todas as plataformas. Nesse caso, pode haver uma versão no CRAN (extras)repositório (veja setRepositoriesacima).

Se o pacote exigir código de compilação (por exemplo, C, C ++, FORTRAN), no Windows, instale o Rtools ou no OS X, instale as ferramentas do desenvolvedor que acompanham o XCode e instale a versão de origem do pacote via:

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

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

No CRAN, você pode dizer se precisará de ferramentas especiais para criar o pacote a partir do código-fonte, observando o NeedsCompilationsinalizador na descrição.


8. O pacote está no github / Bitbucket / Gitorious

Pode ter um repositório no Github / Bitbucket / Gitorious. Esses pacotes requerem a remotesinstalação do pacote.

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

(Da mesma forma installr, você pode precisar install.packages("remotes")primeiro.)


9. Não há versão de origem do pacote

Embora a versão binária do seu pacote esteja disponível, a versão de origem não está. Você pode desativar essa verificação configurando

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

conforme descrito nesta resposta do SO por imanuelc e na seção Detalhes de ?install.packages.


10. O pacote está em um repositório não padrão

Seu pacote está em um repositório não padrão (por exemplo Rbbg). Supondo que seja razoavelmente compatível com os padrões CRAN, você ainda pode fazer o download usando install.packages; você apenas precisa especificar o URL do repositório.

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

RHIPEpor outro lado, não está em um repositório do tipo CRAN e tem suas próprias instruções de instalação .


2
O @KonradRudolph também Viewtrabalha com R GUI, Architect, Revo-R e Live-R. Ainda não tentei no emacs / ESS.
Richie Cotton

Ah, meu mal. Eu pensei que tinha verificado e descobri que a função não existia. É claro (mas não funciona para mim no OS X… ).
9289 Konrad Rudolph

9
Eu acho que vale a pena mencionar que installrfunciona apenas no Windows
David Arenburg

2
“É comum ficar confuso sobre a diferença entre um pacote e uma biblioteca” - bem, duh: os próprios desenvolvedores do R estão confusos sobre isso. De que outra forma explicar a função library? No entanto, nesse sentido, essa resposta não deveria mencionar / explicar .libPaths? Caminhos de biblioteca não configuráveis ​​ou não graváveis ​​parecem ser um dos problemas mais comuns ao instalar pacotes.
Konrad Rudolph

1
Eu sugiro incluindo outro ponto: tentar instalar pacotes que vem dentro de r-core, como em esta questão , em que tenta instalar parallelpacote, quando ele já está em r-core
Sergio Fernández

90

No R (3.2.3) mais recente, existe um erro, impedindo-o de encontrar o pacote correto algumas vezes. A solução alternativa é configurar o repositório manualmente:

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

Solução encontrada em outra pergunta


4
Suspeitava que esse fosse o caso. Parece ser um bug no r-studio, no entanto. Acabei de testar e não preciso definir o repositório se eu apenas iniciar o R ​​a partir do terminal - apenas dentro do r-studio.
Adempewolff 4/04

E 3.5.1 também. Antes de definir dependenciese repos, R não conseguia se conectar https://mirrors.sorengard.com/cran/src/contrib/PACKAGES(e, portanto, a solução de problemas em outra pergunta não funcionou). Depois, eu pude acessar o site mesmo que os pacotes ainda não estejam carregando da maneira simples.
user3386170

Também no meu outro computador que possui a versão 3.5.0.
user3386170

Estou tentando carregar o blotter e o quantstrat na versão 3.6.0 e usei esse código, mas sem sucesso: "Aviso no install.packages: o pacote 'quantstrat' não está disponível (para o R versão 3.6.0)". Alguma outra sugestão?
W Barker

Teve o mesmo problema com o e1071R 3.6.1 no macOS High Sierra. Obrigado pela ajuda
Igor F.

25

Parece haver um problema com algumas versões do Re libcurl. Eu tive o mesmo problema em Mac (R version 3.2.2)e Ubuntu (R version 3.0.2)e em ambos os casos foi resolvido simplesmente por correr isto antes do install.packagescomando

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

A solução foi sugerida por um amigo, no entanto, não consegui encontrá-la em nenhum dos fóruns, enviando essa resposta para outras pessoas.


2
para a minha configuração, tendo curlapt instalado no Ubuntu e velhos R 2.15.0, o install.packages(..., method="curl")fez corrigir o problema
jangorecki

Eu tinha que fazer method="curl", em vez de wget, mas resolveu o problema
Jeff

install_versionem devtoolsme ajudou a contornar esta situação. Meu Mac também não gostou wget. (Eu tinha R 3.2.3 reclamando sobre não ser capaz de encontrar um pacote de arquivo usando http://outros pacotes estavam instalando apenas multa.)
D. Woods

Isso funcionou para mim com uma instalação do R 3.2.2 no Ubuntu Linux de 64 bits
Darren Wilkinson

22

Esta solução pode quebrar o R, mas aqui está uma solução mais fácil que funciona 99% do tempo.

Você precisa fazer é apenas:

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

Como mencionado pelo autor aqui


2
e esse 1% sou eu: / install.packages ('graph', repos = ' cran.us.r-project.org' )
Sahil Nagpal

Eu tentei instalar o pacote stringrusando este comando, mas ele falhou para mim. 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 24/02

parece que eu faço parte do 1% também, não funcionou para mim
NetEmmanuel

15

11. R (ou outra dependência) está desatualizada e você não deseja atualizá-la.

Aviso: essa não é exatamente a melhor prática.

  • Faça o download da fonte do pacote.
  • Navegue para o DESCRIPTIONarquivo
  • Remova a linha incorreta com seu editor de texto, por exemplo

    Depends: R (>= 3.1.1)
  • Instale a partir do local (ou seja, do diretório pai de DESCRIPTION), por exemplo

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

7
Geralmente, a dependência declarada da versão R existe por um motivo; pode ser prudente verificar o que essa alteração potencialmente quebrará.
Jangorecki 17/04/2016

1
@dardisco Não removi a dependência, mas graças ao seu comentário, encontrei as dependências e vejo que só preciso atualizar o R. Obrigado
sa_zy

9

Uma coisa que aconteceu comigo foi que a versão do R fornecida pela minha distribuição Linux (versão R 3.0.2 fornecida pelo Ubuntu 14.04) era muito antiga para a versão mais recente do pacote disponível no CRAN (no meu caso, plyrversão 1.8.3 a partir de hoje). A solução foi usar o sistema de empacotamento da minha distribuição em vez de tentar instalar a partir do R ( apt-get install r-cran-plyrobtive a versão 1.8.1 do plyr). Talvez eu pudesse ter tentado atualizar o R ​​usando updateR(), mas receio que isso interfira no gerenciador de pacotes da minha distribuição.


Para problemas com o Ubuntu, verificar o README: cran.r-project.org/bin/linux/ubuntu/README
Joris Meys

Esta solução funcionou para mim no debian para o pacote mvtnormque ksdepende. O comando foiapt-get install r-cran-mvtnorm
Justapigeon 03/07/19

8

Isso me salvou muito tempo depurando o que estava errado. Em muitos casos, são apenas espelhos desatualizados. Esta função pode instalar vários pacotes com suas dependências usando 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

É o que eu finalmente pude fazer para instalar o pacote psych no R-3.4.1 quando recebi o mesmo aviso

1: Pesquisei no Google esse pacote.

2: baixado manualmente com extensão tar.gz

3: Escolha a opção "Package Archive File (.zip; .tar.gz)" para instalar pacotes no R

4: navegou localmente até o local em que foi baixado e clicou em instalar

Você pode receber um aviso: as dependências 'xyz' não estão disponíveis para o pacote, depois instale-as no repositório e siga as etapas 3-4.


4

Fixei este erro no Ubuntu, seguindo cuidadosamente as instruções para a instalação R . Isso inclui:

  1. adicionando deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/ao meu arquivo /etc/apt/sources.list
  2. Corrida sudo apt-get update
  3. Corrida sudo apt-get install r-base-dev

Para o passo 1, você pode escolher qualquer espelho de download do CRAN no lugar do meu da Universidade de Toronto, se desejar.


Dessa forma, resolvi meu problema, mas ainda atualizo meu R para a versão mais recente (de 3.02para 3.4). Se você deseja atualizar seu R, é uma boa maneira.
Belter

4

Cometi o erro de esquecer de colocar repos=NULLao instalar o pacote R a partir do código fonte. Nesse caso, a mensagem de erro é um pouco enganadora:package 'foobarbaz' is not available (for R version x.y.z)

O problema não era a versão do R, era o reposparâmetro. Eu fiz o install.packages('path/to/source/code/of/foobarbaz', type='source', repos=NULL)que funcionou para mim nesta ocasião.

Espero que isso ajude alguém.


1
Quando tento install.packages ('foobarbaz', repos = NULL), recebo o erro "Erro no install.packages (" par ", repos = NULL): o tipo ==" ambos "não pode ser usado com 'repos = NULL'"
Ajay B

1
Obrigado pelo comentário - acho que esqueci de escrever o type="source"parâmetro desde que mencionei que instalei este pacote a partir do código-fonte, editarei a resposta.
Damjan

3

Eu tive o mesmo problema (no Linux) que pode ser resolvido alterando as configurações de proxy. Se você estiver atrás de um servidor proxy, verifique a configuração usando Sys.getenv("http_proxy")dentro de R. Na minha, ~/.Renvironeu tinha as seguintes linhas (em https://support.rstudio.com/hc/en-us/articles/200488488-Configuring-R-to-Use -an-HTTP-ou-HTTPS-Proxy ) causando o problema:

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

Alterando para

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

resolveu o problema. Você pode fazer o mesmo por https.

Não foi o primeiro pensamento quando li "o pacote xxx não está disponível para a versão r-xyz" ...

HTH


2

Outra razão + solução

Eu me deparo com esse erro ("o pacote XXX não está disponível para a versão R do XXX") ao tentar instalar o pkgdown no meu RStudio no HPC da minha empresa.

Acontece que o instantâneo do CRAN que eles têm no HPC é de janeiro de 2018 (quase 2 anos) e, na verdade, o pkgdown não existia na época. Isso foi feito para controlar a fonte de pacotes para usuários leigos, mas como desenvolvedor, na maioria dos casos, você pode alterar isso por:

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

Se você sabe o que está fazendo e pode precisar de mais de um pacote que pode não estar disponível no CRAN do seu sistema, você pode configurá-lo no seu projeto .Rprofile.

Se é apenas um pacote, talvez apenas use install.packages("package name", repos = "a newer CRAN than your company's archaic CRAN snapshot").


2
  1. Visite https://cran.r-project.org/src/contrib/Archive/ .
  2. Encontre o pacote que você deseja instalar com o Ctrl+F
  3. Clique no nome do pacote
  4. Determine qual versão você deseja instalar
  5. Abra o RStudio
  6. Digite " install.packages("https://cran.r-project.org/src/contrib/Archive/[NAME OF PACKAGE]/[VERSION NUMBER].tar.gz", repos = NULL, type="source")"

Em alguns casos, você precisa instalar vários pacotes com antecedência para usar o pacote que deseja usar.

Por exemplo, eu precisava instalar 7 pacotes ( Sejong, hash, rJava, tau, RSQLite, devtools, stringr) para instalar KoNLPpacote.

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

Quase sempre funciona para mim quando uso o biocondutor como fonte e depois invoco o biocLite. Exemplo:

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

1
Isso é apenas para pacotes de biocondutores, e também é assim que os pacotes de biocondutores precisam ser instalados.
precisa

@JorisMeys Parece-me que todos os pacotes que tentei instalar até agora estavam disponíveis por esse método, mas estou usando principalmente o R para bioinformática.
bli

1
@JorisMeys Eu não sei como, mas biocLiteé capaz de buscar esses pacotes de forma transparente no cran e instalá-los. Acabei de testar dplyr(no Xubuntu 16.04, se isso importa). Na esperança de evitar confusão, tanto quanto possível, agora tento instalar todos os pacotes "da mesma maneira" (atualmente em uso biocLite).
bli

2
@bli você está certo, eu estou corrigido. O código biocLitereconhece os repositórios corretos para o pacote e, em seguida, chama install.packages()para fazer a instalação real. Mas não está funcionando porque você usa biocLite. Funciona porque install.packages()faz o que é suposto fazer. Não há diferença entre usar biocLite()e install.packages()que não seja a sobrecarga e o fato de, biocLite()por padrão, também atualizar todos os outros pacotes que julgar necessários. Então, eu ainda aconselho a usar install.packages()pacotes não biocondutores.
JORIS MEYS

2
@bli não garante compatibilidade, atualiza tudo para a versão mais recente (a menos que você coloque suppressUpdates = TRUE). É o mesmo que ligar update.packages()e depois install.packages(). Porque isso é literalmente o que biocLiteacontece sob o capô.
JORIS MEYS

0

Outra adição menor, ao tentar testar uma versão R antiga usando a imagem do docker rocker/r-ver:3.1.0

  1. A reposconfiguração padrão é MRANe isso falha ao obter muitos pacotes.
  2. Essa versão do R não possui https, portanto, por exemplo: install.packages("knitr", repos = "https://cran.rstudio.com")parece funcionar.

0

Descobri que uma pequena variação do pacote nº 6 está desatualizada da excelente solução da @Richie Cotton.

Às vezes, o mantenedor do pacote pode mostrar lacunas da versão R que não suporta. Nesse caso, você tem pelo menos duas opções: 1) atualize sua versão R para a próxima que o pacote de destino já suporta; 2) instale a versão mais recente das versões mais antigas disponíveis que funcionariam com sua versão R.

Um exemplo concreto: a versão mais recente do CRAN do pacote rattlepara mineração de dados, 5.3.0, não suporta a versão 3.4 do R, porque havia uma grande atualização entre as versões do pacote 5.2.0 (R> = 2.13.0) e 5.3.0 (R > = 3,5).

Em um caso como esse, a alternativa para atualizar a instalação do R é a solução já mencionada. Instale o pacote devtoolsse você não o tiver (inclui o pacote remotes) e instale a versão específica que funcionará no seu R. atual. Você pode procurar essas informações na página CRAN para os arquivos específicos do pacote.

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

0

No meu caso, a solução foi simplesmente atualizar o R.


-1

Como mencionado aqui (em francês), isso pode acontecer quando você tem duas versões do R instaladas no seu computador. Desinstale o mais antigo e tente a instalação do seu pacote novamente! Funcionou bem para mim.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.