SCM

SCM Repository

[ihelp] View of /www/manual/R-admin-ko.html
ViewVC logotype

View of /www/manual/R-admin-ko.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1292 - (download) (as text) (annotate)
Tue Jan 6 07:18:21 2015 UTC (7 years, 8 months ago) by gnustats
File size: 354359 byte(s)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for R, version Revision: 67332 (3.2.0 Under development (unstable)).

Copyright (C) 2001-2014 R Core Team

Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by the R Core Team.


NOTE from the maintainer Chel Hee Lee <chl948@mail.usask.ca>

This translation is updated on a day-by-day basis (Tue Jan  6 01:17:00 CST 2015).  The initial work was done with R-2.9.2 (24-AUG-2009) by Chel Hee Lee.  The latest version is based on the Revision: 67332 (3.2.0 Under development (unstable)). 

This work is a result of cumulative efforts made by the contributors listed in the below:
Chel Hee Lee <chl948@mail.usask.ca>, University of Saskatchewan, Saskatoon, Saskatchewan, Canada, 2009-2014
Edward Kang <ewkang@hotmail.com>, Manager, Advanced Analytics, Australian Customs and Border Protection Services, Canberra, Australia, 2013

To offer your help on this Korean translation, please visit the project page at http://r-forge.r-project.org/projects/ihelp/

 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>R Installation and Administration (translated in Korean)</title>

<meta name="description" content="R Installation and Administration (translated in Korean)">
<meta name="keywords" content="R Installation and Administration (translated in Korean)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="#Top" rel="start" title="Top">
<link href="#Function-and-variable-index" rel="index" title="Function and variable index">
<link href="#SEC_Contents" rel="contents" title="Table of Contents">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
body {
    margin-left: 5%;
    margin-right: 5%;
}

h1 {             
    background: white;
    color: rgb(25%, 25%, 25%);
    font-family: monospace;
    font-size: xx-large;
    text-align: center;
}

h2 {
    background: white;
    color: rgb(40%, 40%, 40%);
    font-family: monospace;
    font-size: x-large;
    text-align: center;
}

h3 {
    background: white;
    color: rgb(40%, 40%, 40%);
    font-family: monospace;
    font-size: large;
}

h4 {
    background: white;
    color: rgb(40%, 40%, 40%);
    font-family: monospace;
}

span.samp {
    font-family: monospace;
}

span.command {
    font-family: monospace;
}

span.option {
    font-family: monospace;
}

span.file {
    font-family: monospace;
}

span.env {
    font-family: monospace;
}

ul {
    margin-top: 0.25ex;
    margin-bottom: 0.25ex;
}

li {
    margin-top: 0.25ex;
    margin-bottom: 0.25ex;
}

p {
    margin-top: 0.6ex;
    margin-bottom: 1.2ex;
}

-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<h1 class="settitle" align="center">R Installation and Administration (translated in Korean)</h1>





















 



<a name="SEC_Contents"></a>
<h2 class="contents-heading">Table of Contents</h2>

<div class="contents">

<ul class="no-bullet">
  <li><a name="toc-Obtaining-R-1" href="#Obtaining-R">1 Obtaining R</a>
  <ul class="no-bullet">
    <li><a name="toc-Getting-and-unpacking-the-sources-1" href="#Getting-and-unpacking-the-sources">1.1 Getting and unpacking the sources</a></li>
    <li><a name="toc-Getting-patched-and-development-versions-1" href="#Getting-patched-and-development-versions">1.2 Getting patched and development versions</a>
    <ul class="no-bullet">
      <li><a name="toc-Using-Subversion-and-rsync-1" href="#Using-Subversion-and-rsync">1.2.1 Using Subversion and rsync</a></li>
    </ul></li>
  </ul></li>
  <li><a name="toc-Installing-R-under-Unix_002dalikes-1" href="#Installing-R-under-Unix_002dalikes">2 Installing R under Unix-alikes</a>
  <ul class="no-bullet">
    <li><a name="toc-e_00b0e_0022i-i_00bb_0027ii1_002f4ie_002c_00b0" href="#g_t_00ea_00b0_0084_00eb_008b_00a8_00ed_0095_009c-_00ec_00bb_00b4_00ed_008c_008c_00ec_009d_00bc_00ed_0095_0098_00ea_00b8_00b0">2.1 간단한 컴파일하기</a></li>
    <li><a name="toc-Help-options-1" href="#Help-options">2.2 Help options</a></li>
    <li><a name="toc-Making-the-manuals-1" href="#Making-the-manuals">2.3 Making the manuals</a></li>
    <li><a name="toc-Installation-1" href="#Installation">2.4 Installation</a></li>
    <li><a name="toc-Uninstallation-1" href="#Uninstallation">2.5 Uninstallation</a></li>
    <li><a name="toc-Sub_002darchitectures-1" href="#Sub_002darchitectures">2.6 Sub-architectures</a>
    <ul class="no-bullet">
      <li><a name="toc-Multilib-1" href="#Multilib">2.6.1 Multilib</a></li>
    </ul></li>
    <li><a name="toc-Other-Options-1" href="#Other-Options">2.7 Other Options</a></li>
    <li><a name="toc-Testing-an-Installation" href="#Testing-a-Unix_002dalike-Installation">2.8 Testing an Installation</a></li>
  </ul></li>
  <li><a name="toc-Installing-R-under-Windows-1" href="#Installing-R-under-Windows">3 Installing R under Windows</a>
  <ul class="no-bullet">
    <li><a name="toc-Building-from-source-1" href="#Building-from-source">3.1 Building from source</a>
    <ul class="no-bullet">
      <li><a name="toc-Getting-the-tools-1" href="#Getting-the-tools">3.1.1 Getting the tools</a></li>
      <li><a name="toc-Getting-the-source-files-1" href="#Getting-the-source-files">3.1.2 Getting the source files</a></li>
      <li><a name="toc-Building-the-core-files-1" href="#Building-the-core-files">3.1.3 Building the core files</a></li>
      <li><a name="toc-Building-the-cairo-devices" href="#Building-the-cairo-devices-files">3.1.4 Building the cairo devices</a></li>
      <li><a name="toc-Using-ICU-for-collation-1" href="#Using-ICU-for-collation">3.1.5 Using ICU for collation</a></li>
      <li><a name="toc-Checking-the-build-1" href="#Checking-the-build">3.1.6 Checking the build</a></li>
      <li><a name="toc-Building-the-manuals-1" href="#Building-the-manuals">3.1.7 Building the manuals</a></li>
      <li><a name="toc-Building-the-Inno-Setup-installer-1" href="#Building-the-Inno-Setup-installer">3.1.8 Building the Inno Setup installer</a></li>
      <li><a name="toc-Building-the-MSI-installer-1" href="#Building-the-MSI-installer">3.1.9 Building the MSI installer</a></li>
      <li><a name="toc-64_002dbit-Windows-builds-1" href="#g_t64_002dbit-Windows-builds">3.1.10 64-bit Windows builds</a></li>
    </ul></li>
    <li><a name="toc-Testing-an-Installation-1" href="#Testing-a-Windows-Installation">3.2 Testing an Installation</a></li>
  </ul></li>
  <li><a name="toc-Installing-R-under-OS-X-1" href="#Installing-R-under-OS-X">4 Installing R under OS X</a>
  <ul class="no-bullet">
    <li><a name="toc-Running-R-under-OS-X-1" href="#Running-R-under-OS-X">4.1 Running R under OS X</a></li>
    <li><a name="toc-Uninstalling-under-OS-X-1" href="#Uninstalling-under-OS-X">4.2 Uninstalling under OS X</a></li>
    <li><a name="toc-Multiple-versions-1" href="#Multiple-versions">4.3 Multiple versions</a></li>
  </ul></li>
  <li><a name="toc-Running-R-1" href="#Running-R">5 Running R</a></li>
  <li><a name="toc-Add_002don-packages-1" href="#Add_002don-packages">6 Add-on packages</a>
  <ul class="no-bullet">
    <li><a name="toc-Default-packages-1" href="#Default-packages">6.1 Default packages</a></li>
    <li><a name="toc-Managing-libraries-1" href="#Managing-libraries">6.2 Managing libraries</a></li>
    <li><a name="toc-Installing-packages-1" href="#Installing-packages">6.3 Installing packages</a>
    <ul class="no-bullet">
      <li><a name="toc-Windows" href="#Windows-packages">6.3.1 Windows</a></li>
      <li><a name="toc-OS-X-1" href="#OS-X-packages">6.3.2 OS X</a></li>
      <li><a name="toc-Customizing-package-compilation-1" href="#Customizing-package-compilation">6.3.3 Customizing package compilation</a></li>
      <li><a name="toc-Multiple-sub_002darchitectures-1" href="#Multiple-sub_002darchitectures">6.3.4 Multiple sub-architectures</a></li>
      <li><a name="toc-Byte_002dcompilation-1" href="#Byte_002dcompilation">6.3.5 Byte-compilation</a></li>
    </ul></li>
    <li><a name="toc-Updating-packages-1" href="#Updating-packages">6.4 Updating packages</a></li>
    <li><a name="toc-Removing-packages-1" href="#Removing-packages">6.5 Removing packages</a></li>
    <li><a name="toc-Setting-up-a-package-repository-1" href="#Setting-up-a-package-repository">6.6 Setting up a package repository</a></li>
    <li><a name="toc-Checking-installed-source-packages-1" href="#Checking-installed-source-packages">6.7 Checking installed source packages</a></li>
  </ul></li>
  <li><a name="toc-Internationalization-and-Localization" href="#Internationalization">7 Internationalization and Localization</a>
  <ul class="no-bullet">
    <li><a name="toc-Locales-1" href="#Locales">7.1 Locales</a>
    <ul class="no-bullet">
      <li><a name="toc-e_007c_0021e-i_0024_003fiii-e_00a1i1_002f4i1_002f4" href="#g_t_00eb_00a6_00ac_00eb_0088-_00ec_008a_00a4_00ec_0097_0090_00ec_0084_009c_00ec_009d_0098-_00eb_00a1_009c_00ec_00bc_0080_00ec_009d_00bc">7.1.1 리눅스에서의 로케일</a></li>
      <li><a name="toc-Locales-under-Windows-1" href="#Locales-under-Windows">7.1.2 Locales under Windows</a></li>
      <li><a name="toc-Locales-under-OS-X-1" href="#Locales-under-OS-X">7.1.3 Locales under OS X</a></li>
    </ul></li>
    <li><a name="toc-Localization-of-messages-1" href="#Localization-of-messages">7.2 Localization of messages</a></li>
  </ul></li>
  <li><a name="toc-Choosing-between-32_002d-and-64_002dbit-builds-1" href="#Choosing-between-32_002d-and-64_002dbit-builds">8 Choosing between 32- and 64-bit builds</a></li>
  <li><a name="toc-The-standalone-Rmath-library-1" href="#The-standalone-Rmath-library">9 The standalone Rmath library</a>
  <ul class="no-bullet">
    <li><a name="toc-i-ei_0024_003f-e3i_0027" href="#Unix_002dalike-standalone">9.1 유닉스 계열</a></li>
    <li><a name="toc-Windows-1" href="#Windows-standalone">9.2 Windows</a></li>
  </ul></li>
  <li><a name="toc-Essential-and-useful-other-programs-under-a-Unix_002dalike-1" href="#Essential-and-useful-other-programs-under-a-Unix_002dalike">Appendix A Essential and useful other programs under a Unix-alike</a>
  <ul class="no-bullet">
    <li><a name="toc-Essential-programs-and-libraries-1" href="#Essential-programs-and-libraries">A.1 Essential programs and libraries</a></li>
    <li><a name="toc-Useful-libraries-and-programs-1" href="#Useful-libraries-and-programs">A.2 Useful libraries and programs</a>
    <ul class="no-bullet">
      <li><a name="toc-Tcl_002fTk-1" href="#Tcl_002fTk">A.2.1 Tcl/Tk</a></li>
      <li><a name="toc-Java-support-1" href="#Java-support">A.2.2 Java support</a></li>
      <li><a name="toc-Other-compiled-languages-1" href="#Other-compiled-languages">A.2.3 Other compiled languages</a></li>
    </ul></li>
    <li><a name="toc-Linear-algebra-1" href="#Linear-algebra">A.3 Linear algebra</a>
    <ul class="no-bullet">
      <li><a name="toc-BLAS-1" href="#BLAS">A.3.1 BLAS</a>
      <ul class="no-bullet">
        <li><a name="toc-ATLAS-1" href="#ATLAS">A.3.1.1 ATLAS</a></li>
        <li><a name="toc-ACML-1" href="#ACML">A.3.1.2 ACML</a></li>
        <li><a name="toc-Goto-and-OpenBLAS-1" href="#Goto-and-OpenBLAS">A.3.1.3 Goto and OpenBLAS</a></li>
        <li><a name="toc-Intel-MKL" href="#MKL">A.3.1.4 Intel MKL</a></li>
        <li><a name="toc-Shared-BLAS-1" href="#Shared-BLAS">A.3.1.5 Shared BLAS</a></li>
      </ul></li>
      <li><a name="toc-LAPACK-1" href="#LAPACK">A.3.2 LAPACK</a></li>
      <li><a name="toc-Caveats-1" href="#Caveats">A.3.3 Caveats</a></li>
    </ul></li>
  </ul></li>
  <li><a name="toc-Configuration-on-a-Unix_002dalike-1" href="#Configuration-on-a-Unix_002dalike">Appendix B Configuration on a Unix-alike</a>
  <ul class="no-bullet">
    <li><a name="toc-Configuration-options-1" href="#Configuration-options">B.1 Configuration options</a></li>
    <li><a name="toc-Internationalization-support-1" href="#Internationalization-support">B.2 Internationalization support</a></li>
    <li><a name="toc-Configuration-variables-1" href="#Configuration-variables">B.3 Configuration variables</a>
    <ul class="no-bullet">
      <li><a name="toc-Setting-paper-size-1" href="#Setting-paper-size">B.3.1 Setting paper size</a></li>
      <li><a name="toc-Setting-the-browsers-1" href="#Setting-the-browsers">B.3.2 Setting the browsers</a></li>
      <li><a name="toc-Compilation-flags-1" href="#Compilation-flags">B.3.3 Compilation flags</a></li>
      <li><a name="toc-Making-manuals-1" href="#Making-manuals">B.3.4 Making manuals</a></li>
    </ul></li>
    <li><a name="toc-Setting-the-shell-1" href="#Setting-the-shell">B.4 Setting the shell</a></li>
    <li><a name="toc-Using-make-1" href="#Using-make">B.5 Using make</a></li>
    <li><a name="toc-Using-FORTRAN-1" href="#Using-FORTRAN">B.6 Using FORTRAN</a>
    <ul class="no-bullet">
      <li><a name="toc-Using-gfortran-1" href="#Using-gfortran">B.6.1 Using gfortran</a></li>
    </ul></li>
    <li><a name="toc-Compile-and-load-flags-1" href="#Compile-and-load-flags">B.7 Compile and load flags</a></li>
    <li><a name="toc-Maintainer-mode-1" href="#Maintainer-mode">B.8 Maintainer mode</a></li>
  </ul></li>
  <li><a name="toc-Platform-notes-1" href="#Platform-notes">Appendix C Platform notes</a>
  <ul class="no-bullet">
    <li><a name="toc-X11-issues-1" href="#X11-issues">C.1 X11 issues</a></li>
    <li><a name="toc-e_007c_0021e-i_0024_003f" href="#g_t_00eb_00a6_00ac_00eb_0088-_00ec_008a_00a4">C.2 리눅스</a>
    <ul class="no-bullet">
      <li><a name="toc-Clang-1" href="#Clang">C.2.1 Clang</a></li>
      <li><a name="toc-Intel-compilers-1" href="#Intel-compilers">C.2.2 Intel compilers</a></li>
      <li><a name="toc-Oracle-Solaris-Studio-compilers-1" href="#Oracle-Solaris-Studio-compilers">C.2.3 Oracle Solaris Studio compilers</a></li>
    </ul></li>
    <li><a name="toc-OS-X-2" href="#OS-X">C.3 OS X</a>
    <ul class="no-bullet">
      <li><a name="toc-Snow-Leopard-1" href="#Snow-Leopard">C.3.1 Snow Leopard</a></li>
      <li><a name="toc-Lion-1" href="#Lion">C.3.2 Lion</a></li>
      <li><a name="toc-Mountain-Lion-1" href="#Mountain-Lion">C.3.3 Mountain Lion</a></li>
      <li><a name="toc-Mavericks-1" href="#Mavericks">C.3.4 Mavericks</a></li>
      <li><a name="toc-Yosemite-1" href="#Yosemite">C.3.5 Yosemite</a></li>
      <li><a name="toc-Tcl_002fTk-headers-and-libraries-1" href="#Tcl_002fTk-headers-and-libraries">C.3.6 Tcl/Tk headers and libraries</a></li>
      <li><a name="toc-Java" href="#Java-_0028OS-X_0029">C.3.7 Java</a></li>
      <li><a name="toc-Frameworks-1" href="#Frameworks">C.3.8 Frameworks</a></li>
      <li><a name="toc-Building-R_002eapp-1" href="#Building-R_002eapp">C.3.9 Building R.app</a></li>
    </ul></li>
    <li><a name="toc-Solaris-1" href="#Solaris">C.4 Solaris</a>
    <ul class="no-bullet">
      <li><a name="toc-Using-gcc-1" href="#Using-gcc">C.4.1 Using gcc</a></li>
    </ul></li>
    <li><a name="toc-AIX-1" href="#AIX">C.5 AIX</a></li>
    <li><a name="toc-FreeBSD-1" href="#FreeBSD">C.6 FreeBSD</a></li>
    <li><a name="toc-Cygwin-1" href="#Cygwin">C.7 Cygwin</a></li>
    <li><a name="toc-New-platforms-1" href="#New-platforms">C.8 New platforms</a></li>
  </ul></li>
  <li><a name="toc-The-Windows-toolset-1" href="#The-Windows-toolset">Appendix D The Windows toolset</a>
  <ul class="no-bullet">
    <li><a name="toc-LaTeX-1" href="#LaTeX">D.1 LaTeX</a></li>
    <li><a name="toc-The-Inno-Setup-installer-1" href="#The-Inno-Setup-installer">D.2 The Inno Setup installer</a></li>
    <li><a name="toc-The-command-line-tools-1" href="#The-command-line-tools">D.3 The command line tools</a></li>
    <li><a name="toc-The-MinGW_002dw64-toolchain-1" href="#The-MinGW_002dw64-toolchain">D.4 The MinGW-w64 toolchain</a></li>
    <li><a name="toc-Useful-additional-programs-1" href="#Useful-additional-programs">D.5 Useful additional programs</a></li>
  </ul></li>
  <li><a name="toc-Function-and-variable-index-1" href="#Function-and-variable-index">Function and variable index</a></li>
  <li><a name="toc-Concept-index-1" href="#Concept-index">Concept index</a></li>
  <li><a name="toc-Environment-variable-index-1" href="#Environment-variable-index">Environment variable index</a></li>
</ul>
</div>


<a name="Top"></a>
<a name="R-Installation-and-Administration-_0028translated-in-Korean_0029"></a>
<h1 class="top">R Installation and Administration (translated in Korean)</h1>

<p>이 문서는 R의 설치와 관리에 대한 안내서입니다.
</p>
<p>This manual is for R, version Revision: 67332 (3.2.0 Under development (unstable)).
</p>
<p>Copyright &copy; 2001&ndash;2014 R Core Team
</p>
<blockquote>
<p>Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
</p>
<p>Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
</p>
<p>Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by the R Core Team.
</p></blockquote>


<p><strong>NOTE</strong> from the maintainer Chel Hee Lee &lt;<a href="mailto:chl948@mail.usask.ca">chl948@mail.usask.ca</a>&gt;
</p>
<p>This translation is updated on a day-by-day basis (Tue Jan  6 01:17:00 CST 2015).  The initial work was done with R-2.9.2 (24-AUG-2009) by Chel Hee Lee.  The latest version is based on the Revision: 67332 (3.2.0 Under development (unstable)). 
</p>
<p>This work is a result of cumulative efforts made by the contributors listed in the below:
</p><ul>
<li> Chel Hee Lee &lt;<a href="mailto:chl948@mail.usask.ca">chl948@mail.usask.ca</a>&gt;, University of Saskatchewan, Saskatoon, Saskatchewan, Canada, 2009&ndash;2014
</li><li> Edward Kang &lt;<a href="mailto:ewkang@hotmail.com">ewkang@hotmail.com</a>&gt;, Manager, Advanced Analytics, Australian Customs and Border Protection Services, Canberra, Australia, 2013
</li></ul>

<p>To offer your help on this Korean translation, please visit the project page at <a href="http://r-forge.r-project.org/projects/ihelp/">http://r-forge.r-project.org/projects/ihelp/</a>
</p>





<hr>
<a name="Obtaining-R"></a>
<a name="Obtaining-R-1"></a>
<h2 class="chapter">1 Obtaining R</h2>
<a name="index-Obtaining-R"></a>

<p>R의 소스, 바이너리 그리고 문서는 <acronym>CRAN</acronym> &ldquo;Comprehensive R Archive Network&rdquo;을
통해 얻을 수 있으며, CRAN 미러들의 목록을 <a href="http://CRAN.R-project.org/mirrors.html">http://CRAN.R-project.org/mirrors.html</a>에서
확인할 수 있습니다.
</p>

<hr>
<a name="Getting-and-unpacking-the-sources"></a>
<a name="Getting-and-unpacking-the-sources-1"></a>
<h3 class="section">1.1 Getting and unpacking the sources</h3>
<a name="index-Sources-for-R"></a>

<p>가장 간단한 방법은 가장 최신 버전의 <samp>R-<var>x</var>.<var>y</var>.<var>z</var>.tar.gz</samp> 파일을 다운로드 받은 뒤
아래의 명령어를 이용하여 압축을 푸는 것입니다.이를 위해서는 적정한 버전<a name="DOCF1" href="#FOOT1"><sup>1</sup></a>의 <code>tar</code>가 설치되어 있어야 합니다.  
</p>
<div class="example">
<pre class="example">tar -xf R-<var>x</var>.<var>y</var>.<var>z</var>.tar.gz
</pre></div>

<p>다른 시스템에서 다음과 같은 명령어를 사용하기 위해서는 <code>gzip</code>이라는 프로그램이 설치되어야 합니다.
</p>
<div class="example">
<pre class="example">gzip -dc R-<var>x</var>.<var>y</var>.<var>z</var>.tar.gz | tar -xf -
</pre></div>

<p>대부분의 <code>make</code> 프로그램 (특히 <acronym>GNU</acronym> <code>make</code>)들이 공백(space)을 허용하지
않는 것과 같이 소스의 압축이 어디에 풀리게 될지를 지정하는 디렉토리의 경로명은 공백이 있으면 안됩니다.
</p>
<p>만약 여러명의 사용자들이 사용할 수 있도록 빌드하기 원한다면, 압축을 풀기 전에 <code>umask</code>를 설정하는 것은 파일들이 다른
대상 그룹(target group)에 의하여 읽혀질 수 있게 해줍니다. (예를들어,  <code>umask 022</code>라고 하는 것은
모든 사용자가 사용할 수 있게 합니다).빌드와 설치 중에 <code>umask</code> 설정을 유지하도록 하십시오.
</p>
<p>만약 GNU 버전의 최신 <code>tar</code>를 사용하며, 이러한 작업을 루트계정 (Windows에서는 관리자 권한을 가지고 있는
계정)을 통하여 하게 된다면, 소유권의 변경에 대해서 많은 경고를 보게 될 것입니다. 이런 경우에는 다음과 같이 해 볼 수 있습니다.
</p>
<div class="example">
<pre class="example">tar --no-same-owner -xf R-<var>x</var>.<var>y</var>.<var>z</var>.tar.gz
</pre></div>

<p>and perhaps also include the option <samp>--no-same-permissions</samp>.
<a name="index-TAR_005fOPTIONS"></a>
그리고 또한 옵션 <samp>--no-same-permissions</samp>을 사용할 수도 있습니다. (이런 옵션들은
<code>TAR_OPTIONS</code> 환경변수 내에서 설정될 수 있습니다: 만약 하나 이상의 옵션이 포함되면 그것들은 하나의 공백으로
구분되어야 합니다.)
</p>


<hr>
<a name="Getting-patched-and-development-versions"></a>
<a name="Getting-patched-and-development-versions-1"></a>
<h3 class="section">1.2 Getting patched and development versions</h3>

<p>현재 공개된 버전의 패치 버전인 &lsquo;<samp>r-patched</samp>&rsquo;와 현재 개발 중인 버전인 &lsquo;<samp>r-devel</samp>&rsquo;은 일간
tarballs이나 R Subversion repository 에 접속함으로써 사용 가능합니다(2.x.0 같은 낮은 버전의 공개 2주전
동안에는 &lsquo;<samp>r-patched</samp>&rsquo; tarballs는 곧 공개될 버전의 베타/공개후보를 가리킬수 있으며, 현재 공개된 패치 버전은
Subversion을 통해 얻을 수 있었습니다).
</p>
<p>tarballs는 <a href="ftp://ftp.stat.math.ethz.ch/pub/Software/R/">ftp://ftp.stat.math.ethz.ch/pub/Software/R/</a>에서 얻을 수
있습니다. <samp>R-patched.tar.gz</samp> 이나 <samp>R-devel.tar.gz</samp> (또는  <samp>.tar.bz2</samp>
버전들)를 다운로드 하고 앞에서 설명한 바와 같이 압축을 해제합니다. 그것들은 R 이 공개되어 배포되는 것과 정확히 같은 방법으로
빌드되어 있습니다.
</p>

<hr>
<a name="Using-Subversion-and-rsync"></a>
<a name="Using-Subversion-and-rsync-1"></a>
<h4 class="subsection">1.2.1 Using Subversion and rsync</h4>
<a name="index-Subversion"></a>

<p>소스들은 R 서브버전 저장소인 <a href="https://svn.R-project.org/R/">https://svn.R-project.org/R/</a>에서 얻을 수 있습니다. 만약 서브버전
클라이언트를 가지고 있다면(<a href="http://subversion.apache.org/">http://subversion.apache.org/</a>를 참고하십시오),
<a href="http://svn.r-project.org/R/trunk/">http://svn.r-project.org/R/trunk/</a>로부터 현재의 &lsquo;<samp>r-devel</samp>&rsquo;과
(<var>x</var>와 <var>y</var>는 현재 릴리즈되어 있는 R의 메이저와 마이너 버전의 숫자입니다)
&lsquo;<samp>https://svn.r-project.org/R/branches/R-<var>x</var>-<var>y</var>-branch/</samp>&rsquo;로부터
&lsquo;<samp>r-patched</samp>&rsquo;를 체크아웃하고 업데이트를 할 수 있습니다. 예를들면, 아래와 같이 사용하는 것은 (만약 필요하다면 새로이
생성될 수 있는) 디렉토리 <var>path</var>에 &lsquo;<samp>r-devel</samp>&rsquo;를 체크아웃하는 것입니다.
</p>
<div class="example">
<pre class="example">svn checkout https://svn.r-project.org/R/trunk/ <var>path</var>
</pre></div>

<p>다음배포를 위한 개발단계 <var>x.y.0</var> 릴리즈의 알파, 베타 그리고 RC 버전은 릴리즈 4주전에
&lsquo;<samp>https://svn.r-project.org/R/branches/R-<var>x</var>-<var>y</var>-branch/</samp>&rsquo;으로부터 얻을
수 있습니다.
</p>
<p>&lsquo;<samp>https:</samp>&rsquo;이 요구되어 지며<a name="DOCF2" href="#FOOT2"><sup>2</sup></a>, R project의 서브버전 서버에 대한 SSL 증명이 신뢰된 소스로서 인식되어야 합니다.
</p>
<p>해당 URL로부터 <code>wget -r</code> 또는 <code>svn export</code>을 이용하여 소스를 가져오지 못할 수
있습니다. R을 빌드하기 위해서 서브버전 정보가 필요하기 때문입니다.
</p>
<p>서브버전 저장소는 추천 패키지들에 대한 현재 소스를 담고 있지 않으며, 이것들은 <code>rsync</code>을 이용하여 얻거나
<acronym>CRAN</acronym>에서 다운로드 받아야 합니다.추천 패키지의 올바른 소스를 설치하기 위해 <code>rsync</code>를 이용하는 것은
R 소스의 최상위 레벨에서 <code>./tools/rsync-recommended</code>를 실행하는 것입니다.
</p>
<p><acronym>CRAN</acronym>에서 수동으로(manually) 내려받는 경우, 추천 패키지의 정확한 버전을 확인해야 합니다.만약
<samp>VERSION</samp> 파일 내에 있는 숫자가 &lsquo;<samp><var>x</var>.<var>y</var>.<var>z</var></samp>&rsquo;이라면,
&lsquo;<samp>http://CRAN.R-project.org/src/contrib/<var>dir</var></samp>&rsquo; 내에 있는 내용을 다운받아야
합니다. 여기에서 <var>dir</var>은 r-devel인 경우
&lsquo;<samp><var>x</var>.<var>y</var>.<var>z</var>/Recommended</samp>&rsquo;를, r-patched 인 경우에는
<samp><var>x</var>.<var>y</var>-patched/Recommended</samp>를 다운 받아
<samp>src/library/Recommended</samp>에 압축을 풀어야 합니다. 수동으로 다운로드를 한 뒤에는
<samp>src/library/Recommended</samp> 내에 필요한 링크들을 만들기 위하여 소스의 최상위 레벨에서
<code>tools/link-recommended</code> 명령어를 실행해야 합니다. <code>wget</code>을 이용하여 R 소스의
최상위레벨로부터 필요한 명령은 아래와 같을 것입니다.여기에서  <samp><var>dir</var></samp> 파일의 정확한 값입니다.
</p>
<div class="example">
<pre class="example">wget -r -l1 --no-parent -A\*.gz -nd -P src/library/Recommended \
  http://CRAN.R-project.org/src/contrib/<var>dir</var>
./tools/link-recommended
</pre></div>



<hr>
<a name="Installing-R-under-Unix_002dalikes"></a>
<a name="Installing-R-under-Unix_002dalikes-1"></a>
<h2 class="chapter">2 Installing R under Unix-alikes</h2>
<a name="index-i-ei_0024_003fi-e_00b0i-ie21_002f2i-R-i_0024_003fi1ie_002c_00b0"></a>

<p>R은 &lsquo;<samp><var>cpu</var>-*-linux-gnu</samp>&rsquo;를 포함하여 &lsquo;<samp>alpha</samp>&rsquo;, &lsquo;<samp>arm</samp>&rsquo;,
&lsquo;<samp>hppa</samp>&rsquo;, &lsquo;<samp>ix86</samp>&rsquo;,&lsquo;<samp>ia64</samp>&rsquo;, &lsquo;<samp>m68k</samp>&rsquo;,
&lsquo;<samp>mips</samp>&rsquo;, &lsquo;<samp>mipsel</samp>&rsquo;,&lsquo;<samp>powerpc</samp>&rsquo;, &lsquo;<samp>s390</samp>&rsquo;,
&lsquo;<samp>sparc</samp>&rsquo;, 그리고 &lsquo;<samp>x86_64</samp>&rsquo;<acronym>CPU</acronym>,<a href="http://buildd.debian.org/build.php?&amp;pkg=r-base">http://buildd.debian.org/build.php?&amp;pkg=r-base</a>),http://packages.debian.org/unstable/math/r-base-core as is not used for all platforms; note also that Debian ix86 &lt;=&gt; i386.&lsquo;<samp>i386-apple-darwin</samp>&rsquo;,
&lsquo;<samp>x86_64-apple-darwin</samp>&rsquo;,&lsquo;<samp>i386-sun-solaris</samp>&rsquo;,
&lsquo;<samp>sparc-sun-solaris</samp>&rsquo;,&lsquo;<samp>x86_64-*-freebsd</samp>&rsquo;, 그리고
&lsquo;<samp>powerpc-ibm-aix6*</samp>&rsquo;와 같은 유닉스 또는 유닉스와 비슷한 플랫폼 위에 구성될 수 있습니다.아마도
&lsquo;<samp>i386-*-freebsd</samp>&rsquo;, &lsquo;<samp>i386-*-netbsd</samp>&rsquo;
그리고&lsquo;<samp>i386-*-openbsd</samp>&rsquo; 에서도 가능할 것입니다 (이 플랫폼들 위에서는 많은 테스트를 거치지 않았습니다).
</p>
<a name="index-e_007c_0021e-i_0024_003f"></a>
<a name="index-OS-X"></a>
<p>또한, 일부 많이 쓰이는 리눅스 배포들과 OS X (이전의 Mac OS)를 위한 바이너리 배포들이 있습니다. 더 자세한 사항은
<acronym>FAQ</acronym>를 살펴보세요. 이들은 플랫폼에 맞춘 특정한 방식으로 설치됩니다. 이 챕터의 나머지 부분에서는 소스로부터 직접
구축하는 것에 대해서만 알아볼 것입니다.
</p>

<hr>
<a name="g_t_00ea_00b0_0084_00eb_008b_00a8_00ed_0095_009c-_00ec_00bb_00b4_00ed_008c_008c_00ec_009d_00bc_00ed_0095_0098_00ea_00b8_00b0"></a>
<a name="e_00b0e_0022i-i_00bb_0027ii1_002f4ie_002c_00b0"></a>
<h3 class="section">2.1 간단한 컴파일하기</h3>

<p>먼저 <a href="#Essential-and-useful-other-programs-under-a-Unix_002dalike">Essential and useful other programs under a Unix-alike</a>에 나열한 필수적이고
유용한 도구들과 라이브러리들에 대해서 알아보고, 당신이 원하거나 필요한 것들을 설치하도록 합니다. 
<a name="index-TMPDIR"></a>
먼저 환경변수 <code>TMPDIR</code>가 지정되어 있지 않는지 (그리고 <samp>/tmp</samp>가 존재하며 쓰기 권한이 주어져 있고 스크립트가
이곳으로부터 실행이 가능한지를 확인하고) 또는 (스크립트의 실행이 가능한) 유효한 임시디렉토리를 지정하고 있는지 확인합니다.
</p>
<a name="index-R_005fHOME"></a>
<p>R 트리가 설치될 장소를 선택하세요 (R은 단순한 바이너리가 아닌 추가적인 데이터셋, 도움말 파일, 그리고 글꼴 모양에 대한
정보를 가집니다). 이 장소를 <var>R_HOME</var>이라고 부르도록 합니다.소스코드의 압축을 풉니다.이 과정은 <samp>src</samp>,
<samp>doc</samp>, 그리고 최상위 레벨 디렉토리 아래에 몇 가지 디렉토리를 더 생성할 것입니다. (여기에서 북미지역의 독자들은 반드시
<a href="#Setting-paper-size">Setting paper size</a>를 살펴보길 바랍니다.) 다음의 명령을 실행합니다:
</p>
<a name="index-configure"></a>

<div class="example">
<pre class="example">./configure
make
</pre></div>

<p>(만약 당신이 사용하는 make가 &lsquo;<samp>make</samp>&rsquo;가 아니라면 <a href="#Using-make">Using make</a>를 살펴보시길 바랍니다.) 64 비트
기반의 데비안 사용자은 아마도 아래와 같이 명령을 실행해야 할 수도 있습니다. <a name="DOCF3" href="#FOOT3"><sup>3</sup></a>
</p>
<div class="example">
<pre class="example">./configure LIBnn=lib
make
</pre></div>


<p>그리고 난 뒤 다음의 명령어를 이용하여 구축한 시스템이 올바르게 작동하는지를 확인합니다.
</p>
<div class="example">
<pre class="example">make check
</pre></div>

<p>설치의 실패는 관련 기능이 설치되어 있지 않아 발생하는 경우가 많지만, <a name="DOCF4" href="#FOOT4"><sup>4</sup></a>어떤 부분이 이를
야기시키는지에 대해서 보고된 내용을 주의깊게 읽어보시길 바랍니다.(일부 치명적이지 않은 에러가 Latin-1을 지원하지 않는 로케일에서
발생할 것입니다.더 정확하게 말하면 <code>C</code> 로케일 그리고 UTF-8이 아니거나 Western-European 로케일이 않닌
로케일입니다).파일 <samp>tests/ok-errors.R</samp> 내에서의 실패는 아마도 부족한 자원의 한계를 의미할 것입니다
(see <a href="#Running-R">Running R</a>).
</p>
<p>좀 더 심도있는 테스트를 위하여 다음의 명령어를 이용해 볼 수 있습니다.
</p>
<div class="example">
<pre class="example">make check-devel
</pre></div>

<p>또는 
</p>
<div class="example">
<pre class="example">make check-all
</pre></div>

<p>파일 <samp>tests/README</samp>을 읽어보시길 바랍니다.
</p>
<p>만약 <code>configure</code>과 <code>make</code>이라는 명령어들이 성공적으로 사용되었다면, 쉘스크립트로 작성된
<samp>R</samp>이라는 파일이 생길 것이고 이는 <samp><var>R_HOME</var>/bin</samp>에 복사될 것입니다. 이 스크립트를 복사하여
사용자가 이를 실행시키고자 하는 곳에 붙여넣을 수 있습니다.예를들어, <samp>/usr/local/bin/R</samp>에 복사할 수
있습니다.또한 <samp>R.1</samp>이라는 도움말 페이지를 복사하여 사용자의 <code>man</code> 리더(reader)가 이를 찾을 수
있는 곳으로 복사할 수 있습니다.예를들면, <samp>/usr/local/man/man1</samp>이라는 곳입니다.만약, 완전한 R 트리를
<samp>/usr/local/lib/R</samp>에 설치하고 싶다면 <a href="#Installation">Installation</a>를 살펴보세요.주목할점: 실제로는 R을
꼭 설치할 필요는 없습니다.그 이유는 이것이 구축된 곳으로부터 실행할 수 있기 때문입니다.
</p>
<p>R을 꼭 최상위 소스 디렉토리 (이를 편의상 <samp><var>TOP_SRCDIR</var></samp>이라고 해봅니다) 내에서 빌드할 필요는
없습니다. <samp><var>BUILDDIR</var></samp> 내에서 빌드해보고자 한다면 아래와 같이 할 수 있습니다.
</p>
<a name="index-configure-1"></a>

<div class="example">
<pre class="example">cd <var>BUILDDIR</var>
<var>TOP_SRCDIR</var>/configure
make
</pre></div>

<p>이렇게 하는 것은 소스트리를 깔끔하게 유지할 수 있다는 장점이 있으며 만약 당신 서브버전으로부터 얻은 R의 버전과 함께 작업을 할
때 권장되어집니다 (이를 위해서는 <acronym>GNU</acronym> <code>make</code>가 필요할 것입니다).
</p>



<p>Now <code>rehash</code> if necessary, type <kbd>R</kbd>, and read the R manuals and
the R <acronym>FAQ</acronym> (files <samp>FAQ</samp> or <samp>doc/manual/R-FAQ.html</samp>, or
<a href="http://CRAN.R-project.org/doc/FAQ/R-FAQ.html">http://CRAN.R-project.org/doc/FAQ/R-FAQ.html</a> which always has
the version for the latest release of R).
</p>
<p>만약 필요하다면, <code>rehash</code>를 수행한 뒤에 <kbd>R</kbd>이라고 입력하고 R 매뉴얼들과 R
<acronym>FAQ</acronym> (가장 최근에 릴리즈된 R과 함께 제공되는 <samp>FAQ</samp> 또는
<samp>doc/manual/R-FAQ.html</samp>, 또는
<a href="http://CRAN.R-project.org/doc/FAQ/R-FAQ.html">http://CRAN.R-project.org/doc/FAQ/R-FAQ.html</a>의 파일들)을 읽어보세요.
</p>
<hr>
<a name="Help-options"></a>
<a name="Help-options-1"></a>
<h3 class="section">2.2 Help options</h3>

<p>기본적으로 <acronym>HTML</acronym> 도움말 페이지는 설치될 때에 구축되는 것이 아니라 필요할 때 생성됩니다.
</p>
<p>만약 서버가 비활성화 된 상태에서 HTML 도움말을 사용하기를 원한다면, 패키지들이 설치될 때 (R과 함께 설치되는 것들도 포함)
HTML페이지들을 빌드하도록 하는 옵션이 제공됩니다.  이는 <code>configure</code> 사용시
<samp>--enable-prebuilt-html</samp> 이라는 옵션을 통해서 이루어지게 됩니다.<code>R CMD
INSTALL</code> (즉, <code>install.packages</code>)이라는 명령이 <acronym>HTML</acronym> 페이지들의 설치준비를 하는 것은 R
설치를 살펴봄으로서 알수 있고 <code>R INSTALL --help</code>에 의하여 보고 되어집니다.이것은
<code>INSTALL</code>과 함께 쓰이는 <samp>--html</samp> 또는 <samp>--no-html</samp>이라는 옵션을 통하여
조절될 수 있습니다.
</p>
<p>서버는 R이 시작되기 전 또는 HTML 도움말 (<code>help.start</code>의 사용을 포함함)이 사용되기 전의 R 세션
내에서 환경 변수 <code>R_DISABLE_HTTPD</code>에 비어있지 않은 값으로 설정함으로서 비활성화 될 수 있습니다. 
<a name="index-R_005fDISABLE_005fHTTPD"></a>
또한, 만약 loopback 인터페이스가 비활성화된 경우와 같이 시스템 보안과 관련된 사항들은 서버의 시작을 방해할 수도 있습니다. 더
자세한 내용은 <code>?tool::startDynamicHelp</code>를 살펴보시길 바랍니다.
</p>
<hr>
<a name="Making-the-manuals"></a>
<a name="Making-the-manuals-1"></a>
<h3 class="section">2.3 Making the manuals</h3>
<a name="index-eSS_0024_003fe_0027i1_002f4-ii_002b_002die_002c_00b0"></a>

<p>소스로부터 빌드될 수 있는 매뉴얼들이 있습니다. 
</p>
<dl compact="compact">
<dt>&lsquo;<samp>fullrefman</samp>&rsquo;</dt>
<dd><p>베이스와 추천 패키지들에 대한 모든 도움말 페이지들이 인쇄된 버전입니다 (대략 3300 페이지 분량입니다).
</p></dd>
<dt>&lsquo;<samp>refman</samp>&rsquo;</dt>
<dd><p>선택되어진 일부 베이스 패키지들에 대한 도움말 페이지들이 인쇄된 버전입니다 (1900 페이지가 넘습니다). 
</p></dd>
<dt>&lsquo;<samp>R-FAQ</samp>&rsquo;</dt>
<dd><p>R <acronym>FAQ</acronym>
</p></dd>
<dt>&lsquo;<samp>R-intro</samp>&rsquo;</dt>
<dd><p>&ldquo;An Introduction to R&rdquo;.
</p></dd>
<dt>&lsquo;<samp>R-data</samp>&rsquo;</dt>
<dd><p>&ldquo;R Data Import/Export&rdquo;.
</p></dd>
<dt>&lsquo;<samp>R-admin</samp>&rsquo;</dt>
<dd><p>&ldquo;R Installation and Administration&rdquo;, this manual.
</p></dd>
<dt>&lsquo;<samp>R-exts</samp>&rsquo;</dt>
<dd><p>&ldquo;Writing R Extensions&rdquo;.
</p></dd>
<dt>&lsquo;<samp>R-lang</samp>&rsquo;</dt>
<dd><p>&ldquo;The R Language Definition&rdquo;.
</p></dd>
</dl>

<p>&lsquo;<samp>refman</samp>&rsquo; 보다 &lsquo;<samp>fullrefman</samp>&rsquo;와 함께 이 문서들을 생성하기 위해서는 다음의 명령어를 이용하면 됩니다. 
</p>
<div class="example">
<pre class="example">make pdf      <span class="roman">to create PDF versions</span>
make info     <span class="roman">to create info files (not &lsquo;<samp>refman</samp>&rsquo; nor &lsquo;<samp>fullrefman</samp>&rsquo;).</span>
</pre></div>

<p>You will not be able to build any of these unless you have
<code>texi2any</code> version 5.1 or later installed, and for PDF you must have
<code>texi2dvi</code> and <samp>texinfo.tex</samp> installed (which are part of the
<acronym>GNU</acronym> <strong>texinfo</strong> distribution but are, especially
<samp>texinfo.tex</samp>, often made part of the TeX package in
re-distributions).  For historical reasons, the path to <code>texi2any</code>
can be set by macro &lsquo;<samp>MAKEINFO</samp>&rsquo; in <samp>config.site</samp>
(<code>makeinfo</code> is nowadays a link to <code>texi2any</code>).
</p>
<p>PDF 버전의 문서는 최근에 나온 아무 종류의 PDF 뷰어를 이용하여 볼 수 있으며, 하이퍼링크 기능이 지원됩니다. info 파일들은
이맥스 (Emacs) 또는 독립적인 <acronym>GNU</acronym> <code>info</code> 프로그램에서 사용되는데 적합합니다.  
<a name="index-R_005fPAPERSIZE"></a>
PDF 버전들은 ISO 표준인 a4 용지의 크기에 맞추어 생성되지만, 이는 <code>make</code> 명령어 라인에서
<code>R_PAPERSIZE</code>를 조절하거나 <code>make -e</code>를 이용하여 변경할 수 있습니다.(만약 용지의 크기를 다르게
하여 매뉴얼을 재생성하고 싶다면 <samp>doc/manual/version.texi</samp>를 먼저 삭제해야 합니다. 북미에서는 기본값이
&lsquo;<samp>letter</samp>&rsquo; 사이즈로 되어 있습니다). 
</p>
<p>PDF 형식의 참조 매뉴얼, <samp>refman.pdf</samp> 또는 <samp>fullrefman.pdf</samp>을 생성하는데는 몇가지 이슈들이
있습니다. 도움말 파일들은 표준 LaTeX Computer Modern 글꼴에는 포함되어 있지 않은 ISO Latin1 문자들
(즉,  <samp>text.Rd</samp>)와 오른쪽 큰 따옴표를 포함하고 있습니다. 우리는 다음과 같은 네가지 대안을 제공하고 있습니다.
</p>
<dl compact="compact">
<dt><code>times</code></dt>
<dd><p>기본적으로 제공되는 방법은 표준 포스트스크립트(postscript) 글꼴, Times Roman, Helvertica와 Courier
글꼴을 이용합니다. 이것은 화면상으로 보거나 출력하는데 있어서 모두 잘 작동합니다. 한가지 단점은 사용법(Usage)과
예제들(Examples) 섹션들이 다소 본래의 크기보다 넓게 출력될 수 있습니다. 이것은 <code>beramono</code> 또는
<code>inconsolata</code> 옵션들 중 하나를 이용하여 해결할 수 있습니다. 이 옵션은 Courier monospaced 글꼴을
Bera Sans mono 또는 Iconsolata 로 각각 대체합니다.(<strong>bera</strong> 또는 <strong>inconsolata</strong>라는
적절한 LaTeX 패키지들이 설치되어 있어야 할 것입니다).<a name="DOCF5" href="#FOOT5"><sup>5</sup></a>)
</p>
<p>대부분의  LaTeX 설치에 있어서 이것은 실제로 PDF를 위한 표준 글꼴을 사용하는 것이 아니며, URW clones
NimbusRom, NimbusSans, 그리고 MimbusMon을 끼워넣는 것입니다.
</p>
<p>This needs LaTeX packages <strong>times</strong>, <strong>helvetic</strong> and (if used)
<strong>courier</strong> installed.
</p>
</dd>
<dt><code>lm</code></dt>
<dd><p><em>Latin Modern</em> 글꼴들을 이용하는 것입니다. 이것들은 TeX 배포의 일부분이기 때문에 종종 설치되지 않지만,
<a href="http://www.ctan.org/tex-archive/fonts/ps-type1/lm/">http://www.ctan.org/tex-archive/fonts/ps-type1/lm/</a>과 이것의
미러들로부터 얻을 수 있습니다.이것은 Computer Modern과 다소 유사한 글꼴들을 사용하지만 <code>times</code>와 같이
스크린상에서 보기 좋은 글꼴은 아닙니다.
</p>
</dd>
<dt><code>cm-super</code></dt>
<dd><p>Vladimir Volovich에 의해서 만들어진 Computer Modern 글꼴의 type-1 버전들을 이용하는 것입니다. 이것은
<a href="http://www.ctan.org/tex-archive/fonts/ps-type1/cm-super/">http://www.ctan.org/tex-archive/fonts/ps-type1/cm-super/</a>과 이것의
미러들로부터 얻을 수 있는데, 매우 방대한 설치입니다.이러한 type-1 글꼴은 좋지 않은 질을 가지고 있어  다른 세가지 옵션처럼
스크린상에서만 읽을 수 있을 것입니다.
</p>
</dd>
<dt><code>ae</code></dt>
<dd><p>Computer Modern 글꼴의 복합체를 이용하는 패키지입니다. 이것은 대부분의 경우에 잘 작동하며 이것의 PDF 버전은 이전의
두가지 옵션들보다 더욱 읽기에 좋은 질을 가집니다.  비트맵된 글꼴, <samp>tctt0900.600pk</samp>,
<samp>tctt1000.600pk</samp> 그리고, <samp>tcrm1000.600pk</samp> 을 이용해야하는 세가지 글꼴들이 있습니다.아쉽게도
이러한 파일들을 이용할 수 없다면, 아크로뱃 리더는 잘못된 상형문자로 대체하게 될 것입니다.따라서, 로그를 주의깊게 살펴보아야 합니다.  
</p></dd>
</dl>

<p>기본값들은 <code>R_RD4PDF</code>이라는 환경변수를 조절함으로서 변경될 수 있습니다.
<a name="index-R_005fRD4PDF"></a>
<code>R_RD4PDF</code>.  (On Unix-alikes, this will be picked up at install time and
stored in <samp>etc/Renviron</samp>, but can still be overridden when the manuals
are built, using <code>make -e</code>.)  The usual<a name="DOCF6" href="#FOOT6"><sup>6</sup></a> default
value for <code>R_RD4PDF</code> is &lsquo;<samp>times,inconsolata,hyper</samp>&rsquo;: omit
&lsquo;<samp>hyper</samp>&rsquo; if you do not want hyperlinks (e.g. for printing the manual)
or do not have LaTeX package <strong>hyperref</strong>, and omit &lsquo;<samp>inconsolata</samp>&rsquo;
if you do not have LaTeX package <strong>inconsolata</strong> installed.
</p>
<p>Further options, e.g for <strong>hyperref</strong>, can be included in a file
<samp>Rd.cfg</samp> somewhere on your LaTeX search path.  For example if you
prefer the text and not the page number in the table of contents to be
hyperlinked, use
</p><div class="example">
<pre class="example">\ifthenelse{\boolean{Rd@use@hyper}}{\hypersetup{linktoc=section}}{}
</pre></div>

<p>또는  
</p><div class="example">
<pre class="example">\ifthenelse{\boolean{Rd@use@hyper}}{\hypersetup{linktoc=all}}{}
</pre></div>

<p>to hyperlink both text and page number<a name="DOCF7" href="#FOOT7"><sup>7</sup></a>.
</p>
<p>Ebook versions in one or both of <samp>.epub</samp> and <samp>.mobi</samp> formats can
be made by running in <samp>doc/manual</samp> one of
</p><div class="example">
<pre class="example">make ebooks
make epub
make mobi
</pre></div>

<p>This requires <code>ebook-convert</code> from <code>Calibre</code>
(<a href="http://calibre-ebook.com/download">http://calibre-ebook.com/download</a>), or from most Linux
distributions).  If necessary the path to <code>ebook-convert</code> can be set
as make macro <code>EBOOK</code> to by editing <samp>doc/manual/Makefile</samp> (which
contains a commented value suitable for OS X).
</p>

<hr>
<a name="Installation"></a>
<a name="Installation-1"></a>
<h3 class="section">2.4 Installation</h3>
<a name="index-Installation"></a>

<p>설치된 트리가 올바른 그룹내의 사용자들에 의해서 사용될 수 있게 하기 위해서는 소스의 압축을 풀기 전에 <code>umask</code>가 올바르게
설정되어야 하고, 빌드과정 동안 유지되어야 합니다.
</p>
<p>설치를 위해서는 다음과 같은 명령어를 입력합니다.
</p>
<a name="index-configure-2"></a>
<div class="example">
<pre class="example">./configure
make
make check
</pre></div>

<p>(소스 밖에서 빌드할때에는 <code><var>TOP_SRCDIR</var>/configure</code>라고 합니다).  위의 명령어가 성공적으로
수행되었다면, 완전한 R 트리를 시스템에 다음의 명령어를 이용하여 설치할 수 있습니다.
</p>
<div class="example">
<pre class="example">make install
</pre></div>

<p>make를 병렬식으로 사용할 수도 있습니다 (그러나 <code>make all</code>을 먼저 수행하세요)
</p>
<p>위의 명령어는 다음과 같은 디렉토리에 설치를 진행할 것입니다.
</p>
<dl compact="compact">
<dt><samp><var>prefix</var>/bin</samp> or <samp><var>bindir</var></samp></dt>
<dd><p>사용자가 사용할 수 있는 쉘 스크립트와 다른 스크립트들, 그리고 실행가능한 것들
</p></dd>
<dt><samp><var>prefix</var>/man/man1</samp> or <samp><var>mandir</var>/man1</samp></dt>
<dd><p>도움말 페이지 
</p></dd>
<dt><samp><var>prefix</var>/<var>LIBnn</var>/R</samp> or <samp><var>libdir</var>/R</samp></dt>
<dd><p>위의 것을 제외한 모든 것 (즉, 라이브러리들, 온라인 도움말 시스템, &hellip;).여기에서 <var>LIBnn</var>은 일반적으로
&lsquo;<samp>lib</samp>&rsquo;이지만, 일부 64-비트 리눅스 시스템에서는 &lsquo;<samp>lib64</samp>&rsquo;입니다.이곳은 R 홈 디렉토리라고 알려져
있습니다. 
</p></dd>
</dl>

<p>여기에서 <var>prefix</var>는 설정을 하는동안 결정되며 (일반적으로는 <samp>/usr/local</samp>입니다)
<code>configure</code> 명령어를 <samp>--prefix</samp> 옵션과 함께 아래와 같이 사용함으로서 설정될 수 있습니다. 
</p>
<a name="index-configure-3"></a>
<div class="example">
<pre class="example">./configure --prefix=/where/you/want/R/to/go
</pre></div>

<p>이것은  <code>make install</code>를 실행시 R 스크립트가
<samp>/where/you/want/R/to/go/bin</samp>이라는 곳에 설치하도록 해줍니다.설치디렉토리에 대한 prefix 는
<code>configure</code> 명령어를 사용한 맨 마지막에 보여지는 상태관련 메시지에서 확인이 가능합니다. 만약 다른 디렉토리
트리에 설치하고 싶다면 최소한  <acronym>GNU</acronym> <code>make</code>가 설치된 상태에서 다음의 명령어를 이용하면 됩니다
(그리고 현재 솔라리스와 FreeBSD <code>make</code>도 괜찮지만, 일부 오래된 버전의 유닉스 makes는 아닙니다). 
</p>
<p>You can install into another directory tree by using
</p>
<div class="example">
<pre class="example">make prefix=/path/to/here install
</pre></div>

<p>at least with <acronym>GNU</acronym> <code>make</code> (and current Solaris
<code>make</code>, but not some older Unix makes).
</p>
<p>좀 더 정교한 조정은 환경설정시에 옵션들을 통하여 이루어질 수 있습니다.더 자세한 내용은 <code>configure
--help</code>를 살펴보세요.(그러나, 대부분의 &rsquo;Fine tuning of the installation directories&rsquo; 옵션들은
R에 의하여 사용되는 것이 아닙니다).
</p>
<p><code>R</code> 스크립트의 복사를 만들고 <code>man</code> 페이지의 설치를 조정할 수 있는 환경설정 옵션들
<samp>--bindir</samp>과 <samp>--mandir</samp>이 지원됩니다.
</p>
<p><samp>--libdir</samp> 옵션은 주된 R 파일들이 어디에 설치되어야 하는지를 조정합니다.기본값은
&lsquo;<samp><var>eprefix</var>/<var>LIBn</var></samp>&rsquo;인데, <var>eprefix</var>는 아키텍쳐-의존 파일들을 설치하는데 사용되는
prefix 이며, <var>prefix</var>에 대한 기본값입니다. 그리고 환경설정 옵션 <samp>--exec-prefix</samp>를 통하여
설정될 수 있습니다. 
</p>
<p><code>bindir</code>, <code>mandir</code> 그리고 <code>libdir</code>은 또한 <code>make install</code>
명령어 라인에서 설정될 수 있습니다. 
</p>
<p><code>configure</code> 또는 <code>make</code> 변수 <code>rdocdir</code>과 <code>rsharedir</code>는
시스템-독립적인 <samp>doc</samp>과 <samp>share</samp> 디렉토리들을 <code>libdir</code>이 아닌 다른곳에 설치하게 할 수
있습니다.  C 헤더파일들은  <code>rincludedir</code>의 값에 설치되어질 수 있습니다.헤더들은 하위디렉토리에 설치되지 않기
때문에 아마도  <code>rincludedir=/usr/local/include/R-Revision: 67332 (3.2.0 Under development (unstable))</code> 와 같은 것을
원할 수 있습니다.
</p>
<p>만약 R 홈이 <samp><var>libdir</var>/R</samp>이 아닌 다른 곳으로 설정하기 원하다면 <samp>rhome</samp> 옵션을
이용하세요.예를들면, 다음과 같습니다. 
</p>
<div class="example">
<pre class="example">make install rhome=/usr/local/lib64/R-Revision: 67332 (3.2.0 Under development (unstable))
</pre></div>

<p>위의 명령어는 리눅스 64 비트 시스템에서 버전별 R 홈디렉토리를 이용하는 것입니다.
</p>
<p>만약  R을 shared/dynamic 라이브러리로서 만들고 싶다면 시스템의 라이브러리 디렉토리내에 이것들을 아래와 같은 방법으로
설치할 수 있습니다.
</p>
<div class="example">
<pre class="example">make prefix=/path/to/here install-libR
</pre></div>

<p>여기에서 <code>prefix</code>는 선택사항이며, <code>libdir</code>은 좀 더 정교한 조절을 하게 됩니다위의 명령어 사용은
stripped executables을 설치할 것이고, 이것이 지원이되는 플랫폼들에서 <samp>lib</samp>과 <samp>modules</samp>
디렉토리들하고 표준 패키지들 안에 stripped libraries를 설치 할것입니다. 
</p>
<div class="example">
<pre class="example">make install-strip
</pre></div>

<p>will install stripped executables, and on platforms where this is supported,
stripped libraries in directories <samp>lib</samp> and <samp>modules</samp> and in the
standard packages.
</p>
<p>R은 공백이 존재하는 경로명에는 설치되지 않으며, 최소한 (소스 패키지들을 설치하는 것과 같은) 일부 기능들은 작동하지 않을
것입니다.
</p>
<a name="index-Manuals_002c-installing"></a>

<p>info와 PDF 버전의 매뉴얼들을 설치하기 위해서는 아래의 명령들 중 하나를 이용합니다. 
</p>
<div class="example">
<pre class="example">make install-info
make install-pdf
</pre></div>

<p>Once again, it is optional to specify <code>prefix</code>, <code>libdir</code> or
<code>rhome</code> (the PDF manuals are installed under the R home directory).
(<code>make install-info</code> needs <code>Perl</code> installed if there is no
command <code>install-info</code> on the system.)
</p>
<p>좀 더 정교한 조절이 가능합니다. info의 경우에 사용된 설정은 <code>infodir</code>의 값입니다 (기본값은 환경설정 옵션
<samp>--infodir</samp>에 의하여 조정되는 <samp><var>prefix</var>/info</samp>입니다).PDF 파일들은 R
<samp>doc</samp> 트리에 설치되며, <code>make</code> 변수 <code>rdocdir</code>에 의해서 조정됩니다. 
</p>
<p>스테이지된 설치 또한 가능합니다. 즉, 최종목적에 설치된 트리를 옮기기 위해서 R을 임시디렉토리에 설치하는 것입니다. 이 경우에는
<code>prefix</code>는 최종목적지를 반드시 지정해야 하며, <code>DESTDIR</code>이 사용되어야 합니다. 
<a name="index-DESTDIR"></a>
이에 대해서는
<a href="http://www.gnu.org/prep/standards/html_node/DESTDIR.html">http://www.gnu.org/prep/standards/html_node/DESTDIR.html</a>를
살펴보세요.
</p>
<p><code>make check-all</code>의 일부분인 런타임 테스트를 아래의 명령어를 사용하여 선택적으로 설치할수 있습니다. 이는
설치시 <samp>tests</samp> 디렉토리를 채웁니다.
</p>
<div class="example">
<pre class="example">make install-tests
</pre></div>

<p>which populates a <samp>tests</samp> directory in the installation.
</p>

<hr>
<a name="Uninstallation"></a>
<a name="Uninstallation-1"></a>
<h3 class="section">2.5 Uninstallation</h3>

<p>다음과 같은 방법으로 R을 제거할 수있습니다. 
</p>
<div class="example">
<pre class="example">make uninstall
</pre></div>

<p>설치에서 지정했던 것과 같은 방법으로  <code>prefix</code>와 그 밖의 것들을 선택적으로 지정할 수 있습니다. 
</p>
<p>이것은 또한 설치된 어떠한 매뉴얼들도 함께 삭제합니다. <samp>doc/manual/Makefile</samp> 파일내에 info와 PDF
매뉴얼들을 삭제해야할 정확한 대상들이 있습니다.
</p>
<p>대상을 정해주었을때 <code>uninstall-tests</code>는 설치된 아무 테스트들을 삭제하며 테스트 결과들을 가지고 있는
<samp>tests</samp> 디렉토리 또한 제거 할 것입니다.
</p>
<p>An installed shared/static <code>libR</code> can be uninstalled by
</p>
<div class="example">
<pre class="example">make prefix=/path/to/here uninstall-libR
</pre></div>


<hr>
<a name="Sub_002darchitectures"></a>
<a name="Sub_002darchitectures-1"></a>
<h3 class="section">2.6 Sub-architectures</h3>

<p>R은 일부 플랫폼들은 실행가능한 파일들과 동적 객체들을 제외한 나머지들을 공유할 수 있는 연동형 빌드를 지원합니다. 예를들면
솔라리스에서 서로 다른 칩들에 대한 빌드 (특히, 32와 64비트 빌드), &lsquo;<samp>x86_64</samp>&rsquo; 리눅스에서의 64와 32비트
빌드, 그리고 (Mac) OS X에서 서로 다른 <acronym>CPU</acronym>들(즉,  &lsquo;<samp>i386</samp>&rsquo;과
&lsquo;<samp>x86_64</samp>&rsquo;)에 빌드와 같은 것입니다.
</p>
<p>R은 아키텍쳐에 맞춘 빌드가 가능하게 지원하며, 이는 &lsquo;<samp>r_arch=<var>name</var></samp>&rsquo;을
<code>configure</code> 라인에 추가함으로서 이루어집니다. 여기에서  <var>name</var>은 비어있지 않게 그 어떠한 것도 될
것도 될 수 있으며, <samp>lib</samp>, <samp>etc</samp>, <samp>include</samp>들의 서브디렉토리들과 패키지
<samp>libs</samp> 서브디렉토리들을 명명하는데 이용됩니다. Sparc Solaris에서 <samp>sparcv9</samp>이라는 이름의 사용과
&lsquo;<samp>x86_64</samp>&rsquo; 리눅스에서 <code>GCC</code>에 의한 <samp>32</samp>의 사용이 대표적인 예입니다.
</p>
<p>만약 그러한 빌드들을 두 개 이상 가지고 있다면 이들간에 서로 사용이 가능하도록 설치할 수 있습니다 (그리고 하나의 아키텍쳐에 32/64
비트 빌드의 경우에는 &lsquo;<samp>r_arch</samp>&rsquo;없이 가능합니다).공간활용이 상당하게 됩니다.&lsquo;<samp>x86_64</samp>&rsquo; 리눅스에서는
(디버깅 심볼이 없는) 기본설치는 63Mb를 차지하고 32비트 빌드는 6Mb를 더하게 됩니다. 만약 다중 빌드를 설치했다면 , 당신은
어떤 빌드를 선택할 것인지 아래와 같이 실행할 수 있습니다.
</p>
<div class="example">
<pre class="example">R --arch=<var>name</var>
</pre></div>

<p>&lsquo;<samp>R</samp>&rsquo;이라고만 실행하는 것은 마지막에 설치한 빌드를 실행하는 것입니다.
</p>
<p><code>R CMD INSTALL</code>은 하나 이상의 빌드가 설치되어 있는지와 각각에 대해서 적합한 라이브러리 객체들과 함께 패키지를
설치하고자 하는 것인지를 파악하게 됩니다.이것은 패키지가 실행가능한 <code>configure</code> 스크립트 또는
<samp>src/Makefile</samp> 파일을 가지고 있지 않다면 이루어지지 않습니다.이러한 경우에는 추가적인 빌드는 아래와 같이 수행될 수
있습니다. 
</p>
<div class="example">
<pre class="example">R --arch=<var>name</var> CMD INSTALL --libs-only <var>pkg1</var> <var>pkg2</var> &hellip;
</pre></div>

<p>만약 다른 플랫폼들 (예를들어 &lsquo;<samp>x86_64</samp>&rsquo; 리눅스와 &lsquo;<samp>i686</samp>&rsquo; 리눅스)에서 컴파일된 서브-아키텍쳐들을
혼용하고자 한다면, 각각의 이름들을 분명히 기재하여 사용하는것이 좋은 방법입니다. 그리고 또한 그들이 같은 위에서 설치가 되는지 확인하는
<samp>libdir</samp>를 지정하는 것이 필요할 수 있습니다. 
</p>
<p>서브-아키텍쳐들이 사용될때에는 <samp>/usr/bin/</samp>내에 있는 파일 <code>Rscript</code>의 버전이 마지막에 설치된
것이지만, 아키텍쳐에 맞춘 버전들은 <samp>srlib64/R/bin/exec${<var>R_ARCH</var>}</samp>에서 찾아볼 수
있습니다.일반적으로 설치된 모든 아키텍쳐들은 플랫폼에서 실행되며, <code>Rscript</code> 자체의 아키텍쳐는 문제가 되지
않습니다.
<a name="index-R_005fARCH"></a>
실행이 가능한 <code>Rscript</code>는 <code>R</code> 스크립트를 실행시킬때 <code>R_ARCH</code>이라는 환경변수에 어떤
아키텍쳐인지를 결정하게 됩니다. 
</p>
<p>서브-아키텍쳐들과 함께 설치후 테스트는 아래와 같이 수행될 수 있습니다.
</p>
<div class="example">
<pre class="example">R --arch=<var>name</var> CMD make check[-devel|all]
</pre></div>

<p>to select a sub-architecture to check.
</p>
<p>서브-아키텍쳐는 윈도우즈에서 또한 사용되어지지만 적합한 <samp>bin</samp> 디렉토리, <samp><var>R_HOME</var>/bin/i386</samp>
또는 <samp><var>R_HOME</var>/bin/x64</samp> 내에서 실행가능한 파일들을 선택하게 됩니다. 2.12.0 이하의 R이 가지는
하위호환성(backwards compatibility)에 대해서는 <samp><var>R_HOME</var>/bin/R.exe</samp> 또는
<samp><var>R_HOME</var>/bin/Rscript.exe</samp>내에 실행파일들이 있습니다.
<a name="index-R_005fARCH-1"></a>
이들은 <code>R_ARCH</code> 환경변수에서 처음으로 취해진 서브디렉토리들중 하나로부터 실행 한뒤 <samp>--arch</samp> 커맨드라인
옵션<a name="DOCF8" href="#FOOT8"><sup>8</sup></a>으로부터 수행한 뒤 설치 기본설정으로부터 수행하게 됩니다.
</p>

<hr>
<a name="Multilib"></a>
<a name="Multilib-1"></a>
<h4 class="subsection">2.6.1 Multilib</h4>

<p>리눅스<a name="DOCF9" href="#FOOT9"><sup>9</sup></a> 상에서는 32비트와 64비트 라이브러리들을
혼용하기 위하여 <em>multilib</em>이라고 알려진 라이브러리라는 대체 메카니즘이 있습니다.만약 리눅스 배포가 multilib를
지원한다면 R의 병렬빌드는 아마도 <samp>lib</samp>(32비트)와 <samp>lib64</samp>(64비트) 서브디렉토리내에 설치되어질
것입니다.그러면, 실행될 빌드는 아마도 <code>setarch</code> 명령어를 이용하여 선택되어질 수 있습니다.  예를들면, 32비트
빌드는 아래와 같이 선택되어 질 수 있습니다. 
</p>
<div class="example">
<pre class="example">setarch i686 R
</pre></div>

<p>만약 32비트와 64비트 빌드가 모두 설치되어 있다면, <code>setarch</code> 명령어는 오로지 선택적 사항입니다.만약 이들 중
하나만 설치되었다면, <code>setarch</code> 명령어에 의하여 지정된 아키텍쳐와 관계없이 항상 이것이 수행될 것입니다.
</p>
<p>non-native 아키텍쳐위에 패키지들을 설치하는데 문제가 있을 수 있습니다.만약 설치된 R 버전에 대한 선택사항이 없다면, 어떤
패키지가 설치될 세션에서 <code>setarch i686 R</code>을 수행하는 것은 좋은 생각입니다.그 이유는 이것이 패키지 설치 코드에
필요한 아키텍쳐가 무엇인지 말해주기 때문입니다)
</p>
<p>현재 Java를 이용한 패키지들에는 잠재적인 문제가 있습니다.그 이유는 &lsquo;<samp>x86_64</samp>&rsquo; 리눅스에서
&lsquo;<samp>i386</samp>&rsquo; RPM에 대한 설치후에 자바의 환경설정을 변경하고 &lsquo;<samp>x86_64</samp>&rsquo; Java를 찾을 것이기
때문입니다. 만약 32비트 Jave가 설치된 곳을 알고 있다면 (루트 권한으로서) 올바른 환경설정을 위해서는 아래와 같은 명령어를
수행해야 할 것입니다.
</p>
<div class="example">
<pre class="example">export JAVA_HOME=&lt;path to jre directory of 32-bit Java&gt;
setarch i686 R CMD javareconf
</pre></div>

<p>to get a suitable setting.
</p>
<p>이러한 메카니즘이 사용될 때 <samp>/usr/bin</samp>내에 있는 <code>Rscript</code>의 버전은 설치된 마지막것이 될
것입니다. 그러나 아키텍처에 맞춘 버전은  <samp>/usr/lib64/R/bin</samp>에서 확인할 수 있습니다. 일반적으로 설치된 모든
아키텍쳐들은 플랫폼에서 실행될 것이기 때문에 <code>Rscript</code>의 아키텍쳐는 문제가 되지 않습니다.  
</p>
<hr>
<a name="Other-Options"></a>
<a name="Other-Options-1"></a>
<h3 class="section">2.7 Other Options</h3>

<p>다양한 종류의 설치 옵션들이 있습니다. 이들중 대부분은 <code>configure --help</code>에 의하여 나열됩니다.이 문서의
다른곳에 나열되지 않은 옵션들의 대부분은 표준 <code>autoconf</code> 옵션들이거나 R과는 관계가 특별히 없거나 R
개발자들에 의하여 특수한 목적으로 사용되기 때문일 수 있습니다. 
</p>
<p>R에서 작업을 할 때 유용할 수 있는 것은 <samp>--disable-by-compiled-packages</samp> 옵션입니다. 이는
베이스와 추천 패키지들이 바이트컴파일 되지 앟고 레이지로드가 되도록 확실히 하여줍니다. (다른 방법으로는 make 또는 환경변수
<code>R_NO_BASE_COMPILE</code>을 빌드하는 도중에 비어있지 않은 값으로 설정할수 있는것입니다).
</p>
<p>Option <samp>--with-internal-tzcode</samp> makes use of R&rsquo;s own code and copy
of the Olson database for managing timezones.  This will be preferred where
there are issues with the system implementation, usually involving times
after 2037 or before 1916.  An alternative time-zone directory<a name="DOCF10" href="#FOOT10"><sup>10</sup></a> can be used, pointed to
by environment variable <code>TZDIR</code>: this should contain files such as
<samp>Europe/London</samp>.  On all tested OSes the system timezone was deduced
correctly, but if necessary it can be set as the value of environment
variable <code>TZ</code>.
</p>

<hr>
<a name="Testing-a-Unix_002dalike-Installation"></a>
<a name="Testing-an-Installation"></a>
<h3 class="section">2.8 Testing an Installation</h3>

<p>풀테스팅은 아래의 명령어를 이용해서 테스트 파일들을이 설치되었을 경우에만 가능합니다.
</p>
<div class="example">
<pre class="example">make install-tests
</pre></div>

<p>which populates a <samp>tests</samp> directory in the installation.
</p>
<p>만약 이것이 사용되었었다면, 두가지 테스팅 방법이 가능합니다. 하나는 R 설치 (<code>R.home()</code>에서 보이는 것과 같이)
홈 디렉토리 로 옮겨가서 아래의 명령어들을 수행합니다.
</p>
<div class="example">
<pre class="example">cd tests
## followed by one of
../bin/R CMD make check
../bin/R CMD make check-devel
../bin/R CMD make check-all
</pre></div>

<p>그리고 표준 팩키지와 (만약 설치가 되어 있다면) 추천 패키지들의 테스트를 수행하기 위한 <code>test-BasePackages</code>와
<code>test-Recommended</code>는 유용합니다. 
</p>
<p>이것은 (패키지 비그네트에 있는 예제들을 포함하여) 설치된 R과 관계된 모든 테스트들을 재수행합니다. 그러나, 독립적인 Rmath
라이브러리를 만드는 것과 매뉴얼안에 있는 예제 코드를 확인하지 않습니다. 이것은 운영체제가 업데이트 되었거나 <acronym>BALS</acronym>가
대체된 경우와 같이 운영환경이 변경되었을때 매우 유용합니다. 
</p>
<p>Parallel checking of packages may be possible: set the environment variable
<code>TEST_MC_CORES</code> to the maximum number of processes to be run in
parallel.  This affects both checking the package examples (part of
<code>make check</code>) and package sources (part of <code>make
check-devel</code> and <code>make check-recommended</code>).  It does require a
<code>make</code> command which supports the <code>make -j <var>n</var></code> option:
most do but on Solaris you need to select GNU <code>make</code> or <code>dmake</code>.
Where parallel checking of package sources is done, a log file
<samp><var>pngname</var>.log</samp> is left in the <code>tests</code> directory for
inspection.
</p>

<p>또 다른 방법으로는 설치된 R을 <samp>--vanilla</samp>과 같이 수행한뒤 다음의 명령어를 이용하는 것입니다.
<a name="index-LC_005fCOLLATE"></a>
</p>
<div class="example">
<pre class="example">Sys.setenv(LC_COLLATE = &quot;C&quot;, LC_TIME = &quot;C&quot;, LANGUAGE = &quot;en&quot;)
library(&quot;tools&quot;)
testInstalledBasic(&quot;both&quot;)
testInstalledPackages(scope = &quot;base&quot;)
testInstalledPackages(scope = &quot;recommended&quot;)
</pre></div>

<p>위의 명령어는 기본 테스트를 수행하고 표준및 추천 패키지들안에 있는 모든 테스트를 수행합니다. 이러한 테스트들은 어느곳에서든지 수행될 수
있습니다.기본 테스트는 R 홈디렉토리에 <samp>tests</samp>라는 폴더에 그 결과를 기록하고 첫번째 테스팅 방법보다 다소 적은 양의
테스트를 수행합니다.특히 인터넷 엑세스와 같은 테스트를 하지 않습니다. 
</p>
<p>이러한 테스트들은 <code>diff</code> (Windows 사용자에게는 <samp>Rtools*.exe</samp>내에 있습니다)이 경로상에
위치하고 있을때 가장 잘 수행되며, 일부 시스템에서는 collation 로케일 셋을 직접 조정해야 할 필요가 있습니다 (R 코드가
이를 시도하지만 아마도 리셋하는것은 불가능할 것입니다).만약 이러한 경우가 필요하다면 R을 시작하기 전에 환경변수
<code>LC_COLLATE</code>의 값을 &lsquo;<samp>C</samp>&rsquo;로 조정해보시길 바랍니다.
</p>
<p><code>make install-tests</code>가 수행되지 않았을지라도 설치된 패키지들을 테스트 하는 것도
<code>testInstalledPackages</code>에 의하여 가능합니다 (팩키지 고유의 테스트는 예외 입니다).
</p>
<p>시간과 메시지들과 연관된 결과들은 언어설정에 따라 달라집니다. 가장 비슷하게 결과를 비교할 수 있는 설정은 다음과 같습니다. 
</p>
<div class="example">
<pre class="example">LANGUAGE=en
</pre></div>

<p>but use a UTF-8 or Latin-1 locale.
</p>

<hr>
<a name="Installing-R-under-Windows"></a>
<a name="Installing-R-under-Windows-1"></a>
<h2 class="chapter">3 Installing R under Windows</h2>
<a name="index-iei_00b0i_007cii-Ri_0024_003fi1ie_002c_00b0"></a>

<p><acronym>CRAN</acronym> 사이트의 <samp>bin/windows</samp> 디렉토리에는 윈도우즈 XP나 그후에 나온 ix86
<acronym>CPU</acronym>s (AMD64/Intel64<a name="DOCF11" href="#FOOT11"><sup>11</sup></a> 칩스와 윈도우즈 x64 포함)에서
사용할수있는 기본 배포(base distribution)용 바이너리와 많은 양의 <acronym>CRAN</acronym>용 add-on 팩키지들이
포함되어있습니다. 
</p>
<p>사용자의 파일 시스템(file system)은 긴 파일명도 수용할수있어야 합니다 (혹시 있을수있는 네트워크에 연결된 몇몇의 시스템을
제외하고 보통 다 가능함).
</p>
<p><samp>Revision: 67332 (3.2.0 Under development (unstable))-win.exe</samp> 라는 설치 프로그램을 <em>통해서</em> 설치하십시요. 아이콘을 더블
클릭하신후 나오는 설명서를 참조하시면 됩니다. 64-bit 윈도우즈에 설치하실때는 32-와 64-bit 두가지 버젼의 R이 옵션에
있습니다 (기본은 두가지 버젼을 모두 설치하는 것입니다). 컨트럴 패널 (Control Panel) 안에서 R을 제거할수도
있습니다, 
</p>
<p>참고하실것은 설치 실행시 언어를 선택하게 되어있습니다, 그리고 선택하신 언어는 설치와 제거 실행시 모두 적용되지만 R 자체를
실행할때는 적용이 않됩니다.
</p>
<p>바이너리 설치 프로그램에 관한 더욱 자세한 내용은
<a href="http://CRAN.R-project.org/bin/windows/base/rw-FAQ.html">R
Windows <acronym>FAQ</acronym></a> 을 참고하십시요.
</p>

<hr>
<a name="Building-from-source"></a>
<a name="Building-from-source-1"></a>
<h3 class="section">3.1 Building from source</h3>

<p>윈도우즈상에서 R은 32- 또는 64-bit 어플리케이션으로 만들어질수있습니다: 64-bit 어플리케이션을 만들려면 윈도우즈역시
64-bit 발행판이어야 합니다: 그러한 운영체제 (OS) 안에서 32-bit R을 만드는것도 가능합니다. 
</p>
<p>기본 설치 프로그램은 32-bit과 64-bit을 합쳐서 한장소에 설치되며 <samp>.exe</samp>과 <samp>.dll</samp> 그리고
<samp>etc</samp> 디렉토리에 있는 몇몇의 형상파일들을 제외한 모든 파일들을 공유할수있도록 하나의 실행파일로 만들어졌다.  
</p>
<p>Building is only tested in a 8-bit locale: using a multi-byte locale (as
used for CJK languages) is unsupported and may not work (the scripts do try
to select a &lsquo;<samp>C</samp>&rsquo; locale; Windows may not honour this).
</p>
<p><strong>NB:</strong> The build process is currently being changed to require
external binary distributions of third-party software.  Their location is
set using macro <code>EXT_LIBS</code> with default setting <samp>$(LOCAL_SOFT)</samp>;
the $(LOCAL_SOFT) macro defaults to <samp>$(R_HOME)/extsoft</samp>.  This
directory can be populated using <code>make rsync-extsoft</code>. The location
can be overridden by setting <code>EXT_LIBS</code> to a different path in
<samp>src/gnuwin32/MkRules.local</samp>. A suitable collection of files can also
be obtained from <a href="http://CRAN.R-project.org/bin/windows/extsoft">http://CRAN.R-project.org/bin/windows/extsoft</a>
or <a href="http://www.stats.ox.ac.uk/pub/Rtools/libs.html">http://www.stats.ox.ac.uk/pub/Rtools/libs.html</a>.
</p>

<hr>
<a name="Getting-the-tools"></a>
<a name="Getting-the-tools-1"></a>
<h4 class="subsection">3.1.1 Getting the tools</h4>

<p>소스로부터 R을 빌드하기 원한다면 제일 먼저 필요한 도구들을 수집, 설치, 그리고 테스트를 해 보아야 합니다. 자세한 사항은
<a href="#The-Windows-toolset">The Windows toolset</a>을 살펴보세요 (그리고 아마도 다음 페이지
<a href="http://CRAN.R-project.org/bin/windows/Rtools/">http://CRAN.R-project.org/bin/windows/Rtools/</a>에 있는 업데이트되는 내용을
살펴보셔야 합니다).
</p>
<p><a href="#The-Windows-toolset">The Windows toolset</a>에 설며되어 있는 <samp>Rtools*.exe</samp>이라는 실행가능한 인스톨러는 또한 아래
설명된 것과 같이 R 소스외에도 추가적인 몇가지 소스파일들이 포함되어 있습니다.올바른 <code>tar</code> 파일과 그외에 필요한
것들을 얻기 위하여 이를 제일 먼저 실행해야 합니다. 그리고 &ldquo;Full installation&rdquo;을 선택하고 나머지 파일들을
<samp>C:/R</samp>과 같이 설치하고자 하는 위치에 추가적인 파일들을 설치하세요. 디렉토리 이름에는 띄어쓰기를 포함하면 안됩니다.우리는
이 디렉토리를 <samp><var>R_HOME</var></samp> 이라고 부를 것입니다.
</p>
<hr>
<a name="Getting-the-source-files"></a>
<a name="Getting-the-source-files-1"></a>
<h4 class="subsection">3.1.2 Getting the source files</h4>

<p>다음과 같은 파일들을 얻어야 할 필요가 있습니다:
</p><ul>
<li> <acronym>CRAN</acronym>으로부터 먼저 타르볼 형식으로 된 R 소스코드 파일
<samp>R-Revision: 67332 (3.2.0 Under development (unstable)).tar.gz</samp>을 얻어야 합니다.<var>R_HOME</var> 디렉토리에서 명령어 윈도우 (또는
다른 쉘)을 열고 다음과 같이 실행합니다. 

<div class="example">
<pre class="example">tar -xf R-Revision: 67332 (3.2.0 Under development (unstable)).tar.gz
</pre></div>

<p><strong>주의:</strong> 소스들을 압축으로부터 풀어내기 위하여 WinZip과 같이 심볼릭 링크를 이해하지 못하는 도구보다는
<code>tar</code>를 이용하길 바랍니다.만약 관리자 권한을 가지고 있다면, 많은 메시지들을 받아 볼 수 있는데 이는 다음을 통해서
보이지 않게 할 수 있습니다.
</p>
<div class="example">
<pre class="example">tar --no-same-owner -xf R-Revision: 67332 (3.2.0 Under development (unstable)).tar.gz
</pre></div>

<a name="index-TAR_005fOPTIONS-1"></a>
<p>또한, 환경변수 <code>TAR_OPTIONS</code>의 값을 &lsquo;<samp>--no-same-owner
--no-same-permissions</samp>&rsquo;으로 지정하는 것이 더 편리할 수도 있습니다.
</p>
<p>또한 서브버전을 이용하여 소스코드를 얻을 수도 있습니다.더 자세한 사항은 <a href="#Obtaining-R">Obtaining R</a>을 살펴보세요.
</p>

</li><li> 만약 타르볼을 사용하지 않는다면, <acronym>CRAN</acronym>에서 추천 패키지들의 복사본을 얻어야
합니다.<samp><var>R_HOME</var>/src/library/Recommended</samp> 에 <samp>.tar.gz</samp> 파일들을 넣고
<code>make link-recommended</code>를 실행하십시오. 만약 인터넷이 연결되어 있다면, 다음과 같이 이를 자동으로 할 수
있습니다.

<div class="example">
<pre class="example">make rsync-recommended
</pre></div>

</li><li> The binary distributions of external software.  Download

<div class="example">
<pre class="example">http://www.stats.ox.ac.uk/pub/Rtools/goodies/multilib/local320.zip
</pre></div>

<p>create an empty directory, say <samp>c:/R/extsoft</samp>, and unpack it in that
directory by e.g.
</p>
<div class="example">
<pre class="example">unzip local320.zip -d c:/R/extsoft
</pre></div>

</li><li> Make a local copy of the configuration rules by

<div class="example">
<pre class="example">cd <var>R_HOME</var>/src/gnuwin32
cp MkRules.dist MkRules.local
</pre></div>

<p>and edit <samp>MkRules.local</samp>, uncommenting <code>EXT_LIBS</code> and setting it
to the appropriate path (in our example <samp>c:/R/extsoft</samp>).
</p>
<p>Look through the file <samp>MkRules.local</samp> and make any other changes
needed: in particular, this is where a 64-bit build is selected and the
locations are set of external software for ICU collation and the cairo-based
devices.
</p>
</li></ul>

<p>다음의 추가적인 아이템들은 <samp>Rtools30.exe</samp>에 의해 보통 설치됩니다.   만약에 완전 수동으로 설치를 원한다면 다음이
요구됩니다.
</p>
<ul>
<li> <samp>Rtools30.exe</samp>내에 포함되어 있는 Tcl/Tk 지원 파일들이 필요하며 이들은
<a href="http://www.stats.ox.ac.uk/pub/Rtools">http://www.stats.ox.ac.uk/pub/Rtools</a>에서 <samp>.zip</samp>의 형식으로 얻을 수
있습니다. 올바른 버전을 설치하고 있는지에 대해서 반드시 확인하시길 바랍니다: 32 비트 버전과 64 비트 버전이 있습니다. 

</li></ul>

<hr>
<a name="Building-the-core-files"></a>
<a name="Building-the-core-files-1"></a>
<h4 class="subsection">3.1.3 Building the core files</h4>

<a name="index-TMPDIR-1"></a>
<p>환경 변수인 <code>TMPDIR</code>을 띄어쓰기없이 포워드 슬래시 (forward slash)를 사용하여 지정한 path를 사용하여  쓰기
가능한 디렉토리로 가리키도록 설정하십시요. (기본 설정은 <samp>/tmp</samp>인데, 윈도우즈에서는 유용하지 않을수도 있습니다.)
</p>
<p>어쩌면 대소문자를 기리는 파일 시스템안에서 compile하는게 필요할수도 있습니다: 우리가 알아낸 바로는 <code>samba</code>가
장착된 파일 시스템 (모든 파일명을 소문자로 바꾸는 시스템) 에서는 작동되지 않습니다.
</p>
<p><samp><var>R_HOME</var>/src/gnuwin32</samp> 명령어창을 열어주세요.
</p>
<div class="example">
<pre class="example">make all recommended vignettes
</pre></div>

<p>and sit back and wait while the basic compile takes place.
</p>
<p>Notes:
</p><ul>
<li> 예전 버전의 안티바이러스 소프트웨어가 컴퓨터를 잠가버린다는 보고를 받은적이 있습니다, 그러나 최근 몇년동안은 그런보고가
없었습니다. 하지만 Sophos의 on-access 스캐닝같이 과도한 안티바이러스 검사는 빌드를 몇배나 느리게 만들수있습니다. 

</li><li> parallel make를 아래의 예처럼 실행할수있습니다

<div class="example">
<pre class="example">make -j4 all
make -j4 recommended
make vignettes
</pre></div>

<p>하지만 이방법은 메모리가 충분한 multi-core 기계에서나 사용할 가치가있으며 100% 신뢰할수는 없습니다. 
</p>
</li><li> (make나 environment)변수인 <code>R_NO_BASE_COMPILE</code>을 비공의 값으로 설정하는것도 가능합니다 (대부분
R 자체에서 작업을 하는경우). 이럴경우 베이스나 추천된 팩키지들의 byte-compilation이 억제됩니다.

</li></ul>

<hr>
<a name="Building-the-cairo-devices-files"></a>
<a name="Building-the-cairo-devices"></a>
<h4 class="subsection">3.1.4 Building the cairo devices</h4>
<a name="index-winCairo_002edll"></a>

<p>Cairographics에 기초한 장치들 (<code>svg</code>, <code>cairo_pdf</code>, <code>cairo_ps</code> 그리고
<code>type = &quot;cairo&quot;</code>버전의 <code>png</code>, <code>jpeg</code>, <code>tiff</code> 그리고
<code>bmp</code>)은 이들 장치들 중 하나가 처음으로 사용될 때 로드된 서로 다른 DLL winCairo.dll에서 시행됩니다. 이는
기본적으로 빌드되지 않고, <code>make cairodevices</code>에 의해 <samp>Rbitmap.dll</samp> 뒤에 빌드되어져야만
합니다. 
</p>
<p>이러한 장치들이 빌드되게 하기 위해서는 Simon Urbanek에 의해 빌드 되어진 static cairographics 라이브러리들을
<a href="http://www.rforge.net/Cairo/files/cairo-current-win.tar.gz">http://www.rforge.net/Cairo/files/cairo-current-win.tar.gz</a>으로부터 받아
설치해야만 합니다. <samp>MkRules.local</samp>에 있는 &lsquo;<samp>CAIRO_HOME</samp>&rsquo; 매크로를 설정해주세요.(이 타르볼은
최상위 디렉토리 <samp>scr/</samp>에서 압축해제가 되어야 합니다. &lsquo;<samp>CAIRO_HOME</samp>&rsquo;은 그 경로를 포함해야 할 필요가
있습니다).
</p>
<hr>
<a name="Using-ICU-for-collation"></a>
<a name="Using-ICU-for-collation-1"></a>
<h4 class="subsection">3.1.5 Using ICU for collation</h4>

<p>It is recommended to build R to support ICU (International Components for
Unicode, <a href="http://site.icu-project.org/">http://site.icu-project.org/</a>) for collation, as is commonly
done on Unix-alikes.
</p>
<p>Two settings are needed in <samp>MkRules.local</samp>, 
</p><div class="example">
<pre class="example"># set to use ICU
# USE_ICU = YES
# path to parent of ICU headers
ICU_PATH = /path/to/ICU
</pre></div>

<p>The first should be uncommented and the second set to the top-level
directory of a suitably packaged binary build of ICU, for example that at
<a href="http://www.stats.ox.ac.uk/pub/Rtools/goodies/ICU_531.zip">http://www.stats.ox.ac.uk/pub/Rtools/goodies/ICU_531.zip</a>.  Depending
on the build, it may be necessary to edit the macro <code>ICU_LIBS</code>.
</p>
<p>Unlike on a Unix-alike, it is normally necessary to call
<code>icuSetCollate</code> to set a locale before ICU is actually used for
collation, or set the environment variable <code>R_ICU_LOCALE</code>.
</p>
<hr>
<a name="Checking-the-build"></a>
<a name="Checking-the-build-1"></a>
<h4 class="subsection">3.1.6 Checking the build</h4>

<p>다음을 실행함으로서 빌드를 테스트 할 수 있습니다. 
</p>
<div class="example">
<pre class="example">make check
</pre></div>

<p>추천 패키지들은 다음을 통해 확인해 볼 수 있습니다.
</p>
<div class="example">
<pre class="example">make check-recommended
</pre></div>

<p>다음을 이용하여 더 철저한 R의 기능들을 검사할 수 있습니다.
</p>
<div class="example">
<pre class="example">make check-devel
</pre></div>

<p>다음은 <code>check-devel</code>과 <code>check-recommended</code>를 모두 수행합니다.
</p>
<div class="example">
<pre class="example">make check-all
</pre></div>

<p>만약 테스트가 실패한다면, 체크된 디렉토리 안에 <samp>/Rout.fail</samp> 파일이 거의 항상 있을 것 입니다
</p>
<p>(종종 <samp>tests/Examples</samp> 혹은 <samp>tests</samp>): 문제점을 정확하게 보기위하여 파일을 검토하십시오.
</p>
<p>Parallel checking of package sources (part of <code>make check-devel</code> and
<code>make check-recommended</code>) is possible: see the environment variable
<code>TEST_MC_CORES</code> to the maximum number of processes to be run in
parallel.
</p>

<hr>
<a name="Building-the-manuals"></a>
<a name="Building-the-manuals-1"></a>
<h4 class="subsection">3.1.7 Building the manuals</h4>

<p>PDF 매뉴얼들은 아래에 의해서 만들어 질 수 있습니다. 
</p>
<div class="example">
<pre class="example">make manuals
</pre></div>

<p>만약에 info 버전을 (레퍼런스 매뉴얼을 제외한 나머지) 생성하고자 한다면, 다음을 이용하세요. 
</p>
<div class="example">
<pre class="example">cd ../../doc/manual
make -f Makefile.win info
</pre></div>

<p>(이러한 모든 것은 <code>pdftex</code>/<code>pdflatex</code>가 경로상에 설치되어있음을 가정합니다).
</p>
<p>페이퍼 사이즈 및 글꼴과 관계된 옵션들을 조정하는 것은 유닉스와 같은 환경에서 <a href="#Making-the-manuals">Making the manuals</a>을 참고하세요.
</p>
<p>Version 4.13 of <code>makeinfo</code> from Rtools is assumed by default.  In
version 5.x of <strong>texinfo</strong>, <code>makeinfo</code> has been replaced by a
<code>Perl</code> script <code>texi2any</code>: the comments in file
<samp>MkRules.dist</samp> contains alternative settings to allow that to be used
(edit the copy <samp>MkRules.local</samp>).  A package of <strong>texinfo</strong> 5.x for
use on Windows is available at <a href="http://www.stats.ox.ac.uk/pub/Rtools/">http://www.stats.ox.ac.uk/pub/Rtools/</a>:
you will also need to install <code>Perl</code>.  Its use is recommended as the
manuals are rendered by <code>texi2any</code> on non-Windows systems.
</p>
<hr>
<a name="Building-the-Inno-Setup-installer"></a>
<a name="Building-the-Inno-Setup-installer-1"></a>
<h4 class="subsection">3.1.8 Building the Inno Setup installer</h4>

<p>완전한 R을 구축하기 위해서는 bitmap과 Tcl/Tk의 지원, 매뉴얼을 포함하여 추천된 패키지들과 Inno Setup
(see <a href="#The-Inno-Setup-installer">The Inno Setup installer</a>)들이 필요합니다. 것들이 준비되었을때, 다음을 실행하는 것은 모든 조작들과 인스톨러를 생성할 것이고, 이들은 <samp>gnuwin32/cran</samp>
서브디렉토리에 놓이게 된 후 빌드를 확인할 것입니다.
</p>
<p>Once everything is set up
</p>
<div class="example">
<pre class="example">make distribution
make check-all
</pre></div>

<p>will make all the pieces and the installer and put them in the
<samp>gnuwin32/cran</samp> subdirectory, then check the build.  This works by
building all the parts in the sequence:
</p>
<div class="example">
<pre class="example">rbuild <span class="roman">(the executables, the <acronym>FAQ</acronym> docs etc.)</span>
rpackages <span class="roman">(the base packages)</span>
htmldocs <span class="roman">(the HTML documentation)</span>
cairodevices <span class="roman">(the cairo-based graphics devices)</span>
recommended <span class="roman">(the recommended packages)</span>
vignettes <span class="roman">(the vignettes in base packages:</span>
	  <span class="roman"> only needed if building from an <code>svn</code> checkout)</span>
manuals <span class="roman">(the PDF manuals)</span>
rinstaller <span class="roman">(the install program)</span>
crandir <span class="roman">(the <acronym>CRAN</acronym> distribution directory, only for 64-bit builds)</span>
</pre></div>

<p>전체 빌드가 필요하지 않을 경우에는 개별적으로 파트들이 만들어 질 수도 있지만, 초기 파드들은 나중 것들보다 먼저 빌드되어져야만
합니다. (<samp>Makefile</samp>은 이러한 의존성을 요구하지 않으나 몇몇의 빌드 타겟들은 모든 파일들이 최신임에도 불구하고 많은
연산을 필요로합니다).처음 네가지 타겟들은 만약 <code>make</code>만이 (혹은 <code>make all</code>) 실행되었다면
기본 빌드입니다. 
</p>
<p>Parallel make is not supported and likely to fail.
</p>
<p>만약 여러분이 여분의 패키지들을 추가함으로 사용자 설치를 하고 싶다면, <code>make rinstaller</code>를 다음과 같은 것으로
대체하십시오.
</p>
<div class="example">
<pre class="example">make rinstaller EXTRA_PKGS='pkg1 pkg2 pkg3'
</pre></div>


<p>바이너리 배포와 함께 시작하는 인스톨러를 조정하기 위한 다른 방법은 표준 인스톨러로부터 R의 설치를 제일 먼저 만든 후에 패키지들을
추가하고 설치에 다른 커스터마이제이션을 만드는 것입니다.그러고 난 후 (어쩌면  <samp>MkRules.local</samp>를 통해
커스터마이즈된 <samp>MkRules</samp>를 이용하여 소스트리에 R을 만들고 난 뒤)
<samp>src/gnuwin32/installer</samp>에서 다음을 실행하십시오.
</p>
<div class="example">
<pre class="example">make myR IMAGEDIR=rootdir
</pre></div>

<p>이는 <samp>rootdir</samp>이 사용자 설치의 루트로의 경로입니다 (띄어쓰기나 백슬래쉬등이 있다면 큰 따옴표 내에 써야 합니다).
</p>
<p>위의 두 가지 방법들 모두 <samp>Revision: 67332 (3.2.0 Under development (unstable))-win.exe</samp>와 같은 표준이름과 함께 실행가능한 파일을 생성하기
때문에 커스터마이즈 되었다는 것을 나타내는 이름으로 변경하세요. 만약 커스터마이즈된 인스톨러를 배포하고 싶다면 라이센스 요구사항이
충족되는지 확인하시길 바랍니다. 인스톨러는 GPL-2에 의거하여 배포되고 완전한 소스들(R의 바이너리배포를 시작하더라도 소스를
포함해야하며, (외부 소프트웨어를 포함된) 포함된 어떠한 추가적인 패키지들의 소스들도 포함)을 제공하는 것이 요구된다고 명시할
것입니다. 
</p>

<p>스타트업 파라미터들을 위한 기본값들 또한 조정될 수 있습니다.
</p>
<div class="example">
<pre class="example">make myR IMAGEDIR=rootdir MDISDI=1
</pre></div>

<p>이는 기본값을 SDI 모드에서 R 설치가 실행되도록 하는 인스톨러를 생성할 것입니다. 지정될 수 있는 이름들과 값에 대해서는
<samp>src/gnuwin32/installer/Makefile</samp>를 참조하십시오
</p>
<p>32/64 비트 인스톨러의 표준 CRAN 배포는 첫 번째로 32 비트 R을 빌드 함으로 만들어 집니다 (다음만이 필요합니다)
</p>
<div class="example">
<pre class="example">make 32-bit
</pre></div>

<p>그리고 나서 32 비트 빌드의 최상위 디렉토리에 <samp>MkRules.local</samp> 파일에 매크로 <code>HOME32</code>를 가진 64
비트 R을 빌드합니다. 그 후에 <code>make rinstaller</code> 단계는 아키텍쳐별로 다르게 이미지를 빌드하는 것 처럼 32
비트 빌드에서부터 파일들을 복사합니다
</p>
<hr>
<a name="Building-the-MSI-installer"></a>
<a name="Building-the-MSI-installer-1"></a>
<h4 class="subsection">3.1.9 Building the MSI installer</h4>

<p>Microsoft Installer와 함께 사용하기위한 인스톨러를 빌드하는 것 또한 가능합니다. 이는 자동 설치를 필요로 하는 시스템
관리자를 위해 만들어졌으므로, 일반적 사용으로는 추천되지 않습니다. 
</p>
<p>이는 <a href="http://wix.sourceforge.net/">http://wix.sourceforge.net/</a>에서 사용가능한 Windows Installer XML (WiX)
toolkit version 3.0 or 3.5을 사용합니다. WiX가 설치되면, <samp>MkRules.local</samp>에 홈 디렉토리로
경로를 지정하십시오.
</p>
<p>비트맵과 Tcl/Tk 지원과 매뉴얼, 그리고 추천 패키지들을 포함한 완전한 R 빌드를 위한 파일들을 가지고 있어야 합니다. 사용자 지정
스타트업 옵션을 지정하는 옵션이 인스톨러에는 없기때문에, 설정이 필요한 경우에 <samp>etc/Rconsole</samp>와
<samp>etc/Rprofile.site</samp>를 수정해야 합니다. 그러고 나서 아래를 사용하십시오.
</p>
<div class="example">
<pre class="example">cd installer
make msi
</pre></div>

<p>이는 <samp>Revision: 67332 (3.2.0 Under development (unstable))-win32.msi</samp> 와 같은 이름을 가진 파일을 생성할 것입니다. 더블-클릭이
가능하지만, 이를 필요로 하는 사람들은 무엇을 해야 할 지 알것입니다 (일반적으로 추가적인 옵션들과 함께 <code>msiexec
/i</code>를 실행함).사용자가 <code>msiexec</code> 명령줄에서 부터 지정하고자 하는 속성들은 &lsquo;<samp>ALLUSERS</samp>&rsquo;,
(<samp>c:\Program Files\R\R-devel</samp>와 같은)  &lsquo;<samp>INSTALLDIR</samp>&rsquo; 그리고 (시작 메뉴에 있는 R
폴더로의 경로인) &lsquo;<samp>RMENU</samp>&rsquo;, 그리고 (<samp>c:\Users\name\Documents\R</samp> 와 같은 것이 기본값인,
R shortcut을 위한 시작 디렉토리) &lsquo;<samp>STARTDIR</samp>&rsquo;를 포함합니다. 
</p>
<p>MSI installer는 R 의 32 비트 빌드 (<samp>Revision: 67332 (3.2.0 Under development (unstable))-win32.msi</samp>)와 R의 64 비트
빌드 (<samp>Revision: 67332 (3.2.0 Under development (unstable))-win64.msi</samp>, 선택적으로 이름이
<samp>Revision: 67332 (3.2.0 Under development (unstable))-win.msi</samp>일 때, macro <code>HOME32</code>를 지정함으로써 32 비트 파일들을
포함합니다), 두 가지 모두에서 빌드될 수 있습니다. 주요 installer와 다르게, 64 비트 MSI installer는 64 비트
윈도우에서만 실행할 수 있습니다. 
</p>
<p>WiX 을 제안해 주시고 prototype installer를 빌드해주신 David del Campo (Dept of
Statistics, University of Oxford)에 감사의 말씀을 전합니다. 
</p>
<hr>
<a name="g_t64_002dbit-Windows-builds"></a>
<a name="g_t64_002dbit-Windows-builds-1"></a>
<h4 class="subsection">3.1.10 64-bit Windows builds</h4>

<p>R의 64 비트 버전을 구축하기 위해서는 64 비트 toolchain이 필요합니다: 여기에서는 MinGW-w64
(<a href="http://sourceforge.net/projects/mingw-w64/">http://sourceforge.net/projects/mingw-w64/</a>) 프로젝트에 기초한 것들만 의논되었으나,
Intel과 PGI와 같은 상업용 컴파일러들 역시 사용될 수 있습니다 (그리고 이들은 R의 재배포자들에 의해서 사용되고 있습니다).
</p>
<p>MinGW-w64 에 대한 지원은 2008-10 기간 동안 R 소스에서 개발되었고 처음으로 R 2.11.0의 일부분으로 릴리즈
되었습니다. R 을 MinGW-w64 로 이식하는 결정적인 단계에서 Yu Gong의 도움과 MinGW-w64의 주 개발자인 Kai
Tietz의 도움이 매우컸으며, 이에 대하여 매우 감사드립니다.
</p>
<p>윈도우즈 64 비트는 현재 R과 패키지 구축 시스템들에 완전히 융화되었습니다. 
</p>
<hr>
<a name="Testing-a-Windows-Installation"></a>
<a name="Testing-an-Installation-1"></a>
<h3 class="section">3.2 Testing an Installation</h3>

<p>윈도우즈 인스톨러는 R이 구축될 때 사용된 테스트 파일들의 세트를 포함하고 있습니다.
</p>
<p><code>Rtools</code>는 이런 테스트들을 실행하기위해 필요하지는 않지만, 만약 <code>diff</code>가 경로에 있다면 에러에 대하여
더욱 심도있는 분석이 주어지게 될 것입니다. (<code>errorsAreFatal = FALSE</code> 이면 아래가 필요하지 않습니다).  
</p>
<p>가급적이면 <samp>--vanilla</samp>와 함께 <code>Rgui</code>나 <code>Rterm</code>을 실행한 뒤, 다음을 수행하세요.
</p>
<div class="example">
<pre class="example">Sys.setenv(LC_COLLATE = &quot;C&quot;, LANGUAGE = &quot;en&quot;)
library(&quot;tools&quot;)
testInstalledBasic(&quot;both&quot;)
testInstalledPackages(scope = &quot;base&quot;, errorsAreFatal = FALSE)
testInstalledPackages(scope = &quot;recommended&quot;, errorsAreFatal = FALSE)
</pre></div>

<p>이들은 기본 테스트들을 실행하고 나서 기본 패키지와 추천 패키지들에 모든 테스트들을 실행합니다. 이 테스트들은 어디서든지 실행 될 수
있습니다: (<code>R.home()</code>에 의해 주어진) R home 디렉토리의 <samp>test</samp> 폴더에 그들의 결과를 쓰기
때문에, R을 설치할 때 사용한 계정에서 실행해야 할 수도 있습니다. 
</p>
<p>The results of <code>example(md5sums)</code> when testing <strong>tools</strong> will differ
from the reference output as some files are installed with Windows&rsquo; CRLF
line endings.
</p>

<hr>
<a name="Installing-R-under-OS-X"></a>
<a name="Installing-R-under-OS-X-1"></a>
<h2 class="chapter">4 Installing R under OS X</h2>
<a name="index-OS-X-1"></a>


<p>The front page of a <acronym>CRAN</acronym> site has a link &lsquo;Download R for OS
X&rsquo;. Click on that, then download the file
<samp>R-Revision: 67332 (3.2.0 Under development (unstable))-snowleopard.pkg</samp> and install it.  This runs on OS
X 10.6 and later (Snow Leopard, Lion, Mountain Lion, Mavericks, Yosemite,
&hellip;); it is a 64-bit (&lsquo;<samp>x86_64</samp>&rsquo;) build which should run on all
Macs from mid-2008 on.  For older Intel Macs and some older versions of the
OS you can install R from the sources.
</p>
<p>There is a separate installer package,
<samp>R-Revision: 67332 (3.2.0 Under development (unstable))-mavericks.pkg</samp>, for use on Mavericks and Yosemite:
the &lsquo;Snow Leopard&rsquo; installer package also works there and may have more
binary packages available (but there are a few packages using C++11 and only
available for the Mavericks build).
</p>
<p>It is important that if you use a binary installer package that your OS is
fully updated: run &lsquo;Software Update&rsquo; from the Apple menu to be sure.  (If
using XQuartz, check that is current.)
</p>
<p>To install, just double-click on the icon of the file you downloaded.  At
the &lsquo;Installation Type&rsquo; stage, note the option to &lsquo;Customize&rsquo;.  This
currently shows three components.  Everyone will need the &lsquo;R Framework&rsquo;
component: the &lsquo;R GUI&rsquo; and &lsquo;Tcl/Tk&rsquo; components are optional (the latter
being needed to use package <strong>tcltk</strong>, and requires an X sub-system to be
installed: see <a href="#OS-X">OS X</a>.)
</p>
<p>This is an Apple Installer package. If you encounter any problem during the
installation, please check the Installer log by clicking on the &ldquo;Window&rdquo;
menu and item &ldquo;Installer Log&rdquo;. The full output (select &ldquo;Show All Log&rdquo;)
is useful for tracking down problems.
</p>
<p>If you update your OS X version, you should re-install R: the installer
tailors the installation to the current version of the OS.
</p>
<p>For building R from source, see <a href="#OS-X">OS X</a>.
</p>


<hr>
<a name="Running-R-under-OS-X"></a>
<a name="Running-R-under-OS-X-1"></a>
<h3 class="section">4.1 Running R under OS X</h3>

<p>There are two ways to run R on OS X from a <acronym>CRAN</acronym> binary
distribution.
</p>
<p>There is a GUI console normally installed with the R icon in
<samp>/Applications</samp> which you can run by double-clicking (e.g. from
Launchpad or Finder).  This is usually referred to as <small>R.APP</small> to distinguish
it from command-line R: its user manual is currently part of the OS X FAQ
at <a href="http://cran.r-project.org/bin/macosx/RMacOSX-FAQ.html">http://cran.r-project.org/bin/macosx/RMacOSX-FAQ.html</a> and
can be viewed from <small>R.APP</small>&rsquo;s &lsquo;Help&rsquo; menu.
</p>

<p>You can run command-line R from a Terminal like any other Unix-alike: see
the next chapter of this manual.  There are some small differences which may
surprise users of R on other platforms, notably the default location of
the personal library directory (under <samp>~/Library/R</samp>,
e.g. <samp>~/Library/R/3.1/library</samp>), and that warnings, messages and other
output to <samp>stderr</samp> are highlighted in bold.
</p>
<p>It has been reported that running <small>R.APP</small> under Yosemite may fail if no
preferences are stored, so if it fails when launched for the very first
time, try it again (the first attempt will store some preferences).
</p>
<p>Users of <small>R.APP</small> under Mavericks and later need to be aware of the &lsquo;App Nap&rsquo;
feature
(<a href="https://developer.apple.com/library/mac/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_9.html">https://developer.apple.com/library/mac/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_9.html</a>)
which can cause R tasks to appear to run very slowly when not producing
output in the console.  Here are three ways to avoid it:
</p>
<ul>
<li> Ensure that the console is completely visible (or at least the activity
indicator at the top right corner is visible).

</li><li> Call &lsquo;<samp>Get Info</samp>&rsquo; on the application (e.g. from Finder). This may have
two tick boxes in the &lsquo;General&rsquo; panel: click the one named &lsquo;Prevent App Nap&rsquo;
if it is not already ticked.  (This only available for builds made prior to
Mavericks.)

</li><li> In a Terminal, run
<div class="example">
<pre class="example">defaults write org.R-project.R NSAppSleepDisabled -bool YES
</pre></div>

<p>(see
<a href="https://developer.apple.com/library/mac/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_9.html">https://developer.apple.com/library/mac/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_9.html</a>).
</p></li></ul>

<p>Using the <code>X11</code> device or the X11-based versions of <code>View()</code> and
<code>edit</code> for data frames and matrices (the latter are the default for
command-line R but not <small>R.APP</small>) requires an X sub-system to be installed:
see <a href="#OS-X">OS X</a>.  (So do some third-party packages.)
</p>
<hr>
<a name="Uninstalling-under-OS-X"></a>
<a name="Uninstalling-under-OS-X-1"></a>
<h3 class="section">4.2 Uninstalling under OS X</h3>

<p>R for OS X consists of two parts: the GUI (<small>R.APP</small>) and the R
framework. The un-installation is as simple as removing those folders
(e.g. by dragging them into the Trash). The typical installation will
install the GUI into the <samp>/Applications/R.app</samp> folder and the R
framework into the <samp>/Library/Frameworks/R.framework</samp> folder.  This does
leave some links in <samp>/usr/bin</samp>.
</p>
<p>If you want to get rid of R more completely using a Terminal, simply run
(prepend <code>sudo</code> if needed):
</p>
<div class="example">
<pre class="example">rm -rf /Library/Frameworks/R.framework /Applications/R.app \
   /usr/bin/R /usr/bin/Rscript
</pre></div>

<p>The installation consisted of three Apple packages:
<code>org.r-project.R.x86_64.fw.pkg</code>, <code>org.r-project.R.x86_64.GUI.pkg</code>
and <code>org.r-project.x86_64.tcltk.x11</code> (not all of which need be
installed). You can use <code>pkgutil --unlink</code> (not supported by Lion or
later) to remove their files or <code>pkgutil --forget</code> if you want the
Apple Installer to forget about the package without deleting its files
(useful for the R framework when installing multiple R versions in
parallel), or after you have deleted the files.
</p>
<p>Uninstalling the Tcl/Tk component (which is installed under
<samp>/usr/local</samp>) is not simple.  You can list the files it installed in a
Terminal by
</p>
<div class="example">
<pre class="example">pkgutil --files org.r-project.x86_64.tcltk.x11
</pre></div>

<p>These are paths relative to <samp>/</samp>, the root of the file system.
</p>
<hr>
<a name="Multiple-versions"></a>
<a name="Multiple-versions-1"></a>
<h3 class="section">4.3 Multiple versions</h3>

<p>The installer will remove any previous version of the R framework which
it finds installed.  This can be avoided by using <code>pkgutil --forget</code>
(see the previous section).  However, note that different versions are
installed under <samp>/Library/Frameworks/R.framework/Versions</samp> as
<samp>3.0</samp>, <samp>3.1</samp> and so on, so it is not possible to have different
&lsquo;<samp>3.x.y</samp>&rsquo; versions installed for the same &lsquo;<samp>x</samp>&rsquo;.
</p>
<p>A version of R can be run directly from the command-line as e.g.
</p><div class="example">
<pre class="example">/Library/Frameworks/R.framework/Versions/3.1/Resources/bin/R
</pre></div>

<p>However, <small>R.APP</small> will always run the &lsquo;current&rsquo; version, that is the last
installed version.  A small utility, <code>Rswitch.app</code> (available at
<a href="http://r.research.att.com/#other">http://r.research.att.com/#other</a>), can be used to change the &lsquo;current&rsquo;
version.  However, this is of limited use as <small>R.APP</small> is compiled against a
particular version of R and will likely crash if switched to an earlier
version.  This may allow you to install a development version of R
(de-selecting <small>R.APP</small>) and then switch back to the release version.
</p>

<hr>
<a name="Running-R"></a>
<a name="Running-R-1"></a>
<h2 class="chapter">5 Running R</h2>

<p>어떻게 R을 시작하고 어떤 명령어 라인 옵션들이 사용가능한지는 <a href="http://cran.r-project.org/doc/manuals/R-intro.html#Invoking-R">Invoking R</a> in <cite>An Introduction to R</cite> 에 설명되어 있습니다.
</p>
<p>사용자가 해야할 일은 쉘이 올바르게 자원의 한계를 지정했는지를  확인하는 것입니다. R은 스택의 크기가 최소 8MB이어야 하며,
최소 256 파일 디스크립터들을 열수 있어야 합니다. (최근 운영체제들은 이것들에 대하여 가능한 크고 많이 할 수 있도록 기본값을
설정하지만, NetBSD는 그러하지 않은 것 같습니다. 쉘 명령어 <code>ulimit</code>
(<code>sh</code>/<code>bash</code>) 또는 <code>limit</code>
(<code>csh</code>/<code>tcsh</code>)를 이용해보세요).
</p>
<p>R은 여러가지 환경변수들을 사용하는데, 이들의 대다수의 기본값들이 <samp><var>R_HOME</var>/etc/Renviron</samp>
파일내에 설정되어 있습니다 (Windows에서는 기본적으로 아무것도 설정되지 않으므로 그러한 파일은 없습니다).이것들은
<code>configure</code>를 할때 설정되며, 일반적으로 <code>R_PAPERSIZE</code>는 제외하고는 이들의 값을 변경할 수는
없습니다.(see <a href="#Setting-paper-size">Setting paper size</a>).
<a name="index-R_005fPAPERSIZE-1"></a>
페이퍼 사이즈는 만약 &lsquo;<samp>LC_PAPER</samp>&rsquo; 로케일 카테고리에 지정된 값이 있고 <code>R_PAPERSIZE</code>가 지정되어 있지
않다면 그 값을 불러옵니다.이것은 일반적으로 현대 유닉스와 같은 환경에서 &lsquo;<samp>a4</samp>&rsquo;와 &lsquo;<samp>letter</samp>&rsquo;으로부터 올바른
선택을 하도록 해줍니다.(그러나 <code>R_PAPERSIZE</code>를 설정함으로서 항상 변경이 가능합니다).
</p>
<p>다양한 환경변수들은 R이 세션마다 사용하는 임시 디렉토리를 어디에 생성하는지 결정하도록 설정할 수 있습니다. 
<a name="index-TMPDIR-2"></a>
<a name="index-TMP"></a>
<a name="index-TEMP"></a>
환경변수 <code>TMPDIR</code>, <code>TMP</code>, <code>TEMP</code>가 찾아지고 가장 먼저 설정되고 쓰기권한이 부여된 곳에서 사용이
됩니다. 만약 그렇지 않다면 가장 마지막 선택은 유닉스와 같은 환경에서는 <samp>/tmp</samp>가 이용되며 윈도우즈에서는
<code>R_USER</code>의 값이 됩니다. 
<a name="index-R_005fUSER"></a>
<code>R_USER</code> on Windows.  The path should be an absolute path not containing
spaces (and it is best to avoid non-alphanumeric characters such as
<code>+</code>).
</p>
<p>일부 유닉스와 같은 시스템에서는 <code>cron</code>에 의해서 실행되는 <code>tmpwatch</code>와 같이
<samp>/tmp</samp>로부터 정기적으로 파일들과 디렉토리들을 삭제하도록 설정되어 있습니다. 
<a name="index-TMPDIR-3"></a>
그러한 시스템에서 오랜 작업이 걸리는 것을 실행하기 전에 <code>TMPDIR</code>를 이용하여 다른 디렉토리를 설정하도록 하세요.
</p>
<p><code>TMPDIR</code>은 패키지 설치시에 <code>configure</code> 스크립트를 실행하는데 이용됩니다. 만약
<samp>/tmp</samp>가 마운트되었다면 <code>TMPDIR</code>은 실행권한이 주어져 있는 디렉토리를 지정하는 것이 필요합니다. 
</p>
<hr>
<a name="Add_002don-packages"></a>
<a name="Add_002don-packages-1"></a>
<h2 class="chapter">6 Add-on packages</h2>
<a name="index-Packages"></a>
<a name="index-Libraries"></a>


<p>정확한 용어를 사용하는것이 도움이 됩니다. <em>팩키지</em>가 <code>library()</code>라는 함수를 사용하여
<em>library</em>에서 로드됩니다. 따라서 library란 설치된 팩키지들이 저장되어있는 디렉토리 입니다; 주된 library는
<samp><var>R_HOME</var>/library</samp> 입니다, 그러나 다른 곳도 사용할수 있습니다. 예를들어 환경변수를
<code>R_LIBS</code>으로 설정하던지 R함수인 <code>.libPaths()</code>를 사용하면 됩니다.  
<a name="index-R_005fLIBS"></a>
setting the environment variable <code>R_LIBS</code> or using the R function
<code>.libPaths()</code>.
</p>
<hr>
<a name="Default-packages"></a>
<a name="Default-packages-1"></a>
<h3 class="section">6.1 Default packages</h3>
<a name="index-Packages_002c-default"></a>

<p>The set of packages loaded on startup is by default
</p>
<div class="example">
<pre class="example">&gt; getOption(&quot;defaultPackages&quot;)
[1] &quot;datasets&quot;  &quot;utils&quot;     &quot;grDevices&quot; &quot;graphics&quot;  &quot;stats&quot;     &quot;methods&quot;
</pre></div>

<p>(물론 <strong>base</strong>도 포함합니다) 그리고 이것은 startup 코드에있는 옵션을 설정해서 바꿀수도있습니다 (예
<samp>~/.Rprofile</samp> 안에서). 
<a name="index-R_005fDEFAULT_005fPACKAGES"></a>
원래 설정은 환경변수인 <code>R_DEFAULT_PACKAGES</code>의 값에 맞춰져있습니다.  이는 (컴마로 구분된 리스트인데) 환경변수
<code>R_DEFAULT_PACKAGES=NULL</code>으로 설정하는것은 <strong>base</strong> 패키지만 로드될 수 있게 합니다.
</p>
<p>기본패키지들의 설정을 바꾸는 것은 보통 스크립팅을 할때 빠르게 할수있도록 세트의 수를 줄이기위해 사용됩니다: 특히
<strong>methods</strong>를 사용하지않으면 시작할때 시간을 두배까지 줄여 줄 것입니다 (그리고 이것은 <code>Rscript</code>을
통하여 이루어집니다).그러나, 이것은 R을 커스터마이즈 하는데 사용됩니다. 예 수업용으로 쓸때. 
</p>

<hr>
<a name="Managing-libraries"></a>
<a name="Managing-libraries-1"></a>
<h3 class="section">6.2 Managing libraries</h3>
<a name="index-Libraries_002c-managing"></a>

<p>R 패키지들은 라이브러리 안에 설치되는데, 이것은 각 패키들을 위한 서브 디렉토리를 포함한 파일시스탬내의 디렉토리입니다.
</p>
<p>R은 <samp><var>R_HOME</var>/library</samp>이라는 하나의 라이브러리가 따라오는데, 이는 기본 패키지와 추천 패키지들을
포함한 &lsquo;<samp>.Library</samp>&rsquo; 이라는 R 객체의 값입니다 <a name="DOCF12" href="#FOOT12"><sup>12</sup></a>. 사이트들과 사용자들 모두는 R 세션에서 다른 것들을 생성하거나 그들을 활용할 (혹은 활용하지 않거나) 수
있습니다. 가장 낮은 레벨인 &lsquo;<samp>.libPaths()</samp>&rsquo;는 라이브러리의 컬렉션으로나 현재 컬렉션을 리포트 하기위한 경로를 더하도록
사용될 수도 있습니다. 
</p>
<a name="index-Libraries_002c-site"></a>
<a name="index-Site-libraries"></a>
<p>R은 자동으로 site-specific 라이브러리인 <samp><var>R_HOME</var>/site-library</samp>가 존재한다면 이를 활용할
것입니다 (이것은 a vanilla R 설치내에 존재하는 것이 아닙니다). 이 위치는
<samp><var>R_HOME</var>/etc/Rprofile.site</samp>에 &lsquo;<samp>.Library.site</samp>&rsquo;를 설정함으로써 무시할 수
있고, 아니면 (추천하지는 않습니다) 환경값 <code>R_LIBS_SITE</code>을 설정함으로써도 무시할 수
있습니다. &lsquo;<samp>.Library</samp>&rsquo;와 같이, 사이트 라이브러리들은 항상 &lsquo;<samp>.libPaths()</samp>&rsquo;에 의해 포함되어집니다. 
<a name="index-R_005fLIBS_005fSITE"></a>
environment variable <code>R_LIBS_SITE</code>.  Like &lsquo;<samp>.Library</samp>&rsquo;, the site
libraries are always included by &lsquo;<samp>.libPaths()</samp>&rsquo;.
</p>
<a name="index-Libraries_002c-user"></a>
<a name="index-User-libraries"></a>
<a name="index-R_005fLIBS_005fUSER"></a>
<p>사용자들은 하나 이상의 라이브러리들을 가질 수 있고, 보통 환경값  <code>R_LIBS_USER</code>에 의해 지정됩니다. (무엇인지 보기
위해서는 R 세션의 &lsquo;<samp>Sys.getenv(&quot;R_LIBS_USER&quot;)</samp>&rsquo; 를 사용하십시오). 이는 기본 값이 있지만, 상응하는
디렉토리가 실제로 존재할 때만 사용됩니다(기본적으로는 존재하지 않습니다). 
</p>
<p><code>R_LIBS_USER</code> 과 <code>R_LIBS_SITE</code> 두 가지 모두 colon들로 분리되어진 (윈도우즈에서는
semicolon들) 여러개의 라이브러리 경로들을 지정할 수 있습니다. 
</p>

<hr>
<a name="Installing-packages"></a>
<a name="Installing-packages-1"></a>
<h3 class="section">6.3 Installing packages</h3>
<a name="index-Packages_002c-installing"></a>



<p>패키지들은 소스형태 또는 컴파일드된 바이너리 형태로 배포 될 수도 있습니다. C/C++/Fortran 코드를 포함하는 소스 패키지들을
설치하는 것은 컴파일러 또는 연관된 도구들이 설치가 되어 있어야 합니다. Binary 패키지들은 플랫폼 종속이고 일반적으로 특별한
도구들의 설치가 필요하지 않지만, 자세한 사항은 여러분의 플랫폼에 관한 문서를 참고하십시오.
</p>
<p>만약 하나 이상의 라이브러리가 존재할 때, 그 라이브러리에 어떤 패키지에 설치되는지를 함축적으로나 명시적으로 지정해 야할 수도
있습니다. 
</p>

<a name="index-TMPDIR-4"></a>
<p>반드시 환경값 <code>TMPDIR</code>이 unset (그리고 &rsquo;<samp>/tmp</samp>&rsquo;이 존재하여 그 곳에 쓰여지고 실행될 수 있도록)이거나
유효한 임시 디렉토리로 향하도록 하십시오.
</p>
<p>대부분의 사용자들에게는 만약 인터넷 사용이 가능하고 <acronym>CRAN</acronym> 패키지를 설치 하고자 하는 의도라면
&lsquo;<samp>install.packages(pkgname)</samp>&rsquo;나 그의 GUI에 상응하는 것을 부르는 것으로 충분합니다. 대부분의 시스템들에서
&lsquo;<samp>install.packages()</samp>&rsquo;는 패키지들이 list box에서 선택되도록 허용할 것입니다.
</p>
<p>To install packages from source on a Unix-alike use in a terminal
</p>
<div class="example">
<pre class="example">R CMD INSTALL -l /path/to/library <var>pkg1</var> <var>pkg2</var> &hellip;
</pre></div>

<p>일반 R 세션의 첫 번째 라이브러리가 사용되었을 경우에는 (<code>.libPaths()[1]</code>에 의해 보여집니다)
&lsquo;<samp>-l /path/to/library</samp>&rsquo; 부분이 생략될수 있습니다.
</p>
<p>여러가지의 옵션들이 사용가능합니다: 현재 목록을 보기위해서는<code>R CMD INSTALL -–help</code>를 사용하십시오.
</p>
<a name="index-install_002epackages"></a>
<p>그렇지 않으면, 패키지들은 R내에서 다운로드되고  설치될 수 있습니다. 첫  번째로, 옵션 <code>CRAN</code>을
<code>chooseCRANmirror()</code>을 사용하여 가장 가까운 <acronym>CRAN</acronym> mirror로 설정하십시오. 그리고
나서 다음을 사용하여 <strong>pkg1</strong>과 <strong>pkg2</strong> 패키지 들을 다운로드하고 설치하십시오.
</p>
<div class="example">
<pre class="example">&gt; install.packages(c(&quot;pkg1&quot;, &quot;pkg2&quot;))
</pre></div>

<p>위의 패키지들의 필수 dependency들 또한 fetch될 것입니다. (인자 <code>lib</code>로) 라이브러리가 지정되있지 않은 이상
라이브러리 검색 경로이 첫 번째 라이브러리가 사용됩니다: 만약 쓸 수 없다면, R은 사용자에게 (interactive 세션에서)
기본 사용자 라이브러리를 생성할 지와, 그 곳에 패키지들을 설치하는 것이 허용되는지를 물을 것 입니다.만약 여러분이 (어떤 식으로든)
미리 설치되지 않은 패키지와 그에 종속하는 모든것들을 fetch하기를 원한다면 다음의 예제를 사용하십시오.
</p>

<p>If you want to fetch a package and all those it depends on (in any way)
that are not already installed, use e.g.
</p>
<div class="example">
<pre class="example">&gt; install.packages(&quot;Rcmdr&quot;, dependencies = TRUE)
</pre></div>

<p><code>install.packages</code>는 인자 <code>repos</code>를 <code>NULL</code>로 설정함으로써 로컬
&rsquo;<samp>.tar.gz</samp>로 부터source 패키지를 설치할 수 있습니다: 이는 주어진 이름이 하나의 &rsquo;<samp>.tar.gz</samp>
파일일 경우에 자동으로 선택될 것입니다.
</p>
<p><code>install.packages</code>를 사용하여, 인자 <code>repos</code>로 character vector 처럼 지정된, 몇몇의
저장소들을 볼 수 있습니다: 이들은 <acronym>CRAN</acronym> mirror,Bioconductor, Omegahat, R-forge,
로컬 archive들, 로컬 파일들 등을 포함 합니다. <code>setRepositories()</code> 함수는 R 설치가 감지하는
저장소들 중에 선택 을 할 수 있습니다.
</p>
<p>어리숙한 사용자들은 패키지의 설치와 함께 그의 기능을 사용하기위해서 <code>library</code> 를 사용해야 한다는 사실을 가끔 잊습니다.
</p>
<hr>
<a name="Windows-packages"></a>
<a name="Windows"></a>
<h4 class="subsection">6.3.1 Windows</h4>

<p>기본으로 <code>install.packages</code>가 유닉스 계열 (OS X를 제외한)에서와 윈도우즈에서 하는 것이 다릅니다. 유닉스
계열에서, 이는 <acronym>CRAN</acronym> (혹은 다른 저장소(들))에서 사용가능한 <em>source</em> 패키지들의 리스트를
참고하고, 패키지 source들의 최신 버전을 다운로드하며, 그들을 (<code>R CMD INSTALL</code>을 통하여)
설치합니다. 윈도우즈에서는, (기본적으로) 여러분의 R 버전에서 사용가능한 패키지의 <em>binary</em> 버전들의 리스트를 보고
(만약 있다면) 가장 최신 보전들을 다운로드 합니다. 선택적으로 이가 또한 <code>type</code> 인자를 설정함으로써 source 패키지를
다운로드하고 설치할 수도 있기는 합니다.
</p>
<p>윈도우즈에서 <code>install.packages</code>는 인자 <code>repos</code>를
<code>NULL</code>. <code>Rgui.exe</code>로 설정함으로 써 로컬 &rsquo;<samp>zip</samp>&rsquo;파일에서부터 <code>binary</code>
패키지도 설치할 수 있습니다. 이는 <code>install.packages</code>,<code>update.packages</code> 그리고
<code>library</code>로의  GUI 인터페이스를 가진 메뉴 <code>Packages</code>를 가지고 있습니다.
</p>
<p>R의 윈도우즈 binary 패키지들은 둘 중 하나 혹은 두 개 모두의 architecture들을 포함하고 있는 하나의 binary로
요즘 배포되고 있습니다.
</p>
<p>몇 몇의 binary 패키지들은 여러분의 시스템에 다른 소프트웨어들이 설치되는 것을 필요로 합니다: 예를 들면 :
<a href="http://CRAN.R-project.org/bin/windows/contrib/3.0/@ReadMe">http://CRAN.R-project.org/bin/windows/contrib/3.0/@ReadMe</a>를
참조하세요. 64 비트 구축을 위해서, Gtk+ (<a href="http://CRAN.R-project.org/package=Cairo"><strong>Cairo</strong></a>, <a href="http://CRAN.R-project.org/package=RGtk2"><strong>RGtk2</strong></a>,
<a href="http://CRAN.R-project.org/package=cairoDevice"><strong>cairoDevice</strong></a> 그리고 그들에 종속된 것들)를 사용하는 패키지들은 경로에서
<a href="http://www.gtk.org/download-windows-64bit.html">http://www.gtk.org/download-windows-64bit.html</a> 에서의 bundled
distribution의 bin 디렉토리를 필요로 합니다: R의 64빝 버전의 경로에서 Gtk+ 와 &rsquo;<samp>bin</samp>&rsquo; 두 가지
모두를 가지는 것도 괜찮을 것입니다.
</p>
<p><code>R CMD INSTALL</code>은 여러분이 필요한 도구들을 설정해 놓았다면, source 패키지들을 설치하기위한 용도로
윈도우즈에서 사용됩니다 (<a href="#The-Windows-toolset">The Windows toolset</a>을 참조하세요). 패키지가 compile된 코드를 포함하고 있지
않다면 추가적인 도구들은 필요하지 않고, <code>install.packages(type=&quot;source&quot;)</code>는 그 런 패키지들을 위해
(그리고 만약 도구들이 경로에 있다면 compile된 코드들을 가진 것들) 실행될 것입니다.
<a name="index-R_005fINSTALL_005fTAR"></a>
</p>
<p>If you have only a source package that is known to work with current R
and just want a binary Windows build of it, you could make use of the
building service offered at <a href="http://win-builder.r-project.org/">http://win-builder.r-project.org/</a>.
</p>
<p>거의 대부분의 패키지들에서, 윈도우즈의 64비트 버전에서 R의 32/64 비트 설치를 실행한다면, <code>R CMD
INSTALL</code>는 패키지의 32 비트와 64비트 빌드 두 가지 모두를 시도할 것입니다. 다른 architecture가 성공적으로 설치가
되 었건 되지 않았건, <code>R</code>을 돌리는 architecture의 설치가 성공한다면, 이는 성공이라고 리포트를 할
것입니다.예외 사항은, 비어있지 않은 &rsquo;<samp>configure.win</samp>&rsquo; 스크립트를 가진 패키지
혹은&rsquo;<samp>src/Makefile.win</samp>&rsquo;를 활용하는 패키지들입니다. 만약 &rsquo;<samp>configure.win</samp>&rsquo;이 두 가지
모두의 architecture들에 알맞은 무언가를 한다면 <samp>--force-biarch</samp> 옵션을사용하십시오: 그렇지 않으면
각각의 32-비트와 64-비트 설치를 통합하기위하여 source 타르볼에 <code>R CMD INSTALL
--merge-multiarch</code>가 적용될 수 있습니다. (이는 타르볼에만 적용될 수 있고, 두 가지 모두의 설치가 성공할 경우에만
성공할 것입니다.)
</p>
<p>만약 compile된 코드가 없는 패키지를 가지고 있고 윈도우에 알맞은 도움말이 없다면, 다른 OS에서의 설치를 중단하고 윈도우즈에서
zip 파일을 설치하십시오. 하지만, 이런 패키지는 추가의 도구 없이 윈도우즈의 source들에서 설치될 수 있습니다.
</p>

<a name="index-LOCAL_005fSOFT"></a>
<p>There is provision to make use of a system-wide library of installed
external software by setting the <code>make</code> variable <code>LOCAL_SOFT</code>,
to give an equivalent of <samp>/usr/local</samp> on a Unix-alike.  This can be set
in <samp>src/gnuwin/MkRules.local</samp> when R is built from sources (see the
comments in <samp>src/gnuwin/MkRules.dist</samp>), or in file<a name="DOCF13" href="#FOOT13"><sup>13</sup></a> <samp>etc/i386/Makeconf</samp> or <samp>etc/x64/Makeconf</samp> for
an installed version of R.  The version used by <acronym>CRAN</acronym> can be
installed as described in See <a href="#Building-from-source">Building from source</a>.
</p>

<hr>
<a name="OS-X-packages"></a>
<a name="OS-X-1"></a>
<h4 class="subsection">6.3.2 OS X</h4>

<p><strong>NB:</strong> OS X에 대한 정보는 R 3.0.0.의 출시되기 전에 바뀔 것이라고 예상됩니다.OS X에서
<code>install.packages</code>는 다른 유닉스 계열 시스템들에서처럼 작동하지만,알맞은 저장소로부터 binary 패키지들을
다운로드하고 설치할 수 있도록 <code>install.packages</code> 로 패스되어질 수 있는 <code>mac.binary*</code>
(<acronym>CRAN</acronym>distribution에서 기본값인)와  R의 <acronym>CRAN</acronym> 구축을 위한 기본값인
<code>mac.binary.leopard</code>의 추가적인 타입들이 있습니다. 이런 OS X binary 패키지 파일들은 확장자
&lsquo;<samp>tgz</samp>&rsquo;을 가지고 있습니다. <small>R.APP</small>[ GUI는 <acronym>CRAN</acronym>이나 로컬파일들로부터 binary나 source
패키지들 중 하나의 설치를 제공합니다.
</p>
<p>Compile된 코드를 포함한 많은 binary 패키지들이 R의 특정한 시리즈들 (R2.15.x 혹은 3.0.x)에 묶여있다는
것을 유의하십시오: 어떠한 경우에도 R3.0.x는R 2.15.x를 위해 구축된 어떠한 binary 패키지도 사용할 수 없습니다.
</p>
<p>You should not attempt to mix-and-match binary packages built for the &lsquo;Snow
Leopard&rsquo; and &lsquo;Mavericks&rsquo; <acronym>CRAN</acronym> distributions: doing so is likely to
lead to crashes or failures to load.
</p>
<p>Compile된 코드를 포함하지 않은 source 패키지를 설치하는 것은 추가적인 도구 없이도 작동해야만 합니다. 다른 것들은,
<code>Xcode</code>와 R을 compile하기위하 여 사용된 것과 맞는 컴파일러들이 필요합니다. 이들은 현재
<code>gcc</code>, <code>g++</code>, 그리고<code>gfortran</code>이라고 불리우고 <samp>-arch</samp>
플래그의 Apple 확장의 허용을 필요로 합니다. 알맞은 컴파일러들은
<a href="http://r.research.att.com/tools/">http://r.research.att.com/tools/</a>에서 다운로드될 수 있습니다.
</p>
<p><a href="http://CRAN.R-project.org/package=rJava"><strong>rJava</strong></a> 패키지와 이에 종속된 것들은 Java runtime의 설치가 필요합니다: Mountian Lion은
<a href="#Mountain-Lion">Mountain Lion</a>을 참조하세요.
</p>
<p>Tcl/Tk extensions <code>BWidget</code> and <code>Tktable</code> are part of the Tcl/Tk
contained in the R installer.  These are required by a number of
<acronym>CRAN</acronym> and Bioconductor packages.
</p>
<p>A few of the binary packages need other software to be installed on your
system.  In particular packages using Gtk+ (<a href="http://CRAN.R-project.org/package=RGtk2"><strong>RGtk2</strong></a>,
<a href="http://CRAN.R-project.org/package=cairoDevice"><strong>cairoDevice</strong></a> and those that depend on them) need the GTK framework
installed from <a href="http://r.research.att.com/libs/">http://r.research.att.com/libs/</a>: the appropriate
version at the time of writing was
<a href="http://r.research.att.com/libs/GTK_2.24.17-X11.pkg">http://r.research.att.com/libs/GTK_2.24.17-X11.pkg</a>
</p>
<p>The default compilers specified in
<samp>/Library/Frameworks/R.framework/Resources/etc/Makeconf</samp> depend on the
version of OS X under which R was installed, and are appropriate to the
latest version of the Xcode command-line tools for that version of OS X.
The settings can be changed, either by editing that file or in a file such
as <samp>~/.R/Makevars</samp> (see the next section).  Entries which may need to
be changed include &lsquo;<samp>CC</samp>&rsquo;, &lsquo;<samp>CXX</samp>&rsquo;, &lsquo;<samp>FC</samp>&rsquo;, &lsquo;<samp>F77</samp>&rsquo;,
&lsquo;<samp>FLIBS</samp>&rsquo; and the corresponding flags, and perhaps &lsquo;<samp>CXXCPP</samp>&rsquo;,
&lsquo;<samp>DYLIB_LD</samp>&rsquo;, &lsquo;<samp>MAIN_LD</samp>&rsquo;, &lsquo;<samp>SHLIB_CXXLD</samp>&rsquo;, &lsquo;<samp>SHLIB_FCLD</samp>&rsquo; and
&lsquo;<samp>SHLIB_LD</samp>&rsquo;.
</p>
<p>So for example you could select <code>clang</code> for both C and C++ with
extensive checking by having in <samp>~/.R/Makevars</samp>
</p><div class="example">
<pre class="example">CC=clang
CXX=clang++
CFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
CXXFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
</pre></div>

<p>and for a version of <code>gfortran-4.2</code> we needed
</p><div class="example">
<pre class="example">FLIBS=-lgfortran
</pre></div>


<hr>
<a name="Customizing-package-compilation"></a>
<a name="Customizing-package-compilation-1"></a>
<h4 class="subsection">6.3.3 Customizing package compilation</h4>

<p>R 시스템과 패키지 특정 편집 flag들은 개인 파일인
&rsquo;<samp><var>HOME</var>/.R/Makevars-<var>R_PLATFORM</var></samp>&rsquo; (하지만 윈도우즈에서는
&rsquo;<samp><var>HOME</var>/.R/Makevars.win</samp>&rsquo; 혹은
&rsquo;<samp><var>HOME</var>/.R/Makevars.win64)</samp>&rsquo;에서 알맞은 Make 값들 을 설정함으로써 무시되거나 더해질 수
있습니다. 혹은 이가 존재하지 않는 다면 &lsquo;<samp>R_PLATFORM</samp>&rsquo;이 R이 구축된 곳의 플랫폼인 경우
HOME/.R/Makevars이 R variable <code>R.version</code>의  <code>platform</code> 구성에서
사용가능합니다.
</p>
<p>예를 들어, Gnu compiler 컬렉센인 GCC의 도구들을 위한 <samp>-Wall –pedantic</samp>와 같은 패키지
개발자들에게 compile을 할 때 합리적인 양의 진단 메세지 (“경고”)를 받을 수 있도록 하기위하여 이 방법을 사용하도록 권해집니다.
</p>
<p>이 방법은 다음의 예와 같이 특정한 패키지의 optimization 레벨을 바꾸는 것이 필요할 때도 사용된다는 것을 유의하십히오.
</p>
<div class="example">
<pre class="example">## <span class="roman">for C code</span>
CFLAGS=-g -O -mtune=native
## <span class="roman">for C++ code</span>
CXXFLAGS=-g -O -mtune=native
## <span class="roman">for Fortran code</span>
FFLAGS=-g -O -mtune=native
## <span class="roman">for Fortran 9x code</span>
FCFLAGS=-g -O -mtune=native
</pre></div>

<p>(적절하다면 sub-architecture-specific 디렉토리의) &rsquo;<samp><var>R_HOME</var>/etc</samp>&rsquo;에 있는
&rsquo;<samp>Makevars.site</samp>&rsquo; 파일의 사이트 전체에 대한 항목도 있습니다. 이는 &rsquo;<samp>Makeconf</samp>&rsquo; 바로 다음에
읽혀집니다.
</p>
<hr>
<a name="Multiple-sub_002darchitectures"></a>
<a name="Multiple-sub_002darchitectures-1"></a>
<h4 class="subsection">6.3.4 Multiple sub-architectures</h4>

<p>패키지의 source들에서부터 패키지를 설치할 때, sub-architecture들을 사용하는 설치에 대해 추가로 고려해 볼 것들이 몇
가지 있습니다. 이들은 윈도우즈에서 보통 사용되고 OS X에서도 사용되었었지만, 이론상으로는 다른플랫폼에서도 사용할 수 있습니다.
</p>
<p>Source 패키지가 여러개의 sub-architecture들을 제공하는 R의 빌드에 의하여 설치 되었을 때, 일반적인 설피 과정은 모든
sub-architecture들에 패키지를 설치하지만, 현재 sub-architecture에서 로드될 수 있는 것들만 테스트합니다. 예외
사항들은 다음과 같습니다.
</p>
<dl compact="compact">
<dt><em>유닉스 계열</em></dt>
<dd>
<p><samp>Configure</samp>&rsquo; 스크립트가 있거나 &rsquo;<samp>src/Makefile</samp>&rsquo; 파일이 있는 곳.
</p>
</dd>
<dt><em>Windows</em></dt>
<dd>
<p>비어있지 않은 &rsquo;<samp>configure.win</samp>&rsquo; script나 &rsquo;<samp>src/Makefile.win</samp>&rsquo;이 있는 곳 (패키지가
architecture-independent &rsquo;<samp>configure.win</samp>&rsquo;을 가지고
있거나<samp>--force-biarch</samp>가 그를 주장하기위해 사용되었다고 알려져 있는 곳의 몇몇 의 예외사항이 있습니다).
</p>
</dd>
</dl>

<p>위의 경우들에는 현재의 architecture만이 설치됩니다. 추가의 sub-architecture들은 다음에 의해서 설치될 수
있습니다.
</p>
<div class="example">
<pre class="example">R CMD INSTALL --libs-only <var>pkg</var>
</pre></div>

<p>추가의 sub-architecture을 선택하기위해 <code>R</code>로의 경로나 <code>R --arch</code>을
사용합니다. 윈도우즈에서, source 타르볼로 시작하는, 두 개의 architecture들을 구축하고 통합하기위한 <code>R
CMD INSTALL --merge-multiarch</code>도 있습니다.OS X에서, 여러개의 sub-architecture들은 R
3.0.0: &lsquo;<samp>x86_64</samp>&rsquo; (현재 기본),&lsquo;<samp>i386</samp>&rsquo; 그리고 Lion과Tiger &lsquo;<samp>ppc</samp>&rsquo;와
&lsquo;<samp>ppc64</samp>&rsquo;에 앞서 일반적으로 사용되었습니다.
</p>
<hr>
<a name="Byte_002dcompilation"></a>
<a name="Byte_002dcompilation-1"></a>
<h4 class="subsection">6.3.5 Byte-compilation</h4>

<p>The base and recommended packages are byte-compiled by default.  Other
packages can be byte-compiled on installation by using <code>R CMD
INSTALL</code> with option <samp>--byte-compile</samp> or by
<code>install.packages(type = &quot;source&quot;, INSTALL_opts = &quot;--byte-compile&quot;)</code>.
</p>
<p>모든 기여 패키지들이 바이트 컴파일드 일 때 정확하게 작동하는 것은 아닙니다 (예를 들어 이는 namespace들의 sealing을
방해합니다). 대부분의 패키지들에서 (특히 compile된 코드의 사용을 대규모로 사용하는) 천천히 빨라집니다.. 패키지가 자주 사용되지
않는 이상, 바이트 편집에서의 시간을 보내는 것은 실행하면서 단축한 시간을 초과할 수도 있습니다: 또한 바이트 편집은 패키지가 설치된
사이즈에 상당한 무리를 줄 수 있습니다.
</p>
<p>바이트 편집은 각각의 패키지를 &rsquo;<samp>DESCRIPTION</samp>&rsquo; 파일 안의 &lsquo;<samp>ByteCompile</samp>&rsquo; 필드를 이용하여, 조정할
수 있습니다.
</p>
<hr>
<a name="Updating-packages"></a>
<a name="Updating-packages-1"></a>
<h3 class="section">6.4 Updating packages</h3>
<a name="index-update_002epackages"></a>
<a name="index-Packages_002c-updating"></a>

<p>명령어 <code>update.packages()</code>는 여러분의 시스템이 최신식인지를 확실하게 하기위한 가장 간단한 방법입니다. 인자
<code>repos</code>를 전의 섹션에서 처럼 설정하십시오. <code>update.packages()</code>는 사용가능한 패키지와 그들의 현재
버전들의 목록을 다운로드하고, 이를 설치된 것들과 비교하고 fetch를 제안하며 저장소들에 가장 최근 버전들을 가진 것들을 모두
설치합니다.
</p>
<p>패키지를 최신식으로 보존하기위한 다른 인터페이스는 설치된 패키지들와 여러개의 저장소에서 이용가능한 패키지들의 정보를 가지고 있는
object를 return하는 <code>packageStatus()</code>에 의해 제공됩니다. <code>Print</code>와
<code>summery</code> 방식들은설치되고 사용가능한 패키지들을 개괄적으로 보여주고, <code>upgrade</code> 방식은 fetch와
오래된 패키지들의 최신 버전들의 설치를 제공합니다.
</p>
<p>하나의 가끔 유용한 추가의 정보 조각은,  <code>packageStatus()</code>가 반환하는 것은 <code>&quot;ok&quot;</code>,
<code>&quot;upgrade&quot;</code> 혹은 <code>&quot;unavailable&quot;</code>와 같은 패키지의 상태라는 것입니다 (현재 선택된 저장소
안에서). 예를들어
</p>
<div class="example">
<pre class="example">&gt; inst &lt;- packageStatus()$inst
&gt; inst[inst$Status != &quot;ok&quot;, c(&quot;Package&quot;, &quot;Version&quot;, &quot;Status&quot;)]
                  Package Version      Status
Biobase           Biobase   2.8.0 unavailable
RCurl               RCurl   1.4-2     upgrade
Rgraphviz       Rgraphviz  1.26.0 unavailable
rgdal               rgdal  0.6-27     upgrade
</pre></div>


<hr>
<a name="Removing-packages"></a>
<a name="Removing-packages-1"></a>
<h3 class="section">6.5 Removing packages</h3>
<a name="index-remove_002epackages"></a>
<a name="index-Packages_002c-removing"></a>

<p>패키지 삭제에는 여러가지 방법이 있습니다.. 명령 프롬프트 에서 다음의 명령어를 이용해 지울 수 있습니다.
</p>
<div class="example">
<pre class="example">R CMD REMOVE -l /path/to/library <var>pkg1</var> <var>pkg2</var> &hellip;
</pre></div>

<p>현재 진행중인 R 프로세스의 패키지는 다음 명령어로 삭제 할 수 있습니다.
</p>
<div class="example">
<pre class="example">&gt; remove.packages(c(&quot;pkg1&quot;, &quot;pkg2&quot;),
                  lib = file.path(&quot;path&quot;, &quot;to&quot;, &quot;library&quot;))
</pre></div>

<p>마지막으로, 설치된 대부분의 패키지는 라이브러리안의 패키지 디렉토리에서 지울 수 있습니다.
</p>

<hr>
<a name="Setting-up-a-package-repository"></a>
<a name="Setting-up-a-package-repository-1"></a>
<h3 class="section">6.6 Setting up a package repository</h3>
<a name="index-Repositories"></a>

<p><code>install.packages</code>와 같은 유틸리티들은 모든 <acronym>CRAN</acronym> 스타일의 저장소로 가리켜지도록 할 수
있고, R 사용자들은 자신들에게 맞게 설정하고 싶어할 지도 모릅니다. 저장소의 ‘베이스’는
<a href="http://www.omegahat.org/R/">http://www.omegahat.org/R/</a>과 같은 URL입니다: 이는 <code>download.packages</code> 가
지원하는 URL scheme일 것입니다 (&lsquo;<samp>ftp://</samp>&rsquo;와 &lsquo;<samp>file://</samp>&rsquo;도 포함하지만, 대부분의 시스템들에서
&lsquo;<samp>https://</samp>&rsquo;는 포함하지 않습니다). 베이스 URL에서, 하나 이상의 다음의 패키지 배포의 종류들의 디렉토리 트리들이
있어야만 합니다.
</p>
<ul>
<li> <code>source</code>:  &rsquo;<samp>src/contrib</samp>&rsquo;에 위치하고 &rsquo;<samp>.tar.gz</samp>파일들을 포함하고
있습니다.예를들어 .&rsquo;<samp>tar.bz2</samp>&rsquo; 나 &rsquo;<samp>.tar.xz</samp>&rsquo;와 같은 요약의 다른 형태가 사용될 수도
있습니다. 완료된 저장소들은 모든 binary 패키지들에 상응하는 source 들 안에 포함되어 있고, 좌우간 가능하면 비어있는
&rsquo;<samp>PACKAGES</samp> 파일과 함께 &rsquo;<samp>src/contrib. are</samp>&rsquo;를 가지는 것이 현명할 것입니다.

</li><li> <code>&quot;win.binary&quot;</code>: R 버전들 <var>x.y.z</var>을 위해
<samp>bin/windows/contrib/<var>x.y</var></samp> 에 위치 하고 윈도우즈를 위한 &rsquo;<samp>.zip</samp>파일들을 포함하고
있습니다.

</li><li> <code>&quot;mac.binary.leopard&quot;</code>: R 버전들 <var>x.y.z</var>을 위해
&rsquo;<samp>bin/macosx/leopard/contrib/x.y</samp>&rsquo; 에 위치하고 &rsquo;<samp>.tgz</samp>&rsquo; 파일들을 포함하고 있습니다.

</li><li> <code>&quot;mac.binary.mavericks&quot;</code>: located at
<samp>bin/macosx/mavericks/contrib/<var>3.y</var></samp> for R versions <var>3.y.z</var>
to be run under OS X 10.9 (Mavericks) and later, containing <samp>.tgz</samp>
files.

</li><li> <code>&quot;mac.binary.leopard&quot;</code>: located at
<samp>bin/macosx/leopard/contrib/<var>2.y</var></samp> for R versions <var>2.y.z</var>
and containing <samp>.tgz</samp> files.
</li></ul>

<p>각각의 터미널 디렉토리는 &rsquo;<samp>PACKAGES</samp>&rsquo; 파일도 포함해야만 합니다. 이는 빈 줄들에 의해 나누어진 패키지들의
&rsquo;<samp>DESCRIPTION</samp>&rsquo; 파일들의 연속일 수 있지만,아주 약간의 필드만이 필요합니다. 그런 파일을 설정하는 가장 간단한방법은
<strong>tools</strong> 패키지에서 <code>write_PACKAGES</code> 함수를 쓰는 것이고, 이에대한 도움말은 어떤 필드들이 필요한지
설명합니다. 추가적으로 &rsquo;<samp>PACKAGES</samp>&rsquo;의<code>gzip</code>-압축된 버전인 &rsquo;<samp>PACKAGES.gz</samp>&rsquo;
파일도 있을 수 있습니다. 왜냐하면, &rsquo;<samp>PACKAGES</samp>&rsquo;보다 우선적으로 다운로드 될 것이고, 이는 큰 저장소들에 포함되어야만
합니다. (만약 여러분이 존재하지 않는 파일들을 바르게 보고하지 않는 잘못 구성된 서버를 가지고 있다면
<samp>PACKAGES.gz</samp>가 필요할 것입니다.)
</p>
<p><code>setRepositories()</code>에 의해 제공되는 리스트로 당신의 저장소를 추가하기 위해서는, 그 함수에 대한 도움말 파일을
참조하십시오.
</p>
<p>불완전한 저장소들은 저장소처럼 설정되는 것을 통하는 것보다 <code>contriburl</code> 인자를 통해 지정되는 것이 더 낫습니다.
</p>
<p>하나의 저장소는 서브디렉토리들 안의 패키지들이 &rsquo;<samp>PACKAGES </samp>&rsquo;파일들에 있는 설명들이 다음과 같은 형태의 줄을 포함해야만
할 때, 서브디렉토리들을 포함할 수 있습니다.
</p>
<div class="example">
<pre class="example">Path: <var>path/to/subdirectory</var>
</pre></div>

<p>다시 한 번 말하지만 <code>write_PACKAGES</code> 가 이를 설정하는 가장 간단한 방법입니다.
</p>
<hr>
<a name="Checking-installed-source-packages"></a>
<a name="Checking-installed-source-packages-1"></a>
<h3 class="section">6.7 Checking installed source packages</h3>

<p>서브아키텍처들을 사용하는 플랫폼에는 특히 , 설치된 패키지에 <code>R CMD check</code> 실행하는 것이 편할 수도
있습니다. 디렉토리 &rsquo;<samp><var>pkgname</var></samp>&rsquo;(혹은 타르볼 파일 이름)에서의 소스 패키지와 함께, 이를 어떻게 하는지의
outline은다음과 같습니다.
</p>
<div class="example">
<pre class="example">R CMD INSTALL -l <var>libdir</var> <var>pkg</var> &gt; <var>pkg</var>.log 2&gt;&amp;1
R CMD check -l <var>libdir</var> --install=check:<var>pkg</var>.log <var>pkg</var>
</pre></div>

<p>서브아키텍처들이 사용되고있는 곳에서, <code>R CMD check</code> 줄은 아래에 의해서 추가적인 아키텍처들과 함께 반복될 수
있습니다.
</p>
<div class="example">
<pre class="example">R --arch <var>arch</var> CMD check -l <var>libdir</var> --extra-arch --install=check:<var>pkg</var>.log <var>pkg</var>
</pre></div>

<p>여기에서 <samp>--extra-arch</samp>는 설치된 코드에 의존하는 체크들과 source들을 분석하지 않는 체크들만을
선택합니다. (만약 여러개의 서브아키텍처들이오직 다른 설정들이 필요하기 때문에 실패하는 것이라면,
<samp>--no-multiarch</samp>가 <code>INSTALL</code> 줄에 추가되어야 할지도 모릅니다.) (Mac) OS X와 다른
유닉스 계열들에서 실행하기위한 아키텍처는 <samp>–arch</samp>에 의해 선택됩니다: 이는
&rsquo;<samp><var>R_HOME</var>/bin/R.exe</samp>&rsquo;로 윈도우즈에서도 사용될 수 있지만, 원하는 아키텍처의
<code>Rcmd.exe</code>로의 경로를 선택하는 것이 더 흔합니다.
</p>
<p>그래서 윈도우즈에서 설치를 하려면, 다른 플랫폼에서 테스트 된 타르볼에 서의 배포를 위한 패키지 와 소스 패키지를 검사하십시오. 여러분은
다음을 사용할 수 있습니다.
</p>
<div class="example">
<pre class="example">.../bin/i386/Rcmd INSTALL -l <var>libdir</var> <var>tarball</var> --build &gt; <var>pkg</var>.log 2&gt;&amp;1
.../bin/i386/Rcmd check -l <var>libdir</var> --extra-arch --install=check:<var>pkg</var>.log <var>pkg</var>
.../bin/x64/Rcmd check -l <var>libdir</var> --extra-arch --install=check:<var>pkg</var>.log <var>pkg</var>
</pre></div>

<p>여러분은 환경변수와 경로를 위한 다른 설정으로된 다른 쉘에서 두 번째 와 세 번째 줄을 실행하고 싶어할 지도 모릅니다 (외부의
소프트웨어를 찾기 위해서, 특히 Gtk+을 위한).
</p>
<p><code>R CMD INSTALL</code> 은 <code>i386</code> 설치를 할 수 있고 다음에 의한 하나의 명령으로 <code>x64</code>
DLL를 추가할 수 있습니다. 
</p>
<div class="example">
<pre class="example">R CMD INSTALL --merge-multiarch -l <var>libdir</var> <var>tarball</var>
</pre></div>

<p>그리고 <samp>–build</samp>가 설치를 압축 하기위해서 추가될 수 있습니다.
</p>
<hr>
<a name="Internationalization"></a>
<a name="Internationalization-and-Localization"></a>
<h2 class="chapter">7 Internationalization and Localization</h2>
<a name="index-Internationalization"></a>
<a name="index-Localization"></a>

<p><em>Internationalization</em>(국제화)는 인간이 사용하는 많은 언어를 지원할 수 있도록 하는 프로세싱을 의미하며,
<em>localization</em>(지역화)란 특정국가와 언어에 적용하는 것을 의미합니다. 
</p>

<p>현재 제공되는 R 빌드들은 운영체제들이 다룰 수 있는 모든 문자형 셋들을 지원하고 있습니다.
<a name="index-Locale"></a>
이것은 <code>locale</code>(로케일)을 통하여 해석되어 보여지게 되는데, 이는 충분히 복잡하여 하나의 독립적인 섹션으로 다루어 질
정도의 주제입니다.또한, R은 오른쪽에서 왼쪽으로 쓰는 언어와 양방향 출력을 지원하는 기능을 내장하고 있지 않지만, 이러한 것들은
운영체제가 제공하는 서비스에 의존합니다.예를들면, 영어와 히브루 문자들이 함께 존재하는 UTF-8형식의 문자형 벡터들이 어떻게
출력되는가는 운영체제 별로 달라지게 됩니다 (그리고 로케일별로 달라질 수 있습니다).
</p>
<p>국제화의 또 다른 측면은 메시지들의 번역을 지원하는 것입니다. 이것은 대부분의 모든 R 빌드에서 이용할 수 있게 되어 있습니다.
</p>

<hr>
<a name="Locales"></a>
<a name="Locales-1"></a>
<h3 class="section">7.1 Locales</h3>
<a name="index-Locale-1"></a>

<p><em>locale</em>(로케일)은 사용자의 지역적인 환경에 대한 설명인데, 이는 선호하는 언어, 문자들의 인코딩, 사용되는 화폐단위와
표기 등이 포함됩니다.로케일과 관련된 부분들은 R함수 <code>Sys.getlocale</code>과
<code>Sys.localeconv</code>에 의하여 접근되어집니다.
</p>
<p>로케일을 명명하는 방식은 운영체제별로 다릅니다. 이에 대한 일반적인 작동방식은 동일하지만 실제적인 구현에 대한 내용은 그렇지
않습니다. 로케일은 다음과 같은 것들을 지정할 필요가 있습니다.
</p><ul>
<li> 사용언어.  이것은 일반적으로 ISO 639를 따르는 두개의 소문자로 된 약어에 의해서
지정됩니다. (<a href="http://en.wikipedia.org/wiki/ISO_639-1">http://en.wikipedia.org/wiki/ISO_639-1</a>를 살펴보세요).

</li><li> 지역. 주로 화폐단위를 지정하는데 이용됩니다. 이것들은 일반적으로 ISO 3166을 따르는 두개의 대문자로 지정됩니다. (
<a href="http://en.wikipedia.org/wiki/ISO_3166">http://en.wikipedia.org/wiki/ISO_3166</a>를 살펴보세요).

</li><li> 문자 인코딩.  이것은 어떻게 바이트 스트림이 문자들로 나누어지고 어떤 문자들이 바이트의 부분적인 시퀀스로 표현할 수 있는가를
결정합니다. 때때로 언어와 지역의 조합이 인코딩을 지정하는데 사용되기도 합니다. 예를들면, 중국어 간체와 번체를 구분하는 것이
해당됩니다.

</li><li> 선택적인 사항으로 교정자가 있는데, 예를들면 오스트리아는 유로 전후로 구분되어 집니다.교정자는 문자 (<code>@latin</code>,
세르비안 문자를 위한 <code>@cyrillic</code>, <code>@iqtelif</code>) 또는 방언 (즉,  아주 멀리 떨어진 지역어
<code>@saaho</code>와 <code>@bokmal</code> 그리고 <code>@nynorsk</code>, 어떤 운영체제에서는 서로 다른 언어로서
<code>no</code>와<code>nn</code>로 구분되기도 하는 노르웨이어)을 지정하기도 합니다.
</li></ul>

<p>R은 기본적으로 번역자를 위하여 첫번째 사항과 세번째 사항에 중점을 두고 있습니다. 문자셋은 언어로부터 추론할 수도 있습니다. 이는
어떤 운영체제들이 언어별로 오로지 하나의 문자셋을 제공하고 있기 때문입니다. 그리고 대부분의 운영체들은 대부분의 언어들에 대해서 오로지
하나의 문자집합을 가지고 있습니다.
</p>

<hr>
<a name="g_t_00eb_00a6_00ac_00eb_0088-_00ec_008a_00a4_00ec_0097_0090_00ec_0084_009c_00ec_009d_0098-_00eb_00a1_009c_00ec_00bc_0080_00ec_009d_00bc"></a>
<a name="e_007c_0021e-i_0024_003fiii-e_00a1i1_002f4i1_002f4"></a>
<h4 class="subsection">7.1.1 리눅스에서의 로케일</h4>

<p>현대의 리눅스는 &lsquo;<samp>en_GB</samp>&rsquo;, &lsquo;<samp>en_GB.UTF-8</samp>&rsquo;, &lsquo;<samp>aa_ER.UTF-8@saaho</samp>&rsquo;,
&lsquo;<samp>de_AT.iso885915@euro</samp>&rsquo;와 같은 형식을 가지고 있는XPG<a name="DOCF14" href="#FOOT14"><sup>14</sup></a> 로케일 지정을 사용합니다.(더 자세한 내용은 <code>man loacle</code>과
<code>locale -a</code>을 살펴보세요). 대부분의 유닉스와 유사한 환경에서 비슷한 스킴이 사용됩니다: 일부 (리눅스를 포함)는
&lsquo;<samp>.UTF-8</samp>&rsquo; 보다 &lsquo;<samp>.utf-8</samp>&rsquo;을 사용하기도 합니다.
</p>
<p>Note that whereas UTF-8 locales are nowadays almost universally used,
locales such as &lsquo;<samp>en_GB</samp>&rsquo; use 8-bit encodings for backwards
compatibility.
</p>
<hr>
<a name="Locales-under-Windows"></a>
<a name="Locales-under-Windows-1"></a>
<h4 class="subsection">7.1.2 Locales under Windows</h4>

<p>윈도우즈 또한 로케일을 사용하지만 덜 간결한 방법으로 지정됩니다. 대부분의 사용자들은 오로지 드랍-다운 메뉴를 통해서만 로케일을 조절할
수 있으나, 더 많은 정보를
<a href="http://msdn.microsoft.com/en-us/library/hzz3tw78(v=vs.80)">http://msdn.microsoft.com/en-us/library/hzz3tw78(v=vs.80)</a> 에서 찾을 수
있습니다 (또는 Microsoft가 이를 아직 다시 옮기지 않았다면, &lsquo;<samp>Windows language country
strings</samp>&rsquo;로 검색해보시길 바랍니다). 
</p>
<p>언어별로 오로지 하나의 인코딩만을 제공합니다.
</p>
<p>윈도우즈의 로케일명을 사용할때는 다소 주의가 필요합니다. 예를들면 <code>chinese</code>는 중국어 번체를 의미하지 많은 중국인들이
사용하는 간체를 의미하지 않습니다.
</p>
<hr>
<a name="Locales-under-OS-X"></a>
<a name="Locales-under-OS-X-1"></a>
<h4 class="subsection">7.1.3 Locales under OS X</h4>

<p>OS X는 그들의 특별한 방법으로 로케일을 지원하지만, R GUI는 사용자에게 보다 쉽게 만들고자 하였습니다.어떻게 사용자가 그들의
로케일을 지정할 수 있는지에 대해서는
<a href="http://developer.apple.com/documentation/MacOSX/Conceptual/BPInternational/">http://developer.apple.com/documentation/MacOSX/Conceptual/BPInternational/</a>를
살펴보시길 발바니다.윈도우즈에서와 같이 사용자는 일반적으로 언어/지역의 목록만을 볼 수 있습니다. 만약 로케일의 기본이 &lsquo;<samp>C</samp>&rsquo;
터미널 내에서 R의 사용자들은 &lsquo;<samp>en_GB.UTF-8</samp>&rsquo;과 같이 로케일을 지정할 필요가 있습니다 (마치 때때로 이를 원격으로
로그인하고 배치작업을 수행할때입니다: <code>Terminal</code>이 <code>LANG</code> 환경변수를 조절할 수 있는지 여부는
(advanced) 옵션입니다).
</p>
<p>내부적으로 OS X는 리눅스와 유사한 형식을 이용합니다.이는 XPG가 아닌 ICU 로케일 ID
(<a href="http://userguide.icu-project.org/locale">http://userguide.icu-project.org/locale</a>)에 기반을 두는데,
<code>Sys.setlocale()</code>과 같은 유틸리티가 일반적으로 XPG 형식을 수용합니다.그래서
<code>de_AT.ISG8859-155</code>와 같은 로케일을 보여주게 됩니다: 다른 유닉스와 비슷한 환경과 다른 점은
<code>UTF-8</code>이 가정되는 문자셋이 지정되지 않다는 것입니다. 
</p>

<hr>
<a name="Localization-of-messages"></a>
<a name="Localization-of-messages-1"></a>
<h3 class="section">7.2 Localization of messages</h3>

<p>메시지에 대하여 우선적으로 선택되는 언어는 기본적으로 로케일로부터 정해지게 됩니다.
<a name="index-LANGUAGE"></a>
<a name="index-LC_005fALL"></a>
<a name="index-LC_005fMESSAGES"></a>
<a name="index-LANG"></a>
이것은 먼저 환경변수 <code>LANGUAGE</code>에 의해서 변경될 수 있으며<a name="DOCF15" href="#FOOT15"><sup>15</sup></a>, 이후에
<code>LC_ALL</code>, <code>LC_MESSAGES</code>, <code>LANG</code>이라는 환경변수에 의하여서도 변경될 수 있습니다. (마지막
세가지가 일반적으로 로케일을 설정하는데 사용되지만, 꼭 필요한 것은 아닙니다. 첫번째 것은 오로지 메시지의 언어를 선택하는데
사용됩니다). 코드는 열심히 로케일을 언어에 매칭하려고 하지만 일부 시스템 (특히 윈도우즈)는 환경변수  <code>LC_ALL</code>에 필요한
로케일이름들이 XPG 랭귀지명과 완전히 일치하지 않습니다.  따라서, <code>LANGUAGE</code>는 지정되어야 할 필요가 있습니다.(하나의
예로 윈도우즈에서 &lsquo;<samp>LC_ALL=es</samp>&rsquo;는 로케일을 에스토냐로 하고 언어는 스패니쉬로 설정합니다).
</p>
<p>보통은 R이 실행중일때 <code>Sys.setlocale(&quot;LC_MESSAGES&quot;, &quot;new_locale&quot;)</code>을 이용하거나, 만약
변경하고자 하는 언어가 현재의 문자셋이 제공된다면 <code>LANGUAGE</code>와 같은 환경변수를 이용하여 변경할 수 있습니다
<a name="DOCF16" href="#FOOT16"><sup>16</sup></a>. 그러나, 이는 운영체제별로 다르며, 업그레이드시 중단되기도 한다고 알려져 있습니다.
</p>
<p>메시지는 도메인들로 나뉘어지며, 각 도메인들에서 일부 또는 모든 메시지들에 대한 번역이 가능합니다. R은 다음과 같은 도메인을
이용합니다.
</p>
<ul>
<li> R인터프리터로부터 발생하는 C언어 수준의 에러와 경고 메시지들에 해당하는 도메인 <code>R</code>이 있습니다.

</li><li> <strong>base</strong> 패키지를 위한 <code>R-base</code>를 포함하여 각 패키지안의 R <code>stop</code>,
<code>warning</code>, 그리고 <code>message</code> 메시지들을 위한 도메인 <code>R-<var>pkg</var></code>가 있습니다.

</li><li> 각 패키지마다 C언어수준의 메시지를 위한 도메인 <code><var>pkg</var></code>가 있습니다.

</li><li> Windows GUI 사용을 위한 메뉴들을 위한  <code>RGui</code> 도메인이 있습니다.

</li></ul>

<p>이렇게 도메인을 나누는 것은 R을 확장가능하도록 해줍니다:  패키지가 로드될때, 메시지 번역 카탈로그들도 함께 로드됩니다.
</p>
<p>R은 번역의 지원없이 빌드될 수 있으나, 기본적으로는 지원하도록 되어 있습니다.
</p>
<p>R-level and C-level domains are subtly different, for example in the way
strings are canonicalized before being passed for translation. 
</p>
<p>번역은 현재 가능한 정확하게 지정된 언어에 따라서 도메인에 의하여 찾아지게 됩니다.예를들면, 오스트리안 (&lsquo;<samp>de_AT</samp>&rsquo;) 번역
카탈로그는 오스트리안 사용자들을 위하여 일반 독일어 (&lsquo;<samp>de</samp>&rsquo;)의 사용보다 우선합니다.그런데, 만약 특정한 번역 카탈로그가
존재하지만 번역을 포함하고 있지 않다면 덜 정교한 번역이 보여집니다.예를들면, R은 Americanisms를
English<a name="DOCF17" href="#FOOT17"><sup>17</sup></a>로 보여주는 카탈로그 &lsquo;<samp>en_GB</samp>&rsquo;를 가지고 있습니다.두가지 추가적인
예가 있습니다.스페인에서 사용되는 스패니쉬인 &lsquo;<samp>es</samp>&rsquo;이라는 카탈로그가 있는데, 이들은 기본적으로 Spanish-speaking
Latin American 국가에서 사용됩니다. 그리고 브라질 로케일에서 사요되는 &lsquo;<samp>pt_BR</samp>&rsquo;은 포르투칼어를 지정하는
로케일과는 다릅니다. 
</p>
<p>번역의 언어가 올바르지만 잘못된 문자셋은 때에 따라서 재인코딩과정을 거칩니다.
<a name="index-LANGUAGE-1"></a>
<code>LANGUAGE</code> 변수만이 콜론으로 된 구분될 수 있는 리스트일 수 있습니다. 예를들면, &lsquo;<samp>se:de</samp>&rsquo;이와 같이
언어선호도를 표시하는 것입니다. 특별한 것은 &lsquo;<samp>en@quot</samp>&rsquo;인데, 이는 UTF-8 로케일에서 미국식 에러 메시지에서 이용되는
작은 따옴표 두개의 사용이 한 쪽 방향의 유니코드식 큰 따옴표로 표시되게 해주는 것입니다.
</p>
<p>만약 적합한 번역 카탈로그를 찾을 수 없거나 특정 메시지가 어떤 적합한 카탈로그에서 번역되어 있지 않다면 이는
영어<a name="DOCF18" href="#FOOT18"><sup>18</sup></a>.가 사용되게 됩니다.
</p>
<p>어떻게 번역 카탈로그를 준비하고 설치하는지 확인하기 위해서는
<a href="http://developer.r-project.org/Translations.html">http://developer.r-project.org/Translations.html</a>를 살펴보시길 바랍니다.
</p>
<hr>
<a name="Choosing-between-32_002d-and-64_002dbit-builds"></a>
<a name="Choosing-between-32_002d-and-64_002dbit-builds-1"></a>
<h2 class="chapter">8 Choosing between 32- and 64-bit builds</h2>

<p>Almost all current <acronym>CPU</acronym>s have both 32- and 64-bit sets of
instructions.  Most OSes running on such <acronym>CPU</acronym>s offer the choice of
building a 32-bit or a 64-bit version of R (and details are given below
under specific OSes).  For most a 32-bit version is the default, but for
some (e.g., &lsquo;<samp>x86_64</samp>&rsquo; Linux and OS X &gt;= 10.6)  64-bit is.
</p>
<p>모든 현재 R 버전들은 32 비트 integer들과 ISO/IEC, 60559(IEEE), doule-precision reals을
사용하고, 그러므로 인해 동일한 정확성과 제한된 숫자의 양을 산출합니다. double-precision real들을 numerical
quantities의 크기에 같은 제한이 있 그 밖에 크게 다른점은 포인터들의 크기입니다.
</p>
<p>64 비트 구축은 장점과 단점 두 가지 모두를 가지고 있습니다:
</p><ul>
<li> 32-비트 프로세스에서 사용 가능한 전체의 가상 기억 공간은 4GB까지 가능한 포인터와 3GB까지 가능한 (아니면 2GB) 대부분의
OS들에의해 제한됩니다. 64-비트 프로세스들의 제한은 더 큽니다 (e.g.8&ndash;128TB).

<p>R은 필요에 의해 보다 큰 object에 memory를 할당하고, 쓰레기 모음에서 사용하지 않는 것들을 제거합니다. address
limit가 오브젝트의 크기를 너무 크다고 판단했을 때,address space를 단편화 하는 것이 문제가 되고, 요구하는 크기의 공간에
대해 모자랄수도 있습니다. 이는 더 빈번한폐영역의 회수의 초래 혹은 큰 object들의 할당 불능을 초래할 수도 있습니다. 참고로, 이는
address space 크기의 10%가 넘는 (300Mb 정도) 크기를 가진 object들 혹은 사용되고있는 object들의 전체
크기가 삼분의 일 (1Gb 정도)일 때 문제가 될 것입니다.
</p>
</li><li> Only 64-bit builds support &lsquo;long vectors&rsquo;, those with <em>2^{31}</em> or more
elements (each of which needs 16GB of storage for a numeric vector).

</li><li> 대부분이 32-비트 OS들은,  기본적으로 파일 크기를 2GB로 제한합니다 (그리고 이는 64-비트 OS들에서의 32 비트 구축에도
적용될 수도 있습니다).이는 종종 해결될 수 있습니다:  만약 이가 가능하다면, <code>configure</code>은 알맞은
define들을 선택합니다. (32-비트 윈도우즈에서의 제한을 주로해결하기도 했습니다). 64-비트 구축들은 훨씬 더 큰 제한들이
있습니다.

</li><li> 포인터들의 크키가 큰 이유 때문에, R의 기본 구조들이 도 큽니다. 이는 R object들이 더 많은 공간을 차지하고, (보통)
조작하기위한 더 많이 시간이 든다는 뜻입니다. 그러므로 R의 64-비트 구축들은, 다른 것들이 모두 같을 때, 32-비트구축들보다 더
느리게 작동합니다.(Sparc Solaris에서의 차이는 15 – 20%였습니다.)

</li><li> 그렇지만, ‘다른 것들’이 같이 않을 수도 있습니다. &lsquo;<samp>x86_64</samp>&rsquo; 와 &lsquo;<samp>ix86</samp>&rsquo;를 비교하는 특정한
경우에서, 64-비트 CPU는 보여지도록 보장하는(SSE2와 같은) 특성들이 있지만, 32 비트 CPU에서는  선택사항이고, 또한 더
일반적인 목적의register들을 가지고 있습니다. 데스크탑 Intel Core 2Duo과 같은 칩 은 R의 바닐라 64-비트 버전이
리눅스와 OS X보다 10% 정도 더 빠르다는 뜻입니다. (노트북 CPU들은 64-비트 모드에서 비교적 더 느립니다.)
</li></ul>

<p>그래서, 속도를 위해서라면 32-비트 구축을 쓸 수도 있지만, 큰 데이터 셋 들 (아마도 큰 파일들도) 다루기 위해서는 64-비트 구축을
쓰기를 원할 것 입니다. 종종 같은 장소에 두 가지 모두를 구축하고 설치할 수도 있습니다: See <a href="#Sub_002darchitectures">Sub-architectures</a>
를 참조하세요. (이는OS X와 윈도우지의 이항분포들에서 행해졌습니다.)
</p>
<p>R의 64-비트 구축에서도 (특히 FORTRAN 코드의) stem이 32-비트 정수들의 사용에서부터 나온 R object들의
크기에대한 제한이 있습니다 (<code>help(&quot;Memory-limits&quot;)</code>를 참조하세요). 예를 들어, 하나의 array의 크기는
<em>2^{31} – 1</em>로 제한됩니다.
</p>
<hr>
<a name="The-standalone-Rmath-library"></a>
<a name="The-standalone-Rmath-library-1"></a>
<h2 class="chapter">9 The standalone Rmath library</h2>

<p>배포를 지원하는 routine들과 R의 특정한 함수<a name="DOCF19" href="#FOOT19"><sup>19</sup></a>들 그리고 몇몇의 다른것들은 C header 파일 &rsquo;<samp>Rmath.h</samp>&rsquo; 안에서 표명됩니다. 이것 들은  다른
어플리케이션과 의 연결을 위해서 독립 라이브러리로 컴파일될 수 있습니다. (R이 구축될 때의, 이것들은  따로 떨어져 있는 라이브러리가
아니고, 독립 버전 가지의 방법으로 차이가 있다는 것을 유의하십시오.)
</p>
<p>makefiles와 필요한 다른 소스들은 디렉토리 &rsquo;<samp>src/nmath/standalone</samp>&rsquo;에 있습니다. 그러므로 다음의
설명들은 (소스들로부터 떨여져 있다면 유닉스 계열의 구축 디렉토리 tree안에 있는) 현재의 working 디렉토리를 가정합니다.
</p>
<p>&rsquo;<samp>Rmath.h</samp>&rsquo;  는 예를 들어 <code>&quot;2.15.0&quot;</code>와 같은 현재 R 버전에 포함되어있는 문자 열인
&lsquo;<samp>R_VERSION_STRING</samp>&rsquo;를 포함합니다.
</p>
<p>다음의 함수와 macro의 특별 버전들을 통해 <code>NaN</code>, <code></code>Inf와 <code>–Inf</code>의 R의 처리에대한
전체 access권한이 있습니다.
</p>
<div class="example">
<pre class="example">    ISNAN, R_FINITE, R_log, R_pow and R_pow_di
</pre></div>

<p>그리고 (외적) 상수들로드 <code>R_PosInf</code>, <code>R_NegInf</code>와 <code>NA_REAL</code> 가 있습니다.
</p>
<p>특히 <code>NA_INTEGER</code> 혹은 double들에 대한 <code>NA</code>와 <code>NaN</code>의 구별과 같은 R의
missing 값들에 대한 개념에 대한 지원이 없습니다.
</p>
<p>난수 routine들을 사용을 하기 위해 약간 신경 쓸  필요가 있습니다. 여러분은 일정한 난수 생성기를 공급할 필요가 있을 것 입니다. 
</p>
<div class="example">
<pre class="example">    double unif_rand(void)
</pre></div>

<p>뿐만 아니라 공급된 것을 사용할 수 도 있습니다. (공유된 라이브러리나 DLL과 함께 entry point를 가진
Marsaglia-multicarry를 사용 해야만 합니다.)
</p>
<div class="example">
<pre class="example">    set_seed(unsigned int, unsigned int)
</pre></div>

<p>to set its seeds).
</p>
<p>일반적인 난수 생성기를 바꾸기위한 기능들이 상수 N01_kind를 통하여 이용가능 합니다. 이는 다음의 열거 종류들에서부터 값을
얻습니다.
</p>
<div class="example">
<pre class="example">typedef enum {
    BUGGY_KINDERMAN_RAMAGE,
    AHRENS_DIETER,
    BOX_MULLER,
    USER_NORM,
    INVERSION,
    KINDERMAN_RAMAGE
} N01type;
</pre></div>

<p>(그리고 &lsquo;<samp>USER_NORM</samp>&rsquo; 은 사용 가능하지 않습니다).
</p>


<hr>
<a name="Unix_002dalike-standalone"></a>
<a name="i-ei_0024_003f-e3i_0027"></a>
<h3 class="section">9.1 유닉스 계열</h3>

<p>만약 R이 디렉토리  tree안에 미리 만들어지지 않았다면, 메인 빌드 설명서에서 설명된 것 처럼 configure이 실행되어야만
합니다. 그리고 나서 (에서)
</p>
<p>Then (in <samp>src/nmath/standalone</samp>)
</p>
<div class="example">
<pre class="example">make
</pre></div>

<p>는 src/nmath/standalone 경로 안에서 독립 라이브러리 &rsquo;<samp>libRmath.a</samp> 와
&rsquo;<samp>libRmath.so</samp> (Mac OS X에서는 &rsquo;<samp>libRmath.dylib</samp> )를 만들 것
입니다:&lsquo;<samp>make static</samp>&rsquo;과 &lsquo;<samp>make shared</samp>&rsquo;는 그들 중 하나만을 생성할 것입니다.
</p>
<p>To use the routines in your own C or C++ programs, include
</p>
<div class="example">
<pre class="example">#define MATHLIB_STANDALONE
#include &lt;Rmath.h&gt;
</pre></div>

<p>그리고  &lsquo;<samp>-lRmath</samp>&rsquo; (당신의OS에서 필요하다면  &lsquo;<samp>-lm</samp>&rsquo;도)에 맞대어 연결하십시오. 예제 파일
&rsquo;<samp>test.c</samp>&rsquo;은 유용한 것을 하지는 않지만, (<code>make test</code>를 통해)프로세스를 검사하도록
제공됩니다. 
<a name="index-LD_005fLIBRARY_005fPATH"></a>
&rsquo;<samp>libRmath.so</samp>&rsquo;를 포함한 디렉토리를 <code>LD_LIBRARY_PATH</code>  환경값으로 더하지 않는 이상, 아마도
이를 실행하지 못할 것이라는 것을 유의하십시오.
</p>
<p>The targets
</p>
<div class="example">
<pre class="example">make install
make uninstall
</pre></div>

<p>위의 타겟들은 &rsquo;<samp>header Rmath.h</samp>&rsquo;와 공유된 것들 그리고 (만약 빌드되었다면) static 라이브러리들을 설치(혹은
삭제)할 것입니다.
<a name="index-DESTDIR-1"></a>
메인 빌드에서 설명된 것 처럼, 더불어 더 정확한 컨드롤이 가능한 <code>prefix=</code> 와 <code>DESTDIR</code> 두 가지 모두가
지원됩니다.
</p>
<p>&lsquo;<samp>make install</samp>&rsquo;은 다음의 예에 의해 사용되어지는 <code>pkg-config</code>를 위한 파일 을 설치합니다.
</p>
<div class="example">
<pre class="example">$(CC) `pkg-config --cflags libRmath` -c test.c
$(CC) `pkg-config --libs libRmath` test.o -o test
</pre></div>

<p>몇몇의 시스템들에서, &lsquo;<samp>make install-strip</samp>&rsquo;는 분해된 공유 라이브러리를 설치 할 수도 있습니다.
</p>


<hr>
<a name="Windows-standalone"></a>
<a name="Windows-1"></a>
<h3 class="section">9.2 Windows</h3>

<p>(유닉스 계열의 쉘에서) R을 만들기 위해서는 거의 모든 도구들을 설정up<a name="DOCF20" href="#FOOT20"><sup>20</sup></a>
하고 그리고 나서 실행해야 합니다.
</p>
<div class="example">
<pre class="example">(cd ../../gnuwin32; make MkRules)
(cd ../../include; make -f Makefile.win config.h Rconfig.h Rmath.h)
make -f Makefile.win
</pre></div>

<p>&rsquo;<samp>cmd.exe</samp>&rsquo;를 위해서는 다음을 사용하십시오.
</p>
<div class="example">
<pre class="example">cd ../../include
make -f Makefile.win config.h Rconfig.h Rmath.h
cd ../nmath/standalone
make -f Makefile.win
</pre></div>


<p>이는 static 라이브러리 &rsquo;<samp>libRmath.a</samp>&rsquo; 와 DLL &rsquo;<samp>Rmath.dll</samp>&rsquo;를 생성합니다. 만약
import 라이브러리 &rsquo;<samp>libRmath.dll.a</samp>&rsquo; (꼭 해야하는 것은 아닙니다)를 원한다면, 다음을 사용하세요.
</p>
<div class="example">
<pre class="example">make -f Makefile.win shared implib
</pre></div>

<p>MinGW을 사용하는 당신의 C나 C++에 있는 routine들을 사용하고자 한다면, 다음을 포함하십시오.
</p>
<div class="example">
<pre class="example">#define MATHLIB_STANDALONE
#include &lt;Rmath.h&gt;
</pre></div>

<p>그리고 &lsquo;<samp>-lRmath</samp>&rsquo;에 대응하게 연결하십히오. 이는 &rsquo;<samp>libRmath.dll.a</samp>&rsquo;,
&rsquo;<samp>libRmath.a</samp>&rsquo;  그리고  &rsquo;<samp>Rmath.dll</samp>의 순서대로 처음 찾아진 것을 사용할 것입니다. 그래서 그
결과는 어떤 파일들이 나타나느냐에 달려있습니다.
</p>
<div class="example">
<pre class="example">-Wl,-Bstatic -lRmath -Wl,dynamic
-Wl,-Bdynamic -lRmath
</pre></div>

<p>혹은 explicit 파일들을 연결하거나  (&rsquo;<samp>Makefile.win</samp>&rsquo;에서의 &lsquo;<samp>test</samp>&rsquo; 타켓에서 처럼: 이는
dynamic하게 연결된 ;<samp>test.exe</samp>&rsquo;와 statical하게 연결된 &rsquo;<samp>test-static.exe</samp>&rsquo;의 두
개의 실행가능 한 것들을 만듭니다. ) 
</p>
<p>직접적으로나 import 라이브러리를 통하여 다른 컴파일러들을 사용하여 &rsquo;<samp>Rmath.dll</samp>&rsquo;를 연결하는 것도 가능합니다:
만약 위에서 처럼  MinGW import 라이브러리를 만든다면,  Visual C++와 같은 다른 시스템들에서 (수정이후에 가능)
import 라이브러리를 생성하기위해 사용될 수 있는 &rsquo;<samp>Rmath.def</samp>&rsquo; 파일을 생성할 것입니다.
</p>
<p>If you make use of dynamic linking you should use
</p>
<div class="example">
<pre class="example">#define MATHLIB_STANDALONE
#define RMATH_DLL
#include &lt;Rmath.h&gt;
</pre></div>

<p>만약 dynamic 연결을 이용하려면, <code>NA_REAL</code>과 같은 상수들이 정확하게 연결되었는지를 확실히 하기위하여 다음을
사용해야만 합니다.(자동-import는 아마도 MinGW와 같이 실행할 것이지만, 확실하게 하는 것이 더 좋습니다. VC++,
Borland와 비슷한 컴파일러에서도 실행할 것입니다.)
</p>

<hr>
<a name="Essential-and-useful-other-programs-under-a-Unix_002dalike"></a>
<a name="Essential-and-useful-other-programs-under-a-Unix_002dalike-1"></a>
<h2 class="appendix">Appendix A Essential and useful other programs under a Unix-alike</h2>

<p>이 appendix는 유닉스 계열의 플랫폼들에서 R을 구축하기 위해서 필요할 설명들과,R 안에서
<code>configure</code>를 통해 검색할 수 있는 프로그램들의 자세한 설명을 줄 것입니다.
</p>
<p><acronym>RPM</acronym>과 deb와 같은 몇몇의 패키지 관리 시스템들은 기억하시고  패키지의 사용자 버전과 개발자 버전을
구분하십시오. 개발자 버전은 보통같은 이름을 가지고 있지만,extension &lsquo;<samp>-devel</samp>&rsquo; 혹은 &lsquo;<samp>-dev</samp>&rsquo;
가집니다:여러분은 두 가지 모두의 버전들을 설치해야 합니다.
</p>

<hr>
<a name="Essential-programs-and-libraries"></a>
<a name="Essential-programs-and-libraries-1"></a>
<h3 class="section">A.1 Essential programs and libraries</h3>

<p>여러분은 C와 포트란 90를 컴파일링 하는 수단이 필요합니다 (<a href="#Using-FORTRAN">Using FORTRAN</a>을 참조하세요). 몇몇의 add-on
패키지들 또한 C++ 컴파일러를 필요로합니다. 당신의 C 컴파일러는 <acronym>ISO</acronym>/<acronym>IEC</acronym>
&nbsp;60059<a name="DOCF21" href="#FOOT21"><sup>21</sup></a>, POSIX 1003.1,
그리고 C99-compliant여야만 합니다. R은 인지하고있는 C 컴파일러들을 위한 알맞 은 flag들을 선택하려고 하지만,
<code>CC</code> 혹은 <code>CFLAGS</code>를 알맞게 설정해야 할 수 도 있습니다. <code>Glibc</code>를 가진
<code>gcc</code>의 최근 버전들에서, 이는 <samp>std=gnu99</samp>를 포함 하는 것을 뜻합니다. 만약 컴파일러가
<code>gcc</code>, <samp>-std=gnu99</samp> 처럼 발견 된다면, <code>CFLAGS</code>의 설정과 충돌하지 않는 이상
<code>CC</code>로 추가될 것입니다. (architecture 를 설정하는 것들 처럼, 연결 하는 것에서도 컴파일러를 실행하기위한 필수
옵션들은 <code>CFLAGS</code> 보다는 <code>CC</code>의 부분인것 처럼 지정되어야만 한다는 것 을 유의하십시오.)
</p>
<p>스크린에서 그래프들을 보는 것을 원하지 않지 않는 이상 (아니면 Mac을 사용), 헤더들과 클라이언트 라이브러리들을 포함하는
&lsquo;<samp>X11</samp>&rsquo;을 설치할 필요가 있습니다. 최근의 Fedora 배포에서, 이는 (적어도)
&lsquo;<samp>libX11</samp>&rsquo;,&lsquo;<samp>libX11-devel</samp>&rsquo;, &lsquo;<samp>libXt</samp>&rsquo; and &lsquo;<samp>libXt-devel</samp>&rsquo; RPM들을
의미합니다. Debian에 서는 메타 패키지인 &lsquo;<samp>xorg-dev</samp>&rsquo;를 추천합니다. 만약 이들을 정말 원하지 않 는다면,
<samp>--with-x=no</samp>를 사용하여, X11없이 R을 명확하게 설정 해야할 것입니다.
</p>
<p>명령줄 변경(그리고 command completion)은 <acronym>GNU</acronym> <code>readline</code> 라이브러리에 의존합니다:
버전 4.2 혹은 그 후의 버전들은 모든 feature들이 활성화 되 는 것을 필요로 합니다. 그렇지 않으면
<samp>--with-readline=no</samp> (혹은 비슷한 것)로 구성해야 할 것입니다.
</p>
<p>적당히 포괄적인 <code>iconv</code> 함수는 필수입니다. R 사용은 <code>iconv</code>가 <code></code> (현재 인코딩 처럼)
와 <code>&quot;ASCII&quot;</code>를 인식하기위해 그리고 Unicode wide-character formats
<code>&quot;UCS-[24][BL]E&quot;</code>으로와 으로부터의 변역을 하기위한  <code>&quot;latin1&quot;</code> 과 <code>&quot;UTF-8&quot;</code>에서
번역을 할 수 있는 것을 요합니다 – 이는 <code>glibc</code>에서는 참이지 만, 대부분의 상업용 유닉스들에서는 아닙니다. 그렇지만
<acronym>GNU</acronym> <code>libiconv</code> 를 사용할 수 있습니다 (아마 plug-in 대체용처럼:
<a href="http://www.gnu.org/software/libiconv/">http://www.gnu.org/software/libiconv/</a>를 참조하세요)
</p>
<p>OS는 wide-character types에 대해 충분한 지원<a name="DOCF22" href="#FOOT22"><sup>22</sup></a> 을 가지는 것이 필요합니다: 이는 configuration에서 체크됩니다.
</p>
<p><code>tar</code> 프로그램은 소스들과 (추천된 패키지들을 포함한) 패키지들을 풀기 위해 필요합니다. 압축된 아카이브 들을 자동으로
감지할 수 있는 버전<a name="DOCF23" href="#FOOT23"><sup>23</sup></a> (from <a href="http://code.google.com/p/libarchive/">http://code.google.com/p/libarchive/</a>은
<code>untar()</code>과 함께 사용하는 것이 선호됩니다: 는 <code>tar</code> 전에 <code>gtar</code>과
<code>gnutar</code>을 찾습니다: 이를 무시하기 위해서는 환경값 <code>TAR</code>를 사용하세요.
<a name="index-TAR"></a>
<code>tar</code>: use environment variable <code>TAR</code> to override this.
</p>
<p>도구들 <code>grep</code>과 <code>sed</code>의 알맞은 버전들이 필요합니다: 문제는 보통 오래된AT&amp;T와 BSD
variants들에 있습니다. <code>configure</code>는 알맞은 버전들을 찾으려고 노력할 것입니다 (몇몇의 상업용 유닉스들에서
사용되는 <samp>/usr/xpg4/bin</samp>의 안을 찾아보는 것을 포함).
</p>
<p>You will not be able to build most of the manuals unless you have
<code>texi2any</code> version 5.1 or later installed, and if not most of the
<acronym>HTML</acronym> manuals will be linked to a version on <acronym>CRAN</acronym>. To make PDF
versions of the manuals you will also need file <samp>texinfo.tex</samp> installed
(which is part of the <acronym>GNU</acronym> <strong>texinfo</strong> distribution but is often
made part of the TeX package in re-distributions) as well as
<code>texi2dvi</code>.<a name="DOCF24" href="#FOOT24"><sup>24</sup></a>
Further, the versions of <code>texi2dvi</code> and <samp>texinfo.tex</samp> need to
be compatible: we have seen problems with older TeX distributions.
</p>
<a name="index-Vignettes"></a>
<p>PDF 문서 (&rsquo;<samp>doc/NEWS.pdf</samp>&rsquo;를 포함)와 vignette들의 구축은 <code>pdftex</code>와
<code>pdflatex</code>를 필요로 합니다. (UTF-8 지원을 위한) LaTeX 버전 <code>2005/12/01</code> 혹은
그 후의 버전들을 요합니다. (R reference 매뉴얼을 포함한) PDF 패키지 매뉴얼을 구축하는 것과 vignette들은
LaTeX 패키지 <strong>hyperref</strong>의 버전들에 예민하여서, 사용되는 TeX 배포가 최신 버전으로 보존되기를
추천합니다.(<strong>url.sty</strong>와 <strong>listings.sty</strong>를 포함한) 많은 LaTeX 패키지들이 필요하고
<strong>hyperref</strong>와 <strong>inconsolata</strong>와 같은 다른 것들이 바람직합니다 (그것들이 없이는, R의 기본값을
바꾸어야만 할 것입니다: see <a href="#Making-the-manuals">Making the manuals</a>.를 참조하세요).
</p>

<a name="index-Subversion-1"></a>
<p>If you want to build from the R Subversion repository then
<code>texi2any</code> is highly recommended as it is used to create files in
the tarball but not under Subversion.
</p>
<a name="index-PATH"></a>
<p>필수 프로그램은 <code>configure</code>이 실행되고 있을 때 <code>PATH</code>안에 있어야만 합니다: 이는 전체 경로를
capture할 것입니다.
</p>
<hr>
<a name="Useful-libraries-and-programs"></a>
<a name="Useful-libraries-and-programs-1"></a>
<h3 class="section">A.2 Useful libraries and programs</h3>

<p>번역된 메세지를 사용하는 능력들은 gettext의 사용을 가능케 하고 대게 <acronym>GNU</acronym> <code>gettext</code>를 필요로
합니다: 새로운 번역들에는 이들이 실행되는 것이 필요하지만, 그렇지 않으면 알맞은 <code>gettext</code>가 찾아지지 않는다는 가정하에
R소스들에 포함되어있는 버전들이 사용될 것입니다.
</p>
<p><code>X11()</code>, <code>jpeg()</code>, <code>png()</code>와 <code>tiff()</code> 그래픽 장치들의 ‘최신’ 버전은
cairo와 (선택적으로) <code>Pango</code> 라이브러리들을 사용합니다. Cairo 버전 1.2.0 혹은 그 후 버전들이
요구됩니다. <code>Pango</code>는 적어도 버전 1.10 이상일 필요가 있고, 1.12가 우리가 테스트해본 가장 이른
버전입니다. (Fedora 사용자들에 대해 서는, <code>pango-devel</code> RPM과 그의 종속된 것들이 충분하다고 생각합니다.)
R은 <code>pkg-config</code>를 체크하고, &lsquo;<samp>pangocairo</samp>&rsquo; 패키지가 설치되었는지를 설치하는 데에
사용되며 (그렇지 않으면 &lsquo;<samp>cairo</samp>&rsquo;) 만약 &lsquo;<samp>cairo-xlib</samp>&rsquo;패키지에 추가의 flag들이 필요하면, 알맞은
코드가 compile될 수 있습니다. 이 테스트들은 <code>pkg-config</code>가 설치되어있지 않으면 실패 할 것이고,
(드물게) <code>cairo</code>가 통계 적으로 빌드 되었다면 거의 실패합니다. <code>Gtk+</code> 2.8나 그 후 것들이 설치된
대부분의 시스템들은 알맞은 라이브러리들을 가질 것 입니다. OS X는 이런 라이브러리들 중 어떤 것도 딸려오지 않지만,
(<code>Pango</code>없이) <code>cairo</code> 서포트가 binary distribution으로 추가 되었습니다&gt;
(<a href="http://r.research.att.com/libs/">http://r.research.att.com/libs/</a> 를 참조하세요. <code>fontconfig</code>,
<code>freetype</code> 그리고 <code>pixman</code>도 필요합니다 ): 소스로부터 R을 구축할
때<code>pkg-config</code>가 아직 필요하고 이는 그의 소스들에서 설치될 수 있습니다.
</p>
<p>이 장비들로 최상의 글꼴 경험을 위해서는 알맞은 글꼴들의 설치가 필요합니다: 리눅스 사용자들은 <code>urw-fonts</code>
패키지<a name="DOCF25" href="#FOOT25"><sup>25</sup></a>를 원할 것 입니다. 사용
가능 한 플랫폼들에서, <code>msttcorefonts</code> 패키지는Arial 과 Times New Roman 과 같은 Monotype
글꼴들의TrueType 버전들을 제공 할 것입니다. 다른 유용한 글 꼴 세트는
<a href="https://www.redhat.com/promo/fonts/">https://www.redhat.com/promo/fonts/</a><a name="DOCF26" href="#FOOT26"><sup>26</sup></a>에서
사용가능한Latin, Greek, Cyrillic alphabets과 더불어 상당한 양의 sign들을 커버하는 &lsquo;liberation&rsquo;
TrueType 글꼴들 입니다. 이들은 Arial, Times New Roman 그리고 Courier New 와 metrics를 공유하고
처음 두 개와 비슷한 글꼴들을 포함합니다
(<a href="http://en.wikipedia.org/wiki/Liberation_fonts)">http://en.wikipedia.org/wiki/Liberation_fonts)</a>. URW 글꼴들에 기초하지만
extend된 Unicode coverage가 있는 OpenType/TrueType 글꼴들인&lsquo;Free UCS Outline Fonts&rsquo;
프로젝트<a href="(http://www.gnu.org/software/freefont/)">(http://www.gnu.org/software/freefont/)</a>가 있습니다. 이러한 글꼴들의 선택은 X11의
R help를 참조하세요.
</p>
<p>비트맵된 그래픽 장치들<code>jpeg()</code>, <code>png()</code> 와 <code>tiff()</code> 는 알맞은 헤더들과 라이브러리의
설치를 필요로 합니다: 순서대로, <code>jpeg</code> (버전 6b 이나 그 후 버전들, 혹은 <code>libjpeg-turbo</code>)
혹은 <code>libpng</code>(버전 1.2.7 이나 그 후 버전들,1.4.x 와 1.5.x 포함) 그리고  <code>zlib</code> 나
<code>libtiff</code> (모든 최근 버전 –3.9.[4567] 와 4.0.[23] 가 테스트 되었습니다)입니다.  그들은
<code>X11</code> 이나 <code>cairo</code>  둘 중 하나의 지원 또한 필요합니다 (위를 참조하세요). 대부분의 시스템 설치에서,
TIFF 라이브러리들은 JPEG 라이브러리들이 존재하고 아마도 명백하게 링크 되어있는 것을 요함으로,
<samp>--without-jpeglib 는tiff()</samp>장치 또한 disable할 수도 있습니다. <code>tiff()</code>장치는
<code>libtiff</code>의 기초 구축만을 요합니다 (JPEG의 지원 조차도 필요하지 않습니다). 최근 버전들은 존재되어 질 필요가 있을
수도 있는 <code>lzma</code>, <code>jbig</code> 그리고 <code>jpeg12</code>와 같은<code>libtiff</code>로 링크되어질
몇몇의 다른라이브러리들도 허용합니다.???
</p>
<p>(알맞은 헤더들과 알맞은 버전들을 포함한) 그들을 설치했다면,<samp>--with-system-zlib</samp> (버전 1.2.3 혹은
이후 버전), <samp>--with-system-bzlib</samp> 혹 은 <samp>--with-system-pcre</samp> (버전
8.10 혹은 이후 버전, 가급적이면 R과 함께 제공된 8.30)에 의하여 지정되었다면 <code>zlib</code>, <code>libbz2</code>
그리고 PCRE의 시스템 버전들이 사용되어질 것입니다: 그렇지 않으면 R 소스들에 있는 버전들은 컴파일 될 것입니다. 후자는
R에 충분하고 테스트 되었으므로, 이를 바꿀 필요가 없습니다.
</p>
<p>Option <samp>--with-system-tre</samp> is also available: it needs a recent
version of TRE. (The current sources are in the <code>git</code> repository at
<a href="https://github.com/laurikari/tre/">https://github.com/laurikari/tre/</a>, but at the time of writing the
resulting build will not pass its checks.).
</p>
<p><code>xz-utils</code>버전 4.999 혹은 그 이후 버전 (가급적이면 5.0.0 혹은 이후 버전)에서의 <code>liblzma</code>
는 만약 설치되었다면 사용될 것입니다: R 소스들에서의 버전은<samp>--with-system-xz=no</samp>로 설정함으로써 대신
선택될 수 있습니다. X11 클립보드 선택의 사용은 <code>Xmu</code> 헤더들과 라이브러리들을 요합니다.이들은 보통 X11 설치의
일부이지만 (예로 Debian meta-package &lsquo;<samp>xorg-dev</samp>&rsquo;),몇몇의 배포들은 이를 더 작은 파트들로 나누었으므로,
예를 들어 Fedora의 최근 버전들은 &lsquo;<samp>libXmu</samp>&rsquo; 와 &lsquo;<samp>libXmu-devel</samp>&rsquo; RPM들을 필요로 합니다.
</p>
<p>An implementation of <acronym>XDR</acronym> is required, and the R sources contain
one which is likely to suffice (although a system version may have higher
performance).  <acronym>XDR</acronym> is part of <acronym>RPC</acronym> and historically has
been part of <samp>libc</samp> on a Unix-alike.  However some builds of
<code>glibc</code> hide it with the intention that the <acronym>TI-RPC</acronym> library be
used instead, in which case <code>libtirpc</code> (and its development version)
needs to be installed, and its headers need to be on the C include path or
in <samp>/usr/include/tirpc</samp>.
</p>
<p>Use of the X11 clipboard selection requires the <code>Xmu</code> headers and
libraries.  These are normally part of an X11 installation (e.g. the
Debian meta-package &lsquo;<samp>xorg-dev</samp>&rsquo;), but some distributions have split this
into smaller parts, so for example recent versions of Fedora require the
&lsquo;<samp>libXmu</samp>&rsquo; and &lsquo;<samp>libXmu-devel</samp>&rsquo; RPMs.
</p>
<p>몇몇의 시스템들은 (특히 OS X와 적어도 몇몇의 FreeBSD 시스템들)multibyte locale들에서의 collation에 대한
불충분한 지원을 합니다. ICU(International Components for Unicode,
<a href="http://site.icu-project.org/">http://site.icu-project.org/</a>)에서부터 지원되는 OS의 collation을 바꾸는 것이 가능하고, 이는
collation의 모든 시스템 상의 훨씬 더 정확한 컨드롤을 제공합니다. ICU는 (적어도) 대부분의 리눅스 배포들, Solaris,
FreeBSD 그리고 AIX에서, 보통 <code>libicu</code> 이 나 <code>icu4c</code>처럼 소스들과 바이너리
distribution들 처럼 사용이 가능합니다. (OS X &gt;= 10.4 에서 포함)이는 사용이 가능한 곳에서 디폴트로 쓰일 것입니다:
매우 오래된 혹은 고장난 ICU 버전이 찾아진다면, 이는 <samp>--without-ICU</samp>에 의해 억제될 수 있습니다.
</p>
<p><code>bitmap</code> 과 <code>dev2bitmap</code> 장치들 그리고 또한 <code>embedFonts()</code>도
ghostscript (<a href="http://www.cs.wisc.edu/~ghost">http://www.cs.wisc.edu/~ghost</a>)를 사용합니다. 이는 명령이 실행되고 있을 때
여러분의 경로에 있거나, 그의 전체 경로가 그 때에 환경값 <code>R_GSCMD</code>에 의해 지정되었을 때 중 하나여야만 합니다.
<a name="index-R_005fGSCMD"></a>
</p>


<hr>
<a name="Tcl_002fTk"></a>
<a name="Tcl_002fTk-1"></a>
<h4 class="subsection">A.2.1 Tcl/Tk</h4>

<p><strong>tcltk</strong>패키지는Tcl/Tk &gt;= 8.4의 설치를 필요로 합니다: 소스들은
<a href="http://www.tcl.tk/">http://www.tcl.tk/</a>에서 이용 가능합니다.  Tcl/Tk 파일들의 위치를 지정하기 위해서는,
configuration 옵션들이 필요할 수 있습니다.
</p>
<dl compact="compact">
<dt><samp>--with-tcltk</samp></dt>
<dd><p>Tcl/Tk를 사용하거나, 그의 라이브러리 디렉토리를 지정합니다
</p></dd>
<dt><samp>--with-tcl-config=<var>TCL_CONFIG</var></samp></dt>
<dd><p>&gt; tclConfig.sh 의 위치를 지정합니다
</p></dd>
<dt><samp>--with-tk-config=<var>TK_CONFIG</var></samp></dt>
<dd><p>tkConfig.sh 의 위치를 지정합니다
</p></dd>
</dl>

<p>혹은 순서대로 Tcl과 Tk 라이브러리들에 마주한 linking과 &rsquo;<samp>tcl.h</samp>&rsquo;와 &rsquo;<samp>tk.h</samp>&rsquo; 헤더들을 찾기
위해 필요한 flag들을 지정하기위해서는 configure 값들인<code>TCLTK_LIBS</code>와
<code>TCLTK_CPPFLAGS</code>를 사용하십시오. 만약 Tcl/Tk의 32-비트와64-비트 버전 두 가지가 모두 설치되어있다면,
혼란을 방지하기 위해서 올바른 config 파일들로의 경로를 지정하는 것이 필요할수 있습니다.8.5.12 와 8.6.0까지의 Tcl/Tk
버전들이 테스트 되었습니다 (대부분의8.4.x의 버전들도 포함하지만, 최근에 테스트 된 것이 아닙니다).
</p>
<p>Versions of Tcl/Tk up to 8.5.12 and 8.6.0 have been tested (including most
versions of 8.4.x, but not recently).
</p>
<hr>
<a name="Java-support"></a>
<a name="Java-support-1"></a>
<h4 class="subsection">A.2.2 Java support</h4>

<p>The build process looks for Java support on the host system, and if it finds
it sets some settings which are useful for Java-using packages.
<a name="index-JAVA_005fHOME"></a>
<code>JAVA_HOME</code> can be set to point to a specific JRE/JDK.
</p>
<p>이들 중 주된 것은 파일 &rsquo;<samp>R_HOME</samp>/etc/ldpaths (혹은 sub-architecture 특정버전)안의
<code>R_JAVA_LD_LIBRARY_PATH</code> 에 저장된 Java  라이브러리들과 JVM으로 의 몇몇의 라이브러리 경로를 설정하는
것입니다.
<a name="index-R_005fJAVA_005fLD_005fLIBRARY_005fPATH"></a>
&lsquo;<samp>x86_64</samp>&rsquo; 리눅스를 위한 전형적인 설정은 다음과 같습니다.
</p>
<div class="example">
<pre class="example">JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64/jre
R_JAVA_LD_LIBRARY_PATH=${JAVA_HOME}/lib/amd64/server
</pre></div>

<p>이는 안타깝게도 JRE/JDK의 정확한 버전의 설치에 의존함으로, 만약 Jave 설치가 업데이트 되었다면 이도 업데이트가 필요할 수
있습니다. 이는 <code>R CMD javareconf</code>를 실행함으로써 될 수 있습니다. 스크립트는 <code>configure</code>
스크립드와 비슷한 방법으로 Java detection을 재실행 하고
&rsquo;<samp>Makeconf</samp>&rsquo;와&rsquo;<samp>R_HOME</samp>&rsquo;/etc/ldpaths 둘 다의 설정들을 업데이트 합니다. 자세한 사항은
<code>R CMD javareconf –help</code>를 참조하세요. 다른 방법으로 덜 특정한 <code>JAVA_HOME</code>의 버전은
설정에서 제공될 수 있습니다: 위의 예제에서 이는 다음과 같을 것 입니다.
</p>
<p>이 설정들을 무시하는 다른 대안으로는 <code>R_JAVA_LD_LIBRARY_PATH</code> (e.g. in
<samp>~/.Renviron</samp>
<a name="index-R_005fJAVA_005fLD_005fLIBRARY_005fPATH-1"></a>
에서)를 설정하거나, 시스템으로의 Java runtime 라이브러리 경로들을 지정하는 &rsquo;<samp>/etc/ld.so.conf</samp>를
사용하는 것 입니다. 다른 설정들은 &rsquo;<samp>etc/Makeconf</samp>&rsquo; (혹은 sub-architecture-특정 버전)에 레코드
됩니다. 다음의 예를 살펴보십시오.
</p>
<div class="example">
<pre class="example">R_JAVA_LD_LIBRARY_PATH=/usr/lib/jvm/java-1.7.0/jre/lib/amd64/server
</pre></div>

<p>It may be possible to avoid this by specifying an invariant link as the
path. For example, on that system either of
</p>
<div class="example">
<pre class="example">JAVA_HOME=/usr/lib/jvm/java-1.7.0
JAVA_HOME=/usr/lib/jvm/java-1.7.0/jre
</pre></div>

<p>worked.
</p>
<hr>
<a name="Other-compiled-languages"></a>
<a name="Other-compiled-languages-1"></a>
<h4 class="subsection">A.2.3 Other compiled languages</h4>

<p>Some add-on packages need a C++ compiler.  This is specified by the
configure variables <code>CXX</code>, <code>CXXFLAGS</code> and similar.
<code>configure</code> will normally find a suitable compiler.  However, in
most cases this will be a C++98 compiler, and as from R 3.1.0 it is
possible to specify an alternative compiler for use with C++11 by the
configure variables <code>CXX1X</code>, <code>CXX1XSTD</code>, <code>CXX1XFLAGS</code> and
similar.  Again, <code>configure</code> will normally find a suitable value for
<code>CXX1XSTD</code> if the compiler given by <code>CXX</code> is capable of compiling
C++11 code, but it is possible that a completely different compiler will be
needed (it is for OS X &lt; 10.9 and Solaris, for example).
</p>
<p>Other packages need full Fortran 90 (or later) support.  For source files
with extension <samp>.f90</samp> or <samp>.f95</samp>, the compiler defined by the macro
<code>FC</code> is used by <code>R CMD INSTALL</code>.  This is found when R is
configured and is often the same as <code>F77</code>: note that it is detected by
the name of the command without a test that it can actually compile Fortran
90 code.  Set the configure variable <code>FC</code> to override this if
necessary: variables <code>FCFLAGS</code>, <code>FCPICFLAGS</code>, <code>FCLIBS</code>,
<code>SHLIB_FCLD</code> and <code>SHLIB_FCLDFLAGS</code> might also need to be set.
</p>
<p>See file <samp>config.site</samp> in the R source for more details about these
variables.
</p>
<hr>
<a name="Linear-algebra"></a>
<a name="Linear-algebra-1"></a>
<h3 class="section">A.3 Linear algebra</h3>
<a name="index-BLAS-library"></a>


<hr>
<a name="BLAS"></a>
<a name="BLAS-1"></a>
<h4 class="subsection">A.3.1 BLAS</h4>

<p>R에서의 선형 대수학 루틴들은 강화된 <acronym>BLAS</acronym> (Basic Linear Algebra Subprograms,
<a href="http://www.netlib.org/blas/faq.html">http://www.netlib.org/blas/faq.html</a>) 루틴들을 사용할 수 있습니다. 하지만, 이들은
configure time에 명시적으로 요구되어있어야만 합니다: R은 잘 테스트되어지고 대부분의 R의 사용에 알맞은 내부의
<acronym>BLAS</acronym>를 제공합니다.
</p>
<p>여러분은 설정 옵션  <samp>--with-blas</samp>의 값을 통해 특정한 <acronym>BLAS</acronym> 라이브러리를 지정할 수 있고
(기본 값)  <samp>--without-blas</samp>에 의해 외부 <acronym>BLAS</acronym> 라이브러리를 사용하지 않게할 수
있습니다.
<a name="index-BLAS_005fLIBS"></a>
 만약  <samp>--with-blas</samp>가 = 없이 주어졌다면, 그의 값은 예를 들어 &rsquo;<samp>config.site</samp>에서 설정된
환경값 <code>BLAS_LIBS</code>에서부터 취해진 것입니다. 만약 값이 명확하게 linker 명령이 아니라면(dash로 시작하거나
라이브러리로의 경로를 주는), &lsquo;<samp>-1</samp>&rsquo;로 prefix됩니다.그러므로
</p>
<div class="example">
<pre class="example">--with-blas=&quot;foo&quot;
</pre></div>

<p>는 (link time과 run time 둘 다에서 찾아져야만 하는) 외부의 <acronym>BLAS</acronym>를 찾기 위한
&lsquo;<samp>-lfoo</samp>&rsquo;에 대응하여 연결하려는 설명입니다.
</p>
<p>설정코드 는 외부 <acronym>BLAS</acronym>가 완성되었는지와 (이는 double precision과double complex
routine들,  ㅡ그리고 <code>LSAME</code>도 포함해야만 합니다), 사용가능하게 나타나는지를 체크합니다. 하지만, 외부
<acronym>BLAS</acronym>는 공유된 object에서부터 사용 가능해야만하고 (그래서 position-independent 코드를
포함해야만 합니다) 체크되지 않아야 합니다.
</p>
<p>몇몇의 강화된 <acronym>BLAS들</acronym>은 compiler-system-specific (Solaris에서는
<code>sunperf</code>, IBM의 <code>libessl</code>, OS X상의 <code>Accelerate</code>)입니다. 이들을 위한
알맞은 주문은 보통  알맞은 플랫폼에 값이 없는  <samp>--with-blas</samp>를 통해 찾아 집니다.
</p>
<p>몇몇의 외부 <acronym>BLAS</acronym>들은 multi-thread되어있습니다. 한 가지 문제는 (<code>SIGPROF</code>신호를
사용하는)  R profiling이 문제를 일으킬 수 있다는 것이고, 여러분이 multi-thread된 <acronym>BLAS</acronym>를
사용한다면 profiling을 disable하기를 원할지도 모릅니다. Multi-thread된 <acronym>BLAS</acronym>의 사용은 비슷한
single-thread된 <acronym>BLAS</acronym>를 사용하는 것 보다 (보통 굉장히) 더 많은 <acronym>CPU</acronym> 타임이 걸리고
훨씬 더 많은 경과시간이 걸리는 결과를 가져올 수 있다는 것을 유의하세요.
</p>
<p>응하고 컴파일 되고  <samp>--enable-BLAS-shlib</samp>가 사용되지 않았다면, 모든 <acronym>BLAS</acronym> 를
사용하는 패키지들도 그래야만 한다는 것을 유의하십시오. 그래서 만약 R이 강화된 <acronym>BLAS</acronym>를 사용하기위해 다시
구축된다면 <a href="http://CRAN.R-project.org/package=quantreg"><strong>quantreg</strong></a>와 같은 패키지들이 다시 설치되어야만 할 것입니다.
</p>
<p>R은 외부 <acronym>BLAS</acronym>의  <acronym>ISO</acronym>/<acronym>IEC</acronym>&nbsp; 60559
compliance에 의지합니다. 이는 만약 예제코드가 0을 가진 항이 항상 0이고 산출되지 않아도 된다고 짐작한다면 고장났을 수도
있습니다 - <code>x*0</code> 가 <code>NaN</code>이 될 수도 있는 반면. 이는 test suite에서 체크됩니다.
</p>
<p>External <acronym>BLAS</acronym> implementations often make less use of
extended-precision floating-point registers and will almost certainly
re-order computations.  This can result in less accuracy than using the
internal <acronym>BLAS</acronym>, and may result in different solutions, e.g.
different signs in SVD and eigendecompositions.
</p>
<p>The URIs for several of these BLAS are subject to frequent gratuitous
changes, so you will need to search for their current locations.
</p>

<hr>
<a name="ATLAS"></a>
<a name="ATLAS-1"></a>
<h4 class="subsubsection">A.3.1.1 ATLAS</h4>

<p>ATLAS (<a href="http://math-atlas.sourceforge.net/">http://math-atlas.sourceforge.net/</a>) 는 대폭의 유닉스 계열에서 실행되는 “조율된”
<acronym>BLAS</acronym>입니다. 안타깝게오, 이는 보통 R 패키지에서 사용되는 것 처럼 공유된 object와 함께 사용될 수 없는
몇몇의 플랫폼의static 라이브러리처럼 구축됩니다. 미리 만들어진 ATLAS 버전들을 사용할때에는 조심을 하십시오
(&lsquo;<samp>ix86</samp>&rsquo; 플랫폼들에서는 되는 듯 하나, &lsquo;<samp>x86_64</samp>&rsquo;들에서는 항상 되지 않습니다).만약 라이브러리들이
라이브러리 경로에 있다면, ATLAS를 지정하는 일반적인 방법은 다음을 통한 것일 것입니다.
</p>
<p>The usual way to specify ATLAS will be via
</p>
<div class="example">
<pre class="example">--with-blas=&quot;-lf77blas -latlas&quot;
</pre></div>

<p>그렇지 않으면 다음에 의합니다.
</p>
<div class="example">
<pre class="example">--with-blas=&quot;-L/path/to/ATLAS/libs -lf77blas -latlas&quot;
</pre></div>

<p>예를 들어, &lsquo;<samp>x86_64</samp>&rsquo; Fedora 는 다음이 필요합니다.
</p><div class="example">
<pre class="example">--with-blas=&quot;-L/usr/lib64/atlas -lf77blas -latlas&quot;
</pre></div>

<p>여러개의 CPU core들을 가진 시스템들을 위해서는, 다음을 지정함으로써 ATLAS의 multi-thread된 버전을 사용하는 것이
가능합니다.
</p>
<div class="example">
<pre class="example">--with-blas=&quot;-lptf77blas -lpthread -latlas&quot;
</pre></div>

<p>Position-independent 코드를 가진 ATLAS를 어떻게 구축하는지에 대해서는 그의 파일
&rsquo;<samp>INSTALL.txt</samp>&rsquo;를 참조하세요 (적어도 3.8.0 이후 버전): 이 파일은 어떻게 ATLAS를 공유된 라이브러리처럼
구축하는지도 설명합니다.
</p>
<hr>
<a name="ACML"></a>
<a name="ACML-1"></a>
<h4 class="subsubsection">A.3.1.2 ACML</h4>

<p>ATLAS는 윈도우즈에서도 사용될 수 있습니다: 소스로 부터 구축할 때는 see <a href="#Getting-the-source-files">Getting the source files</a>를
참조하고, 바이너리 버전들에 미리 구성된 서포드를 추가하기 위해서는
<a href="http://CRAN.R-project.org/bin/windows/ rw-FAQ.html">R
Windows<acronym>FAQ</acronym></a>를 참조하세요.
</p>
<div class="example">
<pre class="example">--with-blas=&quot;-lacml&quot;
</pre></div>

<p>다른 컴파일러들에 대해서는 ACML 문서를 참조하세요.
<a name="index-LD_005fLIBRARY_005fPATH-1"></a>
ACML의 multithread 된 Linux 버전이 <code>gfortran</code>의 최근 버전에서 사용가능합니다. 이를 사용하기
위해서는 다음과 같은것이 필요할 것입니다 (그리고 디렉토리가 ld.so cache에 있도록 정리해야할 수도 있습니다).
</p>
<div class="example">
<pre class="example">--with-blas=&quot;-L/opt/acml5.1.0/gfortran64_mp/lib -lacml_mp&quot;
</pre></div>

<p>있습니다).
</p>
<p>ACML을 사용하기위한 다른 방법 (그리고 더 나은 방법들)을 위해서는 see <a href="#Shared-BLAS">Shared BLAS</a>를 참조하세요.
</p>
<p>가장 근래에 테스트된 버전은 (5.1.0)  <code>NA</code>s의 처리에서 &rsquo;<samp>reg-BLAS.R</samp>&rsquo; 테스트를 실패하였습니다.
</p>
<hr>
<a name="Goto-and-OpenBLAS"></a>
<a name="Goto-and-OpenBLAS-1"></a>
<h4 class="subsubsection">A.3.1.3 Goto and OpenBLAS</h4>

<p>Kazushige Goto 박사는 여러 프로세서들과 OS들에서 사용가능한 또 다른 조율된 <acronym>BLAS</acronym>를 썻습니다. 현재
버전은  GotoBLAS2로 알려져 있고 (2010년 11 월에) 훨씬 적은 제한적인 라이센스 하에 재배포 되었습니다. 소스 코드는
<a href="http://www.tacc.utexas.edu/tacc-projects/gotoblas2/">http://www.tacc.utexas.edu/tacc-projects/gotoblas2/</a>에서 얻어질 수 있습니다.이게
구축되고 설치되면, 다음을 이용해 R을 configure함으로써 사용될 수 있습니다.
</p>
<div class="example">
<pre class="example">--with-blas=&quot;-lgoto2&quot;
</pre></div>

<p>를 사용하기위한 다른 방법 (그리고 더 나은 방법들)을 위해서는  see <a href="#Shared-BLAS">Shared BLAS</a>를 참조하세요.
</p>
<p>OpenBLAS (<a href="http://xianyi.github.com/OpenBLAS/">http://xianyi.github.com/OpenBLAS/</a>) is a descendant project
with support for some later CPUs (e.g. Intel Sandy Bridge).  Once
installed it can be used by something like
</p>
<div class="example">
<pre class="example">--with-blas=&quot;-lopenblas&quot;
</pre></div>

<p>or as a shared BLAS.
</p>
<hr>
<a name="MKL"></a>
<a name="Intel-MKL"></a>
<h4 class="subsubsection">A.3.1.4 Intel MKL</h4>
<p>리눅스에서의 인텔 프로세서들<a name="DOCF27" href="#FOOT27"><sup>27</sup></a>에대해서는, 인텔의 Math Kernel
라이브러리(<a href="http://www.intel.com/software/products/mkl/">http://www.intel.com/software/products/mkl/</a>)가 존재합니다. MKL로의 연결을
시도하기 전, 라이브러리와 함께 설치된 MKL 사용자 설명서를 읽어 보기를 강력하게 추천합니다. Mac OS X와 윈도우즈를 위한MKL
버전도 있지만, 이 플랫폼들에서 R을 위해 사용된 기본 컴파일러들과는 작동하지 않았습니다.
</p>
<p>MKL 인터페이스는 여러 번 바뀌었었고, 또 바뀔지도 모릅니다: 다음의 유의사항들은 엄밀히 버전 10.3에 대한 것 입니다.
</p>
<p>MKL의 버전 10은 두 개의 linking 모델들을 지원합니다: (아래를 참조하세요) 버전 9과 backward 호환이 가능한 기본
모델과 순수하게 layer된 모델입니다. Layer된 모델은 사용자에서 네 개의 다른 라이브러리 레이어에서의세밀한 컨트롤을 줍니다:
인터페이스, threading, 계산, run-time 라이브러리 서포트. 이런 레이어된 모델들을 이용한 MKL로의 연결들에 대한
몇몇의예제들이 아래에 주어져 있습니다. (이 예제들은 &lsquo;<samp>x86_64</samp>&rsquo;에서의 GCC컴파일러들에 대한 예제들 입니다.) 인텔
Fortran 컴파일러가 <acronym>GNU</acronym> Fortran컴파일러 에서부터 다른 register들에 복잡한 값을 돌려주기 때문에
인터페이스 레이어의 선택이 &lsquo;<samp>x86_64</samp>&rsquo;에서 중요합니다. 
</p>
<p>그러므로 여러분은 여러분의 컴파일러(<code>mkl_intel*</code>  혹은 <code>mkl_gf*</code>)에 맞는 인터페이스 레이어를
사용해야만 합니다.
</p>
<p>R은 다음과 같은 것에 의해 MKL의 연속 버전으로 연결된 수도 있습니다.
</p>
<div class="example">
<pre class="example">MKL_LIB_PATH=/opt/intel/mkl/10.311.339/lib/intel64/
export LD_LIBRARY_PATH=$MKL_LIB_PATH
MKL=&quot;-L${MKL_LIB_PATH} -lmkl_gf_lp64 -lmkl_sequential -lmkl_core&quot;
./configure --with-blas=&quot;$MKL&quot; --with-lapack
</pre></div>

<p>어떤 버전들은 <code>–lmkl_core</code>앞에 <code>–lmkl_lapack</code>이 필요할 수도 있습니다. 라이브러리들의 순서는
중요합니다. 생략될 수도 있지만, MKL이 LAPACK의 조율된 카피와 <acronym>BLAS</acronym> (see <a href="#LAPACK">LAPACK</a>을
참조하세요)를 포함하기 때문에, <samp>--with-lapack</samp>옵션이 사용됩니다.
</p>
<p>다음을 사용하여 값 <code>MKL</code>을 정의하는 줄을 바꿈으로써 (인텔의 Zhang Zhang 에 의하면) Thread된 MKL이
사용될 수도 있습니다 (Intel OMP).
</p>
<div class="example">
<pre class="example">MKL=&quot;-L${MKL_LIB_PATH} -lmkl_gf_lp64 -lmkl_intel_thread \
     -lmkl_core -liomp5 -lpthread&quot;
</pre></div>

<p>혹은 (GNU OMP)
</p>
<div class="example">
<pre class="example">MKL=&quot;-L${MKL_LIB_PATH} -lmkl_gf_lp64 -lmkl_gnu_thread \
     -lmkl_core -fopenmp -lpthread&quot;
</pre></div>

<p>thread들의 기본 숫자는 OpenMP 소프트웨어에 의해 선택될 것이지만, <code>OMP_NUM_THREADS</code>나
<code>MKL_NUUM_THREADS</code>를 설정함으로써 조정될 수 있고, 최근 버전들에서는 기계만의 사용으로써도 합리적인 값을 생산할
수 있다는 것으로 보여집니다.
</p>
<p>다음과 같은 것을 사용하여 Static thread된 MKL이 사용될 수도 있습니다
</p>
<div class="example">
<pre class="example">MKL=&quot;   -L${MKL_LIB_PATH}                               \
        -Wl,--start-group                               \
                ${MKL_LIB_PATH}/libmkl_gf_lp64.a        \
                ${MKL_LIB_PATH}/libmkl_gnu_thread.a     \
                ${MKL_LIB_PATH}/libmkl_core.a           \
        -Wl,--end-group                                 \
        -lgomp -ldl -lpthread&quot;
</pre></div>

<p>(Ei-ji Nakamad에게 감사를 드립니다).MKL 문서는 알맞은 주문들을 제안해 줄 ‘link line advisor’를
포함합니다:
</p>
<p><a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/">http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/</a>에서
온라인 버전이 사용가능했습니다.
</p>
<hr>
<a name="Shared-BLAS"></a>
<a name="Shared-BLAS-1"></a>
<h4 class="subsubsection">A.3.1.5 Shared BLAS</h4>

<p><acronym>BLAS</acronym> 라이브러리는 많은 애드온 패키지들과 R자체에서도 사용될 것입니다.이는 대부분의 static 라이브러리가
R executable과 각 각의 <acronym>BLAS</acronym>를 사용하는 패키지들로 컴파일 될 것 이므로, 공유된/dynamic
<acronym>BLAS</acronym> 라이브러리를 쓰는것이 더 낫다는 것을 의미합니다.
</p>
<p>R은  <samp><var>R_HOME</var>/lib</samp>에 저장된 dynamic 라이브러리인 <code>libRblas</code>로
<acronym>BLAS</acronym>를컴파일 하는 옵션과 R 자체와 모든 애드온 패키지들을 라이브러리에 대응해 서 연결하는 것을 제공합니다.
</p>
<p>이는 외부 <acronym>BLAS</acronym>가 지정되고 찾아지지 않은 이상, AIX를 제외한 모든 플랫폼에서 기본값입니다: 전자에서, 이는 옵션
<samp>--enable-BLAS-shlib</samp>를 지정함으로써 사용될 수 있고, 이는
<samp>--disable-BLAS-shlib</samp>를 통해서 언제든지disable될 수 있습니다.이는 장점과 단점 두 가지 모두를
가지고 있습니다.
</p>
<p>This has both advantages and disadvantages.
</p>
<ul>
<li> 이는 오직 하나의 <acronym>BLAS</acronym>  routine들의 카피를 가짐으로써 공간을 저장합니다. 이는 만약 ATLAS에서 기본으로
쓰였던 것과 같은 외부 static <acronym>BLAS</acronym> 가 있을 경우 유용합니다.

</li><li> 유된 <acronym>BLAS</acronym>의 사용에 성능적 약점이 있을 수 있습니다. 아마도 필시 R의 내부 <acronym>BLAS</acronym>가
사용되고 R이 공유된 라이브러리처럼 구축되지 않았을 떄, position-independent 코드를 사용하지 않고
&rsquo;<samp>R.bin</samp>&rsquo;에 (그리고 &rsquo;<samp>libR.a</samp>&rsquo;에)<acronym>BLAS</acronym>를 구축하는 것이 가능할 때 일
것입니다. 하지만, 실험들은 공유된 <acronym>BLAS</acronym>를 이용한 많은 경우가 높은 수준의 컴파일러 옵티마이제이션이 사용되었 다는
가정하에, 왠만큼 빨랐습니다.

</li><li> <acronym>BLAS</acronym>로의 모든 reference들이 <code>libRblas</code>를 통하기 때문에 R과 모든 애드온 패키지들을
재설치할 필요 없이, <acronym>BLAS</acronym>를 바꾸는 것은 쉽고, 이들은 치환될 수 있습니다. Replacement가 연결되는 모든
dynamic 라이브러리들은 linker에 의해 찾아지는 것이 필요할 것이라는 것을 유의하십시오. 이는
<samp><var>R_HOME</var>/etc/ldpaths</samp>들에 있는 라이브러리 경로들을 바꾸는 것을 필요로 할 수도 있습니다.
</li></ul>

<p>Another option to change the <acronym>BLAS</acronym> in use is to symlink a dynamic
<acronym>BLAS</acronym> library (such as ACML or Goto&rsquo;s) to
<samp><var>R_HOME</var>/lib/libRblas.so</samp>.  For example, just
</p>
<div class="example">
<pre class="example">mv <var>R_HOME</var>/lib/libRblas.so <var>R_HOME</var>/lib/libRblas.so.keep
ln -s /opt/acml5.1.0/gfortran64_mp/lib/libacml_mp.so <var>R_HOME</var>/lib/libRblas.so
</pre></div>
<p>이는 사용되고있는 <acronym>BLAS</acronym>를 multithread된 ACML로 바꿀 것 입니다. 비슷한 링크는 (적합한
&rsquo;<samp>lib</samp>&rsquo; 디렉토리가 run-time 라이브러리 경로나 <code>ld.so</code> cache에있다는 가정 하에) Goto
<acronym>BLAS</acronym>의 최근 버전과 아마도 MKL의 최근 버전들에서 돌아갈 것입니다.
</p>

<hr>
<a name="LAPACK"></a>
<a name="LAPACK-1"></a>
<h4 class="subsection">A.3.2 LAPACK</h4>

<a name="index-LAPACK-library"></a>
<p>Provision이, 원래 LAPACK(Solaris에서의 <code>sunperf</code>, OS X에서의
<code>Accelerate</code>,&lsquo;<samp>ix86</samp>&rsquo;/&lsquo;<samp>x86_64</samp>&rsquo; 리눅스에서의 ACML과 MKL과 같은)의 카피를
포함한 <acronym>BLAS</acronym>에 대응하기위한, 외부 LAPACK 라이브러리의 사용을 위해 만들어 졌습니다. 적어도 LAPACK 버전
3.2가 필요합니다.
</p>
<p>하지만, 그럴싸한 성능 향상은 작다고 (혹은 네거티브)라고 생각되고, 기본값은 알맞은 LAPACK 라이브러리의 검색을 하지 않는 것이고,
이는 확실히 추천되지 않습니다. 여러분은 특정한 LAPACK 라이브러리를 지정하거나 설정 옵션 <samp>--with-lapack</samp>에
의한 포괄적인 라이브러리를 찾을 수 있습니다. 최대한으로 빠른 선형 대수학을 검색하는 사이트는 LAPACK의 ATLAS-optimized
subset을 사용하여 LAPACK 라이브러리를 구축하기를 원할 수도 있습니다 이를 하기 위해서는 LAPACK의 ATLAS subset이
<code>libcblas</code>에 의존하지 때문에 다음을 지정하세요.
</p>
<div class="example">
<pre class="example">--with-lapack=&quot;-L/path/to/ATLAS/libs -llapack -lcblas&quot;
</pre></div>

<p><samp>--with-lapack</samp>에 대한 값은 환경값 <code>LAPACK_LIBS</code>를 통해 설정될 수 있지만,
<a name="index-LAPACK_005fLIBS"></a>
이는(기본값이 <code>no</code>인것과 같이) <samp>--with-lapack</samp>이 지정되고 <acronym>BLAS</acronym> 라이브러리가
LAPACK을 포함하지 않았을 떄만 사용될 것입니다.
</p>
<p>ACML이 전체 LAPACK을 포함하고 있기 때문에, 만약 <acronym>BLAS</acronym>처럼 선택되었다면, 이는 <samp>--
with-lapack</samp>을 통해 LAPACK처럼 사용될 수 있습니다.
</p>
<p>만약 <samp>--with-lapack</samp>을 사용한다면, LAPACK 소스들(혹은 소스들에 대해 공고 된 오류수정들)에 있는 잠재적인
버그 문제들을 유의하십시오. 특히, <code>DGEEV</code> 와 <code>DGESDD</code>에 있는 버그들은 다음과 같은 오류 메시지를
초래합니다.
</p>
<div class="example">
<pre class="example">DGEBRD gave error code -10
</pre></div>

<p>다른 잠재적은 문제들은 몇년동안 리눅스 배포에서 몇번이나 목격된, 라이브러리의 불완전한 버전들입니다.
</p>
<p><samp>--with-lapack</samp>의 사용이 ‘확실하게 권장되지 않는다는 것’을 제발 명심하십시오: 이는 몇 개의 플랫폼들에서
필요하고 몇몇의 사용자들이 보고된 성능 향상을 실험하기 위해서만 제공되었습니다. 필요하지 않게 사용된 곳에서의 보고된 문제들은 R
헬퍼들을 자극할 뿐입니다.
</p>
<p>외부 <acronym>BLAS</acronym> 섹션의 <acronym>ISO</acronym>/<acronym>IEC</acronym>&nbsp;60559 compliance 에 대한
커멘트도 유의하세요: 이들은 외부 LAPACK에도 동등하게 적용되며, 예로 인텔 MKL 문서가 다음과 같이 이릅니다.
</p><blockquote>
<p>LAPACK 루틴들은 input matrice들이 INF 혹은 NaN 값들과 같은 IEEE 754 특별 값들을 포함하지 않는다고
가정합니다. 이러한 특별 값들의 사용은LAPACK이 예상하지 않은 결과를 돌려주거나 불안정하게되는 것의 원인이 될수도 있습니다.
</p></blockquote>

<p>We rely on limited support in LAPACK for matrices with <em>2^{31}</em> or more
elements: it is quite possible that an external LAPACK will not have that
support.
</p>
<p>If you have a pure FORTRAN 77 compiler which cannot compile LAPACK it may be
possible to use CLAPACK from <a href="http://www.netlib.org/clapack/">http://www.netlib.org/clapack/</a> by
something like
</p><div class="example">
<pre class="example">-with-lapack=&quot;-lclapack -lf2c&quot;
</pre></div>
<p>provided these were built with position-independent code and the calling
conventions for double complex function return values match those in the
BLAS used, so it may be simpler to use CLAPACK built to use CBLAS and
</p><div class="example">
<pre class="example">-with-lapack=&quot;-lclapack -lcblas -lf2c&quot;
</pre></div>



<hr>
<a name="Caveats"></a>
<a name="Caveats-1"></a>
<h4 class="subsection">A.3.3 Caveats</h4>

<p>모든 라이브러리들과 같이, 여러분은 라이브러리들과 R이 상응하는 컴파일러들과 flag들과 컴파일 되었는지를 확실하게 할 필요가
있습니다. 예를들어, 이는 native 컴파일러들을 사용하는 Sun Sparc에서 <code>sunperf</code>가 사용되기 위해서 flag
<code>–dalign</code>가 필요하다는 뜻입니다.
</p>
<p>어떤 시스템들에서는, 외부 <acronym>BLAS</acronym>/LAPACK이 R을 구축할 떄 쓰여졌던 같은 FORTRAN compiler와 함께
구축되는 것을 필요로 합니다: 알려진 문제는 <code>gfortran</code>으로 구축도니 R입니다, see <a href="#Using-gfortran">Using gfortran</a>을 참조하세요.
</p>


<hr>
<a name="Configuration-on-a-Unix_002dalike"></a>
<a name="Configuration-on-a-Unix_002dalike-1"></a>
<h2 class="appendix">Appendix B Configuration on a Unix-alike</h2>


<hr>
<a name="Configuration-options"></a>
<a name="Configuration-options-1"></a>
<h3 class="section">B.1 Configuration options</h3>

<p><code>configure</code> 은 많은 옵션들을 가지고 있습니다. 다음의 실행은 리스트를 줄 것입니다.
</p>
<div class="example">
<pre class="example">./configure --help
</pre></div>

<p>아마도 다른 곳에서는 커버되지 않는 가장 중요한 것은 다음일 것입니다 ( 기본값들은 괄호안에 있습니다).
</p>
<dl compact="compact">
<dt><samp>--with-x</samp></dt>
<dd><p>X Window System을 사용합니다 [yes]
</p></dd>
<dt><samp>X 를 포함한 파일들은 <var>DIR</var>에 있습니다</samp></dt>
<dd><p>X  라이브러리 파일들은 <var>DIR</var>에 있습니다
</p></dd>
<dt><samp>--x-libraries=<var>DIR</var></samp></dt>
<dd><p>X library files are in <var>DIR</var>
</p></dd>
<dt><samp>--with-readline</samp></dt>
<dd><p>(만약 가능하다면) readline 라이브러리를 사용합니다 [yes]
</p></dd>
<dt><samp>--enable-R-profiling</samp></dt>
<dd><p><code>Rprof()</code> 에 대한 지원을 위한 컴파일을 시도합니다 [yes]
</p></dd>
<dt><samp>--enable-memory-profiling</samp></dt>
<dd><p><code>Rprofmem()</code> 와 <code>tracemem()</code>에 대한 지원을 위한 컴파일을 시도합니다 [no]
</p></dd>
<dt><samp>--enable-R-shlib</samp></dt>
<dd><p>공유된/dynamic 라이브러리처럼 R을 구축합니다 [no]
</p></dd>
<dt><samp>--enable-BLAS-shlib</samp></dt>
<dd><p>공유된/dynamic 라이브러리처럼 <acronym>BLAS</acronym>를 구축합니다  [yes, AIX에서는 제외]
</p></dd>
</dl>

<p>네거티브들에 대해서는 <samp>--without-foo</samp> 혹은 <samp>--disable—foo</samp>를 사용할 수 있습니다.
</p>
<p>만약 프로파일 된 실행가능한 R을 구축한다면 <samp>--disable-R-profiling</samp>을 사용하고 싶어 할수도 있습니다
((e.g. with &lsquo;<samp>-pg)</samp>&rsquo;.
</p>
<p>Flag <samp>--enable-R-shlib</samp> 는 make 프로세스가 보통 &rsquo;<samp>libR.so</samp>&rsquo;라고 불리우는
dynamic (공유된) 라이브러리처럼 R을 구축하는 것을 초래하고, 실행 가능한 메인 R인 &rsquo;<samp>R.bin</samp>&rsquo;을
라이브러리에 대응하여 연결합니다. 이는 만약 (시스템 라이브러리들을 포함한) 모든 코드가 dynamic 라이브러리로 컴파일 될 수 있을
때만 되고, 성능 저하가 있을 수 있습니다. 그러므로 여러분은 아마도 R을 내장하는 어플리케이션을 사용할 경우에만 사용하기를 원할것
입니다. <samp>--enable-R-shlib</samp>와 연결된 R 시스템 상에 설치된 패키지들의 C 코드는 dynamic
라이브러리에 맞대어 연결되어 있고, 그래서 그런 패키지들은 기본적인 방법으로 구축된 R 시스템들에서부터는 사용될 수 없다는 것을
유의하십시오. 또한, 패키지들이 R에 대응하여 연결되어있으므로, 어떤 OS들 상에서도 dynamic 라이브러리들에 대응하여 연결되어 있고
R 자체도 대응하여연결되어 있으므로, 이는 심볼이 혼란해지도록 이끌어질 수 있습니다.
</p>
<p>For maximally effective use of <code>valgrind</code>, R should be compiled
with valgrind instrumentation. The <code>configure</code> option is
<samp>--with-valgrind-instrumentation=<var>level</var></samp>, where <var>level</var> is
0, 1 or 2.  (Level 0 is the default and does not add any anything.)  The
system headers for <code>valgrind</code> can be requested by option
<samp>--with-system-valgrind-headers</samp>: they will be used if present (on
Linux they may be in a separate package such as <strong>valgrind-devel</strong>).  Note
though that there is no guarantee that the code in R will be compatible
with future <code>valgrind</code> headers.
</p>
<p>만약 R을 다른 옵션들로 re-configure해야한다면, 그 전에 <code>make clean</code> 혹은 <code>make
distclean</code>을 실행해야 할 수도 있습니다.
</p>

<hr>
<a name="Internationalization-support"></a>
<a name="Internationalization-support-1"></a>
<h3 class="section">B.2 Internationalization support</h3>

<p>메세지의 번역은 <code>configure</code>옵션 <samp>--disable-nls</samp>에 의하여 disable되지 않는 이상
<acronym>GNU</acronym> <code>gettext</code>를 통하여 지원됩니다. <code>Configure</code> 리포트는 만약 서포트가 컴파일
되었고, 실행되는 ‘추가의 능력들’ 중 하나처럼 <code>NLS</code>를 보여줄 것입니다. (<code>c</code> locale을 제외한)
English local 은 다음을 R의 시작의 greeting 에서 포함 할 것입니다.
</p>
<div class="example">
<pre class="example">  Natural language support but running in an English locale
</pre></div>

<p>in the greeting on starting R.
</p>

<hr>
<a name="Configuration-variables"></a>
<a name="Configuration-variables-1"></a>
<h3 class="section">B.3 Configuration variables</h3>

<a name="index-configure-4"></a>
<p>만약 여러분이 특정한 configure값들을 기본값이 아닌 다른 어떤 것으로 설정하는 것이 필요하거나 이를 원한다면, (설정하고
싶어하는값 들의 많은 것들을 기록하는: 다른 것들은 파일 <samp>etc/Renviron.in</samp>에서 볼 수 있습니다)파일
<samp>config.site</samp>이나 다음 줄의 명령줄을 바꿈으로 이를 할 수 있습니다.
</p>
<div class="example">
<pre class="example">./configure <var>VAR</var>=<var>value</var>
</pre></div>

<p>만약 소스들이 아닌 디렉토레에서 구축을 한다면, 소스에 <samp>config.site</samp>의 카피들과 빌드 디렉토리들이 있을 수 있고, 둘
다 (순서대로) 읽혀 질 것입니다. 추가로, 만약 파일 <samp>~/.R/config</samp> (혹은 이의 실패인
<code>~/.Rconfig</code>)이 있다면, 이는 소스의 <samp>config.site</samp> 파일들과 빌드 디렉토리들 중간에서 읽혀질
것입니다.
</p>
<p>이전 단락에서 언급된 모든 것들 이전에 읽혀지는 <samp>config.site</samp> 파일들을 위한 일반적인
<code>autoconf</code> 메케니즘이 있습니다. 
<a name="index-CONFIG_005fSITE"></a>
이는 환경값 <code>CONFIG_SITE</code>에의해 지정된 파일을 첫 번째로 보고, 만약 그렇지 않다면 R이 설정될 장소에
<samp>/usr/local/share/config.site</samp>와 <samp>/usr/local/etc/config.site</samp>와 같은
파일들에 설정됩니다 (<samp>/usr/local</samp>에 의한 예시).
</p>
<p>이 값들은 매우 <em>소중</em>합니다. 이는 그들이 환경으로 출력되지 않아도 되고, 명령줄에서 지정되지 않았더라도 캐치 에서 보관되며,
두 개의 configure run들의 일관성을 체크하고, 캐치가 사용되지 않았더라도 명령줄 인자들처럼 통과 된 것 처럼 자동 재구성 동안
보관되는 것을 의미합니다.
</p>
<p>이 모든 값들의 리스트에 대해서는 <code>configure --help</code>의 variable output 섹션을 참조하세요.
</p>
<p>만약 configure값들을 고쳐야 한다는 것을 찾아내면, 어떤 설정들은 파일 <samp>config.cache</samp> 안에 캐치되었을 지도
모른다는 것을 주목할 만한 가치가 있고, 재구성 전에 파일을 (만약 존재한다면) 없애는 것이 좋습니다. 기본값 으로 캐칭이 꺼져있다는
것을 유의하세요: 캐칭을 허용하려면 명령줄 옵션 <samp>--config-cache</samp> (혹은 <samp>-C</samp>)를 사용하십시오.
</p>

<hr>
<a name="Setting-paper-size"></a>
<a name="Setting-paper-size-1"></a>
<h4 class="subsection">B.3.1 Setting paper size</h4>
<a name="index-R_005fPAPERSIZE-2"></a>
<p>기본 값이 &lsquo;<samp>letter</samp>&rsquo;가 아닌 &lsquo;<samp>A4</samp>&rsquo;로 되어있는 페이퍼 사이즈를 바꾸는 일반 적인 값은
<code>R_PAPERSIZE</code> 입니다. (&lsquo;<samp>A4</samp>&rsquo;, &lsquo;<samp>letter</samp>&rsquo;, &lsquo;<samp>legal</samp>&rsquo; 그리고
&lsquo;<samp>executive</samp>&rsquo; 값들이 유효합니다.)
</p>
<p>이는 기본값을 설정하기 위해 R을 설정할 때와 기본값을 무시하기위해 R을 실행할 때 모두 사용됩니다. 이는 PDF 매뉴얼을
만들 때 페이퍼 사이즈를 설정하기 위해서도 사용됩니다. 
</p>
<p>설정 기본값은 만약 <code>R_PAPERSIZE</code>가 unset되어있으면 거의 대부분 &lsquo;<samp>A4</samp>&rsquo; 일 것입니다. 
<a name="index-PAPERSIZE"></a>
(만약 (Debian 리눅스) 프로그램 paperconf가 발견되거나 환경값 <code>PAPERSIZE</code>가 설정된다면, 이들은 기본값을
생성하기 위하여 사용됩니다.)
</p>
<hr>
<a name="Setting-the-browsers"></a>
<a name="Setting-the-browsers-1"></a>
<h4 class="subsection">B.3.2 Setting the browsers</h4>

<a name="index-R_005fBROWSER"></a>
<p>또 다른 소중한 값은 기본값이 HTML 브라우저인, 사용자의 경로 혹은 지정 된 전체 경로 안에 있는 executable의 값을 취행야만
하는 <code>R_BROWSER</code>입니다. PDF 파일들의 이에대한 대응은 R_PDFVIEWER입니다.
</p>
<a name="index-R_005fPDFVIEWER"></a>
<p>Its counterpart for PDF files is <code>R_PDFVIEWER</code>.
</p>
<hr>
<a name="Compilation-flags"></a>
<a name="Compilation-flags-1"></a>
<h4 class="subsection">B.3.3 Compilation flags</h4>

<p>만약 시스템이 아닌 디렉토리들에 예를들어 <acronym>GNU</acronym> readline을 위한 라이브러리들이나 헤더 파일들을 가지고 있다면,
이들의 위치를 명시하기위하여 순서대로 값 <code>LDFLAG</code> (라이브러리에서는 linker로 전달되기위해여 &lsquo;<samp>-L</samp>&rsquo;
flag 들을 사용)와 <code>CPPFLAGS</code> (헤더 파일들을 위해서, C/C++ 프로세서 들로 전달되기 위하여 &lsquo;<samp>-I</samp>&rsquo;
flag들을 사용)를 사용하세요. 이들은 대부분의 흔한 경우들을 잡기 위하여 &lsquo;<samp>-L/usr/local/lib</samp>&rsquo;
(<code>LDFLAGS</code>, 대부분의 64 비트 리눅스 OS들에서 &lsquo;<samp>-L/usr/local/lib64</samp>&rsquo;)와
&lsquo;<samp>-I/usr/local/include</samp>&rsquo; (<code>CPPFLAGS</code>)가 디폴트 입니다. 만약 라이브러리들이 아직 찾아지지
않았다면, 아마도 여러분의 comlier/linker이 <samp>–L</samp>과 <samp>–l</samp> flag들의 재 배열을 지원하지
않을지도 모릅니다. (이는 native <code>cc</code>를 가진HP_UX에서 문제가 된다고 리포트 되었었습니다). 이런 경우에는,
다른컴파일러 (혹은 재 배열을 하는 front end shell script)를 사용하세요.
</p>
<p>이 flag들은 R버전의 더 빠르게 돌아가는 빌드를 하기위해서 쓰여질 수도 있습니다. <code>gcc</code>를 사용하는 대부분의
플랫폼에서, <code>CFLAGS</code>와 <code>FFLAGS</code>에 &lsquo;<samp>-O3</samp>&rsquo; 를 가지고 있는 것은 <code>gcc</code>와
<code>gfortran</code>과 함께가치있는 성능 향상을 생산합니다. <acronym>GNU</acronym> linker를 사용하는 시스템들에서
(특히 R을 공유 라이브러리처럼 사용하는 것들), LDFLAGSdp &lsquo;<samp>-Wl, -O1</samp>&rsquo;를 포함하는 것이 가치가 있고,
<a href="http://lwn.net/Articles/192624/">http://lwn.net/Articles/192624/</a>에서는 &lsquo;<samp>-Bdirect, --hash-style=both,
-Wl, O1</samp>&rsquo;이 추천됩니다. 특정한 CPU 패밀리로 compilation을 조율하는 것은 (예로, <code>gcc</code>를 위한
&lsquo;<samp>-mtune=native</samp>&rsquo;) 특히 &lsquo;<samp>ix86</samp>&rsquo;과 같은 더 오래된 아키텍처 들에서 가치있는 성능 향상을 줍니다.
</p>
<hr>
<a name="Making-manuals"></a>
<a name="Making-manuals-1"></a>
<h4 class="subsection">B.3.4 Making manuals</h4>

<a name="index-R_005fRD4PDF-1"></a>
<a name="index-R_005fPAPERSIZE-3"></a>
<p>매뉴얼을 만드는 기본 설정들은 <code>R_RD4PDF</code> 와 <code>R_PAPERSIZE</code>에 의해 컨트롤 됩니다.
</p>
<hr>
<a name="Setting-the-shell"></a>
<a name="Setting-the-shell-1"></a>
<h3 class="section">B.4 Setting the shell</h3>

<p>기본값으로, <samp>R</samp>과 같은 shell script들은 &lsquo;<samp>#!/bin/sh</samp>&rsquo; 스크립트들
(혹은<samp>congifure</samp>에 의해 선택된 <code>SHELL</code>을 사용) 일 것입니다. 이는 거의 항상 만족스럽지만, 몇몇의
시스템들 <samp>/bin/sh</samp>는 Bourne shell이나 clone이 아니고configure 값 <code>R_SHELL</code>을 알맞은
값으로 (shell로의 전체 경로,예, <samp>/usr/local/bin/bash</samp>) 설정함으로써 쓰이려는 shell이 바뀔 수도
있습니다.
</p>
<hr>
<a name="Using-make"></a>
<a name="Using-make-1"></a>
<h3 class="section">B.5 Using make</h3>
<a name="index-make"></a>

<p>R을 컴파일 하기위해서, Solaris에서 Sun <code>make</code>와 native FreeBSD
<code>make</code>가 돌아가지만, 여러분은 아마도 <acronym>GNU</acronym> <code>make</code>를 사용하는 것이 가장 쉽다고
느낄 것입니다. Native <code>make</code>는 SGI Irix 6.5와 (Tru64로 알려져 있는)Alpha/OSF 1 에서
실패한다고 리포트 되었었습니다.
</p>
<p>따로 떨어진 디렉터리를 빌드하기 위해서는, 예를들어 <acronym>GNU</acronym> <code>make</code> 혹은Solaris 7 이후의
Sun <code>make</code>와 같은 <code>VPATH</code> 값을 사용하는 <code>make</code>가 필요합니다.
</p>
<p><code>dmake</code> has also been used. e.g, on Solaris 10.
</p>
<p>예를 들어 Solaris 10과 같은 곳에서, <code>dmake</code>도 사용되어지고 있습니다. 만약 <code>make</code>를
다른 이름으로 쓰고싶다면, 예를 들어 여러분의 <acronym>GNU</acronym><code>make</code>가 &lsquo;<samp>gmake</samp>&rsquo;로 불려진다면,
예를 들어 다음과 같이 configure time에 값 <code>make</code>를 설정해야 합니다.
</p>
<a name="index-configure-5"></a>
<div class="example">
<pre class="example">./configure MAKE=gmake
</pre></div>

<hr>
<a name="Using-FORTRAN"></a>
<a name="Using-FORTRAN-1"></a>
<h3 class="section">B.6 Using FORTRAN</h3>
<a name="index-FORTRAN"></a>


<p>R을 컴파일하기 위해서 여러분은 FORTRAN 컴파일러가  필요합니다. 기본값은 (순서대로)<code>f95</code>,
<code>fort</code>, <code>xlf95</code>, <code>ifort</code>, <code>ifc</code>,
<code>efc</code>, <code>pgf95</code>, <code>lf95</code>, <code>gfortran</code>,
<code>ftn</code>, <code>g95</code>, <code>f90</code>, <code>xlf90</code>,
<code>pghpf</code>, <code>pgf90</code>, <code>epcf90</code>,<code>g77</code>,
<code>f77</code>, <code>xlf</code>, <code>frt</code>, <code>pgf77</code>,
<code>cf77</code>, <code>fort77</code>, <code>fl32</code>,
<code>af77</code>,)<a name="DOCF28" href="#FOOT28"><sup>28</sup></a>, 를 찾고, 찾아진 첫 번째 것을 사용합니다; 만약 아무것도 찾아지지 않았다면, R은 컴파일 될 수
없습니다. 하지만 만약 CC가 <code>gcc</code>라면, 맞는 FORTRAN 컴파일러 (<code>gcc</code>&nbsp;3는
<code>g</code>77 그리고 <code>gcc4</code>는<code>gfortran</code>)가 사용이 가능하다면 이가 사용됩니다.
</p>
<p>검색 mechanism은 FORTRAN <code>77</code> 컴파일러를 실행하는 명령어를 명시하는 설정 값 <code>F77</code>을 사용하여
바뀔 수 있습니다. 만약 여러분의 FORTRAN 컴파일러가 기본 위치가 아닌 곳에 있다면, 
<a name="index-PATH-1"></a>
설정을 실행하기 전에 환경값 <code>PATH</code>에 그에 맞춰 설정되거나 혹은 그의 전체 경로를 명시하기 위한
<code>configure</code>값 <code>F77</code>을 사용합니다.
</p>
<p>If your FORTRAN libraries are in slightly peculiar places, you should
<a name="index-LD_005fLIBRARY_005fPATH-2"></a>
만약 FORTRAN 라이브러리들이 조금 이상한 장소에 있다면, 모든 라이브러리 들이 이 경로에 있는지를 확실히 하기위하여
<code>LD_LIBRARY_PATH</code>나 여러분의 시스템의 비슷한 곳을 살펴 보세요.
</p>
<p>오로지 identifier들을 소문자로 바꾸는FORTRAN 컴파일러들만 지원된다는 것을 유의하십니오.
</p>
<p>FORTRAN <code>integer</code>이 C <code>int</code> pointer와 같은지와 Fortran <code>double
precision</code>이 C <code>double</code> pointer와 같은지를 활실히 하기위하여 필요한 모든 compilation flag들
(만약 있다면)을 설정해야만 합니다. 이는 configuration 프로세스 동안 체크됩니다.
</p>
<p>몇몇의 FORTRAN 코드는 Fortran 90의 확장인 <code>COMPLEX*16</code> 값들을 활용합니다. 이는 configure
시간<a name="DOCF29" href="#FOOT29"><sup>29</sup></a>에 확인되지만, FORTRAN 77 compliance를 주장하는
compiler flag들은 피해야할 수도 있습니다.
</p>
<p>R 소스들 안의 LAPACK 버전을 컴파일하는 것도 몇몇의 Fortran 90 확장판 들에서 필요할 수도 있지만, 만약 외부
LAPACK이 사용되었다면 필요하지않 습니다.
</p>
<p>스크립트를 통해 FORTRAN-to-C 컨버터(<a href="http://www.netlib.org/f2c">http://www.netlib.org/f2c</a>)인
<code>f2c</code>를사용하는 것이 가능할 수도 있습니다. (예제 스크립트는 <samp>scripts/f77_f2c</samp>에 주어져
있습니다: 이는 환경값들 <code>F2C</code>, <code>F2CLIBS</code>, <code>CC</code>, 그리고 <code>CPP</code>를 설정함으로써
customize될 수 있습니다.)
<a name="index-F2C"></a>
<a name="index-F2CLIBS"></a>
<a name="index-CC"></a>
the environment variables <code>F2C</code>, <code>F2CLIBS</code>, <code>CC</code> and
<a name="index-CPP"></a>
여러분은 FORTRAN 타입 integer이 C 타입 <code>int</code>로 번역되었는지를 확실히해야 할 것입니다. 일반적으로
<samp>f2c.h</samp>는 32비트 플랫폼에서는 작동하지만 64 비트 플랫폼에서는 작동하지 않을 &lsquo;<samp>typedef long int
integer;</samp>&rsquo;를 포함합니다. 만약 여러분의 컴파일러가 <code>gcc</code>가 아니라 , <code>FPICFLAGS</code>를 알맞게
설정해야 할 것입니다.
<a name="index-FPICFLAGS"></a>
<code>FPICFLAGS</code> appropriately.  Also, the included LAPACK sources contain
constructs that <code>f2c</code> is unlikely to be able to process, so you
would need to use an external LAPACK library (such as CLAPACK from
<a href="http://www.netlib.org/clapack/">http://www.netlib.org/clapack/</a>).
</p>

<hr>
<a name="Using-gfortran"></a>
<a name="Using-gfortran-1"></a>
<h4 class="subsection">B.6.1 Using gfortran</h4>

<p><code>Gfortran</code>은 <code>gcc</code>&nbsp;4.<var>x</var>.<var>y</var>의 일부분인 F95 컴파일러입니다.
</p>
<p>리눅스 &lsquo;<samp>x86_64</samp>&rsquo; 시스템들에서, <code>example(eigen)</code>의 마지막 예제에서 <code>g77</code>에서 구축된
외부 <acronym>BLAS</acronym>들에서의 hanging이나 segfaulting을 초래하는 <code>fortran</code>과
<code>g77</code> 사이에서의 double-complex function들에 대한 return convention들의 불화합성이
있습니다. 이는 <code>configure</code> 테스트에의해 발견되어야만 합니다. <code>g77</code>이 이미 퇴화되었다고는하나,
이는 아직도 가끔 <code>g77</code> convention들을 사용하는 외부 소프트웨어의 C 버전들과 함꺼 보이기도 합니다.
</p>
<p><acronym>GNU</acronym> FORTRAN 컴파일러에 대해 선택되어진 (autoconf에 의해) 기본 <code>FFLAGS</code>와
<code>FCFLAGS</code>는  &lsquo;<samp>-g -O2</samp>&rsquo;입니다. 이는 과거에 &lsquo;<samp>x86_64</samp>&rsquo; 리눅스에서 문제
(segfault들과 무한 루프들)을 일으켰지만, <code>gfortran 4.4.4</code>과 이 후 것들 에서는 괜찮을 듯 합니다:
<code>gfortran 4.3.x</code>에서는 최대한 &lsquo;<samp>-O</samp>&rsquo;를 사용하기위해 <code>FFLAGS</code>와
<code>FCFLAGS</code>를 설정하세요.
</p>
<hr>
<a name="Compile-and-load-flags"></a>
<a name="Compile-and-load-flags-1"></a>
<h3 class="section">B.7 Compile and load flags</h3>

<p>flag들의 넓은 범위는 파일 <samp>config.site</samp>에 설정되거나 명령줄에 설정값 들처럼 설정될 수 있습니다. 우리는 이미
다음을 언급했습니다.
</p>
<dl compact="compact">
<dt><code>CPPFLAGS</code></dt>
<dd><p>검색 디렉토리의 헤더 파일 (<samp>-I</samp>)과 C와 C++ 프로세서들과 컴파일러들을 위한 다른 모든 기타 옵션들
</p></dd>
<dt><code>LDFLAGS</code></dt>
<dd><p>경로(<samp>-L</samp>), stripping (<samp>-s</samp>) 그리고 링커를 위한 다른 모든 기타 옵션들 그리고 다른 것들은
다음을 포함합니다.
</p></dd>
</dl>

<p>and others include
</p>
<dl compact="compact">
<dt><code>CFLAGS</code></dt>
<dd><p>디버깅과 최적화 flag들, C
</p></dd>
<dt><code>MAIN_CFLAGS</code></dt>
<dd><p>ditto, 주요 프로그램의 구축을 위함
</p></dd>
<dt><code>SHLIB_CFLAGS</code></dt>
<dd><p>공유된 객체를을 위함
</p></dd>
<dt><code>FFLAGS</code></dt>
<dd><p>디버깅과 최적화 flag들, FORTRAN
</p></dd>
<dt><code>SAFE_FFLAGS</code></dt>
<dd><p>정확한 floating point behaviour이 필요한 소스 파일들을 위한 ditto
</p></dd>
<dt><code>MAIN_FFLAGS</code></dt>
<dd><p>ditto, 주요 프로그램의 구축을 위함
</p></dd>
<dt><code>SHLIB_FFLAGS</code></dt>
<dd><p>공유된 객체를을 위함
</p></dd>
<dt><code>MAIN_LDFLAGS</code></dt>
<dd><p>주요 링크를 위한 추가적인 flag들
</p></dd>
<dt><code>SHLIB_LDFLAGS</code></dt>
<dd><p>공유된 객체들의 연결을 위한 추가적인 flag들
</p></dd>
<dt><code>LIBnn</code></dt>
<dd><p>최초의 라이브러리 디렉토리, <samp>lib</samp> 혹은 <samp>lib64</samp>
</p></dd>
<dt><code>CPICFLAGS</code></dt>
<dd><p>C 코드를 공유된 객체로 바뀌도록 컴파일 하기위한 스페셜 flag들
</p></dd>
<dt><code>FPICFLAGS</code></dt>
<dd><p>Fortran 코드를 공유된 객체로 바뀌도록 컴파일 하기위한 스페셜 flag들
</p></dd>
<dt><code>CXXPICFLAGS</code></dt>
<dd><p>C++ 코드를 공유된 객체로 바뀌도록 컴파일 하기위한 스페셜 flag들
</p></dd>
<dt><code>FCPICFLAGS</code></dt>
<dd><p>Fortran95 코드를 공유된 객체로 바뀌도록 컴파일 하는 스페셜 flag들
</p></dd>
<dt><code>DEFS</code></dt>
<dd><p>R 자체에 C 코드를 컴파일 할 때 사용되도록 정의함
</p></dd>
</dl>

<p><code>LDFLAGS</code> 안의 <samp>–L/lib/path</samp>처럼 명시된 라이브러리 경로는 
<a name="index-LD_005fLIBRARY_005fPATH-3"></a>
같이 수집되고 <code>LD_LIBRARY_PATH</code>로 prepend되기때문에 (혹은 여러분의 시스템 상의 동일한 것),
<samp>-R</samp> 이나 <samp>–rpath</samp> flag들이 필요가 없어야 합니다.
</p>
<p><code>CPICFLASG</code>와 같은 값들은 <code>configure</code>에 의해 가능한 곳에 정의됩니다. 몇몇 의 시스템들은 예를
들어 &lsquo;<samp>-fpic</samp>&rsquo;과 &lsquo;<samp>-fPIC</samp>&rsquo;과 같은 두 가지 타입의 PIC flag들을 허용하고, 만약 이들이 다르다면 공유된
객체안의 제한된 갯수의 심볼들만을 우선적으로 허용합니다. 공유된 라이브러리처럼 R이 약 6200 개의 심볼 들을 가지고 있기
때문에, 만약 의심된다면 더 큰 버전을 사용하십시오.
</p>
<p>R의 Profiling 버전을 컴파일 하기위해서는, 예를들어 &lsquo;<samp>-pg</samp>&rsquo;가 위치 독립적인 코드와 함께 사용되지 못하는
플랫폼상에서 &lsquo;<samp>MAIN_CFLAGS=-pg</samp>&rsquo;, &lsquo;<samp>MAIN_FFLAGS=-pg</samp>&rsquo;,
&lsquo;<samp>MAIN_LDFLAGS=-pg</samp>&rsquo;를 사용하고 싶어할 수도 있습니다.
</p>
<p>주의: 사용할 라이브러리와 호환가능한 방법으로 <code>CFLAGS</code>와 <code>FFLAGS</code>를 설정하는 것이 필요할 수도 있습니다:
한 가지 가능한 문제는 doubles의 조정이고, 또 하나는 구조가 전달되는 방식입니다.
</p>
<p>몇몇의 플랫폼들에서, <code>configure</code>은 R_XTRA_CFLAG (등등)에서의 <code>CFLAGS</code>,
<code>CPPFLAGS</code>, <code>FFLAGS</code>, <code>CXXFLAGS</code> 그리고 <code>LIBS</code>들을 위한 추가의
flag들을 선택할 것입니다. 이들은 예를들어 <acronym>IEC</acronym>&nbsp;60559 compliance를 강요하기위한 것 처럼항상
요구된 옵션들을 위한 것 입니다.
</p>
<hr>
<a name="Maintainer-mode"></a>
<a name="Maintainer-mode-1"></a>
<h3 class="section">B.8 Maintainer mode</h3>

<p>There are several files that are part of the R sources but can be
re-generated from their own sources by configuring with option
<samp>--enable-maintainer-mode</samp> and then running <code>make</code> in the
build directory.  This requires other tools to be installed, discussed in
the rest of this section.
</p>
<p>File <samp>configure</samp> is created from <samp>configure.ac</samp> and the files
under <samp>m4</samp> by <code>autoconf</code> and <code>aclocal</code>.  There is a
formal version requirement on <code>autoconf</code> of 2.62 or later, but it is
unlikely that anything other than the most recent versions have been
thoroughly tested.
</p>
<p>File <samp>src/include/config.h</samp> is created by <code>autoheader</code>.
</p>
<p>Grammar files <samp>*.y</samp> are converted to C sources by an implementation of
<code>yacc</code>, usually <code>bison -y</code>: these are found in
<samp>src/main</samp> and <samp>src/library/tools/src</samp>.  It is known that earlier
versions of <code>bison</code> generate code which reads (and in some cases
writes) outside array bounds: <code>bison</code> 2.6.1 was found to be
satisfactory.
</p>
<p>The ultimate sources for package <strong>compiler</strong> are in its <samp>noweb</samp>
directory.  To re-create the sources from
<samp>src/library/compiler/noweb/compiler.nw</samp>, the command
<code>notangle</code> is required.  This is likely to need to be installed from
the sources at <a href="http://www.cs.tufts.edu/~nr/noweb/">http://www.cs.tufts.edu/~nr/noweb/</a> (and can also be
found on CTAN).  The package sources are only re-created even in maintainer
mode if <samp>src/library/compiler/noweb/compiler.nw</samp> has been updated.
</p>
<p>It is likely that in future creating <code>configure</code> will need the GNU
&lsquo;autoconf archive&rsquo; installed.  This can be found at
<a href="http://www.gnu.org/software/autoconf-archive/">http://www.gnu.org/software/autoconf-archive/</a> and as a package
(usually called <strong>autoconf-archive</strong>) in most packaged distributions, for
example Debian, Fedora, OpenCSW, Homebrew and MacPorts.
</p>
<hr>
<a name="Platform-notes"></a>
<a name="Platform-notes-1"></a>
<h2 class="appendix">Appendix C Platform notes</h2>

<p>이 섹션은 다른 유닉스 계열 플랫폼들에서 R의 구축에 대한 몇몇의 주의사항을 제공합니다. 이 주의사랑들은 특정한 컴파일러들의 세트나
지원 라이브러리들을 가진 각각의 케이스을 한 개 혹은 두 개의 시스템들에서 실행하여 테스트하는 것에 기초한 것들입니다. R의 구축의
성공은 알맞은 설치와 지원 소프트웨어의 성능에 달려있습니다; 여러분의 결과들은 다른 버전의 컴파일러와 지원 라이브러리들을 가지고 있다면
다를 수도 있습니다.
</p>
<p>이 매뉴얼의 이전 버전들은 (R 2.10.0 이전 버전들) 최근 리포트가 없는 HP-UX, IRIX, 그리고 Alpha/OSF1과
같은 플랫폼들에서의 주의사항들을 포함합니다.
</p>
<p>특정한 플랫폼들을 선택하기위한 C 매크로 들은 추적하기 까다로울 수도 있습니다 (웹에는 꽤 많은 양의 잘못된 정보들이
있습니다).<a href="http://sourceforge.net/p/predef/wiki/Home/">http://sourceforge.net/p/predef/wiki/Home/</a>에서의 Wiki (현재)가 유용할수
있습니다. R 소스들은 현재 다음을 사용합니다.
</p><div class="example">
<pre class="example">AIX: _AIX
Cygwin: __CYGWIN__
FreeBSD: __FreeBSD__
HP-UX: __hpux__, __hpux
IRIX: sgi, __sgi
Linux: __linux__
OS X: __APPLE__
NetBSD: __NetBSD__
OpenBSD: __OpenBSD__
Solaris: __sun, sun
Windows: _WIN32, _WIN64
</pre></div>


<hr>
<a name="X11-issues"></a>
<a name="X11-issues-1"></a>
<h3 class="section">C.1 X11 issues</h3>

<p>&lsquo;<samp>X11()</samp>&rsquo; 그래픽 장치는 plotting을 할 때, 유닉스 계열에서 자동으로 시작되는 것입니다. 이름이 나타내ㄷ듯이, 이는
(로컬 혹은 remote) X 서버에 디스플레이되고 X 서버에의해 제공된 서비드들에 의존합니다.
</p>
<p>&lsquo;<samp>X11()</samp>&rsquo; 장치의 ‘현대’ 버전은 &lsquo;<samp>cairo</samp>&rsquo; 그래픽에 기초하고 (대부분의implementation들에서) 폰트를
선택하고나 만들기 위하여 &lsquo;<samp>fontconfig</samp>&rsquo;를 사용합니다. 이는 서버에서 행해지고, 선택의 문제가 있을 수도 있지만, 이
섹션의 나머지 부분에서 언급되는 &lsquo;<samp>X11()</samp>&rsquo;에 대한 문제들보다는 잘 처리될 수 있습니다.
</p>
<p>X11이 디자인 되었을 때, 요즘에는 대략 100dpi 이상인 것에 비해, 대부분의 디스플레이들은 대략
75dpi였습니다. <a name="DOCF30" href="#FOOT30"><sup>30</sup></a> 이름들과 세부사항들은 시스템에따라 다르지만, 대부분 Fedora에서의 다음과 같은 것들을 가지고 있을 것 입니다.
</p><div class="example">
<pre class="example">xorg-x11-fonts-75dpi
xorg-x11-fonts-100dpi
xorg-x11-fonts-ISO8859-2-75dpi
xorg-x11-fonts-Type1
xorg-x11-fonts-cyrillic
</pre></div>

<p>그리고 X11 폰트 경로에 &lsquo;<samp>-100dpi</samp>&rsquo; 버전들이 설치되어있는지를 확실히 해야할 필요가 있습니다 (<code>xset
–q</code>를 통하여 체크하세요). &lsquo;<samp>X11()</samp>&rsquo;장치는 pixel size가 아닌 pointsize를 설정하려고 노력합니다:
(굉장히 자주 노트북 스크린이 축소된 데스크탑 스크린처럼 나타나도록 가상 dpi로 설정됨에도 불구하고) 노트북 사용자들은 기본 값인
12가 너무 크다고 느낄 수도 있습니다.
</p>
<p>더 복잡한 문제들이 Western-European locale들이 아닌 곳에서 일어날 수도 있기떄문에, 만약 여러분이 이들을 사용하고
있다면, 가장 먼저 확인해야할 것은 <code>C</code> locale에서 실행되고있는 것들입니다. 대부분의 문제는 폰트나 (종종
<acronym>ASCII</acronym> 문자들의 쌍 처럼) 상형문자들이 알맞지 않게 만들어지는 것을찾는 것을 실패하는 것 입니다. X11은 폰트
사양을 물어보는 것에 의해 실행되고 그가 생각하기에 근접한 매치를 줍니다. (plotmath에의해 사용되는 심볼들로부터의 distinct
처럼) 텍스트에서, 사양은 다음에 보여지는 것으로 기본값이 되어있는 옵션 <code>&quot;X11fonts&quot;</code>의 첫 번째 객체입니다.
</p>
<div class="example">
<pre class="example">&quot;-adobe-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*&quot;
</pre></div>

<p>만약 여러분이 예를들어 동부 유럽의 ISO 8859-2나 러시아의 KOI8-R과 같은 single-byte 인코딩을 사용한다면, 여러분의
인코딩 안의 폰트의 알맞은 패밀리를 찾기위해서 <code>xlsfonts</code>를 사용하세요 (리스팅의 마지만 field). 만약
아무것도 찾지 못한다면, 대부분 위의 리스팅에서 보여진 것 처럼 &lsquo;<samp>xorg-x11-fonts-ISO8859-2-75dpi</samp>&rsquo;와
&lsquo;<samp>xorg-x11-fonts-cyrillic</samp>&rsquo;과 같은 추가의 폰트 패키지들을 설치해야할 필요가 있는 것 입니다.
</p>
<p>Multi-byte 인코딩들은 더욱 더 복잡합니다 (가장 흔하게 UTF-8).&lsquo;<samp>iso10646-1</samp>&rsquo;에 몇가지 폰트들이 있는데,
Unicode 인코딩, 이들은 사용 가능한 상형문자들의 subset만을 포함합니다 (그리고 종종 터미널들에 사용되도록 디자인된 고정된
너비). 이런 locale들에는 다른 인코딩들에서 인코드 된 폰트들로 이루어진 <em>fontsets</em>가 사용됩니다. 만약 여러분이
사용하고있는 locale이 (일반적으로 <samp>/usr/share/X11/locale</samp>) &lsquo;<samp>XLC_LOCALE</samp>&rsquo; 디렉토리에
entry를 두고있다면, 여러분은 아마도 그 곳에 명시되어있는 인코딩에서의 폰트들을 가지고 있는 알맞은 폰트 사양을 고르기만하면
됩니다. 그렇지 않다면, 여러분은 X11에 알맞은 locale entry를 구해야만 할 수도 있습니다. 이는 예를들어 같은 기꼐에서
&lsquo;<samp>ja_JP.UTF-8</samp>&rsquo;에서 실행 될 때, 일본 글씨가 디스플레이 되지만 &lsquo;<samp>en_GB.UTF-8</samp>&rsquo;을 실행할 때는
디스플레이 되지 않을 수도 있다는 뜻입니다 (몇몇의 시스템들에서 많은 UTF-8 X11 locale들이 예를들어  ISO 8859-1
(Western European), JISX0208 (Kanji), KSC5601(Korean), GB2312 (Chinese Han)
and JISX0201 (Kana)와 같은 문자 세트들을 커버하는 &lsquo;<samp>en_US.UTF-8</samp>&rsquo;으로 불리어짐에도 불구하고).
</p>
<p>몇몇의 시스템들에서, 상형 문자의 넓은 범위를 커버하는 scalable 폰트들이 사용가능합니다. 이 중 하나의 소스는
TrueType/OpenType 폰트들이고,이들은 높은 커버리지를 제공할 수 있습니다. 다른 것은 Type 1 폰트들 입니다: Type
1 폰트들의 URW 세트는 Cyrillic을 포함하는 기본 X11 비트맵들 보다 유니코드 상형문자의 더 넓은 커버리지를 가진
Helvetica와 같은 기본 typeface들은 제공합니다. 이들은 일반적으로 기본 설치의 일부분이 아니고, 이들을 사용하기 위해서 X
서버가 configure되어야 할 수도 있습니다.이들은 예를들어 다음과 같이 X11 <samp>fonts</samp> 디렉토리나 다른 곳에 있을
수도 있습니다.
</p>
<div class="example">
<pre class="example">/usr/share/fonts/default/Type1
/usr/share/fonts/ja/TrueType
</pre></div>


<hr>
<a name="g_t_00eb_00a6_00ac_00eb_0088-_00ec_008a_00a4"></a>
<a name="e_007c_0021e-i_0024_003f"></a>
<h3 class="section">C.2 리눅스</h3>
<a name="index-e_007c_0021e-i_0024_003f-1"></a>

<p>리눅스는 R을 위한 주요 개발 플랫폼이어서, 소스에서부터의 compilation은 보통 기본 컴파일러 들이 있어 간단합니다.
</p>
<p><acronym>RPM</acronym>과 deb와 같은) 몇몇의 패키지 관리 시스템들이 패키지의 사용자 버전과 개발자 버전을 구분짓는다는 것을
기억하십시오. 후자는 보통 같은 이름을 가지지만, extension &lsquo;<samp>-devel</samp>&rsquo; 혹은 &lsquo;<samp>-dev</samp>&rsquo;가 있습니다: 두
가지 모두의 버전가 설치되어있어야만 합니다. 그러므로 예상되는 특성이 발경되는지를 보기위해서는 <code>configure</code>
output을 꼭 체크하세요: 만약 예를 들어 &lsquo;<samp>readline</samp>&rsquo;이 없어졌다면, 개발자 패키지를 더하십시오. (대부분의 시스템
상에서, 여러분은 &lsquo;<samp>readline</samp>&rsquo; 패키지(들)의 종속들이어야만하는 &lsquo;<samp>ncurses</samp>&rsquo;와 이의 개발자 패키지 또한
필요할 것입니다. )
</p>
<div class="example">
<pre class="example">  Interfaces supported:      X11, tcltk
  External libraries:        readline, zlib, bzlib, lzma, PCRE
  Additional capabilities:   PNG, JPEG, TIFF, NLS, cairo, ICU
</pre></div>

<p>R이 바이너리 distribution에서부터 설치되었을 떼, FORTRAN compiler과 같은 없어진 구성요소들에 대한 문제가
가끔있습니다. &lsquo;<samp>R-help</samp>&rsquo; archive들을 찾아보는 것이 대개 무엇이 필요한지를 알려줄 것입니다.
</p>
<p>&lsquo;<samp>ix86</samp>&rsquo; Linux가 공유된 라이브러리에서 PIC 코드가 아닌 것을 받아들이는 것 처럼 보이지만, 이는 다른 플랫폼들,
특히 &lsquo;<samp>x86_64</samp>&rsquo;와 같은 64 비트 <acronym>CPU</acronym> 들에서는 반드시 이렇지는 않습니다. 그러므로 연결되어 있을
수도 있는 위치-독립적 코드가 (Tcl/Tk 라이브러리들, <code>libpng</code>, <code>libjpeg</code>와 <code>zlib</code>과
같은) 어떤 static라이브러리에서 사용되었는지를 확실하게하기위하여 <acronym>BLAS</acronym> 라이브러리들과 R을 공유된 라이브러리처럼
빌드할 때 주의가 필요할 수 있습니다. 다행스럽게도 이들은 보통 ATLAS <acronym>BLAS</acronym> 라이브러리들의 예외인 공유된
라이브러리들처럼 빌드됩니다.
</p>
<p><code>CFLAGS</code> 등을 위해 선택된 기본 최적화 설정들은 보수적입니다. 이는 <samp>-mtune</samp>의 사용이 최근
CPU들(특히 &rsquo;ix86&rsquo;) 상에서 현저한 성능 향상을 초래할 가능성이 있습니다: 한 가지 가능성은 R이 설치되어있는 기계에서의
최상의 성응을 위해서 <samp>-mtune=native</samp>를 더하는 것 입니다: 만약 compilation이 사이트 전체의 설치를
위한 것이라면, 이는 <samp>-mtume=core2</samp>와 같은 것의 사용이 여전히 바람직 할 수 있습니다. 이는 최적화 레벨을
<samp>-O3</samp>까지 높이는 것 또한 가능합니다: 하지만 컴파일러 들의 많은 버전들에서 이는 적어도 하나의
<acronym>CRAN</acronym> 패키지에서 문제의 원인이 되었습니다.64-비트와 32-비트 둘 다의 지원을 가진 플랫폼들은,
</p>
<p>For platforms with both 64- and 32-bit support, it is likely that
</p>
<div class="example">
<pre class="example">LDFLAGS=&quot;-L/usr/local/lib64 -L/usr/local/lib&quot;
</pre></div>

<p>대부분의 (모두는 아님) 소프트웨어들이 그의 64-비트 라이브러리들을 <samp>/usr/loal/lib64</samp>에 설치하기 때문에 위의
것이 적당할 것입니다. Fedora 16과 함께 &lsquo;<samp>x86_64</samp>&rsquo;에 R의 32-비트 버전을 빌트하기위해서는 다음을
사용합니다.
</p>
<div class="example">
<pre class="example">CC=&quot;gcc -m32&quot;
CXX=&quot;g++ -m32&quot;
F77=&quot;gfortran -m32&quot;
FC=${F77}
OBJC=${CC}
LDFLAGS=&quot;-L/usr/local/lib&quot;
LIBnn=lib
</pre></div>

<p>&lsquo;<samp>LIBnn</samp>&rsquo;의 사용을 유의하십시오: &lsquo;<samp>x86_64</samp>&rsquo; Fedora는 그의 64-비트 소프트웨어를
<samp>/usr/lib64</samp>에 그리고 32-비트 소프트웨어를 <samp>/usr/lib</samp>에 설치합니다. Linking은 적합하지 않은
바이너리를 스킵할 것이지만, 예를들어 32-비트 Tcl/Tk configure 스크립들은 <samp>/usr/lib</samp>안에
있습니다. <code>pkg-config</code> 경로를 설정하는 것이 필요할 수도 있습니다. 예를들어,
</p>
<div class="example">
<pre class="example">export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
</pre></div>

<p>로 리눅스의 64-비트 버전들은 2Gb 이상의 파일들을위한 지원으로 빌드되고, 32-비트 버전들은
<samp>-disable-largefile</samp>이 지정되지 않은 이상 가능할 것입니다.
</p>
<p>로 리눅스의 64-비트 버전들은 2Gb 이상의 파일들을위한 지원으로 빌드되고, 32-비트 버전들은 -disable-largefile이
지정되지 않은 이상 가능할 것입니다. <code>Gcc</code>&nbsp; 4.1.1을 가진 (&lsquo;<samp>powerpc64</samp>&rsquo;라고도
알려져있는) &lsquo;<samp>ppc64</samp>&rsquo;에 R의 64-비트 버전을 빌드하기위해 Ei-ji Nakama는 다음을 사용합니다.
</p>
<div class="example">
<pre class="example">CC=&quot;gcc -m64&quot;
CXX=&quot;gxx -m64&quot;
F77=&quot;gfortran -m64&quot;
FC=&quot;gfortran -m64&quot;
CFLAGS=&quot;-mminimal-toc -fno-optimize-sibling-calls -g -O2&quot;
FFLAGS=&quot;-mminimal-toc -fno-optimize-sibling-calls -g -O2&quot;
</pre></div>

<p>추가의 flag들은 <samp>libmath.a</samp>에 반하여 연결된 문재들을 해결하고 R이 공유된 라이브러리처럼 연결할 때
필요합니다.
</p>

<hr>
<a name="Clang"></a>
<a name="Clang-1"></a>
<h4 class="subsection">C.2.1 Clang</h4>

<p>R은 <code>gfortran</code>과 함께 <code>CC=clang CXX=clang++</code>에의해 적용된Clang
front-ends에 기초하여, 리눅스 &lsquo;<samp>ix86</samp>&rsquo;과 &lsquo;<samp>x86_64</samp>&rsquo; C와 C++
compiler들(<a href="http://clang.llvm.org">http://clang.llvm.org</a>, 버전 2.9와 3.0)과 함께 빌드되어졌습니다. 이들은 해당하는
GCC compiler들로의 매우 비슷한 옵션들을 가집니다.
</p>
<p>This has to be used in conjunction with a Fortran compiler: the
<code>configure</code> code will remove <samp>-lgcc</samp> from <code>FLIBS</code>, which
is needed for some versions of <code>gfortran</code>.
</p>
<p>The current default for <code>clang++</code> is to use the C++ runtime from the
installed <code>g++</code>.  Using the runtime from the <code>libc++</code> project
(<a href="http://libcxx.llvm.org/">http://libcxx.llvm.org/</a>) has also been tested: for some R packages
only the variant using <code>libcxxabi</code> was successful.
</p>
<hr>
<a name="Intel-compilers"></a>
<a name="Intel-compilers-1"></a>
<h4 class="subsection">C.2.2 Intel compilers</h4>

<p>Intel compilers have been used under &lsquo;<samp>ix86</samp>&rsquo; and &lsquo;<samp>x86_64</samp>&rsquo;
Linux.  Brian Ripley used version 9.0 of the compilers for &lsquo;<samp>x86_64</samp>&rsquo;
on Fedora Core 5 with
</p>
<div class="example">
<pre class="example">CC=icc
CFLAGS=&quot;-g -O3 -wd188 -ip -mp&quot;
F77=ifort
FLAGS=&quot;-g -O3 -mp&quot;
CXX=icpc
CXXFLAGS=&quot;-g -O3 -mp&quot;
FC=ifort
FCFLAGS=&quot;-g -O3 -mp&quot;
ICC_LIBS=/opt/compilers/intel/cce/9.1.039/lib
IFC_LIBS=/opt/compilers/intel/fce/9.1.033/lib
LDFLAGS=&quot;-L$ICC_LIBS -L$IFC_LIBS -L/usr/local/lib64&quot;
SHLIB_CXXLD=icpc
</pre></div>

<p><code>Configure</code>은 C99-compliane를위해 <code>CC</code>로 &lsquo;<samp>-c99</samp>&rsquo;을 더할 것 입니다. 이는
<code>icc</code>10 이후 것들의 경고를 일으키기떄문에, 그 곳에 <code>CC=”icc-std=c99”</code>을 사용하십시오. Flag
<samp>-wd188</samp>은 열거형인 &lsquo;<samp>Rboolean</samp>&rsquo;에대한 많은 경고들을 억제할 것입니다. Intel C compiler가
&lsquo;<samp>__GNUC__</samp>&rsquo;을 <code>gcc</code>의 완전한 모방 없이 설정하기때문에,<code>CPPFLAGS=-no-gcc</code>를
더하는 것을 제안합니다.
</p>
<p>알맞은 <acronym>IEC</acronym>&nbsp; 60559 산수를 관리하기위해서, 여러분은 필시 컴파일러 버전에 따라서 <samp>–mp</samp>
(위에서 보여짐)이나 <samp>–fp-model precise –fp-model source</samp>들과 같은 <code>CFLAGS</code>,
<code>FFLAGS</code>, 그리고 <code>CXXFLAGS</code>들에 flag들을 더할 필요가 있을 것 입니다.
</p>
<p>Others have reported success with versions 10.x and 11.x.
</p>

<hr>
<a name="Oracle-Solaris-Studio-compilers"></a>
<a name="Oracle-Solaris-Studio-compilers-1"></a>
<h4 class="subsection">C.2.3 Oracle Solaris Studio compilers</h4>

<p>Brian Ripley tested the Sun Studio 12 compilers, since renamed to Oracle
Solaris Studio, (<a href="http://developers.sun.com/sunstudio/index.jsp">http://developers.sun.com/sunstudio/index.jsp</a>)
On &lsquo;<samp>x86_64</samp>&rsquo; Linux with
</p>
<div class="example">
<pre class="example">CC=suncc
CFLAGS=&quot;-xO5 -xc99 -xlibmil -nofstore&quot;
CPICFLAGS=-Kpic
F77=sunf95
FFLAGS=&quot;-O5 -libmil -nofstore&quot;
FPICFLAGS=-Kpic
CXX=&quot;sunCC -library=stlport4&quot;
CXXFLAGS=&quot;-xO5 -xlibmil -nofstore -features=tmplrefstatic&quot;
CXXPICFLAGS=-Kpic
FC=sunf95
FCFLAGS=$FFLAGS
FCPICFLAGS=-Kpic
LDFLAGS=-L/opt/sunstudio12.1/rtlibs/amd64
SHLIB_LDFLAGS=-shared
SHLIB_CXXLDFLAGS=-G
SHLIB_FCLDFLAGS=-G
SAFE_FFLAGS=&quot;-O5 -libmil&quot;
</pre></div>

<p><samp>-m64</samp> could be added, but was the default.  Do not use
<samp>-fast</samp>: see the warnings under Solaris. (The C++ options are also
explained under Solaris.)
</p>
<p>Others have found on at least some versions of &lsquo;<samp>ix86</samp>&rsquo; Linux that the
configure flag <samp>--disable-largefile</samp> was needed (since <samp>glob.h</samp>
on that platform presumed <code>gcc</code> was being used).
</p>

<hr>
<a name="OS-X"></a>
<a name="OS-X-2"></a>
<h3 class="section">C.3 OS X</h3>
<a name="index-OS-X-2"></a>

<p>You can build R using Apple&rsquo;s &lsquo;Command-line Tools for Xcode&rsquo; and and
suitable compilers.  You will also need <code>readline</code> (or to configure
with <samp>--without-readline</samp>).  That and other binary components are
available from <a href="http://r.research.att.com/libs">http://r.research.att.com/libs</a>.
</p>
<p>You may also need to install an X sub-system (or you will need to configure
using option <samp>--without-x</samp>): X is part of the standard OS X
distribution in versions prior to Mountain Lion, but not always installed.
For Mountain Lion and later, see <a href="http://xquartz.macosforge.org/">http://xquartz.macosforge.org/</a>.
(Note that XQuartz will likely need to be re-installed after an OS upgrade.)
</p>
<p>In principle R can be built for 10.4.x, 10.5.x and for PowerPC Macs but
this has not been tested recently: 10.6 (Snow Leopard) is the earliest
version currently tested.  32-bit Intel builds of R 3.0.0 were tested:
they would be needed for Snow Leopard running on very old machines with Core
Solo or Core Duo CPUs.  The instructions here are for &lsquo;<samp>x86_64</samp>&rsquo;
builds.
</p>
<p>To use the <code>quartz()</code> graphics device you need to configure with
<samp>--with-aqua</samp> (which is the default): <code>quartz()</code> then becomes
the default device when running R at the console and X11 would only be
used for the data editor/viewer.  (This needs an Objective-C
compiler<a name="DOCF31" href="#FOOT31"><sup>31</sup></a> which can compile
the code for <code>quartz()</code>.)
</p>
<p>Use <samp>--without-aqua</samp> if you want a standard Unix-alike build: apart
from disabling <code>quartz()</code> and the ability to use the build with
<small>R.APP</small>, it also changes the default location of the personal library (see
<code>?.libPaths()</code>).  Also use <samp>--disable-R-framework</samp> to install in
the standard layout.
</p>
<p>&lsquo;Command-line Tools for Xcode&rsquo; used to be part of the Apple Developer Tools
(&lsquo;Xcode&rsquo;) but nowadays need to be installed separately.  They can be
downloaded from <a href="http://developer.apple.com/devcenter/mac/">http://developer.apple.com/devcenter/mac/</a> (you will
need to register there: that allows you to download older versions available
for your OS) or some versions of Xcode (from the App Store or from
<a href="http://developer.apple.com/devcenter/mac/">http://developer.apple.com/devcenter/mac/</a>) you can install the
command-line tools from within Xcode, from the &lsquo;<samp>Downloads</samp>&rsquo; pane in the
&lsquo;<samp>Preferences</samp>&rsquo;.  For Mavericks and later, see the specific sub-section
below.
</p>
<p>Various compilers can be used.  The current <acronym>CRAN</acronym> &lsquo;Snow Leopard&rsquo;
distribution of R is built using
</p>
<ul>
<li> <code>gcc</code>
from an Xcode distribution prior to version 5.  This is a version of gcc
4.2.1 with an LLVM backend.

</li><li> <code>gfortran</code>
from <a href="http://cran.r-project.org/bin/macosx/tools/gfortran-4.2.3.pkg">http://cran.r-project.org/bin/macosx/tools/gfortran-4.2.3.pkg</a>.
Note that this installs into <samp>/usr/local/bin</samp>, so make sure that is on
your path.  Other compilers from <a href="http://r.research.att.com/tools/">http://r.research.att.com/tools/</a> can
also be used.

</li><li> <code>clang</code>
from the Xcode distribution, to compile the Objective-C parts of the
<code>quartz()</code> device. 
</li></ul>

<p>To use these, have in <samp>config.site</samp> something like
</p>
<div class="example">
<pre class="example">CC=&quot;llvm-gcc-4.2&quot;
CXX=&quot;llvm-g++-4.2&quot;
F77=&quot;gfortran-4.2 -arch x86_64&quot;
FC=$F77
OBJC=&quot;clang&quot;
</pre></div>

<p>Full names help to ensure that the intended compilers are used.  In
particular <code>gcc</code> is a copy of <code>llvm-gcc-4.2</code> for Xcode &lt; 5
but of <code>clang</code> in Xcode 5.  The recommended Fortran compiler
defaults to 32-bit, so <code>-arch x86_64</code> is needed.  (For a 32-bit build,
use <code>-arch i386</code> for all compiler commands.)
</p>
<p>The OpenMP support in this version of <code>gcc</code> is problematic, so the
<acronym>CRAN</acronym> build is configured with <samp>--disable-openmp</samp>.
</p>
<p>The current <acronym>CRAN</acronym> &lsquo;Mavericks&rsquo; distribution of R is built using
</p>
<div class="example">
<pre class="example">CC=clang
CXX=clang++
F77=gfortran-4.8
FC=$F77
OBJC=clang
</pre></div>

<p>with <code>clang</code> and <code>clang++</code> from Xcode 5, and the Fortran
compiler from
<a href="http://r.research.att.com/libs/gfortran-4.8.2-darwin13.tar.bz2">http://r.research.att.com/libs/gfortran-4.8.2-darwin13.tar.bz2</a>.<a name="DOCF32" href="#FOOT32"><sup>32</sup></a> Apple&rsquo;s
builds of <code>clang</code> currently have little or no OpenMP support.
</p>
<p>Pre-compiled versions of many of the <a href="#Useful-libraries-and-programs">Useful libraries and programs</a> are
available from <a href="http://r.research.att.com/libs/">http://r.research.att.com/libs/</a>.  You will most likely
want at least <code>jpeg</code>, <code>libpng</code> and <code>readline</code> (and perhaps
<code>tiff</code>).  <code>pkg-config</code> is not provided by Apple and useful for
many packages: it will also be used if present when configuring the
<code>X11()</code> device.
</p>
<p>Recent versions of OS X ship with <code>zlib</code> version 1.2.8 and <code>bzlib</code>
version 1.0.6, sufficient for the default <code>configure</code> checks.
</p>
<a name="index-BLAS-library-1"></a>
<a name="index-LAPACK-library-1"></a>
<p>The <code>Accelerate</code> library can be used <em>via</em> the configuration
options
</p>
<div class="example">
<pre class="example">--with-blas=&quot;-framework Accelerate&quot; --with-lapack
</pre></div>

<p>to provide potentially higher-performance versions of the <acronym>BLAS</acronym> and
LAPACK routines.  (Use of <code>Accelerate</code> with <samp>--with-lapack</samp> does
not work on Snow Leopard: it may work there without.)<a name="DOCF33" href="#FOOT33"><sup>33</sup></a>
</p>
<p>Looking at the top of
<samp>/Library/Frameworks/R.framework/Resources/etc/Makeconf</samp> will show the
compilers and configuration options used for the <acronym>CRAN</acronym> binary
package for R: at the time of writing
</p><div class="example">
<pre class="example">--enable-memory-profiling --disable-openmp
</pre></div>
<p>was used for &lsquo;Snow Leopard&rsquo; and the first two for &lsquo;Mavericks&rsquo;.
</p>
<p>Configure option <samp>--with-internal-tzcode</samp> is the default, as a 64-bit
<code>time_t</code> is available but the system implementation of time zones does
not work correctly for times before 1902 or after 2037.
</p>
<p>The TeX implementation used by the developers is MacTeX
(<a href="http://www.tug.org/mactex/">http://www.tug.org/mactex/</a>): the full installation is about 4GB, but
a smaller version is available at
<a href="http://www.tug.org/mactex/morepackages.html">http://www.tug.org/mactex/morepackages.html</a>: you will need to add
some packages, e.g. for the 2014 version we needed to add <strong>cm-super</strong>,
<strong>ec</strong>, <strong>helvetic</strong>, <strong>inconsolata</strong> and <strong>texinfo</strong> which brought
this to about 380MB (or package <strong>texinfo</strong> and the collections
<strong>collection-fontsrecommended</strong>, <strong>collection-fontsextra</strong> and
<strong>collection-latexextra</strong> which will take this up to about 1GB).
&lsquo;<samp>TeX Live Utility</samp>&rsquo; (available <em>via</em> the MacTeX front page)
provides a graphical means to manage TeX packages.
</p>
<p>One OS X quirk is that the default path has <samp>/usr/local/bin</samp> after
<samp>/usr/bin</samp>, contrary to common practice on Unix-alikes.  This means
that if you install tools from the sources they will by default be installed
under <samp>/usr/local</samp> and not supersede the system versions.
</p>

<hr>
<a name="Snow-Leopard"></a>
<a name="Snow-Leopard-1"></a>
<h4 class="subsection">C.3.1 Snow Leopard</h4>

<p>A quirk on Snow Leopard is that the X11 libraries are not in the default
linking path, so something like &lsquo;<samp>LIBS=-L/usr/X11/lib</samp>&rsquo; may be required
in <samp>config.site</samp>, or you can use the <code>configure</code> options
<samp>--x-includes=/usr/X11/include --x-libraries=/usr/X11/lib</samp> .
</p>
<p>The <acronym>CRAN</acronym> binaries are built using Xcode 4.2, a version available
only to subscribing developers.  It is believed that 3.2.6 (the last public
free version for Snow Leopard) will work.
</p>
<hr>
<a name="Lion"></a>
<a name="Lion-1"></a>
<h4 class="subsection">C.3.2 Lion</h4>

<p>No tweaks are known to be needed on Lion.  See the notes on Mountain Lion if
XQuartz is in use.
</p>
<hr>
<a name="Mountain-Lion"></a>
<a name="Mountain-Lion-1"></a>
<h4 class="subsection">C.3.3 Mountain Lion</h4>

<p>The X11 system used with Mountain Lion is XQuartz (see above).
</p>
<p>To build the graphics devices depending on cairographics the XQuartz path
for <code>pkg-config</code> files needs to be known to <code>pkg-config</code>
when <code>configure</code> is run: this usually means adding it to the
<code>PKG_CONFIG_PATH</code> environment variable, e.g.
</p>
<div class="example">
<pre class="example">export PKG_CONFIG_PATH= \
  /opt/X11/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
</pre></div>

<p>or putting
</p><div class="example">
<pre class="example">PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
</pre></div>

<p>in <samp>config.site</samp>.
</p>
<p>For some pre-compiled software, for example the GTK framework,
<samp>/opt/X11/include</samp> may need to be added to the include paths.
</p>
<p>If you install the command-line tools for Xcode 4.6.3 you will get the
compilers used for the CRAN binary distribution: those for Xcode 5 can be
installed afterwards.
</p>
<hr>
<a name="Mavericks"></a>
<a name="Mavericks-1"></a>
<h4 class="subsection">C.3.4 Mavericks</h4>

<p>Xcode for Mavericks provides different compilers, headers and libraries from
earlier versions.  In particular the compilers (even those called
<code>gcc</code> and <code>g++</code>) are based on <code>clang</code>, and the C++
headers and runtime are from LLVM&rsquo;s &lsquo;<samp>libc++</samp>&rsquo; project).
</p>
<p>The command-line tools can be (re-)installed by <code>xcode-select
--install</code>.  (If you have a fresh installation of Mavericks, running e.g.
<code>make</code> in a terminal will offer the installation of the command-line
tools, or perhaps use the versions from Xcode.  However, after an update to
Mavericks, you are advised to re-install them.)  They are not available
under the &lsquo;<samp>Downloads</samp>&rsquo; preference pane in Xcode.
</p>
<p>To use the compilers from the command-line tools for Xcode 5 or 6 with the
recommended Fortran compiler, have in <samp>config.site</samp> something like
</p>
<div class="example">
<pre class="example">CC=clang
CXX=clang++
F77=gfortran-4.8
FC=$F77
OBJC=clang
</pre></div>
<p>(<code>CC=gcc</code> and <code>CXX=g++</code> are slightly different front-ends to the
same compilers.)  Recent versions of the <acronym>CRAN</acronym> binary package
installer for &lsquo;Snow Leopard&rsquo; change the settings in <samp>etc/Makeconf</samp> to
</p><div class="example">
<pre class="example">CC = gcc -arch x86_64 -std=gnu99
CXX g++ -arch x86_64
F77 = gfortran-4.2 -arch x86_64
OBJC = gcc -arch x86_64
OBJCXX = g++ -arch x86_64
</pre></div>
<p>when installing on Mavericks.
</p>
<p>See the comments under Mountain Lion about X11 and GTK.
</p>
<hr>
<a name="Yosemite"></a>
<a name="Yosemite-1"></a>
<h4 class="subsection">C.3.5 Yosemite</h4>

<p>See the comments under &lsquo;Mavericks&rsquo;.
</p>
<p>Note that if you upgrade to Yosemite you should re-install any of XQuartz,
the &lsquo;Command-line Tools for Xcode&rsquo; and Java which you have installed.
(Upgrading may partially remove previous versions which can be confusing.)
</p>
<p>There are some problems with the recommended <code>gfortran</code> builds under
Yosemite.  They give warnings and <code>gfortran-4.8</code> is reported to be
unable to link packages containing Fortran 9x code.  (The solution is to use
a compiler built under Yosemite.)
</p>

<hr>
<a name="Tcl_002fTk-headers-and-libraries"></a>
<a name="Tcl_002fTk-headers-and-libraries-1"></a>
<h4 class="subsection">C.3.6 Tcl/Tk headers and libraries</h4>

<p>If you plan to use the <code>tcltk</code> package for R, you need to install a
distribution of Tcl/Tk.  There are two alternatives.  If you use <small>R.APP</small> you
will want to use X11-based Tcl/Tk (as used on other Unix-alikes), which is
installed as part of the CRAN binary for R.  This may need
</p><div class="example">
<pre class="example">-with-tcltk=/usr/local/lib
</pre></div>
<p>또는 
</p><div class="example">
<pre class="example">--with-tcl-config=/usr/local/lib/tclConfig.sh 
--with-tk-config=/usr/local/lib/tkConfig.sh
</pre></div>
<p>Note that this requires a fully-updated X11 installation (XQuartz for
Mountain Lion and later).
</p>
<p>There is also a native (&lsquo;Aqua&rsquo;) version of Tcl/Tk which produces widgets in
the native OS X style: this will not work with <small>R.APP</small> because of conflicts
over the OS X menu, but for those only using command-line R this provides
a much more intuitive interface to Tk for experienced Mac users.  Most
versions of OS X come with Aqua Tcl/Tk libraries, but these are not current
(nor recent) versions of Tcl/Tk (8.5.9 in Mountain Lion and Mavericks).  It
is better to install Tcl/Tk 8.6.x or 8.5.x from the sources or a binary
distribution from <a href="http://www.activestate.com/activetcl/downloads">http://www.activestate.com/activetcl/downloads</a>.
Configure R with
</p><div class="example">
<pre class="example">--with-tcl-config=/Library/Frameworks/Tcl.framework/tclConfig.sh 
--with-tk-config=/Library/Frameworks/Tk.framework/tkConfig.sh
</pre></div>

<p>(for the versions bundled with OS X, use paths starting with
<samp>/System/Library</samp>).
</p>
<p>If you need to find out which version of Tk in use at run time, use
</p><div class="example">
<pre class="example">library(tcltk)
tclvalue(.Tcl(&quot;tk windowingsystem&quot;))  # &quot;x11&quot; or &quot;aqua&quot;
</pre></div>

<hr>
<a name="Java-_0028OS-X_0029"></a>
<a name="Java"></a>
<h4 class="subsection">C.3.7 Java</h4>

<p>The situation with Java support on OS X is messy, with Apple essentially no
longer supporting Java (and what it does support is Java 6, which has
reached end-of-life).  Snow Leopard and Lion shipped with a Java 6 runtime
(JRE).
</p>
<p>Mountain Lion and later do not come with an installed JRE, and an OS X
upgrade removes one if already installed: it is intended to be installed at
first use.  Check if a JRE is installed by running <code>java -version</code>
in a <code>Terminal</code> window: if Java is not installed this should prompt
you to install it.
</p>
<p>You may want/need to install the latest Java from Oracle (currently Java 8
from
<a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">http://www.oracle.com/technetwork/java/javase/downloads/index.html</a>);
this is for Lion and later.
</p>
<p>You may need to install what Apple calls &lsquo;legacy Java&rsquo;<a name="DOCF34" href="#FOOT34"><sup>34</sup></a> to suppress pop-up messages, at least under
Yosemite, even if you have a current version installed.
</p>
<p>To see what compatible versions of Java are currently installed, run
<code>/usr/libexec/java_home -V -a x86_64</code>.  If needed, set the
environment variable <code>JAVA_HOME</code> to choose between these, both when R
is built from the sources and when <code>R CMD javareconf</code> is run.
</p>
<p>Configuring and building R both looks for a JRE and for support for
compiling JNI programs (used by packages <a href="http://CRAN.R-project.org/package=rJava"><strong>rJava</strong></a> and
<a href="http://CRAN.R-project.org/package=JavaGD"><strong>JavaGD</strong></a>); the latter requires a JDK (Java SDK) and not just a JRE.
</p>
<p>The build process tries to fathom out what JRE/JDK to use, but it may need
some help, e.g. by setting <code>JAVA_HOME</code>.  The Apple JRE can be
specified explicitly by something like
</p><div class="example">
<pre class="example">JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
JAVA_CPPFLAGS=&quot;-I/System/Library/Frameworks/JavaVM.framework/Headers&quot;
JAVA_LD_LIBRARY_PATH=
JAVA_LIBS=&quot;-framework JavaVM&quot;
</pre></div>
<p>The Apple developer versions of the JDK install somewhere like
</p><div class="example">
<pre class="example">JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0_43-b01-447.jdk/Contents/Home
</pre></div>
<p>The Oracle JDK can be specified explicitly by something like
</p><div class="example">
<pre class="example">JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
JAVA_CPPFLAGS=&quot;-I/${JAVA_HOME}/include -I/${JAVA_HOME}/include/darwin&quot;
JAVA_LD_LIBRARY_PATH=&quot;${JAVA_HOME}/jre/lib/server&quot;
JAVA_LIBS=&quot;-L/${JAVA_HOME}/jre/lib/server -ljvm&quot; 
</pre></div>
<p>in <samp>config.site</samp>.
</p>
<p>Note that it is necessary to set the environment variable <code>NOAWT</code> to
<code>1</code> to install many of the Java-using packages.
</p>

<hr>
<a name="Frameworks"></a>
<a name="Frameworks-1"></a>
<h4 class="subsection">C.3.8 Frameworks</h4>

<p>The <acronym>CRAN</acronym> build of R is installed as a framework, which is
selected by the default option
</p>
<div class="example">
<pre class="example">./configure --enable-R-framework
</pre></div>

<p>(This is intended to be used with an Apple toolchain: other compilers may
not support frameworks correctly.)
</p>
<p>It is only needed if you want to build R for use with the <small>R.APP</small>
console, and implies <samp>--enable-R-shlib</samp> to build R as a dynamic
library.  This option configures R to be built and installed as a
framework called <samp>R.framework</samp>.  The default installation path for
<samp>R.framework</samp> is <samp>/Library/Frameworks</samp> but this can be changed at
configure time by specifying the flag
<samp>--enable-R-framework[=<var>DIR</var>]</samp> or at install time as
</p>
<div class="example">
<pre class="example">make prefix=/where/you/want/R.framework/to/go install
</pre></div>

<p>Note that installation as a framework is non-standard (especially to a
non-standard location) and utilities may not support it (e.g. the
<code>pkg-config</code> file <samp>libR.pc</samp> will be put somewhere unknown to
<code>pkg-config</code>).
</p>
<hr>
<a name="Building-R_002eapp"></a>
<a name="Building-R_002eapp-1"></a>
<h4 class="subsection">C.3.9 Building R.app</h4>

<p>Note that building the <small>R.APP</small> GUI console is a separate project, using
Xcode.  Before compiling <small>R.APP</small> make sure the current version of R is
installed in <samp>/Library/Frameworks/R.framework</samp> and working at the
command-line (this can be a binary install).
</p>
<p>The current sources can be checked out by
</p><div class="example">
<pre class="example">svn co https://svn.r-project.org/R-packages/trunk/Mac-GUI
</pre></div>
<p>This can be built by loading the <code>R.xcodeproj</code> project (select the
<code>R</code> target and the <code>SnowLeopard64</code> or <code>Lion64</code>
configuration), or from the command-line by e.g.
</p><div class="example">
<pre class="example">xcodebuild -target R -configuration SnowLeopard64
</pre></div>
<p>See also the <samp>INSTALL</samp> file in the checkout or directly at
<a href="https://svn.r-project.org/R-packages/trunk/Mac-GUI/INSTALL">https://svn.r-project.org/R-packages/trunk/Mac-GUI/INSTALL</a>.
</p>
<p><small>R.APP</small> does not need to be installed in any specific way. Building <small>R.APP</small>
results in the <small>R.APP</small> bundle which appears as one R icon. This application
bundle can be run anywhere and it is customary to place it in the
<samp>/Applications</samp> folder.
</p>

<hr>
<a name="Solaris"></a>
<a name="Solaris-1"></a>
<h3 class="section">C.4 Solaris</h3>
<a name="index-Solaris"></a>

<p>R has been built successfully on Solaris 10 (both Sparc and
&lsquo;<samp>x86</samp>&rsquo;) using the (zero cost) Oracle Solaris Studio compilers: there
has been some success with <code>gcc</code>&nbsp;4/<code>gfortran</code>.  (Recent
Sun machines are AMD Opterons or Intel Xeons (&lsquo;<samp>amd64</samp>&rsquo;) rather than
&lsquo;<samp>x86</samp>&rsquo;, but 32-bit &lsquo;<samp>x86</samp>&rsquo; executables are the default.)
</p>
<p>There have been few reports on Solaris 11, with no known extra issues.
Solaris 9 and earlier are now so old that it is unlikely that R is still
used with them, and they will not be considered here.
</p>
<p>The Solaris versions of several of the tools needed to build R (e.g.
<code>make</code>, <code>ar</code> and <code>ld</code>) are in <samp>/usr/ccs/bin</samp>,
so if using those tools ensure this is in your path.  A version of the
preferred <acronym>GNU</acronym> <code>tar</code> is (if installed) in
<samp>/usr/sfw/bin</samp>.  It may be necessary to avoid the tools in
<samp>/usr/ucb</samp>: POSIX-compliant versions of some tools can be found in
<samp>/usr/xpg4/bin</samp> and <samp>/usr/xpg6/bin</samp>.
</p>
<p>A large selection of Open Source software can be installed from
<a href="http://www.opencsw.org">http://www.opencsw.org</a>, by default installed under <samp>/opt/csw</samp>.
Solaris 10 ships with <code>bzlib</code> version 1.0.6 (sufficient for the default
<samp>--with-system-bzlib</samp>) but <code>zlib</code> version 1.2.3 (too old for
<samp>--with-system-zlib</samp>): OpenCSW has 1.2.8.
</p>
<p>You will need <acronym>GNU</acronym> <code>libiconv</code> and <code>readline</code>: the Solaris
version of <code>iconv</code> is not sufficiently powerful.
</p>
<p>The native <code>make</code> suffices to build R but a small number of
packages require <acronym>GNU</acronym> <code>make</code> (some without good reason and
without declaring it as &lsquo;<samp>SystemRequirements</samp>&rsquo; in the <samp>DESCRIPTION</samp>
file).
</p>
<p>Some people have reported that the Solaris <code>libintl</code> needs to be
avoided, for example by using <samp>--disable-nls</samp> or
<samp>--with-included-gettext</samp> or using <code>libintl</code> from OpenCSW.
</p>
<p>The support for the C99 <code>long double</code> type on Sparc hardware uses
quad-precision arithmetic, and this is usually slow because it is done by
software emulation.  On such systems <code>configure</code> option
<samp>--disable-long-double</samp> can be used for faster but less accurate
computations.
</p>
<p>The Solaris time-zone conversion services seem to be unreliable pre-1916 in
Europe (when daylight-savings time was first introduced): most often
reporting in the non-existent DST variant.  Using <code>configure</code> option
<samp>--with-internal-tzcode</samp> is recommended, and required if you find
time-zone abbreviations being given odd values (as has been seen on 64-bit
builds without it).
</p>
<p>When using the Oracle compilers<a name="DOCF35" href="#FOOT35"><sup>35</sup></a> do <em>not</em> specify <samp>-fast</samp>, as this disables
<acronym>IEEE</acronym> arithmetic and <code>make check</code> will fail.
</p>
<p>It has been reported that some Solaris installations need
</p>
<div class="example">
<pre class="example">INTERNET_LIBS=&quot;-lsocket -lnsl&quot;
</pre></div>

<p>on the <code>configure</code> command line or in file <samp>config.site</samp>;
however, there have been many successful installs without this.
</p>
<p>A little juggling of paths was needed to ensure <acronym>GNU</acronym>
<code>libiconv</code> (in <samp>/usr/local</samp>) was used rather than the Solaris
<code>iconv</code>:
</p>
<div class="example">
<pre class="example">CC=&quot;cc -xc99&quot;
CFLAGS=&quot;-O -xlibmieee&quot;
F77=f95
FFLAGS=-O
CXX=&quot;CC -library=stlport4&quot;
CXXFLAGS=-O
FC=f95
FCFLAGS=$FFLAGS
FCLIBS=&quot;-lfai -lfsu&quot;
R_LD_LIBRARY_PATH=&quot;/usr/local/lib:/opt/csw/gcc4/lib:/opt/csw/lib&quot;
</pre></div>

<p>For a 64-bit target add <samp>-m64</samp> to the compiler macros and use
something like <code>LDFLAGS=-L/usr/local/lib/sparcv9</code> or
<code>LDFLAGS=-L/usr/local/lib/amd64</code> as appropriate.  It will also be
necessary to point <code>pkg-config</code> at the 64-bit directories, e.g.
one of
</p>
<div class="example">
<pre class="example">PKG_CONFIG_PATH=/opt/csw/lib/amd64/pkgconfig:/usr/lib/amd64/pkgconfig
PKG_CONFIG_PATH=/opt/csw/lib/sparcv9/pkgconfig:/usr/lib/sparcv9/pkgconfig
</pre></div>

<p>and to specify a 64-bit Java VM by e.g.
</p>
<div class="example">
<pre class="example">JAVA_CPPFLAGS=&quot;-I${JAVA_HOME}/../include -I${JAVA_HOME}/../include/solaris&quot;
JAVA_LD_LIBRARY_PATH=${JAVA_HOME}/lib/amd64/server
JAVA_LIBS=&quot;-L${JAVA_HOME}/lib/amd64/server \
  -R${JAVA_HOME}/lib/amd64/server -ljvm&quot;
</pre></div>
<p>With Solaris Studio 12.[23] on Sparc, <code>FCLIBS</code> needs to be
</p>
<div class="example">
<pre class="example">FCLIBS=&quot;-lfai -lfai2 -lfsu&quot;
</pre></div>

<p>(and possibly other Fortran libraries, but this suffices for the packages
currently on CRAN).
</p>
<p>Currently &lsquo;<samp>amd64</samp>&rsquo; and &lsquo;<samp>sparcv9</samp>&rsquo; builds work out-of-the-box
with Sun Studio 12u1 but not Solaris Studio 12.2 and 12.3:
<samp>libRblas.so</samp> and <samp>lapack.so</samp> are generated with code that causes
relocation errors (which is being linked in from the Fortran libraries).
This means that building 64-bit R as a shared library may be impossible
with Solaris Studio &gt;= 12.2.  For a standard build the trick seems to be to
manually set <code>FLIBS</code> to avoid the troublesome libraries.  For example,
on &lsquo;<samp>amd64</samp>&rsquo; set in <samp>config.site</samp> something like
</p>
<div class="example">
<pre class="example">FLIBS_IN_SO=&quot;-R/opt/solarisstudio12.3/lib/amd64
  /opt/solarisstudio12.3/lib/amd64/libfui.so
  /opt/solarisstudio12.3/lib/amd64/libfsu.so&quot;
</pre></div>
<p>For 64-bit Sparc, set in <samp>config.site</samp> something like
</p><div class="example">
<pre class="example">FLIBS=&quot;-R/opt/solarisstudio12.3/prod/lib/sparc/64
 -lifai -lsunimath -lfai -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai
 -lfminvai -lfmaxvai -lfui -lsunmath -lmtsk
 /opt/solarisstudio12.3/prod/lib/sparc/64/libfsu.so.1&quot;
</pre></div>

<p>By default the Solaris Studio compilers do not by default conform to the C99
standard (appendix F 8.9) on the return values of functions such as
<code>log</code>: use <samp>-xlibmieee</samp> to ensure this.
</p>
<p>You can target specific Sparc architectures for (slightly) higher
performance: <samp>-xtarget=native</samp> (in <code>CFLAGS</code> etc) tunes the
compilation to the current machine.
</p>
<p>Using <code>-xlibmil</code> in <code>CFLAGS</code> and <code>-xlibmil</code> in <code>FFLAGS</code>
allows more system mathematical functions to be inlined.
</p>

<p>On &lsquo;<samp>x86</samp>&rsquo; you will get marginally higher performance <em>via</em>
</p>
<div class="example">
<pre class="example">CFLAGS=&quot;-xO5 -xc99 -xlibmieee -xlibmil -nofstore -xtarget=native&quot;
FFLAGS=&quot;-O5 -libmil -nofstore -xtarget=native&quot;
CXXFLAGS=&quot;-xO5 -xlibmil -nofstore -xtarget=native&quot;
SAFE_FFLAGS=&quot;-libmil -fstore -xtarget=native&quot;
</pre></div>

<p>but the use of <code>-nofstore</code> can be less numerically stable, and some
packages (notably <a href="http://CRAN.R-project.org/package=mgcv"><strong>mgcv</strong></a> on &lsquo;<samp>x86</samp>&rsquo;) failed to compile at
higher optimization levels with version 12.3.
</p>
<p>The Solaris Studio compilers provide several implementations of the C++98
standard which select both the set of headers and a C++ runtime library.
These are selected by the <samp>-library</samp> flag, which as it is needed for
both compiling and linking is best specified as part of the compiler.  The
examples above use &lsquo;<samp>stlport4</samp>&rsquo;, currently the most modern of the
options: the default (but still needed to be specified as it is needed for
linking) is &lsquo;<samp>Cstd</samp>&rsquo;: see
<a href="http://developers.sun.com/solaris/articles/cmp_stlport_libCstd.html">http://developers.sun.com/solaris/articles/cmp_stlport_libCstd.html</a>.
Note though that most external Solaris C++ libraries will have been built
with &lsquo;<samp>Cstd</samp>&rsquo; and so an R package using such libraries also needs to
be.  Occasionally the option <samp>-library=stlport4,Crun</samp> has been
needed.
</p>
<p>Several <acronym>CRAN</acronym> packages using C++ need the more liberal
interpretation given by adding
</p>
<div class="example">
<pre class="example">CXXFLAGS=&quot;-features=tmplrefstatic&quot;
</pre></div>


<a name="index-BLAS-library-2"></a>
<a name="index-LAPACK-library-2"></a>

<p>The performance library <code>sunperf</code> is available for use with the Solaris
Studio compilers.  If selected as a <acronym>BLAS</acronym>, it must also be selected
as LAPACK <em>via</em> (for Solaris Studio 12.2)
</p>
<div class="example">
<pre class="example">./configure --with-blas='-library=sunperf' --with-lapack
</pre></div>

<p>This has often given test failures in the past, in several different
places.  At the time of writing it fails in <samp>tests/reg-BLAS.R</samp>, and on
some builds, including for &lsquo;<samp>amd64</samp>&rsquo;, it fails in
<code>example(eigen)</code>.
</p>
<p>Parsing very complex R expressions needs a lot of stack space when the
Oracle compilers are used: several packages require the stack increased to
at least 20MB.
</p>


<hr>
<a name="Using-gcc"></a>
<a name="Using-gcc-1"></a>
<h4 class="subsection">C.4.1 Using gcc</h4>

<p>If using <code>gcc</code>, ensure that the compiler was compiled for the
version of Solaris in use.  (This can be ascertained from <code>gcc -v</code>.)
<code>gcc</code> makes modified versions of some header files, and several
reports of problems were due to using <code>gcc</code> compiled on one version
of Solaris on a later version.  
</p>
<p>The notes here are for <code>gcc</code> set up to use the Solaris linker: it
can also be set up to use GNU <code>ld</code>, but that has not been tested.
</p>
<p>Compilation for a 32-bit Sparc target with <code>gcc</code>&nbsp;4.9.0 needed
</p>
<div class="example">
<pre class="example">CPPFLAGS=-I/opt/csw/include
LDFLAGS=&quot;-L/opt/csw/gcc4/lib -L/opt/csw/lib&quot;
</pre></div>

<p>and for a 64-bit Sparc target
</p><div class="example">
<pre class="example">CC=&quot;gcc -m64&quot;
F77=&quot;gfortran -m64&quot;
CXX=&quot;g++ -m64&quot;
FC=$F77
CPPFLAGS=-I/opt/csw/include
LDFLAGS=&quot;-L/opt/csw/gcc4/lib/sparcv9 -L/opt/csw/lib/sparcv9&quot;
</pre></div>

<p>Note that paths such as <samp>/opt/csw/gcc4/lib/sparcv9</samp> may need to be in
the
<a name="index-LD_005fLIBRARY_005fPATH-4"></a>
<code>LD_LIBRARY_PATH</code> during configuration.
</p>
<p>The compilation can be tuned to a particular cpu: the <acronym>CRAN</acronym> check
system uses <code>-mtune=niagara2</code>.
</p>
<p>Compilation for an &lsquo;<samp>x86</samp>&rsquo; target with <code>gcc</code>&nbsp;4.9.0 needed
</p>
<div class="example">
<pre class="example">CC=&quot;/opt/csw/gcc4/bin/gcc -m32&quot;
CPPFLAGS=&quot;-I/opt/csw/include -I/usr/local/include&quot;
F77=&quot;/opt/csw/gcc4/bin/gfortran -m32&quot;
CXX=&quot;/opt/csw/gcc4/bin/g++ -m32&quot;
FC=&quot;/opt/csw/gcc4/bin/gfortran -m32&quot;
LDFLAGS=&quot;-L/opt/csw/gcc4/lib -L/opt/csw/lib -L/usr/local/lib&quot;
</pre></div>

<p>(<code>-L/opt/csw/lib</code> is needed since TeXLive was built using 32-bit
<code>gcc</code>, and we need <samp>/opt/csw/lib</samp> in <code>R_LD_LIBRARY_PATH</code>.)
</p>
<p>For an &lsquo;<samp>amd64</samp>&rsquo; target with <code>gcc</code>&nbsp;4.9.0 we used 
</p>
<div class="example">
<pre class="example">CC=&quot;/opt/csw/gcc4/bin/gcc -m64&quot;
CPPFLAGS=&quot;-I/opt/csw/include -I/usr/local/include&quot;
F77=&quot;/opt/csw/gcc4/bin/gfortran -m64&quot;
FPICFLAGS=-fPIC
CXX=&quot;/opt/csw/gcc4/bin/g++ -m64&quot;
FC=$F77
FCPICFLAGS=$FPICFLAGS
LDFLAGS=&quot;-L/opt/csw/gcc4/lib/amd64 -L/opt/csw/lib/amd64&quot;
</pre></div>

<hr>
<a name="AIX"></a>
<a name="AIX-1"></a>
<h3 class="section">C.5 AIX</h3>
<a name="index-AIX"></a>

<p>We no longer support AIX prior to 4.2, and <code>configure</code> will throw an
error on such systems.
</p>
<p>Ei-ji Nakama was able to build under AIX 5.2 on &lsquo;<samp>powerpc</samp>&rsquo; with GCC
4.0.3 in several configurations.  32-bit versions could be configured with
<samp>--without-iconv</samp> as well as <samp>--enable-R-shlib</samp>.  For 64-bit
versions he used
</p>
<div class="example">
<pre class="example">OBJECT_MODE=64
CC=&quot;gcc -maix64&quot;
CXX=&quot;g++ -maix64&quot;
F77=&quot;gfortran -maix64&quot;
FC=&quot;gfortran -maix64&quot;
</pre></div>

<p>and was also able to build with the IBM <code>xlc</code> and Hitachi <code>f90</code>
compilers by
</p>
<div class="example">
<pre class="example">OBJECT_MODE=64
CC=&quot;xlc -q64&quot;
CXX=&quot;g++ -maix64&quot;
F77=&quot;f90 -cpu=pwr4 -hf77 -parallel=0 -i,L -O3 -64&quot;
FC=&quot;f90 -cpu=pwr4 -hf77 -parallel=0 -i,L -O3 -64&quot;
FLIBS=&quot;-L/opt/ofort90/lib -lhf90vecmath -lhf90math -lf90&quot;
</pre></div>

<p>Some systems have <code>f95</code> as an IBM compiler that does not by default
accept FORTRAN 77.  It needs the flag <samp>-qfixed=72</samp>, or to be invoked
as <code>xlf_r</code>.
</p>
<p>The AIX native <code>iconv</code> does not support encodings &lsquo;<samp>latin1</samp>&rsquo; nor
&lsquo;<samp>&quot;&quot;</samp>&rsquo; and so cannot be used.  (As far as we know <acronym>GNU</acronym>
<code>libiconv</code> could be installed.)
</p>
<p>Fan Long reports success on AIX 5.3 using
</p>
<div class="example">
<pre class="example">OBJECT_MODE=64
LIBICONV=<var>/where/libiconv/installed</var>
CC=&quot;xlc_r -q64&quot; 
CFLAGS=&quot;-O -qstrict&quot;
CXX=&quot;xlC_r -q64&quot;
CXXFLAGS=&quot;-O -qstrict&quot;
F77=&quot;xlf_r -q64&quot;
AR=&quot;ar -X64&quot;
CPPFLAGS=&quot;-I$LIBICONV/include -I/usr/lpp/X11/include/X11&quot;
LDFLAGS=&quot;-L$LIBICONV/lib -L/usr/lib -L/usr/X11R6/lib&quot;
</pre></div>

<a name="index-R_005fSHELL"></a>
<p>On one AIX 6.x system it was necessary to use <code>R_SHELL</code> to set the
default shell to be Bash rather than Zsh.
</p>
<p>Kurt Hornik and Stefan Theussl at WU (Wirtschaftsuniversit&auml;t Wien)
successfully built R on a &lsquo;<samp>powerpc</samp>&rsquo; (8-<acronym>CPU</acronym> Power6 system)
running AIX 6.1, configuring with or without <samp>--enable-R-shlib</samp>
(Ei-ji Nakama&rsquo;s support is gratefully acknowledged).
</p>
<p>It helps to describe the WU build environment first.  A small part of the
software needed to build R and/or install packages is available directly
from the AIX Installation DVDs, e.g., Java 6 and X11.  Additional open
source software (OSS) is packaged for AIX in <samp>.rpm</samp> files and available
from both IBM&rsquo;s &ldquo;AIX Toolbox for Linux Applications&rdquo;
(<a href="http://www-03.ibm.com/systems/power/software/aix/linux/">http://www-03.ibm.com/systems/power/software/aix/linux/</a>)
and <a href="http://www.oss4aix.org/download/">http://www.oss4aix.org/download/</a>.  The latter website typically
offers more recent versions of the available OSS.  All tools needed and
libraries downloaded from these repositories (e.g., GCC, Make,
<code>libreadline</code>, etc.) are typically installed to <samp>/opt/freeware</samp>,
hence corresponding executables are found in
<a name="index-PATH-2"></a>
<samp>/opt/freeware/bin</samp> which thus needs to be in <code>PATH</code> for using
these tools.  As on other Unix systems one needs <acronym>GNU</acronym>
<code>libiconv</code> as the AIX version of iconv is not sufficiently powerful.
Additionally, for proper Unicode compatibility one should install the
corresponding package from the ICU project
(<a href="http://www.icu-project.org/download/">http://www.icu-project.org/download/</a>), which offers pre-compiled
binaries for various platforms which in case of AIX can be installed via
unpacking the tarball to the root file system.  For full LaTeX support
one can install the TeX Live DVD distribution
(<a href="http://www.tug.org/texlive/">http://www.tug.org/texlive/</a>): it is recommended to update the
distribution using the <code>tlmgr</code> update manager.  For 64-bit R builds
supporting Tcl/Tk this needs to installed from the sources as available
pre-compiled binaries supply only 32-bit shared objects.
</p>
<p>The recent WU testing was done using compilers from both the <acronym>GNU</acronym>
Compiler Collection (version 4.2.4) which is available from one of the above
OSS repositories, and the IBM C/C++ (XL C/C++ 10.01) as well as FORTRAN (XL
Fortran 12.01) compilers
(<a href="http://www14.software.ibm.com/webapp/download/byproduct.jsp#X">http://www14.software.ibm.com/webapp/download/byproduct.jsp#X</a>).
</p>
<p>To compile for a 64-bit &lsquo;<samp>powerpc</samp>&rsquo; (Power6 <acronym>CPU</acronym>) target one
can use
</p>
<div class="example">
<pre class="example">CC =&quot;gcc -maix64 -pthread&quot;
CXX=&quot;g++ -maix64 -pthread&quot;
FC=&quot;gfortran -maix64 -pthread&quot;
F77=&quot;gfortran -maix64 -pthread&quot;
CFLAGS=&quot;-O2 -g -mcpu=power6&quot;
FFLAGS=&quot;-O2 -g -mcpu=power6&quot;
FCFLAGS=&quot;-O2 -g -mcpu=power6&quot;
</pre></div>

<p>for the GCC and
</p>
<div class="example">
<pre class="example">CC=xlc
CXX=xlc++
FC=xlf
F77=xlf
CFLAGS=&quot;-qarch=auto -qcache=auto -qtune=auto -O3 -qstrict -ma&quot;
FFLAGS=&quot;-qarch=auto -qcache=auto -qtune=auto -O3 -qstrict&quot;
FCFLAGS=&quot;-qarch=auto -qcache=auto -qtune=auto -O3 -qstrict&quot;
CXXFLAGS=&quot;-qarch=auto -qcache=auto -qtune=auto -O3 -qstrict&quot;
</pre></div>

<p>for the IBM XL compilers.  For the latter, it is important to note that the
decision for generating 32-bit or 64-bit code is done by setting the
<a name="index-OBJECT_005fMODE"></a>
<code>OBJECT_MODE</code> environment variable appropriately (recommended) or using
an additional compiler flag (<samp>-q32</samp> or <samp>-q64</samp>).  By default
the IBM XL compilers produce 32 bit code.  Thus, to build R with 64-bit
support one needs to either export <code>OBJECT_MODE=64</code> in the environment
or, alternatively, use the <samp>-q64</samp> compiler options.
</p>
<p>It is strongly recommended to install Bash and use it as the configure
shell, e.g., via setting <code>CONFIG_SHELL=/usr/bin/bash</code> in the
environment, and to use <acronym>GNU</acronym> Make (e.g., via
(<code>MAKE=/opt/freeware/bin/make</code>).
</p>
<p>Further installation instructions to set up a proper R development
environment can be found in the &ldquo;R on AIX&rdquo; project on R-Forge
(<a href="http://R-Forge.R-project.org/projects/aix/">http://R-Forge.R-project.org/projects/aix/</a>).
</p>
<hr>
<a name="FreeBSD"></a>
<a name="FreeBSD-1"></a>
<h3 class="section">C.6 FreeBSD</h3>
<a name="index-FreeBSD"></a>

<p>There have been no reports for R 3.0.0 or later.
</p>
<hr>
<a name="Cygwin"></a>
<a name="Cygwin-1"></a>
<h3 class="section">C.7 Cygwin</h3>

<p>The Cygwin emulation layer on Windows can be treated as a Unix-alike OS.
This is unsupported, but experiments have been conducted and a few
workarounds added.  Cygwin has not been tested for R 3.0.0 or later.
</p>
<p>The 64-bit version is completely unsupported.  The 32-bit version has never
worked well enough to pass R&rsquo;s <code>make check</code>.
</p>
<p>R requires C99 complex type support, which is available as from Cygwin
1.7.8 (March 2011).  However, the (then) implementation of <code>cacos</code>
gives incorrect results, so we undefine <code>HAVE_CACOS</code> in
<samp>src/main/complex.c</samp> on that platform.  It has been reported that some
C99 long double mathematical functions are missing, so configuring with
<samp>--disable-long-double</samp> was required.
</p>
<p>Only building as a shared library can possibly work,<a name="DOCF36" href="#FOOT36"><sup>36</sup></a> so use e.g.
</p>
<div class="example">
<pre class="example">./configure --disable-nls --enable-R-shlib FLIBS=-lgfortran
make
</pre></div>

<p>Enabling NLS does work if required, although adding
<samp>--with-included-gettext</samp> is preferable.  You will see many warnings
about the use of auto-import.  Setting &lsquo;<samp>FLIBS</samp>&rsquo; explicitly seems needed
currently as the auto-detection gives an incorrect value.
</p>
<p>You will need the <strong>tetex-extra</strong> Cygwin package to build <samp>NEWS.pdf</samp>
and the vignettes.
</p>
<p>Note that this gives you a command-line application using <code>readline</code>
for command editing.  The &lsquo;<samp>X11</samp>&rsquo; graphics device will work if a suitable
X server is running, and the standard Unix-alike ways of installing source
packages work.  There was a bug in the <samp>/usr/lib/tkConfig.sh</samp> script in
the version we looked at, which needs to have
</p>
<div class="example">
<pre class="example">TK_LIB_SPEC='-ltk84'
</pre></div>

<p>The overhead of using shell scripts makes this noticeably slower than a
native build of R on Windows.
</p>
<p>Even when R could be built, not all the tests passed: there were
incorrect results from wide-character regular expressions code and from
sourcing CR-delimited files.
</p>
<p>Do not use Cygwin&rsquo;s BLAS library: it is known to give incorrect results.
</p>
<hr>
<a name="New-platforms"></a>
<a name="New-platforms-1"></a>
<h3 class="section">C.8 New platforms</h3>

<p>There are a number of sources of problems when installing R on a new
hardware/OS platform.  These include
</p>
<p><strong>Floating Point Arithmetic</strong>: R requires arithmetic compliant with
<acronym>IEC</acronym>&nbsp;60559, also known as <acronym>IEEE</acronym>&nbsp;754.  This
mandates the use of plus and minus infinity and <code>NaN</code> (not a number) as
well as specific details of rounding.  Although almost all current FPUs can
support this, selecting such support can be a pain.  The problem is that
there is no agreement on how to set the signalling behaviour; Sun/Sparc,
SGI/IRIX and &lsquo;<samp>ix86</samp>&rsquo; Linux require no special action, FreeBSD
requires a call to (the macro)  <code>fpsetmask(0)</code> and OSF1 required that
computation be done with a <samp>-ieee_with_inexact</samp> flag etc.  On a new
platform you must find out the magic recipe and add some code to make it
work.  This can often be done via the file <samp>config.site</samp> which resides
in the top level directory.
</p>
<p>Beware of using high levels of optimization, at least initially.  On many
compilers these reduce the degree of compliance to the <acronym>IEEE</acronym>
model.  For example, using <samp>-fast</samp> on the Solaris Studio compilers
has caused R&rsquo;s <code>NaN</code> to be set incorrectly, and <code>gcc</code>&rsquo;s
<samp>-ffast-math</samp> and <code>clang</code>&rsquo;s <samp>-Ofast</samp> have given
incorrect results.
</p>
<p><strong>Shared Objects</strong>: There seems to be very little agreement across
platforms on what needs to be done to build shared objects.  there are many
different combinations of flags for the compilers and loaders.
<acronym>GNU</acronym> libtool cannot be used (yet), as it currently does not fully
support FORTRAN: one would need a shell wrapper for this).  The technique we
use is to first interrogate the X window system about what it does (using
<code>xmkmf</code>), and then override this in situations where we know better
(for tools from the <acronym>GNU</acronym> Compiler Collection and/or platforms we
know about).  This typically works, but you may have to manually override
the results.  Scanning the manual entries for <code>cc</code> and <code>ld</code>
usually reveals the correct incantation.  Once you know the recipe you can
modify the file <samp>config.site</samp> (following the instructions therein) so
that the build will use these options.
</p>
<p>It seems that <code>gcc</code>&nbsp;3.4.x and later on &lsquo;<samp>ix86</samp>&rsquo; Linux
defeat attempts by the LAPACK code to avoid computations entirely in
extended-precision registers, so file <samp>src/modules/lapack/dlamc.f</samp> may
need to be compiled without optimization.  Set the configure variable
<code>SAFE_FFLAGS</code> to the flags to be used for this file.  If configure
detects <acronym>GNU</acronym> FORTRAN it adds flag <samp>-ffloat-store</samp> to
<code>FFLAGS</code>.  (Other settings are needed when using <code>icc</code> on
&lsquo;<samp>ix86</samp>&rsquo; Linux, for example.  Using <samp>-mpc64</samp> is preferable on
more recent GCC compilers.)
</p>
<p>If you do manage to get R running on a new platform please let us know
about it so we can modify the configuration procedures to include that
platform.
</p>
<p>If you are having trouble getting R to work on your platform please feel
free to use the &lsquo;<samp>R-devel</samp>&rsquo; mailing list to ask questions.  We have had a
fair amount of practice at porting R to new platforms <small class="enddots">...</small>
</p>

<hr>
<a name="The-Windows-toolset"></a>
<a name="The-Windows-toolset-1"></a>
<h2 class="appendix">Appendix D The Windows toolset</h2>

<p>If you want to build R or add-on packages from source in Windows, you
will need to collect, install and test an extensive set of tools.  See
<a href="http://CRAN.R-project.org/bin/windows/Rtools/">http://CRAN.R-project.org/bin/windows/Rtools/</a> for the current
locations and other updates to these instructions.  (Most Windows users will
not need to build add-on packages from source; see <a href="#Add_002don-packages">Add-on packages</a> for
details.)
</p>
<p>We have found that the build process for R is quite sensitive to the
choice of tools: please follow our instructions <strong>exactly</strong>, even to
the choice of particular versions of the tools.<a name="DOCF37" href="#FOOT37"><sup>37</sup></a> The build
process for add-on packages is somewhat more forgiving, but we recommend
using the exact toolset at first, and only substituting other tools once you
are familiar with the process.
</p>
<p><em>This appendix contains a lot of prescriptive comments.  They are here as a
result of bitter experience.  Please do not report problems to the R
mailing lists unless you have followed all the prescriptions.</em>
</p>
<p>We have collected most of the necessary tools (unfortunately not all, due to
license or size limitations) into an executable installer named<a name="DOCF38" href="#FOOT38"><sup>38</sup></a> <samp>Rtools31.exe</samp>, available from
<a href="http://CRAN.R-project.org/bin/windows/Rtools/">http://CRAN.R-project.org/bin/windows/Rtools/</a>. You should
download and run it, choosing the default &ldquo;Package authoring installation&rdquo;
to build add-on packages, or the &ldquo;full installation&rdquo; if you intend to
build R.
</p>
<p>You will need the following items to build R and packages.  See the
subsections below for detailed descriptions.
</p><ul>
<li> The command line tools (in <samp>Rtools*.exe</samp>)
</li><li> The MinGW-w64 32/64-bit toolchain to compile C, Fortran and C++.
</li></ul>
<p>For installing simple source packages containing data or R source but no
compiled code, none of these are needed.
</p>
<p>A complete build of R including PDF manuals, and producing the installer
will also need the following:
</p><ul>
<li> LaTeX
</li><li> The Inno Setup installer
</li><li> (optional) <code>qpdf</code>
</li></ul>

<a name="index-PATH-3"></a>
<p>It is important to set your <code>PATH</code> properly.  The installer
<samp>Rtools*.exe</samp> optionally sets the path to components that it installs.
</p>
<p>Your <code>PATH</code> may include <samp>.</samp> first, then the <samp>bin</samp> directories
of the tools, the compiler toolchain and LaTeX.  Do not use filepaths
containing spaces: you can always use the short forms (found by <code>dir
/x</code> at the Windows command line).  Network shares (with paths starting
<code>\\</code>) are not supported.
</p>
<p>For example for a 32-bit build, all on one line,
</p>
<div class="example">
<pre class="example">PATH=c:\Rtools\bin;c:\Rtools\gcc-4.6.3\bin;c:\MiKTeX\miktex\bin;
     c:\R\R-3.1\bin\i386;c:\windows;c:\windows\system32
</pre></div>

<p>It is essential that the directory containing the command line tools comes
first or second in the path: there are typically like-named
tools<a name="DOCF39" href="#FOOT39"><sup>39</sup></a> in other directories, and they will <strong>not</strong> work. The
ordering of the other directories is less important, but if in doubt, use
the order above.
</p>
<p>Our toolset contains copies of Cygwin DLLs that may conflict with other ones
on your system if both are in the path at once.  The normal recommendation
is to delete the older ones; however, at one time we found our tools did not
work with a newer version of the Cygwin DLLs, so it may be safest not to
have any other version of the Cygwin DLLs in your path.
</p>

<hr>
<a name="LaTeX"></a>
<a name="LaTeX-1"></a>
<h3 class="section">D.1 LaTeX</h3>

<p>The &lsquo;<samp>MiKTeX</samp>&rsquo; (<a href="http://www.miktex.org/">http://www.miktex.org/</a>) distribution of LaTeX
includes a suitable port of <code>pdftex</code>.  This can be set up to install
extra packages &lsquo;on the fly&rsquo;, which is the simplest way to use it (and the
default).  The &lsquo;basic&rsquo; version of &lsquo;<samp>MiKTeX</samp>&rsquo; almost suffices: when last
tested packages
</p>
<div class="example">
<pre class="example">epsf fancyvrb inconsolata listings mptopdf natbib url
</pre></div>

<p>needed to be added (on the fly or <em>via</em> the &lsquo;<samp>MiKTeX</samp>&rsquo; Package
Manager) to install R.  In any case ensure that the <strong>inconsolata</strong>
package is installed&mdash;you can check with the &lsquo;<samp>MiKTeX</samp>&rsquo; Package Manager.
</p>
<p>The <samp>Rtools*.exe</samp> installer does <em>not</em> include any version of
LaTeX.
</p>
<p>It is also possible to use the TeXLive distribution from
<a href="http://www.tug.org/texlive/">http://www.tug.org/texlive/</a>.
</p>
<a name="index-R_005fRD4PDF-2"></a>
<p>Please read <a href="#Making-the-manuals">Making the manuals</a> about how to make <samp>fullrefman.pdf</samp>
and set the environment variable <code>R_RD4PDF</code> suitably; ensure you have
the required fonts installed or that &lsquo;<samp>MiKTeX</samp>&rsquo; is set up to install
LaTeX packages on first use.
</p>
<hr>
<a name="The-Inno-Setup-installer"></a>
<a name="The-Inno-Setup-installer-1"></a>
<h3 class="section">D.2 The Inno Setup installer</h3>

<p>To make the installer package (<samp>Revision: 67332 (3.2.0 Under development (unstable))-win.exe</samp>) we
currently require the Unicode version of Inno Setup 5.3.7 or later from
<a href="http://jrsoftware.org/">http://jrsoftware.org/</a>. This is <em>not</em> included in
<samp>Rtools*.exe</samp>.
</p>
<p>Copy file <samp>src/gnuwin32/MkRules.dist</samp> to
<samp>src/gnuwin32/MkRules.local</samp> and edit it to set <code>ISDIR</code> to the
location where Inno Setup was installed.
</p>
<hr>
<a name="The-command-line-tools"></a>
<a name="The-command-line-tools-1"></a>
<h3 class="section">D.3 The command line tools</h3>

<p>This item is installed by the <samp>Rtools*.exe</samp> installer.
</p>

<p>If you choose to install these yourself, you will need suitable versions of
at least <code>basename</code>, <code>cat</code>, <code>cmp</code>, <code>comm</code>, <code>cp</code>,
<code>cut</code>, <code>date</code>, <code>diff</code>, <code>du</code>, <code>echo</code>, <code>expr</code>,
<code>gzip</code>, <code>ls</code>, <code>make</code>, <code>makeinfo</code>, <code>mkdir</code>,
<code>mv</code>, <code>rm</code>, <code>rsync</code>, <code>sed</code>, <code>sh</code>, <code>sort</code>,
<code>tar</code>, <code>texindex</code>, <code>touch</code> and <code>uniq</code>; we use those from
the Cygwin distribution (<a href="http://www.cygwin.com/">http://www.cygwin.com/</a>) or compiled from the
sources.  You will also need <code>zip</code> and <code>unzip</code> from the Info-ZIP
project (<a href="http://www.info-zip.org/">http://www.info-zip.org/</a>).  All of these tools are in
<samp>Rtools*.exe</samp>.
</p>

<p><strong>Beware</strong>: &lsquo;Native&rsquo; ports of make are <strong>not</strong> suitable (including
those called &lsquo;MinGW make&rsquo; at the MinGW SourceForge site and
<code>mingw32-make</code> in some MinGW-w64 distributions).  There were also
problems with other versions of the Cygwin tools and DLLs.  To avoid
frustration, please use our tool set, and make sure it is at the front of
your path (including before the Windows system directories).  If you are
using a Windows shell, type <code>PATH</code> at the prompt to find out.
</p>
<a name="index-CYGWIN"></a>
<p>You may need to set the environment variable <code>CYGWIN</code> to a value
including &lsquo;<samp>nodosfilewarning</samp>&rsquo; to suppress messages about Windows-style
paths.
</p>
<hr>
<a name="The-MinGW_002dw64-toolchain"></a>
<a name="The-MinGW_002dw64-toolchain-1"></a>
<h3 class="section">D.4 The MinGW-w64 toolchain</h3>

<p>Technically you need more than just a compiler so the set of tools is
referred to as a &lsquo;toolchain&rsquo;.
</p>
<p>The preferred toolchain is part of <code>Rtools31.exe</code>: this uses a beta
version of <code>gcc 4.6.3</code> and version 2.0.1 of the MinGW-w64 project&rsquo;s
runtime.
</p>
<p>This toolchain uses <em>multilib</em>: that is there is a single front-end
such as <code>gcc.exe</code> for each of the compilers and 32-bit (the default)
and 64-bit compilation are selected by the flags<a name="DOCF40" href="#FOOT40"><sup>40</sup></a> <samp>-m32</samp> and <samp>-m64</samp> respectively.  The tools are
all 32-bit Windows executables and should be able to run on any current
version of Windows&mdash;however you do need a 64-bit version of Windows to
build 64-bit R as the build process runs R.
</p>
<p>To select a 32-bit or 64-bit build of R, set the options in
<samp>MkRules.local</samp> appropriately (following the comments in the file).
</p>
<p>Some external software libraries will need to be re-compiled under the new
toolchain: especially those providing a C++ interface.  Many of those used
by <acronym>CRAN</acronym> packages are available from
<a href="http://www.stats.ox.ac.uk/pub/Rtools/multilib/">http://www.stats.ox.ac.uk/pub/Rtools/multilib/</a>.  Users
developing packages with <a href="http://CRAN.R-project.org/package=Rcpp"><strong>Rcpp</strong></a> need to ensure that they use a
version built with exactly the same toolchain as their package: the
recommendation is to build <a href="http://CRAN.R-project.org/package=Rcpp"><strong>Rcpp</strong></a> from its sources yourself.
</p>
<p>There is support for OpenMP and pthreads in this toolchain.  As the
performance of OpenMP on Windows is poor for small tasks, it is not used for
R itself.
</p>
<hr>
<a name="Useful-additional-programs"></a>
<a name="Useful-additional-programs-1"></a>
<h3 class="section">D.5 Useful additional programs</h3>

<p>The process of making the installer will make use of <code>qpdf</code> to compact
some of the package vignettes, if it is available.  Windows binaries of
<code>qpdf</code> are available from
<a href="http://sourceforge.net/projects/qpdf/files/">http://sourceforge.net/projects/qpdf/files/</a>.  Set the path to
the <code>qpdf</code> installation in file <samp>MkRules.local</samp>.
</p>
<p>Developers of packages will find some of the &lsquo;goodies&rsquo; at
<a href="http://www.stats.ox.ac.uk/pub/Rtools/goodies">http://www.stats.ox.ac.uk/pub/Rtools/goodies</a> useful.  
</p>
<p>There is a version of the <code>file</code> command that identifies the type of
files, and is used by <code>Rcmd check</code> if available.  The binary
distribution is included in <samp>Rtools31.exe</samp>.
</p>
<p>The file <samp>xzutils.zip</samp> contains the program <code>xz</code> which can be
used to (de)compress files with that form of compression.
</p>
<hr>
<a name="Function-and-variable-index"></a>
<a name="Function-and-variable-index-1"></a>
<h2 class="unnumbered">Function and variable index</h2>

<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Function-and-variable-index_vr_letter-C"><b>C</b></a>
 &nbsp; 
<a class="summary-letter" href="#Function-and-variable-index_vr_letter-I"><b>I</b></a>
 &nbsp; 
<a class="summary-letter" href="#Function-and-variable-index_vr_letter-M"><b>M</b></a>
 &nbsp; 
<a class="summary-letter" href="#Function-and-variable-index_vr_letter-R"><b>R</b></a>
 &nbsp; 
<a class="summary-letter" href="#Function-and-variable-index_vr_letter-U"><b>U</b></a>
 &nbsp; 
</td></tr></table>
<table class="index-vr" border="0">
<tr><td></td><th align="left">Index Entry</th><td>&nbsp;</td><th align="left"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Function-and-variable-index_vr_letter-C">C</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-configure"><code>configure</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#g_t_00ea_00b0_0084_00eb_008b_00a8_00ed_0095_009c-_00ec_00bb_00b4_00ed_008c_008c_00ec_009d_00bc_00ed_0095_0098_00ea_00b8_00b0">간단한 컴파일하기</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-configure-1"><code>configure</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#g_t_00ea_00b0_0084_00eb_008b_00a8_00ed_0095_009c-_00ec_00bb_00b4_00ed_008c_008c_00ec_009d_00bc_00ed_0095_0098_00ea_00b8_00b0">간단한 컴파일하기</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-configure-2"><code>configure</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installation">Installation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-configure-3"><code>configure</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installation">Installation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-configure-4"><code>configure</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Configuration-variables">Configuration variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-configure-5"><code>configure</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-make">Using make</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Function-and-variable-index_vr_letter-I">I</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-install_002epackages"><code>install.packages</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installing-packages">Installing packages</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Function-and-variable-index_vr_letter-M">M</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-make"><code>make</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-make">Using make</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Function-and-variable-index_vr_letter-R">R</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-remove_002epackages"><code>remove.packages</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Removing-packages">Removing packages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fHOME"><code>R_HOME</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#g_t_00ea_00b0_0084_00eb_008b_00a8_00ed_0095_009c-_00ec_00bb_00b4_00ed_008c_008c_00ec_009d_00bc_00ed_0095_0098_00ea_00b8_00b0">간단한 컴파일하기</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Function-and-variable-index_vr_letter-U">U</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-update_002epackages"><code>update.packages</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Updating-packages">Updating packages</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Function-and-variable-index_vr_letter-C"><b>C</b></a>
 &nbsp; 
<a class="summary-letter" href="#Function-and-variable-index_vr_letter-I"><b>I</b></a>
 &nbsp; 
<a class="summary-letter" href="#Function-and-variable-index_vr_letter-M"><b>M</b></a>
 &nbsp; 
<a class="summary-letter" href="#Function-and-variable-index_vr_letter-R"><b>R</b></a>
 &nbsp; 
<a class="summary-letter" href="#Function-and-variable-index_vr_letter-U"><b>U</b></a>
 &nbsp; 
</td></tr></table>

<hr>
<a name="Concept-index"></a>
<a name="Concept-index-1"></a>
<h2 class="unnumbered">Concept index</h2>

<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Concept-index_cp_letter-A"><b>A</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-B"><b>B</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-F"><b>F</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-I"><b>I</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-L"><b>L</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-M"><b>M</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-O"><b>O</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-P"><b>P</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-R"><b>R</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-S"><b>S</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-U"><b>U</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-V"><b>V</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-W"><b>W</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-Ë"><b>Ë</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-Ì"><b>Ì</b></a>
 &nbsp; 
</td></tr></table>
<table class="index-cp" border="0">
<tr><td></td><th align="left">Index Entry</th><td>&nbsp;</td><th align="left"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-A">A</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-AIX">AIX</a>:</td><td>&nbsp;</td><td valign="top"><a href="#AIX">AIX</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-B">B</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-BLAS-library">BLAS library</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Linear-algebra">Linear algebra</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-BLAS-library-1">BLAS library</a>:</td><td>&nbsp;</td><td valign="top"><a href="#OS-X">OS X</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-BLAS-library-2">BLAS library</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Solaris">Solaris</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-F">F</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-FORTRAN">FORTRAN</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-FORTRAN">Using FORTRAN</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-FreeBSD">FreeBSD</a>:</td><td>&nbsp;</td><td valign="top"><a href="#FreeBSD">FreeBSD</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-I">I</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Installation">Installation</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installation">Installation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Internationalization">Internationalization</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Internationalization">Internationalization</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-L">L</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-LAPACK-library">LAPACK library</a>:</td><td>&nbsp;</td><td valign="top"><a href="#LAPACK">LAPACK</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LAPACK-library-1">LAPACK library</a>:</td><td>&nbsp;</td><td valign="top"><a href="#OS-X">OS X</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LAPACK-library-2">LAPACK library</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Solaris">Solaris</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Libraries">Libraries</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Add_002don-packages">Add-on packages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Libraries_002c-managing">Libraries, managing</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Managing-libraries">Managing libraries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Libraries_002c-site">Libraries, site</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Managing-libraries">Managing libraries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Libraries_002c-user">Libraries, user</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Managing-libraries">Managing libraries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Locale">Locale</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Internationalization">Internationalization</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Locale-1">Locale</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Locales">Locales</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Localization">Localization</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Internationalization">Internationalization</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-M">M</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Manuals_002c-installing">Manuals, installing</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installation">Installation</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-O">O</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Obtaining-R">Obtaining R</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Obtaining-R">Obtaining R</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-OS-X">OS X</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installing-R-under-Unix_002dalikes">Installing R under Unix-alikes</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-OS-X-1">OS X</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installing-R-under-OS-X">Installing R under OS X</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-OS-X-2">OS X</a>:</td><td>&nbsp;</td><td valign="top"><a href="#OS-X">OS X</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-P">P</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Packages">Packages</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Add_002don-packages">Add-on packages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Packages_002c-default">Packages, default</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Default-packages">Default packages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Packages_002c-installing">Packages, installing</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installing-packages">Installing packages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Packages_002c-removing">Packages, removing</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Removing-packages">Removing packages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Packages_002c-updating">Packages, updating</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Updating-packages">Updating packages</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-R">R</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Repositories">Repositories</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Setting-up-a-package-repository">Setting up a package repository</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-S">S</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Site-libraries">Site libraries</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Managing-libraries">Managing libraries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Solaris">Solaris</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Solaris">Solaris</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Sources-for-R">Sources for R</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Getting-and-unpacking-the-sources">Getting and unpacking the sources</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Subversion">Subversion</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-Subversion-and-rsync">Using Subversion and rsync</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Subversion-1">Subversion</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Essential-programs-and-libraries">Essential programs and libraries</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-U">U</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-User-libraries">User libraries</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Managing-libraries">Managing libraries</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-V">V</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Vignettes">Vignettes</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Essential-programs-and-libraries">Essential programs and libraries</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-W">W</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-winCairo_002edll">winCairo.dll</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Building-the-cairo-devices-files">Building the cairo devices files</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-Ë">Ë</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-e_007c_0021e-i_0024_003f">리눅스</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installing-R-under-Unix_002dalikes">Installing R under Unix-alikes</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-e_007c_0021e-i_0024_003f-1">리눅스</a>:</td><td>&nbsp;</td><td valign="top"><a href="#g_t_00eb_00a6_00ac_00eb_0088-_00ec_008a_00a4">리눅스</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-eSS_0024_003fe_0027i1_002f4-ii_002b_002die_002c_00b0">매뉴얼 생성하기</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Making-the-manuals">Making the manuals</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-Ì">Ì</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-iei_00b0i_007cii-Ri_0024_003fi1ie_002c_00b0">윈도우즈에서 R설치하기</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installing-R-under-Windows">Installing R under Windows</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-i-ei_0024_003fi-e_00b0i-ie21_002f2i-R-i_0024_003fi1ie_002c_00b0">유닉스와 같은 환경에 R 설치하기</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installing-R-under-Unix_002dalikes">Installing R under Unix-alikes</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Concept-index_cp_letter-A"><b>A</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-B"><b>B</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-F"><b>F</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-I"><b>I</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-L"><b>L</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-M"><b>M</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-O"><b>O</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-P"><b>P</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-R"><b>R</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-S"><b>S</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-U"><b>U</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-V"><b>V</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-W"><b>W</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-Ë"><b>Ë</b></a>
 &nbsp; 
<a class="summary-letter" href="#Concept-index_cp_letter-Ì"><b>Ì</b></a>
 &nbsp; 
</td></tr></table>

<hr>
<a name="Environment-variable-index"></a>
<a name="Environment-variable-index-1"></a>
<h2 class="unnumbered">Environment variable index</h2>

<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Environment-variable-index_en_letter-B"><b>B</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-C"><b>C</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-D"><b>D</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-F"><b>F</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-J"><b>J</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-L"><b>L</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-O"><b>O</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-P"><b>P</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-R"><b>R</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-T"><b>T</b></a>
 &nbsp; 
</td></tr></table>
<table class="index-en" border="0">
<tr><td></td><th align="left">Index Entry</th><td>&nbsp;</td><th align="left"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-B">B</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-BLAS_005fLIBS"><code>BLAS_LIBS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#BLAS">BLAS</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-C">C</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-CC"><code>CC</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-FORTRAN">Using FORTRAN</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-CONFIG_005fSITE"><code>CONFIG_SITE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Configuration-variables">Configuration variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-CPP"><code>CPP</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-FORTRAN">Using FORTRAN</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-CYGWIN"><code>CYGWIN</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#The-command-line-tools">The command line tools</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-D">D</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-DESTDIR"><code>DESTDIR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installation">Installation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-DESTDIR-1"><code>DESTDIR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Unix_002dalike-standalone">Unix-alike standalone</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-F">F</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-F2C"><code>F2C</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-FORTRAN">Using FORTRAN</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-F2CLIBS"><code>F2CLIBS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-FORTRAN">Using FORTRAN</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-FPICFLAGS"><code>FPICFLAGS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-FORTRAN">Using FORTRAN</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-J">J</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-JAVA_005fHOME"><code>JAVA_HOME</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Java-support">Java support</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-L">L</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-LANG"><code>LANG</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Localization-of-messages">Localization of messages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LANGUAGE"><code>LANGUAGE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Localization-of-messages">Localization of messages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LANGUAGE-1"><code>LANGUAGE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Localization-of-messages">Localization of messages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LAPACK_005fLIBS"><code>LAPACK_LIBS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#LAPACK">LAPACK</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LC_005fALL"><code>LC_ALL</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Localization-of-messages">Localization of messages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LC_005fCOLLATE"><code>LC_COLLATE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Testing-a-Unix_002dalike-Installation">Testing a Unix-alike Installation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LC_005fMESSAGES"><code>LC_MESSAGES</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Localization-of-messages">Localization of messages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LD_005fLIBRARY_005fPATH"><code>LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Unix_002dalike-standalone">Unix-alike standalone</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LD_005fLIBRARY_005fPATH-1"><code>LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#ACML">ACML</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LD_005fLIBRARY_005fPATH-2"><code>LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-FORTRAN">Using FORTRAN</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LD_005fLIBRARY_005fPATH-3"><code>LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Compile-and-load-flags">Compile and load flags</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LD_005fLIBRARY_005fPATH-4"><code>LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-gcc">Using gcc</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LOCAL_005fSOFT"><code>LOCAL_SOFT</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Windows-packages">Windows packages</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-O">O</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-OBJECT_005fMODE"><code>OBJECT_MODE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#AIX">AIX</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-P">P</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-PAPERSIZE"><code>PAPERSIZE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Setting-paper-size">Setting paper size</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-PATH"><code>PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Essential-programs-and-libraries">Essential programs and libraries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-PATH-1"><code>PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-FORTRAN">Using FORTRAN</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-PATH-2"><code>PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#AIX">AIX</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-PATH-3"><code>PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#The-Windows-toolset">The Windows toolset</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-R">R</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fARCH"><code>R_ARCH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Sub_002darchitectures">Sub-architectures</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fARCH-1"><code>R_ARCH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Sub_002darchitectures">Sub-architectures</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fBROWSER"><code>R_BROWSER</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Setting-the-browsers">Setting the browsers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fDEFAULT_005fPACKAGES"><code>R_DEFAULT_PACKAGES</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Default-packages">Default packages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fDISABLE_005fHTTPD"><code>R_DISABLE_HTTPD</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Help-options">Help options</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fGSCMD"><code>R_GSCMD</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Useful-libraries-and-programs">Useful libraries and programs</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fINSTALL_005fTAR"><code>R_INSTALL_TAR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Windows-packages">Windows packages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fJAVA_005fLD_005fLIBRARY_005fPATH"><code>R_JAVA_LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Java-support">Java support</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fJAVA_005fLD_005fLIBRARY_005fPATH-1"><code>R_JAVA_LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Java-support">Java support</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fLIBS"><code>R_LIBS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Add_002don-packages">Add-on packages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fLIBS_005fSITE"><code>R_LIBS_SITE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Managing-libraries">Managing libraries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fLIBS_005fUSER"><code>R_LIBS_USER</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Managing-libraries">Managing libraries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fPAPERSIZE"><code>R_PAPERSIZE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Making-the-manuals">Making the manuals</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fPAPERSIZE-1"><code>R_PAPERSIZE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Running-R">Running R</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fPAPERSIZE-2"><code>R_PAPERSIZE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Setting-paper-size">Setting paper size</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fPAPERSIZE-3"><code>R_PAPERSIZE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Making-manuals">Making manuals</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fPDFVIEWER"><code>R_PDFVIEWER</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Setting-the-browsers">Setting the browsers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fRD4PDF"><code>R_RD4PDF</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Making-the-manuals">Making the manuals</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fRD4PDF-1"><code>R_RD4PDF</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Making-manuals">Making manuals</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fRD4PDF-2"><code>R_RD4PDF</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#LaTeX">LaTeX</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fSHELL"><code>R_SHELL</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#AIX">AIX</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fUSER"><code>R_USER</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Running-R">Running R</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-T">T</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-TAR"><code>TAR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Essential-programs-and-libraries">Essential programs and libraries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TAR_005fOPTIONS"><code>TAR_OPTIONS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Getting-and-unpacking-the-sources">Getting and unpacking the sources</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TAR_005fOPTIONS-1"><code>TAR_OPTIONS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Getting-the-source-files">Getting the source files</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TEMP"><code>TEMP</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Running-R">Running R</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TMP"><code>TMP</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Running-R">Running R</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TMPDIR"><code>TMPDIR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#g_t_00ea_00b0_0084_00eb_008b_00a8_00ed_0095_009c-_00ec_00bb_00b4_00ed_008c_008c_00ec_009d_00bc_00ed_0095_0098_00ea_00b8_00b0">간단한 컴파일하기</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TMPDIR-1"><code>TMPDIR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Building-the-core-files">Building the core files</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TMPDIR-2"><code>TMPDIR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Running-R">Running R</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TMPDIR-3"><code>TMPDIR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Running-R">Running R</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TMPDIR-4"><code>TMPDIR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Installing-packages">Installing packages</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Environment-variable-index_en_letter-B"><b>B</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-C"><b>C</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-D"><b>D</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-F"><b>F</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-J"><b>J</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-L"><b>L</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-O"><b>O</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-P"><b>P</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-R"><b>R</b></a>
 &nbsp; 
<a class="summary-letter" href="#Environment-variable-index_en_letter-T"><b>T</b></a>
 &nbsp; 
</td></tr></table>


<div class="footnote">
<hr>
<h4 class="footnotes-heading">Footnotes</h4>

<h3><a name="FOOT1" href="#DOCF1">(1)</a></h3>
<p>예를 들어,  <acronym>GNU</acronym>
<code>tar</code> 버전 1.15 이상 또는 &lsquo;<samp>libarchive</samp>&rsquo;(OS 10.[67]에 사용된 것처럼) 또는
&lsquo;Heirloom Toolchest&rsquo; 배포</p>
<h3><a name="FOOT2" href="#DOCF2">(2)</a></h3>
<p>어떤 서브버전 클라이언트들에 대해서는 &lsquo;<samp>http:</samp>&rsquo;로 나타날 수
있으나, 지속적인 리디렉션이 요구됩니다.</p>
<h3><a name="FOOT3" href="#DOCF3">(3)</a></h3>
<p>여기서는 <samp>lib64</samp>보다
<samp>lib</samp>을 기본 64-비트 라이브러리 디렉토리로 사용합니다.</p>
<h3><a name="FOOT4" href="#DOCF4">(4)</a></h3>
<p>예를들어, 만약에
<samp>--without-recommended</samp>이라는 옵션과 함께 R의 환경을 확인해보지 않았다면</p>
<h3><a name="FOOT5" href="#DOCF5">(5)</a></h3>
<p>Debian/Ubuntu은 다소 오래된 버전의
TeXLive를 이용하므로 &lsquo;<samp>texlive-fonts-extra</samp>&rsquo;이라는 Debian 패키지가 설치되어야 합니다.Fedora
18이전의 버전들은 더 오래된 버전의 TeXLive를 사용하는데, 가장 좋은 방법은 소스로부터 TeXLive 2012로 업데이트 하거나
<a href="http://fedoraproject.org/wiki/Features/TeXLive">http://fedoraproject.org/wiki/Features/TeXLive</a>를 살펴보시길 바랍니다.</p>
<h3><a name="FOOT6" href="#DOCF6">(6)</a></h3>
<p>on a Unix-alike,
&lsquo;<samp>inconsolata</samp>&rsquo; is omitted if not found by <code>configure</code>.</p>
<h3><a name="FOOT7" href="#DOCF7">(7)</a></h3>
<p>The <code>linktoc</code> settings
require <strong>hyperref</strong> version 6.78f or newer; with older versions of
<strong>hyperref</strong> use <code>linktocpage=false</code> to hyperlink the text.</p>
<h3><a name="FOOT8" href="#DOCF8">(8)</a></h3>
<p>아마도 가능한 값들은 &lsquo;<samp>i386</samp>&rsquo;, &lsquo;<samp>x64</samp>&rsquo;, &lsquo;<samp>32</samp>&rsquo;, 그리고 &lsquo;<samp>64</samp>&rsquo;일
것입니다</p>
<h3><a name="FOOT9" href="#DOCF9">(9)</a></h3>
<p>여기에서는 주로 RedHat과 Fedora를 위주로 설명합니다</p>
<h3><a name="FOOT10" href="#DOCF10">(10)</a></h3>
<p>How
to prepare such a directory is described in file
<samp>src/extra/tzone/Notes</samp> in the R sources.</p>
<h3><a name="FOOT11" href="#DOCF11">(11)</a></h3>
<p>이전 명칭으로 EM64T.</p>
<h3><a name="FOOT12" href="#DOCF12">(12)</a></h3>
<p>만약 그렇지 않다면 그들은 빌드시에 제외될
것입니다</p>
<h3><a name="FOOT13" href="#DOCF13">(13)</a></h3>
<p>or by
adding it in a file such as <samp>etc/i386/Makevars.site</samp>, which does not
exist by default.</p>
<h3><a name="FOOT14" href="#DOCF14">(14)</a></h3>
<p>여러개의 버전들을 가지고 있는
&lsquo;X/Open Portability Guide&rsquo;</p>
<h3><a name="FOOT15" href="#DOCF15">(15)</a></h3>
<p>일부 시스템에서는 <code>LC_ALL</code> 또는
<code>LC_MESSAGES</code>를 &lsquo;<samp>C</samp>&rsquo;로 지정하는 것은 <code>LANGUAGE</code>를 사용하지 못하게 하기도 합니다</p>
<h3><a name="FOOT16" href="#DOCF16">(16)</a></h3>
<p>만약 불어에서 러시안으로 변경을 시도하는데 UTF-8 로케일이 빠져있다면, 영어로 된 메시지를 보게 될 가능성이
있습니다</p>
<h3><a name="FOOT17" href="#DOCF17">(17)</a></h3>
<p>영국권에서 사용되는 영어: </p>
<h3><a name="FOOT18" href="#DOCF18">(18)</a></h3>
<p>미국식</p>
<h3><a name="FOOT19" href="#DOCF19">(19)</a></h3>
<p>e.g. Bessel, beta and gamma
functions.</p>
<h3><a name="FOOT20" href="#DOCF20">(20)</a></h3>
<p>including copying
<samp>MkRules.dist</samp> to <samp>MkRule.local</samp>and selecting the architecture.</p>
<h3><a name="FOOT21" href="#DOCF21">(21)</a></h3>
<p>also known as <acronym>IEEE</acronym>&nbsp;754.</p>
<h3><a name="FOOT22" href="#DOCF22">(22)</a></h3>
<p>특별히 헤더의 C99 기능 <samp>wchar.h</samp>
and <samp>wctype.h</samp>, types <code>wctans_t</code> and <code>mbstate_t</code> and
functions <code>mbrtowc</code>,<code>mbstowcs</code>, <code>wcrtomb</code>,
<code>wcscoll</code>,<code>wcstombs</code>,<code>wctrans</code>, <code>wctype</code>, and
<code>iswctype</code>.</p>
<h3><a name="FOOT23" href="#DOCF23">(23)</a></h3>
<p>Such as <acronym>GNU</acronym> <code>tar</code> 1.15 or later,
<code>bsdtar</code></p>
<h3><a name="FOOT24" href="#DOCF24">(24)</a></h3>
<p><code>texi2dvi</code> is normally a shell script.
Some versions (e.g. those from <strong>texinfo</strong> 4.13a and 5.2)  need to be
run under <code>bash</code> rather than a Bourne shell as on, say, Solaris.</p>
<h3><a name="FOOT25" href="#DOCF25">(25)</a></h3>
<p>also known as <code>ttf-mscorefonts-installer.</code></p>
<h3><a name="FOOT26" href="#DOCF26">(26)</a></h3>
<p><code>ttf-liberation</code></p>
<h3><a name="FOOT27" href="#DOCF27">(27)</a></h3>
<p>and perhaps others</p>
<h3><a name="FOOT28" href="#DOCF28">(28)</a></h3>
<p>On HP-UX <code>fort77</code> is the <acronym>POSIX</acronym>
<code>g77</code>.</p>
<h3><a name="FOOT29" href="#DOCF29">(29)</a></h3>
<p>as well as its equivalence to the <code>Rcomplex</code>structure
defined in <samp>R_ext/Complex.h</samp>.</p>
<h3><a name="FOOT30" href="#DOCF30">(30)</a></h3>
<p>만약 <code>X11()이 특히 큰 폰트 사이즈들의 실종을 리포트 하는 것을 알아낸다면</code>, 이는
거의 대부분 여러분이 X11 폰트들의 100dpi 버정들을 설치하지 않았고 크기를 조절할 수 있는 폰트들 을 사용하지 않고 있는
것입니다.</p>
<h3><a name="FOOT31" href="#DOCF31">(31)</a></h3>
<p>These days that is defined by Apple&rsquo;s implementation of
<code>clang</code>, so it is strongly recommended to use that.</p>
<h3><a name="FOOT32" href="#DOCF32">(32)</a></h3>
<p>This
is a tarball which needs to be unpacked in the Terminal by e.g.
<code>sudo tar -zxf gfortran-4.8.2-darwin13.tar.bz2 -C /</code>.</p>
<h3><a name="FOOT33" href="#DOCF33">(33)</a></h3>
<p>It is
reported that for some non-Apple toolchains <code>CPPFLAGS</code> needed to
contain <code>-D__ACCELERATE__</code>.</p>
<h3><a name="FOOT34" href="#DOCF34">(34)</a></h3>
<p>e.g.
<code>Java For OS X 2014-001</code>.</p>
<h3><a name="FOOT35" href="#DOCF35">(35)</a></h3>
<p>including <code>gcc</code> for Sparc
from Oracle.</p>
<h3><a name="FOOT36" href="#DOCF36">(36)</a></h3>
<p>Windows DLLs
need to have all links resolved at build time and so cannot resolve against
<samp>R.bin</samp>.</p>
<h3><a name="FOOT37" href="#DOCF37">(37)</a></h3>
<p>For example, the
Cygwin version of <code>make 3.81</code> fails to work correctly.</p>
<h3><a name="FOOT38" href="#DOCF38">(38)</a></h3>
<p>for
R 3.0.0 and later.</p>
<h3><a name="FOOT39" href="#DOCF39">(39)</a></h3>
<p>such as <code>sort</code>, <code>find</code> and perhaps
<code>make</code>.</p>
<h3><a name="FOOT40" href="#DOCF40">(40)</a></h3>
<p>these flags apply
to the compilers: some of the tools use different flags.  32-bit builds are
the default.</p>
</div>
<hr>



</body>
</html>

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business Powered By FusionForge