“Paket 'xxx' mevcut değil (R sürümü xyz için)” uyarısı ile nasıl başa çıkmalıyım?


560

9
RStudio kullanırken, CRAN'dan başka bir depodan yükleme yaparken de bu uyarıyı alacağınızı unutmayın. Bu zaten birkaç kez rapor ettiğim bir hata, ama zaten sıralanıp sıralanmadığını bilmiyorum.
Joris Meys

Yanıtlar:


562

1. Heceleyemezsin

Test edilecek ilk şey , paketin adını doğru yazdığınız oldu mu? Paket isimleri R'de büyük / küçük harfe duyarlıdır.


2. Doğru depoya bakmadınız

Ardından, paketin mevcut olup olmadığını kontrol etmelisiniz. tip

setRepositories()

Ayrıca bakınız ? SetRepositories .

R'nin paketiniz için hangi depoları arayacağını görmek ve isteğe bağlı olarak bazı ek depolar seçmek. En azından, genellikle CRANseçilmek isteyeceksiniz ve CRAN (extras)Windows kullanıyorsanız Bioc*depoları ve varsa depoları[Gen / prote /, metabolizma / transkripti] omik biyolojik analizler.

Bunu kalıcı olarak değiştirmek setRepositories(ind = c(1:6, 8))için Rprofile.sitedosyanıza benzer bir satır ekleyin .


3. Paket seçtiğiniz depolarda değil

Kullanılabilir tüm paketleri kullanarak iade edin

ap <- available.packages()

Ayrıca bkz R'ın mevcut paketlerin Adları , ? Available.packages .

Bu büyük bir matris olduğundan, incelemek için veri görüntüleyiciyi kullanmak isteyebilirsiniz. Alternatif olarak, satır adlarını test ederek paketin kullanılabilir olup olmadığını hızlıca kontrol edebilirsiniz.

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

Alternatif olarak, mevcut paketlerin listesi CRAN , CRAN (ekstralar) , Bioconductor , R-forge , RForge ve github için bir tarayıcıda görülebilir .

CRAN aynalarıyla etkileşime girerken alabileceğiniz bir diğer olası uyarı mesajı:

Warning: unable to access index for repository

Bu, seçilen CRAN havuzunun şu anda kullanılamadığını gösterebilir. İle farklı bir ayna seçebilir chooseCRANmirror()ve kurulumu tekrar deneyebilirsiniz.


Bir paketin mevcut olmamasının birkaç nedeni vardır.


4. Bir paket istemiyorsunuz

Belki de gerçekten bir paket istemiyorsunuzdur. Bir paket ve bir kütüphane ya da bir paket ve bir veri kümesi arasındaki fark hakkında kafa karıştırmak yaygındır .

Paket, R kodunu genişleten, örneğin kod, veri veya dokümantasyon sağlama gibi standartlaştırılmış bir malzeme koleksiyonudur. Kütüphane, R'nin kullanabileceği paketleri bulmayı bildiği bir yerdir (dizin)

Kullanılabilir veri kümelerini görmek için yazın

data()

5. R veya Bioiletken eski

R'nin daha yeni bir sürümüne (veya aldığı / bağımlı olduğu paketlerden birine) bağımlı olabilir. Bakmak

ap["foobarbaz", "Depends"]

ve R kurulumunuzu mevcut sürüme güncelleyin. Windows'da, bu en kolay şekilde installrpaket üzerinden yapılır .

library(installr)
updateR()

(Tabii ki, önce yapmanız gerekebilir install.packages("installr").)

Bioconductor paketleri için aynı şekilde Bioconductor kurulumunuzu güncellemeniz gerekebilir.

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

6. Paket güncel değil

Arşivlenmiş olabilir (artık korunmuyorsa ve R CMD checktestleri geçemiyorsa).

Bu durumda, kullanarak paketin eski bir sürümünü yükleyebilirsiniz. install_version()

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

Bir alternatif, github CRAN aynasından takmaktır.

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

7. Windows / OS X / Linux ikili dosyası yok

