Wie installiere ich die devtools von R und digitalisiere?

8

Ich benötige devtools, da ich die Funktion install_github benötige , um das Nicht-CRAN-Paket digitalize hier zu installieren . Ich installierte Rdurch

sudo apt-get install r-cran-robustbase

Ich habe Rs Pakete nicht sofort installiert, wie Terdons Antwort vorschlägt, aber ich konnte die Berechtigungen korrigieren:

sudo chmod 755 /usr/lib/R/site-library/

was ich denke ist die Standardeinstellung. Ich musste dann tun, was die Antwort von rcs vorschlägt, um erfolgreich zu installieren devtoolsund tpoisot/digitizeaber nur mit

sudo apt-get install libssl-dev
sudo apt-get install libcurl4-openssl-dev
R
install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install.packages('readbitmap')
install_github('tpoisot/digitize')

Die Ausgabe des letzten Befehls kann sein

Skipping install for github remote, the SHA1 (d16e28b9) has not changed since last install.
  Use `force = TRUE` to force installation

Tun install_github('tpoisot/digitize', force = TRUE)Sie, aber Sie können bekommen

...
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/tmp/RtmpX8eOLX/devtools57475d25a113/tpoisot-digitize-d16e28b'  \
  --library='/usr/local/lib/R/site-library' --install-tests 

Error: ERROR: no permission to install to directory ‘/usr/local/lib/R/site-library’
Error: Command failed (1)

Ich konnte keinen Weg finden, ohne zu digitalisieren sudo. Also mach es sudo Rund wiederhole dasselbe und du bekommst

...
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/tmp/RtmpAlAT4e/devtools57e864e8c490/tpoisot-digitize-d16e28b'  \
  --library='/usr/local/lib/R/site-library' --install-tests 

* installing *source* package ‘digitize’ ...
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (digitize)

masiZur vorhandenen Gruppe hinzufügen , staffum ohne sudoin zu arbeiten R; was Sie auch in einer Neuinstallation brauchen

sudo usermod -a -G staff masi

Tests der Installation

  1. Ich folge der Anleitung hier . Ich beginne Rin $HOME/Pictures/ohne sudound nutze ihr Testbild hier .

  2. Wählen Sie mit der Maus vier Punkte in den Achsen aus cal = digitize::ReadAndCal('Rintro-snail1.jpg')

Geben Sie hier die Bildbeschreibung ein

  1. Führen data.points = digitize::DigitData(col = 'red')Sie manuell Punkte aus, die Ihre Datenpunkte sind

Geben Sie hier die Bildbeschreibung ein

  1. Ich schließe das Plot-Fenster mit einem zweiten Klick.

  2. Tun df = digitize::Calibrate(data.points, cal, 0.1, 0.4, 0.0, 0.6)und sehendf

           x  y
    1  71.50 NA
    2  65.65 NA
    ...
    24 26.80 NA
    

    Tun head(df)

          x  y
    1 71.50 NA
    2 65.65 NA
    3 64.60 NA
    4 60.85 NA
    5 59.05 NA
    6 58.15 NA
    

Installationsdetails

  • In Rund ohnesudo

    > .Library
    [1] "/usr/lib/R/library"
    > > .libPaths()
    [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
    [3] "/usr/lib/R/library"  
    
  • Befehl, ls /usr/lib/R/library/der nicht aufgelistet wird devtools. Warum?

    base       compiler   grid        methods   rpart    survival
    boot       datasets   KernSmooth  mgcv      spatial  tcltk
    class      foreign    lattice     nlme      splines  tools
    cluster    graphics   MASS        nnet      stats    translations
    codetools  grDevices  Matrix      parallel  stats4   utils
    
  • Befehl ls -la /usr/local/lib/R/

    total 12
    drwxrwsr-x 3 root staff 4096 touko 19 22:25 .
    drwxr-xr-x 5 root root  4096 touko 19 22:25 ..
    drwxrwsr-x 2 root staff 4096 touko 19 22:25 site-library
    
  • Befehl ls -la /usr/local/lib/

    total 20
    drwxr-xr-x  5 root root  4096 touko 19 22:25 .
    drwxr-xr-x 14 root root  4096 touko 19 22:13 ..
    drwxrwsr-x  4 root staff 4096 huhti 21 01:13 python2.7
    drwxrwsr-x  3 root staff 4096 huhti 21 01:08 python3.5
    drwxrwsr-x  3 root staff 4096 touko 19 22:25 R
    
  • Befehl R_LIBS_USER="/usr/local/lib/R/site-library/" R

     R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
     Copyright (C) 2015 The R Foundation for Statistical Computing
     Platform: x86_64-pc-linux-gnu (64-bit)
     ...
    
  • library(devtools) wird geladen

Differentialwerkzeuge

Gründe für frühere Fehler

  • Kein sauberes System: Systeme, die von 14.04, 15.10 usw. aktualisiert wurden.
  • Berechtigungen / Eigentümer wegen der vorherigen Sache durcheinander gebracht.
  • Eigene Fehler im Prozess.
  • Keine Backups im Fehlerfall.
  • ...
  • fehlende Dokumente

System: Ubuntu 16.04 64-Bit in einer sauberen Installation
Hardware: Dell PC 2013, Macbook Air 2013-Mitte, ...

Léo Léopold Hertz 준영
quelle
Ich kann dies auf meinem Arch-System nicht reproduzieren. Lassen Sie mich bei der Installation devtoolsüber eine Nicht-Sudo-R-Sitzung sudo Rlaufen library(devtools). Fügen Sie die Ausgabe von i) .LibraryAusführen aus einer normalen RSitzung und ii) Aus sudo Rund iii) Suchen nach einem devtoolsUnterverzeichnis in dem von diesen Befehlen bereitgestellten Pfad hinzu. Auf meinem System ist es bei /usr/lib64/R/library/devtools/.
Terdon
OK, gibt es ein devtoolsUnterverzeichnis in /usr/lib/R/library?
Terdon
Ich vermute, dass die Installation damals nicht wirklich erfolgreich war. Versuchen Sie es erneut und achten Sie genau auf die Ausgabe. Konnten Sie die Bibliothek wirklich ausführen library(devtools)und erfolgreich laden?
Terdon
OK, ich glaube ich weiß was das Problem ist. Noch etwas, was bekommst du, wenn du .libPaths()vor R davonläufst?
Terdon
1
Argh, OK, und hast du ein devtools-Unterverzeichnis in /usr/local/lib/R/site-library? Das tust du wahrscheinlich. Wenn ja, siehe meine (neu) aktualisierte Antwort.
Terdon

