Bagaimana cara Menginstal devtools R dan mendigitalkan?


8

Saya perlu devtools karena saya perlu fungsi install_github untuk menginstal non-CRAN paket mendigitalkan sini . Saya menginstal Roleh

sudo apt-get install r-cran-robustbase

Saya tidak langsung menginstal paket R, seperti yang diusulkan terdon, tetapi saya bisa memperbaiki izin:

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

yang menurut saya adalah pengaturan default. Saya kemudian harus melakukan sebagai jawaban rcs 'mengusulkan, untuk berhasil menginstal devtoolsdan tpoisot/digitizetetapi hanya dengan

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')

Output dari perintah terakhir bisa

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

Lakukan install_github('tpoisot/digitize', force = TRUE)tetapi Anda mungkin mendapatkannya

...
'/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)

Saya tidak dapat menemukan cara untuk menginstal digitalisasi tanpa sudo. Begitu juga sudo R, dan ulangi hal yang sama dan Anda dapatkan

...
'/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)

Tambahkan masike grup yang ada staffuntuk bekerja tanpa sudodi R; yang Anda butuhkan juga dalam instalasi baru

sudo usermod -a -G staff masi

Tes instalasi

  1. Saya ikuti panduannya di sini . Aku mulai Rdi $HOME/Pictures/tanpa sudodan menggunakan gambar tes mereka di sini .

  2. Pilih empat titik di sumbu dengan mouse cal = digitize::ReadAndCal('Rintro-snail1.jpg')

masukkan deskripsi gambar di sini

  1. Lakukan data.points = digitize::DigitData(col = 'red')dan pilih titik secara manual yang merupakan titik data Anda

masukkan deskripsi gambar di sini

  1. Saya menutup jendela Plot dengan melakukan klik kedua.

  2. Lakukan df = digitize::Calibrate(data.points, cal, 0.1, 0.4, 0.0, 0.6)dan lihatdf

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

    Perbuatan 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
    

Detail Instalasi

  • Di dalam Rdan di luarsudo

    > .Library
    [1] "/usr/lib/R/library"
    > > .libPaths()
    [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
    [3] "/usr/lib/R/library"  
    
  • Perintah ls /usr/lib/R/library/yang tidak tercantum devtools. Mengapa?

    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
    
  • Perintah 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
    
  • Perintah 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
    
  • Perintah 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) dimuat

Alat bantu diferensial

Alasan untuk bug sebelumnya

  • Tidak ada sistem bersih: sistem yang ditingkatkan dari 14.04, 15.10, dll.
  • Izin / pemilik yang dikacaukan karena hal sebelumnya.
  • Kesalahan sendiri dalam proses.
  • Tidak ada cadangan jika terjadi kegagalan.
  • ...
  • dokumen yang hilang

Sistem: Ubuntu 16.04 64 bit dalam instalasi bersih
Perangkat Keras: Dell PC 2013, Macbook Air 2013-mid, ...


Saya tidak dapat mereproduksi ini di sistem Arch saya. Menginstal devtoolsmelalui sudo R, biarkan saya lari library(devtools)dari sesi R non-sudo. Silakan tambahkan output i) .Libraryjalankan dari Rsesi normal dan ii) dari sudo Rdan iii) periksa devtoolssubdirektori di jalur yang disediakan oleh perintah-perintah itu. Di sistem saya, itu di /usr/lib64/R/library/devtools/.
terdon

OK, apakah ada devtoolssubdirektori di dalamnya /usr/lib/R/library?
terdon

Dugaan saya adalah bahwa instalasi sebenarnya tidak berhasil saat itu. Coba lagi, dan perhatikan outputnya. Apakah Anda benar-benar dapat menjalankan library(devtools)dan berhasil memuat perpustakaan?
terdon

OK, saya pikir saya tahu apa masalahnya. Satu hal lagi, apa yang Anda dapatkan jika Anda lari .libPaths()dari R?
terdon

1
Argh, oke, dan apakah Anda punya subdir devtools /usr/local/lib/R/site-library? Anda mungkin melakukannya. Jika demikian, lihat jawaban saya yang baru diperbarui.
terdon

Jawaban:


11

httrmengimpor opensslpaket yang diperlukan sebagai persyaratan sistem libssl-dev( sudo apt install libssl-dev)

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

The curlpaket kebutuhan seperti kebutuhan sistem libcurl4-openssl-dev:

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

Jadi, untuk menginstal Anda harus menjalankan:

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

Kemudian mulai shell R dengan sudo Rdan:

install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install_github('tpoisot/digitize')

Saya menerima jawaban ini karena itu adalah permulaan yang bagus. Setelah devtools, Anda perlu install.packages('readbitmap'), silakan lihat isi untuk versi final.
Léo Léopold Hertz 준영

2

Sebagai aturan umum, Anda tidak hanya mengubah izin direktori sistem! Untuk itulah akses root. Masukkan izin kembali seperti yang Anda temukan dan jalankan waktu berikutnya sudo Rdan install.packagesdari shell R, root yang dihasilkan.

Sekarang, alasan Anda tidak dapat menginstal ada di sana di output yang Anda tunjukkan:

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

Ternyata, seperti yang dijelaskan oleh rcs , di Ubuntu, Anda perlu menginstal libssl-devdan libcurl4-openssl-devterlebih dahulu.


Masalah berikutnya adalah bahwa instalasi R pengguna root Anda memiliki /usr/local/lib/R/site-librarysebagai direktori pertama di output .libPathsdan yang tidak di jalur pengguna biasa Anda. Karena ini adalah entri pertama untuk root, di situlah perpustakaan Anda dipasang:

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

Jadi, solusi sederhana adalah membuat file bernama ~/.Rprofiledan menambahkan baris ini ke dalamnya:

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

Atau, atau tambahan, Anda bisa memasukkan garis seperti

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

Itu akan membiarkan Anda menginstal perpustakaan ke direktori /home/masi/Rlibs (memilih nama apa pun yang Anda inginkan) di masa depan dan karenanya menghindari kebutuhan sudo R.


Atau, Anda dapat mengatur variabel lingkungan R_LIBS_USERke /usr/local/lib/R/site-library/( /home/masi/Rlibsatau di mana pun pustaka Anda diinstal). Tambahkan saja baris ini ke ~/.profile:

R_LIBS_USER=/usr/local/lib/R/site-library/

@Masi apakah Anda mencoba saran saya di atas? Anda dapat menguji bahwa ini adalah masalah dengan menjalankan R_LIBS_USER="/usr/local/lib/R/site-library/" Rdan kemudian, dalam R, jalankan library(devtools).
terdon

Jika Anda mengeksekusi .libPaths("/home/masi/Rlibs")setelah .libPaths("/usr/local/lib/R/site-library/")itu akan menggantikan pengaturan awal. Jika Anda ingin menambahkan direktori perpustakaan itu harus.libPaths(c(.libPaths(), "/home/masi/Rlibs") )
42-
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.