CRAN'ın sahip olmadığı ek yazılım gerektirdiği için bir Windows ikili dosyası olmayabilir. Ayrıca, bazı paketler yalnızca bazı platformların tümü veya tümü için kaynaklar aracılığıyla kullanılabilir. Bu durumda, CRAN (extras)depoda bir sürüm olabilir (yukarıya bakın setRepositories).

Paket derleme kodu gerektiriyorsa (örn. C, C ++, FORTRAN), Windows'ta Rtools'u veya OS X'e XCode ile birlikte gelen geliştirici araçlarını yükleyin ve paketin kaynak sürümünü şu yolla yükleyin:

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

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

CRAN'da, NeedsCompilationaçıklamadaki bayrağa bakarak paketi kaynaktan oluşturmak için özel araçlara ihtiyacınız olup olmadığını anlayabilirsiniz .


8. paket üzerinde github / Bitbucket / Gitorious

Github / Bitbucket / Gitorious'da bir deposu olabilir. Bu paketler remotespaketin yüklenmesini gerektirir .

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

(İle olduğu gibi installr, önce yapmanız gerekebilir install.packages("remotes").)


9. Paketin kaynak sürümü yok

Paketinizin ikili sürümü mevcut olmasına rağmen, kaynak sürümü mevcut değildir. Bu kontrolü ayarlayarak kapatabilirsiniz.

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

imanuelc tarafından bu SO yanıtında açıklandığı gibi ve ?install.packages.


10. Paket standart olmayan bir depoda

Paketiniz standart olmayan bir depoda (ör. Rbbg). CRAN standartlarına uygun olduğunu varsayarsak, yine de kullanarak indirebilirsiniz install.packages; sadece depo URL'sini belirtmeniz gerekir.

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

RHIPEÖte yandan CRAN benzeri bir depoda bulunmuyor ve kendi kurulum talimatları var .


2
@KonradRudolph ViewR GUI, Architect, Revo-R ve Live-R'de de çalışıyor. Emacs / ESS'de denemedim.
Richie Cotton

