Pecan: ์Šคํฌ๋ฆฝํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์ •๋ฆฌ

์— ๋งŒ๋“  2019๋…„ 10์›” 23์ผ  ยท  9์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: PecanProject/pecan

[ํ† ๋ก ๊ณผ ๋” ์ž˜ ์–ด์šธ๋ฆฌ๋„๋ก ํŽธ์ง‘๋œ ์„ค๋ช…]

install.dependencies.R์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ณ„์† ์‚ฌ์šฉํ•˜๋ฉด ํ˜ผ๋ž€ ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ ๋‹ค๋ฅธ ์„ค์น˜ ๊ด€๋ จ ์Šคํฌ๋ฆฝํŠธ์™€ ํ•ด๋‹น ๋ฌธ์„œ๋ฅผ ๊ฒ€ํ† ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ถˆํ–‰ํžˆ๋„ ๋‹จ์ˆœํžˆ make clean && make ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค์†Œ ์‹œ์Šคํ…œ/๋จธ์‹ ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋‹ค์Œ์€ ๋‚ด๊ฐ€ ๋”ฐ๋ž๋˜ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ์— ๊ฐ€์žฅ ์ข‹์€ ์žฅ์†Œ๊ฐ€ ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋ฏธ๋ž˜์— ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

~/R/library ์‚ญ์ œ, ๋กœ๊ทธ์•„์›ƒ, ๋กœ๊ทธ์ธ, R ๊ฒฝ๋กœ๊ฐ€ ์—ฌ์ „ํžˆ ๋‚ด ๊ฐœ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ™œ์„ฑํ™”๋œ ๋ชจ๋“ˆ:

$ module load gcc/5.4.0  gfortran/5.4.0  json-c/main  perl/5.22.1  git/2.10.0-rc0  git-lfs/1.3.1  python/3.6.2  udunits/2.2.25  proj/5.2.0  libtiff/4.0.8  geotiff/1.4.2  libkml/devel  geos/3.6.3  gdal/2.4.2  libxml2/2.9.7  jags/4.3.0  maui/3.3.1  redland/1.0.17 ImageMagick/7.0.8-19  hdf5/1.8.19-gcc540  netcdf/4.4.1.1-gnu540

devtools ์„ค์น˜๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ดํŠธ ๋ฌด๋ฆฌ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ž˜๋ชป๋œ ๋‚ด๋ถ€๋ฅผ ์œ„ํ•ด ์˜์กดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์—…๋ฐ์ดํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด devtools์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

> update.packages(checkBuilt=TRUE, ask=FALSE)

๊ทธ๋Ÿฐ ๋‹ค์Œ devtools๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•ด ๋ณด์‹ญ์‹œ์˜ค.

> install.packages("devtools")

ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค! ๋‹ค์Œ์€ S. Serbin์ด ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋Š” rgdal ๋ฐ sf ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์ž๋™ ์ข…์†์„ฑ ํ•ด๊ฒฐ๊ณผ ํ•จ๊ป˜ ์„ค์น˜๋œ ๊ฒฝ์šฐ. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค
๊ฐ€์žฅ ์ตœ๊ทผ์˜ rgdal ๋กœ ์ตœ์‹  ๋ฒ„์ „์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

$ cd ~/downloads && wget https://cran.r-project.org/src/contrib/Archive/rgdal/rgdal_1.4-4.tar.gz

๋ช‡ ๊ฐ€์ง€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ณ  R์„ ์‹œ์ž‘ํ•˜๊ณ  ์†Œ์Šค์—์„œ rgdal ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

$ CXX="g++ -std=gnu++11" R

> install.packages('~/downloads/rgdal_1.4-4.tar.gz', repos = NULL, type="source", configure.args=c('--with-proj-include=/data/software/proj/5.2.0/include','--with-proj-lib=/data/software/proj/5.2.0/lib'))