Antworten:

11

httrimportiert das opensslPaket, das als Systemanforderung benötigt wird libssl-dev( sudo apt install libssl-dev)

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because openssl was not found. Try installing:
 * deb: libssl-dev (Debian, Ubuntu, etc)
...

Das curlPaket benötigt als Systemanforderung libcurl4-openssl-dev:

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because libcurl was not found. Try installing:
 * deb: libcurl4-openssl-dev (Debian, Ubuntu, etc)
...

Um zu installieren, müssen Sie Folgendes ausführen:

sudo apt-get install libssl-dev
sudo apt-get install libcurl4-openssl-dev

Starten Sie dann eine R-Shell mit sudo Rund:

install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install_github('tpoisot/digitize')
rcs
quelle
Ich akzeptiere diese Antwort, weil es ein guter Anfang war. Nach dem devtools, was Sie brauchen install.packages('readbitmap'), bitte auf den Körper für die endgültige Version sehen.
Léo Léopold Hertz 준영
2

In der Regel ändern Sie nicht nur die Berechtigungen von Systemverzeichnissen! Dafür ist Root-Zugriff gedacht. Legen Sie die Berechtigungen den Weg zurück Sie sie und das nächste Mal laufen gefunden sudo Rund install.packagesaus dem resultierenden, Wurzel R Schale.

Der Grund, warum Sie nicht installieren können, ist genau dort in der angezeigten Ausgabe:

ERROR: dependencies ‘httr’, ‘git2r’ are not available for package ‘devtools’

Anscheinend müssen Sie, wie von rcs erklärt , unter Ubuntu zuerst installieren libssl-devund installieren libcurl4-openssl-dev.


Das nächste Problem ist, dass die R-Installation Ihres Root-Benutzers /usr/local/lib/R/site-librarydas erste Verzeichnis in der Ausgabe von ist .libPathsund sich nicht in den Pfaden Ihres regulären Benutzers befindet. Da es der erste Eintrag für root ist, wurde dort Ihre Bibliothek installiert:

 Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

Eine einfache Lösung besteht darin, eine Datei mit dem Namen zu erstellen ~/.Rprofileund diese Zeile hinzuzufügen:

.libPaths("/usr/local/lib/R/site-library/")

Alternativ oder zusätzlich können Sie eine Zeile wie einfügen

   .libPaths("/home/masi/Rlibs")

Auf diese Weise können Sie /home/masi/Rlibs in Zukunft Bibliotheken in dem Verzeichnis installieren (wählen Sie den gewünschten Namen) und vermeiden so die Notwendigkeit sudo R.


Alternativ können Sie die Umgebungsvariable R_LIBS_USERauf /usr/local/lib/R/site-library/( /home/masi/Rlibsoder wo auch immer Ihre Bibliotheken installiert werden) setzen. Fügen Sie einfach diese Zeile zu Ihrem hinzu ~/.profile:

R_LIBS_USER=/usr/local/lib/R/site-library/
terdon
quelle
@Masi hast du meine Vorschläge oben ausprobiert? Sie können testen, ob dies das Problem ist, indem Sie R_LIBS_USER="/usr/local/lib/R/site-library/" Rausführen und dann in R ausführen library(devtools).
Terdon
Wenn Sie ausführen , .libPaths("/home/masi/Rlibs")nachdem .libPaths("/usr/local/lib/R/site-library/")das wird die ursprüngliche Einstellung ersetzen. Wenn Sie ein Bibliotheksverzeichnis hinzufügen möchten, sollte es.libPaths(c(.libPaths(), "/home/masi/Rlibs") )
42