Ah, benim hatam. Kontrol ettiğimi ve fonksiyonun mevcut olmadığını bulduğumu düşündüm. Elbette öyle (ama OS X'de benim için çalışmıyor… ).
Konrad Rudolph

9
Ben installrsadece pencerelerde çalışır bahsetmeye değer düşünüyorum
David Arenburg

2
“Bir paket ve kütüphane arasındaki fark konusunda kafa karıştırmak yaygındır” - iyi, duh: R geliştiricilerinin kendileri bu konuda kafaları karıştı. İşlevi başka nasıl açıklayabilirim library? Ancak, bu bağlamda, bu cevaptan bahsetmemeli / açıklamamalı .libPathsmı? Ayarlanmamış veya yazılamayan kitaplık yolları, paketleri yüklerken en yaygın sorunlardan biri gibi görünüyor.
Konrad Rudolph

1
Başka bir noktaya yer vermenizi öneririm: R çekirdeğinde gelen paketleri yüklemeye çalışmak, bu sorudaparallel olduğu gibi, zaten r çekirdeğinde olduğunda paketi yüklemeye çalışır
Sergio Fernández

90

En son R'de (3.2.3) bir hata var, bu da bazen doğru paketi bulmasını engelliyor. Çözüm depoyu el ile ayarlamaktır:

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

Başka bir soruda çözüm bulundu


4
Durumun bu olduğundan şüpheleniliyor. Ancak r-studio'da bir hata gibi görünüyor. Sadece test ettim ve R'yi terminalden yeni başlattığımda veri havuzunu ayarlamam gerekmiyor - sadece r-stüdyo içinden.
adempewolff

Ve 3.5.1. Ayarlamadan önce dependenciesve reposR bağlanmak mümkün değildi https://mirrors.sorengard.com/cran/src/contrib/PACKAGES(ve dolayısıyla diğer Söz konusu sorun giderme çalışmaları vermedi). Sonra, paketler hala basit bir şekilde yüklenmese bile bu siteye erişebildim.
user3386170

Ayrıca 3.5.0 sürümü olan diğer bilgisayarımda.
user3386170

3.6.0 sürümünde kurutma kağıdı ve quantstrat yüklemeye çalışıyorum ve bu kodu kullandım, ancak boşuna: "install.packages uyarı: paket 'quantstrat' (R sürüm 3.6.0 için) mevcut değil". Başka öneriniz var mı?
W Barker

e1071MacOS High Sierra'da da aynı sorun vardı ve R 3.6.1. Yardımınız için teşekkürler
Igor F.

25

Bazı sürümleri ile ilgili bir sorun var gibi görünüyor Rve libcurl. Ben aynı problem vardı Mac (R version 3.2.2)ve Ubuntu (R version 3.0.2)her iki durumda da önce bu çalıştırarak basitçe çözüldü install.packageskomutu

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

Çözüm bir arkadaş tarafından önerildi, ancak forumların hiçbirinde bulamadım, bu nedenle bu cevabı başkaları için gönderdim.


2
benim kurulum için, curlUbuntu ve eski R 2.15.0 yüklü apt olması install.packages(..., method="curl"), sorunu düzeltmek mi
jangorecki

Bunun method="curl"yerine yapmak zorunda kaldım wget, ama bu sorunu düzeltti
Jeff

install_versionbunu devtoolsatlatmama yardım etti. Mac'im de beğenmedi wget. (R 3.2.3 kullanarak bir arşiv paketi bulamamaktan şikayetçi oldum http://. Diğer paketler gayet iyi
D. Woods

Bu benim için Ubuntu Linux 64 bit R 3.2.2 kurulumu ile çalıştı
Darren Wilkinson

22

Bu çözüm R'yi kırabilir, ancak burada% 99 oranında çalışan en kolay çözüm.

Yapmanız gereken sadece:

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

Üzerinde yazar tarafından belirtildiği gibi burada


2
ve bu% 1 benim: / install.packages ('grafik', repos = ' cran.us.r-project.org' )
Sahil

stringrBu komutu kullanarak paketi yüklemeyi denedim ama benim için başarısız oldu. 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

Görünüşe göre% 1'in bir parçasıyım, benim için çalışmadı
NetEmmanuel

15

11. R (veya başka bir bağımlılık) güncel değil ve güncellemek istemiyorsunuz.

Bunun uyarılması tam olarak en iyi uygulama değildir.

  • Paket kaynağını indirin.
  • DESCRIPTIONDosyaya gidin .
  • Sorunlu satırı metin düzenleyicinizle kaldırın, örn.

    Depends: R (>= 3.1.1)
  • Yerelden yükleme (ör. Dizininden DESCRIPTION)

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

7
Genellikle R versiyonuna bağımlılık bir nedenden dolayı vardır, bu tür değişikliklerin potansiyel olarak kırılacağını kontrol etmek akıllıca olabilir.
jangorecki

1
@dardisco Bağımlılığı kaldırmadım, ancak yorumunuz sayesinde bağımlılıkları buldum ve sadece
R'yi

9

Benim için olan bir şey, linux dağıtımım tarafından sağlanan R sürümünün (Ubuntu 14.04 tarafından sağlanan R sürüm 3.0.2) CRAN'da mevcut olan paketin en son sürümü için çok eski (benim durumumda, plyrsürüm 1.8.3) bugün itibariyle). Çözüm, dağıtımımın paketleme sistemini R'den yüklemeye çalışmak yerine kullanmaktı ( apt-get install r-cran-plyrbana 1.8.1 sürümünü aldım plyr). Belki de R'yi kullanarak güncellemeyi deneyebilirdim updateR(), ancak bunun dağıtımımın paket yöneticisini etkileyeceğinden korkuyorum.


Ubuntu ile ilgili sorunlar için
README'ye bakın

Bu çözüm paketi için debian benim için çalışıyor bağlıdır. Command wasmvtnormksapt-get install r-cran-mvtnorm
Justapigeon

8

Bu bana neyin yanlış olduğunu ayıklamak için çok zaman kazandırdı. Çoğu durumda sadece güncel olmayan aynalar vardır. Bu işlev bağımlılıklarıyla birden fazla paket kurabilir 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

Nihayet aynı uyarıyı aldığımda R-3.4.1'e psych paketini yüklemek için yapabileceğim şey bu

1: Bu paket için googled.

2: tar.gz uzantılı manuel olarak indirildi

3: R'deki paketleri yüklemek için "Paket Arşiv Dosyası (.zip; .tar.gz)" seçeneğini seçin

4: indirildiği ve yüklendiği yere yerel olarak göz attı

Bir uyarı alabilirsiniz: 'xyz' bağımlılıkları paket için mevcut değil, daha sonra bunları depodan yükleyin ve ardından 3-4. Adımları uygulayın.


4

Bu hatayı Ubuntu'daki R kurulum talimatlarını dikkatlice izleyerek çözdüm . Bu şunları içeriyordu:

  1. deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty//etc/apt/sources.list dosyama ekleniyor
  2. Koşu sudo apt-get update
  3. Koşu sudo apt-get install r-base-dev

Adım 1 için isterseniz benim University of Toronto yerine herhangi bir CRAN indirme aynası seçebilirsiniz.


Bu şekilde sorunumu çözdü fakat yine de (en yeni sürüme benim Ar güncellerim 3.02için 3.4). R'nizi güncellemek istiyorsanız, bu güzel bir yoldur.
Belter

4

repos=NULLKaynak koddan R paketini kurarken unutmayı unutmuşum . Bu durumda hata mesajı biraz yanıltıcıdır:package 'foobarbaz' is not available (for R version x.y.z)

Sorun R'nin sürümü değildi, reposparametreydi. install.packages('path/to/source/code/of/foobarbaz', type='source', repos=NULL)Bu vesileyle benim için çalışmış olanı yaptım .

Umarım bu birine yardımcı olur.


1
İnstall.packages ('foobarbaz', repos = NULL) komutunu denediğimde "install.packages (" pair ", repos = NULL") hatası alıyorum: type == "both" 'repos = NULL' ile kullanılamaz "
Ajay B