๋กœ๊ทธ์•„์›ƒํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค(๋ชจ๋“ˆ ๋กœ๋“œ๋ฅผ ๊ธฐ์–ตํ•˜์„ธ์š”!!). ์ด๊ฒƒ์€ proj_api.h ์ฐพ๋Š” ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์„ค์น˜
sf :

$ CXX="g++ -std=gnu++11" R

> install.packages('sf', configure.args=c('--with-proj-include=/data/software/proj/5.2.0/include','--with-proj-lib=/data/software/proj/5.2.0/lib', '--with-proj=/data/software/proj/5.2.0/'))

์ด์ œ ๋ณต์ œ๋œ pecan ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  make ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. postgres ๋ฐ redland ๋Œ€ํ•œ ํ—ค๋” ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฐพ๊ธฐ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์ฃผ๋ณ€์„ ํŒŒํ—ค์นœ ํ›„ ๋งˆ์นจ๋‚ด env ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
R์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—:

$ INCLUDE_DIR="/data/software/postgresql/9.3.5/include" LIB_DIR="/data/software/postgresql/9.3.5/lib" R
> install.packages("RPostgres")

๊ทธ๋ฆฌ๊ณ 

$ PKG_CONFIG_PATH="/data/software/redland/1.0.17/lib/pkgconfig:/data/software/raptor/2.0.15/lib/pkgconfig:/data/software/rasqal/0.9.33/lib/pkgconfig" R

> install.packages("redland")

๊ทธ๋Ÿฐ ๋‹ค์Œ ํ”ผ์นธ์˜ make ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. (1์‹œ๊ฐ„์ด ํ›จ์”ฌ ๋„˜์€ ํ›„!) ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!
๋‚˜๋Š” ๋นˆ ~/R/library ๋กœ ์‹œ์ž‘ํ–ˆ๊ณ  ๊ฒฐ๊ตญ ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

$ ls ~/R/library
abind
ape
askpass
assertthat
backports
base64enc
BayesianTools
BH
bibtex
binaryLogic
BioCro
bit
bit64
bitops
blob
boot
brew
bridgesampling
Brobdingnag
broom
callr
car
carData
CDM
cellranger
class
classInt
cli
clipr
clisymbols
cluster
coda
codetools
colorspace
commonmark
covr
crayon
crosstalk
crul
curl
dataone
datapack
data.table
DBI
dbplyr
desc
devtools
DHARMa
digest
doParallel
dotCall64
dplyr
DT
e1071
ellipse
ellipsis
emulator
evaluate
expm
fansi
fastmap
fauxpas
fields
forcats
foreach
foreign
fs
furrr
future
gap
generics
geometry
geonames
getPass
ggmap
ggplot2
gh
git2r
glmmTMB
globals
glue
gmm
gridExtra
gtable
hash
haven
hdf5r
here
highr
hms
hoardr
htmltools
htmlwidgets
httpcode
httpuv
httr
IDPmisc
igraph
ini
isdparser
iterators
jpeg
jsonlite
KernSmooth
knitr
labeling
later
lazyeval
lifecycle
linkages
linprog
listenv
lme4
lmtest
lpSolve
lubridate
Maeswrap
magic
magrittr
manipulateWidget
maps
maptools
markdown
MASS
Matrix
MatrixModels
mclust
mcmc
MCMCpack
memoise
mgcv
microbenchmark
mime
miniUI
minpack.lm
minqa
mlegp
mockery
modelr
MODISTools
msm
munsell
mvnfast
mvtnorm
ncdf4
ncdf4.helpers
nimble
nlme
nloptr
nneo
numDeriv
openssl
openxlsx
parsedate
pbapply
pbkrtest
pbv
PCICt
PEcAn.all
PEcAn.allometry
PEcAn.assim.batch
PEcAn.assim.sequential
PEcAn.BASGRA
PEcAn.benchmark
PEcAn.BIOCRO
PEcAn.CLM45
PEcAn.DALEC
PEcAn.data.atmosphere
PEcAn.data.hydrology
PEcAn.data.land
PEcAn.data.remote
PEcAn.DB
PEcAn.dvmdostem
PEcAn.ED2
PEcAn.emulator
PEcAn.FATES
PEcAn.GDAY
PEcAn.JULES
PEcAn.LINKAGES
PEcAn.logger
PEcAn.LPJGUESS
PEcAn.MA
PEcAn.MAAT
PEcAn.MAESPA
PEcAn.ModelName
PEcAn.photosynthesis
PEcAn.PRELES
PEcAn.priors
PEcAn.qaqc
PEcAn.remote
PEcAnRTM
PEcAn.settings
PEcAn.SIPNET
PEcAn.uncertainty
PEcAn.utils
PEcAn.visualization
PEcAn.workflow
pillar
pkgbuild
pkgconfig
pkgload
plogr
plotrix
plyr
png
polycor
praise
prettyunits
processx
progress
promises
proxy
ps
purrr
pwr
qrnn
quantreg
R6
randtoolbox
rappdirs
raster
rcmdcheck
RColorBrewer
Rcpp
RcppArmadillo
RcppEigen
RcppProgress
rcrossref
RCurl
readr
readxl
REddyProc
redland
rematch
rematch2
remotes
reprex
reshape
reshape2
reticulate
rex
rgdal
rgl
RgoogleMaps
rio
rjags
rjson
rlang
rmarkdown
rngWELL
rnoaa
roxygen2
rpart
RPostgres
RPostgreSQL
Rpreles
rprojroot
RSQLite
rstudioapi
rversions
rvest
sandwich
scales
selectr
sessioninfo
sf
sfsmisc
shiny
SimilarityMeasures
sirt
solartime
sourcetools
sp
spam
spaMM
SparseM
stringi
stringr
survival
sys
TAM
testthat
tibble
tictoc
tidyr
tidyselect
tidyverse
tinytex
TMB
tmvtnorm
triebeard
truncnorm
udunits2
units
urltools
usethis
utf8
uuid
vctrs
viridisLite
webshot
whisker
withr
xfun
XML
xml2
xopen
xtable
xts
yaml
zeallot
zip
zoo

