2013-05-07 22 views
17

Paket kaynağına doğrudan bir URL'den paket yüklemek istiyorum. İnsanların paketin piyasaya sürülmemiş bir versiyonunu test etmelerini kolaylaştıracak ve yaygın olarak (veya kalıcı olarak) mevcut olmamasını istiyorum. This benzer bir sorudur, ancak farklıdır, çünkü yalnızca genel URL'lerin değil yerel dosyalardan nasıl yükleneceğini açıklar.Paket kaynağı için doğrudan URL'den bir R paketi yükleyin

bu soruya uğruna ben boot paket kaynağına bir bağlantı kullanır. ?install.packages Okuma özellikle pkgs Tartışmanın açıklama önerir: URL paket adıyla değil, konumu olarak yorumlanır edildiğini öne süren

Warning in install.packages : 
    installation of package 
    ‘http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz’ 
    had non-zero exit status 

:

install.packages(
    "http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz", 
    repos = NULL, type = "source" 
) 

Ancak bu başarısız olur.

download.file(
    "http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz", 
    "boot" 
) 
install.packages("boot", repos = NULL, type = "source") 

Ama sadece install.packages tek bir çağrı ile bunu tercih edeceğini;: Biz şu iki aşamalı prosedür ile bu çalışabilirsiniz ve zaten install.packages dosya indirme yeteneğine sahip olduğu için bunun mümkün olabileceğini hissediyorum.

+0

Paket orijinal aramada bulunamadı çünkü orada değil. Bu dizinde 'boot_1.3-9.tar.gz' dir. –

+0

@ SimonO101 özür dilerim ki bu, bir soru yazarken hata yaptım. Düzeltmek maalesef davranışını değiştirmez. – orizon

+1

Neden kaynak paketini depo olarak depoladığınız dizini kurmuyorsunuz? [İşte bir örnek] (http://stackoverflow.com/questions/2905650/creating-a-local-r-package-repository), büyük ihtimalle "type =" source "' türünü değiştirmek isteyebilirsiniz. = "win.binary" ' –

cevap

16

install.packages şimdi 3.1.1 itibariyle http URL'sini (https değil henüz) ile çalışır. Bu benim için çalışıyor:

install.packages("http://www.lepem.ufc.br/jaa/colorout_1.1-0.tar.gz", repos=NULL) 

Edit: R 3.2.0 itibariyle https libcurl yoluyla yerleşik olduğu.

install.packages("https://github.com/hadley/devtools/archive/v1.7.0.tar.gz", 
       repos=NULL, method="libcurl") 

Edit: Bu şimdi çalışmalıdır R 3.2.2 itibariyle https libcurl desteği varsayarak varsayılan seçenekler içinde derlendi ile çalışmalıdır

Düzenleme 2016/04/20:. Orada olabilir bazı sorunlar S3 üzerinde barındırılan paketlerin karşıdan yüklenmesi, ancak method='wget' şimdilik bunlar için çalışıyor gibi görünüyor.

+0

Yüklendiğinde, bu yöntem '403 Yasak' hatasıyla başarısız oldu.packages() '' download.file() 'kullanarak dosyayı indirmeye çalıştı. Libcurl desteğinin derlendiğinden değil, @G tarafından önerilen 'devtools :: install_url()' dan emin olun. Grothendieck sorunsuz çalışıyor. –

+0

Bu bir kimlik doğrulama sorunu gibi geliyor. Hangi URL'yi indirmeye çalışıyorsunuz? –

+0

Evet, öyle görünüyor ama farklı bir URL için (belki dosyanın gerçekten barındırıldığı yer). Install.packages ("https://bitbucket.org/kleinstein/logminer/downloads/pclogit_0.2.tar.gz") 'ile devtools :: install.packages (" https://bitbucket.org/kleinstein "arasındaki karşılaştırmaları karşılaştır /logminer/downloads/pclogit_0.2.tar.gz ")' –

2

Neden kaynak paketini depo olarak depoladığınız dizini kurmuyorsunuz?

Here is an example (Bu bağlantıda type="win.binary" için 'u değiştirmek isteyebilirsiniz).

+0

Bu, sorunumu çözüyor. Paketin bir paketin dışında indirilip kurulabileceğini umuyordum, ancak bu belgenin mümkün olmadığını düşündüğümden emin olmak için cevabınızı kabul ettim. – orizon

9

Devolols paketindeki ?install_url konusuna bakın.

+0

Teşekkürler. Bu benim problemimi doğrudan çözüyor. – orizon

İlgili konular