1
Yorum için teşekkürler - type="source"Bu paketi kaynak kodundan kurduğumdan bahsettiğim için parametreyi yazmayı unuttuğumu düşünüyorum , cevabı düzenleyeceğim.
Damjan

3

Proxy ayarlarını değiştirerek çözülebilecek aynı sorunu (Linux'ta) yaşadım. Proxy sunucusunun arkasındaysanız Sys.getenv("http_proxy")R içinde yapılandırmayı kontrol edin . Benim içinde ~/.Renvironaşağıdaki satırlarım vardı ( https://support.rstudio.com/hc/en-us/articles/200488488-Configuring-R-to-Use -an-HTTP-veya-HTTPS-Proxy ) neden oluyor:

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

Olarak değiştiriliyor

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

sorunu çözdü. Sen de aynısını yapabilirsin https.

Ben "paket xxx r sürümü xyz için mevcut değil" okuduğumda ilk düşünce değildi ...

HTH


2

Başka bir neden + çözüm

Şirketimin HPC'sinde RStudio'uma pkgdown yüklemeye çalışırken bu hatayla karşılaşıyorum ("paket XXX R sürümü XXX için mevcut değil") .

Görünen o ki, HPC'deki CRAN enstantane Ocak 2018'den (neredeyse 2 yaşında) ve aslında pkgdown yoktu. Bu, layman kullanıcıları için paketlerin kaynağını kontrol etmek için tasarlandı, ancak bir geliştirici olarak, çoğu durumda bunu şu şekilde değiştirebilirsiniz:

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

Ne yaptığınızı biliyorsanız ve sisteminizin CRAN'ında bulunmayan birden fazla pakete ihtiyacınız varsa, bunu projenizde ayarlayabilirsiniz .Rprofile.

Sadece bir paketse, belki sadece kullanın install.packages("package name", repos = "a newer CRAN than your company's archaic CRAN snapshot").


2
  1. Https://cran.r-project.org/src/contrib/Archive/ adresini ziyaret edin .
  2. Ctrl+ İle kurmak istediğiniz paketi bulunF
  3. Paket adını tıklayın
  4. Hangi sürümü yüklemek istediğinizi belirleyin
  5. RStudio'yu aç
  6. " install.packages("https://cran.r-project.org/src/contrib/Archive/[NAME OF PACKAGE]/[VERSION NUMBER].tar.gz", repos = NULL, type="source")" Yazın

Bazı durumlarda, kullanmak istediğiniz paketi kullanmak için önceden birkaç paket kurmanız gerekir.

Örneğin, ben 7 paketleri (yüklemek için gereken Sejong, hash, rJava, tau, RSQLite, devtools, stringr) yüklemek için KoNLPpaketi.

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

Kaynak olarak biokondüktörü kullandığımda ve daha sonra biocLite'ı çağırdığımda neredeyse her zaman benim için çalışıyor. Misal:

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

1
Bu sadece biyoiletken paketler için geçerlidir ve bu aynı zamanda biyoiletken paketlerin kurulması gereken yoldur.
Joris Meys

@JorisMeys Bana öyle geliyor ki şu ana kadar yüklemeye çalıştığım tüm paketler bu yöntemle mevcuttu, ama ben esas olarak biyoinformatik için R kullanıyorum.
bli

1
@JorisMeys Nasıl bilmiyorum, ama biocLitebu paketleri vinç üzerine şeffaf bir şekilde getirip kurabiliyorum. Sadece test ettim dplyr(önemliyse Xubuntu 16.04'te). Mümkün olduğunca karışıklık önlemek umuduyla, şimdi tüm paketleri "aynı şekilde" yüklemeye çalışıyorum (şu anda kullanıyor biocLite).
bli

2
@bli haklısın, düzeltilmiş duruyorum. İçindeki kod biocLite, paket için doğru depoları tanır ve ardından install.packages()asıl yükleme işlemini gerçekleştirir. Ama işe yaramıyor çünkü kullanıyorsunuz biocLite. İşe yarıyor çünkü install.packages()yapması gerekeni yapıyor. Kullanmak biocLite()ve install.packages()ek yük dışında bir fark yoktur ve biocLite()varsayılan olarak gerekli gördüğü diğer tüm paketleri de günceller. Bu yüzden hala install.packages()biyo iletken olmayan paketler için kullanmanızı tavsiye ederim .
Joris Meys

2
@bli uyumluluğu garanti etmez, her şeyi en son sürüme günceller (siz koymadıkça suppressUpdates = TRUE). Bu, çağırmak update.packages()ve sonra aynıdır install.packages(). Çünkü tam anlamıyla biocLitekaputun altında olan şey budur .
Joris Meys

0

Docker görüntüsünü kullanarak eski bir R sürümünü test etmeye çalışırken başka bir küçük ekleme rocker/r-ver:3.1.0

  1. Varsayılan reposayar şudur MRANve bu çok fazla paket alamaz.
  2. R'nin bu sürümü yok https, bu nedenle, örneğin: çalışıyor install.packages("knitr", repos = "https://cran.rstudio.com")gibi görünüyor.

0

@Richie Cotton'un mükemmel çözümünden 6 numaralı pakette güncel olmayan bir varyasyon buldum .

Bazen paket bakıcısı desteklemediği R sürüm boşluklarını gösterebilir. Bu durumda, en az iki seçeneğiniz vardır: 1) R sürümünüzü, hedef paketin zaten desteklediği bir sonrakine yükseltin, 2) R sürümünüzle çalışacak en eski sürümlerden en son sürümü yükleyin.

Somut bir örnek: rattleveri madenciliği için paketin en son CRAN sürümü , 5.3.0, R sürümü 3.4'ü desteklemez, çünkü 5.2.0 (R> = 2.13.0) ve 5.3.0 (R.0 = R paket sürümleri arasında büyük bir güncelleme yapmıştır. > = 3.5).

Böyle bir durumda, R kurulumunu yükseltmenin alternatifi daha önce bahsedilen çözümdür. Paketi devtoolsyoksa (paketi içerir remotes) yükleyin ve ardından geçerli R'nizde çalışacak olan belirli bir sürümü yükleyin. Bu bilgileri, belirli paket arşivleri için CRAN sayfasında arayabilirsiniz.

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

0

Benim durumumda çözüm R'yi basitçe yükseltmekti.


-1

Belirtildiği gibi burada (Fransızca) Eğer bilgisayarınızda yüklü R iki sürümü yüklü olduğunda, bu durum oluşabilir. En eskisini kaldırın, ardından paket kurulumunuzu tekrar deneyin! Benim için iyi çalıştı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.