๋ชจ๋“  9 ๋Œ“๊ธ€

์˜ค ์ข‹์•„, ๋‚œ ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ! ๋‚˜๋Š” ์‹ค์ œ๋กœ ์ง€๊ธˆ ์ด๊ฒƒ๊ณผ ์”จ๋ฆ„ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„์— pecan์„ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ํ”ผ์นธ์˜ ์ƒˆ ๋ณต์‚ฌ๋ณธ์„ ๋ณต์ œํ•˜๊ณ  SHA:82d217์„ ์ฒดํฌ์•„์›ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฒฐ๊ณผ์™€ ํ•จ๊ป˜ pecan/scripts ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋‹ค์–‘ํ•œ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹œ๋„ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • Rscript install_deps.R : purrrs ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจ
  • Rscript dependencies.R : ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจ(ํŒจํ‚ค์ง€๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ purrrs ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
  • Rscript generate_dependencies.R : ํŒจํ‚ค์ง€ purrr์„ ์ฐพ์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจ
  • Rscript install.dependencies.R : ๊ฒฐ๊ตญ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํŒจํ•  ๋•Œ๊นŒ์ง€ ๋งŽ์€ ๊ฒƒ์„ ์„ค์น˜ํ•˜๋ฉด์„œ ์˜ค๋žœ ์‹œ๊ฐ„ ๋™์•ˆ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
ERROR: dependency โ€˜htmlTableโ€™ is not available for package โ€˜Hmiscโ€™
* removing โ€˜/data/home/tcarman/R/library/Hmiscโ€™
ERROR: dependency โ€˜rglโ€™ is not available for package โ€˜Maeswrapโ€™
* removing โ€˜/data/home/tcarman/R/library/Maeswrapโ€™
ERROR: dependencies โ€˜usethisโ€™, โ€˜DTโ€™, โ€˜memoiseโ€™, โ€˜rcmdcheckโ€™ are not available for package โ€˜devtoolsโ€™
* removing โ€˜/data/home/tcarman/R/library/devtoolsโ€™

The downloaded source packages are in
  โ€˜/tmp/Rtmpi2tei7/downloaded_packagesโ€™
There were 16 warnings (use warnings() to see them)
Error in loadNamespace(name) : there is no package called โ€˜devtoolsโ€™
Calls: :: ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted

์Šคํฌ๋ฆฝํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์„ ํ˜ธ๋˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋Œ€๋ถ€๋ถ„์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  run make ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ make๋Š” devtools๋ฅผ ์ฐพ๋Š” ๋ฐ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค: Error in loadNamespace(name) : there is no package called โ€˜devtoolsโ€™

์˜ˆ, devtools๋Š” make๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ์†Œ์ˆ˜์˜ ์ง€์› ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์ˆ˜์ •/์ผ๋ฐ˜ํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ ์•„๋ฌด๋„ ๊ทธ๊ฒƒ์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

@tobeycarman Make๋Š” ์„ค์น˜ ์ดˆ๊ธฐ์— ํ•„์š”ํ•œ ๊ฒฝ์šฐ devtools make clean && make install ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?

๋ถˆํ–‰ํžˆ๋„ ๋‹จ์ˆœํžˆ make clean && make ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค์†Œ ์‹œ์Šคํ…œ/๋จธ์‹ ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋‹ค์Œ์€ ๋‚ด๊ฐ€ ๋”ฐ๋ž๋˜ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ์— ๊ฐ€์žฅ ์ข‹์€ ์žฅ์†Œ๊ฐ€ ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋ฏธ๋ž˜์— ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

~/R/library ์‚ญ์ œ, ๋กœ๊ทธ์•„์›ƒ, ๋กœ๊ทธ์ธ, R ๊ฒฝ๋กœ๊ฐ€ ์—ฌ์ „ํžˆ ๋‚ด ๊ฐœ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ™œ์„ฑํ™”๋œ ๋ชจ๋“ˆ:

$ module load gcc/5.4.0  gfortran/5.4.0  json-c/main  perl/5.22.1  git/2.10.0-rc0  git-lfs/1.3.1  python/3.6.2  udunits/2.2.25  proj/5.2.0  libtiff/4.0.8  geotiff/1.4.2  libkml/devel  geos/3.6.3  gdal/2.4.2  libxml2/2.9.7  jags/4.3.0  maui/3.3.1  redland/1.0.17 ImageMagick/7.0.8-19  hdf5/1.8.19-gcc540  netcdf/4.4.1.1-gnu540

devtools ์„ค์น˜๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ดํŠธ ๋ฌด๋ฆฌ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ž˜๋ชป๋œ ๋‚ด๋ถ€๋ฅผ ์œ„ํ•ด ์˜์กดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์—…๋ฐ์ดํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด devtools์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

> update.packages(checkBuilt=TRUE, ask=FALSE)

๊ทธ๋Ÿฐ ๋‹ค์Œ devtools๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•ด ๋ณด์‹ญ์‹œ์˜ค.

> install.packages("devtools")

ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค! ๋‹ค์Œ์€ S. Serbin์ด ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋Š” rgdal ๋ฐ sf ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์ž๋™ ์ข…์†์„ฑ ํ•ด๊ฒฐ๊ณผ ํ•จ๊ป˜ ์„ค์น˜๋œ ๊ฒฝ์šฐ. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค
๊ฐ€์žฅ ์ตœ๊ทผ์˜ rgdal ๋กœ ์ตœ์‹  ๋ฒ„์ „์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

$ cd ~/downloads && wget https://cran.r-project.org/src/contrib/Archive/rgdal/rgdal_1.4-4.tar.gz

๋ช‡ ๊ฐ€์ง€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ณ  R์„ ์‹œ์ž‘ํ•˜๊ณ  ์†Œ์Šค์—์„œ rgdal ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

$ CXX="g++ -std=gnu++11" R

> install.packages('~/downloads/rgdal_1.4-4.tar.gz', repos = NULL, type="source", configure.args=c('--with-proj-include=/data/software/proj/5.2.0/include','--with-proj-lib=/data/software/proj/5.2.0/lib'))

๋กœ๊ทธ์•„์›ƒํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค(๋ชจ๋“ˆ ๋กœ๋“œ๋ฅผ ๊ธฐ์–ตํ•˜์„ธ์š”!!). ์ด๊ฒƒ์€ proj_api.h ์ฐพ๋Š” ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์„ค์น˜
sf :

$ CXX="g++ -std=gnu++11" R

> install.packages('sf', configure.args=c('--with-proj-include=/data/software/proj/5.2.0/include','--with-proj-lib=/data/software/proj/5.2.0/lib', '--with-proj=/data/software/proj/5.2.0/'))

์ด์ œ ๋ณต์ œ๋œ pecan ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  make ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. postgres ๋ฐ redland ๋Œ€ํ•œ ํ—ค๋” ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฐพ๊ธฐ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์ฃผ๋ณ€์„ ํŒŒํ—ค์นœ ํ›„ ๋งˆ์นจ๋‚ด env ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
R์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—:

$ INCLUDE_DIR="/data/software/postgresql/9.3.5/include" LIB_DIR="/data/software/postgresql/9.3.5/lib" R
> install.packages("RPostgres")

๊ทธ๋ฆฌ๊ณ 

$ PKG_CONFIG_PATH="/data/software/redland/1.0.17/lib/pkgconfig:/data/software/raptor/2.0.15/lib/pkgconfig:/data/software/rasqal/0.9.33/lib/pkgconfig" R

> install.packages("redland")

๊ทธ๋Ÿฐ ๋‹ค์Œ ํ”ผ์นธ์˜ make ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. (1์‹œ๊ฐ„์ด ํ›จ์”ฌ ๋„˜์€ ํ›„!) ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!
๋‚˜๋Š” ๋นˆ ~/R/library ๋กœ ์‹œ์ž‘ํ–ˆ๊ณ  ๊ฒฐ๊ตญ ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

$ ls ~/R/library
abind
ape
askpass
assertthat
backports
base64enc
BayesianTools
BH
bibtex
binaryLogic
BioCro
bit
bit64
bitops
blob
boot
brew
bridgesampling
Brobdingnag
broom
callr
car
carData
CDM
cellranger
class
classInt
cli
clipr
clisymbols
cluster
coda
codetools
colorspace
commonmark
covr
crayon
crosstalk
crul
curl
dataone
datapack
data.table
DBI
dbplyr
desc
devtools
DHARMa
digest
doParallel
dotCall64
dplyr
DT
e1071
ellipse
ellipsis
emulator
evaluate
expm
fansi
fastmap
fauxpas
fields
forcats
foreach
foreign
fs
furrr
future
gap
generics
geometry
geonames
getPass
ggmap
ggplot2
gh
git2r
glmmTMB
globals
glue
gmm
gridExtra
gtable
hash
haven
hdf5r
here
highr
hms
hoardr
htmltools
htmlwidgets
httpcode
httpuv
httr
IDPmisc
igraph
ini
isdparser
iterators
jpeg
jsonlite
KernSmooth
knitr
labeling
later
lazyeval
lifecycle
linkages
linprog
listenv
lme4
lmtest
lpSolve
lubridate
Maeswrap
magic
magrittr
manipulateWidget
maps
maptools
markdown
MASS
Matrix
MatrixModels
mclust
mcmc
MCMCpack
memoise
mgcv
microbenchmark
mime
miniUI
minpack.lm
minqa
mlegp
mockery
modelr
MODISTools
msm
munsell
mvnfast
mvtnorm
ncdf4
ncdf4.helpers
nimble
nlme
nloptr
nneo
numDeriv
openssl
openxlsx
parsedate
pbapply
pbkrtest
pbv
PCICt
PEcAn.all
PEcAn.allometry
PEcAn.assim.batch
PEcAn.assim.sequential
PEcAn.BASGRA
PEcAn.benchmark
PEcAn.BIOCRO
PEcAn.CLM45
PEcAn.DALEC
PEcAn.data.atmosphere
PEcAn.data.hydrology
PEcAn.data.land
PEcAn.data.remote
PEcAn.DB
PEcAn.dvmdostem
PEcAn.ED2
PEcAn.emulator
PEcAn.FATES
PEcAn.GDAY
PEcAn.JULES
PEcAn.LINKAGES
PEcAn.logger
PEcAn.LPJGUESS
PEcAn.MA
PEcAn.MAAT
PEcAn.MAESPA
PEcAn.ModelName
PEcAn.photosynthesis
PEcAn.PRELES
PEcAn.priors
PEcAn.qaqc
PEcAn.remote
PEcAnRTM
PEcAn.settings
PEcAn.SIPNET
PEcAn.uncertainty
PEcAn.utils
PEcAn.visualization
PEcAn.workflow
pillar
pkgbuild
pkgconfig
pkgload
plogr
plotrix
plyr
png
polycor
praise
prettyunits
processx
progress
promises
proxy
ps
purrr
pwr
qrnn
quantreg
R6
randtoolbox
rappdirs
raster
rcmdcheck
RColorBrewer
Rcpp
RcppArmadillo
RcppEigen
RcppProgress
rcrossref
RCurl
readr
readxl
REddyProc
redland
rematch
rematch2
remotes
reprex
reshape
reshape2
reticulate
rex
rgdal
rgl
RgoogleMaps
rio
rjags
rjson
rlang
rmarkdown
rngWELL
rnoaa
roxygen2
rpart
RPostgres
RPostgreSQL
Rpreles
rprojroot
RSQLite
rstudioapi
rversions
rvest
sandwich
scales
selectr
sessioninfo
sf
sfsmisc
shiny
SimilarityMeasures
sirt
solartime
sourcetools
sp
spam
spaMM
SparseM
stringi
stringr
survival
sys
TAM
testthat
tibble
tictoc
tidyr
tidyselect
tidyverse
tinytex
TMB
tmvtnorm
triebeard
truncnorm
udunits2
units
urltools
usethis
utf8
uuid
vctrs
viridisLite
webshot
whisker
withr
xfun
XML
xml2
xopen
xtable
xts
yaml
zeallot
zip
zoo

@tobeycarman์ด ์ •๋ง ์ด๊ฒƒ๋ณด๋‹ค ์‰ฝ๊ฒŒ๋˜์–ด์•ผํ•œ๋‹ค ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์˜๊ด‘์Šค๋Ÿฌ์šด ๋…ธ๋ ฅ์ž…๋‹ˆ๋‹ค. ํ•จ๊ป˜ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@tobeycarman ์ฑŒ๋ฆฐ์ง€์˜ ์ผ๋ถ€๋Š” ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์žˆ๋Š” HPC์ธ modex ์ž‘์—…์—์„œ ๋น„๋กฏ๋˜๋ฏ€๋กœ ๋ชจ๋“  ๊ฒƒ์ด ๋น„ํ‘œ์ค€ ์œ„์น˜(์˜ˆ: gdal, proj ๋“ฑ)์—์„œ ์†์œผ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. make install ๋ฐฉํƒ„์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋™ํ™”๋œ ์ „์ œ ์กฐ๊ฑด ๋„๊ตฌ

@infotroph ํ—ค์ด, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! @serbinsh , ๋ฐฉํƒ„ make install ์€ ๊ต‰์žฅํ•˜์ง€๋งŒ ํŠนํžˆ HPC ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ํฐ ์š”๊ตฌ์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ก์„ ์œ„ํ•ด ์ €๋Š” ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ "๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”..."์œผ๋กœ ํ‘œ์‹œํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์ •๋ฆฌ๋ฅผ ์™„์ „ํžˆ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