[R-SIG-Mac] gfortran: command not found

Prof Brian Ripley r|p|ey @end|ng |rom @t@t@@ox@@c@uk
Fri Jul 7 08:54:51 CEST 2023


An alternative is not to have gfortran on the path and use a personal 
Makevars file, as documented at 
https://cran.r-project.org/doc/manuals/r-devel/R-admin.html#macOS-packages .

Reasons to do it that way include

a) GCC builds have included other compilers including gcc in the same 
directory as gfortran, and I have been caught in the past by 
badly-written software looking for gcc as a C compiler and finding that 
one rather than Apple's gcc which is a wrapper for clang.  (The current 
gfortran distribution only includes x86_64-apple-darwin20.0-gcc and 
similar.)

b) If the gfortran you have installed differs from that used to build R, 
you may need to set FLIBS, and this has happened as different CRAN 
distributions have been built with different versions of gfortran.

When I do want gfortran on the path, for example to build other 
software, I do symlink it to somewhere on my path.

I would prefer if Simon continues to give the full path as FC in 
etc/Makeconf: anyone who wants a different compiler can use a personal 
Makevars.  (Continues at least for arm64, and I would prefer consistency.)


On 07/07/2023 00:07, Simon Urbanek wrote:
> 
> 
>> On 7/07/2023, at 10:15 AM, Spencer Graves <spencer.graves using prodsyse.com> wrote:
>>
>> Hi, Simon:
>>
>>
>> 	  Thanks for this.  I have more questions:
>>
>>
>> On 7/6/23 4:52 PM, Simon Urbanek wrote:
>>> In the shell:
>>> PATH=/opt/gfortran/bin:$PATH R CMD INSTALL ...
>>
>>
>> 	  Please excuse my ignorance, but I don't understand this.  I previously tried "PATH=/bin:/sbin:/user/bin:/user/sbin:/system/Library/ export PATH", recommended on a page associated with support.apple.com, as mentioned below.  That did not seem to work for me.
>>
> 
> That one sets the specified fixed path and then exports it. Setting a fixed PATH by hand is typically a bad idea since it removes all existing entries - and the one you listed didn't even have gfortran on it. Exporting is another alternative if you want to set the PATH for all subsequent commands.
> 
> The line I sent just prepends the /opt/gfortran/bin to the PATH for the one R CMD command, but doesn't affect anything else. I would recommend reading a basic tutorial on unix shell if you really want to know more (actually a good idea if you ever want to use the Terminal and not kill your machine).
> 
> 
>> 	  How is this different?  What did I do wrong before that this would fix?  [Or feel free to ignore this question:  My immediate problem seems to be fixed, and I'm not eager to do more experimentation with this now ;-]
>>
>>> in R if using install.packages()
>>> Sys.setenv(PATH=paste0("/opt/gfortran/bin:", Sys.getenv("PATH")))
>>
>>
>> 	  If I set this in RStudio, will it affect what I do in "Terminal" on my Mac and vice versa?
>>
> 
> No, it is only valid for the current R session (and I don't know about RStudio - it's not R so sometimes R rules don't apply), that's why I said it's for the case where you run install.packages() in the R session.
> 
> 
> Note that another alternative is to simply symlink gfortran to your /usr/local/bin since that is on the PATH on macOS by default, i.e., you only need to run this in the Terminal once (requires admin access):
> 
> sudo ln -sfn /opt/gfortran/bin/gfortran /usr/local/bin/gfortran
> 
> Cheers,
> Simon
> 
> 
> 
> 
>>
>> 	  This looks like a potentially similar thing to do from what I did. Is the effect of this different?  If so, how? [Again, please feel free to ignore this question.  I'm not eager to practice my "do-it-myself lobotomy" skills ;-]
>>
>>
>> 	  Thanks,
>> 	  Spencer Graves>
>>>> On Jul 7, 2023, at 5:58 AM, Spencer Graves <spencer.graves using prodsyse.com> wrote:
>>>>
>>>> 1.  I need to apologize to Simon:  I failed to see his reply to the original post.  Then I found the instructions and installed gfortran-12.2-universal.pkg, as indicated there, but it still didn't work.
>>>>
>>>>
>>>> 2.  I'm not finding clear instructions on how to update the path on macOS 11.7.8, which is the latest version available for my 2014 MacBook Pro with a 2.8 GHz Quad-Core Intel Core i7.  I found several pages with differing instructions.  I found one in "support.apple.com" that recommended something that didn't work.[2]
>>>>
>>>>
>>>> 	  Further suggestions?
>>>> 	
>>>>
>>>> 	  Thanks again very much.
>>>> 	  Spencer Graves
>>>>
>>>>
>>>> [2] "support.apple.com" recommended "PATH=/bin:/sbin:/user/bin:/user/sbin:/system/Library/ export PATH", then "env".  I did "env" to get the current path, than appended ":/opt/gfortran/bin" to that and executed the revised "PATH=...:/opt/gfortran/bin export PATH".  However, when I checked with "env" again, the change was not displayed.  I rebooted with the same result.
>>>>
>>>>
>>>> https://support.apple.com/guide/terminal/use-environment-variables-apd382cc5fa-4f58-4449-b20a-41c53c006f8f/mac
>>>>
>>>>
>>>> On 7/6/23 11:01 AM, Simon Urbanek wrote:
>>>>> AFACT he didn't say so, there was no response, just double-posting of the same question after is was answered.
>>>>> The installer says:
>>>>> The resulting compiler will live in /opt/gfortran and can be called with
>>>>> /opt/gfortran/bin/gfortran
>>>>> so it's advisable to have /opt/gfortran/bin on the PATH.
>>>>> (Side note: the arm64 build of R uses the full path, but some people have been objecting to that since they wanted to use other compilers for the legacy Intel builds, but as I suspected that causes other issues, so I'll change that for the next release).
>>>>> Cheers,
>>>>> Simon
>>>>>> On Jul 6, 2023, at 11:45 PM, Peter Dalgaard <pdalgd using gmail.com <mailto:pdalgd using gmail.com>> wrote:
>>>>>>
>>>>>> AFAICT, Spencer followed the implied instructions and it still didn't work.
>>>>>>
>>>>>> There may also be a PATH issue when upgrading to 4.3.x, /usr/local -> /opt/R/<arch> Does gfortran 12.2 install to /opt/R/.../bin ?
>>>>>>
>>>>>> -pd
>>>>>>
>>>>>>> On 6 Jul 2023, at 07:42 , Simon Urbanek <simon.urbanek using r-project.org <mailto:simon.urbanek using r-project.org>> wrote:
>>>>>>>
>>>>>>> Already answered to you and on R-pkg-devel [9 mins after you posted there - now more than 5h ago...]:
>>>>>>>
>>>>>>> To quote from the page you downloaded R from:
>>>>>>>
>>>>>>> This release uses Xcode 14.2/14.3 and GNU Fortran 12.2. If you wish to compile R packages which contain Fortran code, you may need to download the corresponding GNU Fortran compiler from https://mac.R-project.org/tools <https://mac.R-project.org/tools> <https://mac.r-project.org/tools <https://mac.r-project.org/tools>>.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> On Jul 6, 2023, at 5:16 PM, Spencer Graves <spencer.graves using prodsyse.com <mailto:spencer.graves using prodsyse.com>> wrote:
>>>>>>>>
>>>>>>>> Hello, All:
>>>>>>>>
>>>>>>>>
>>>>>>>>   "R CMD check KFAS" under macOS 11.7.8 (the latest version that will run on my aging Mac) complains "gfortran: command not found".
>>>>>>>>
>>>>>>>>
>>>>>>>>   I just upgraded to R 4.3.1 and installed "gfortran-12.2-universal.pkg" per "https://cran.r-project.org/bin/macosx/tools/ <https://cran.r-project.org/bin/macosx/tools/>".  I expected this to solve the problem.  It didn't.
>>>>>>>>
>>>>>>>>
>>>>>>>>   Suggestions?
>>>>>>>>   Thanks,
>>>>>>>>   Spencer Graves
>>>>>>>>
>>>>>>>>
>>>>>>>> p.s.  This is my fork of KFAS, available at "https://github.com/sbgraves237/KFAS <https://github.com/sbgraves237/KFAS>".  "sessionInfo()" appears below.
>>>>>>>>
>>>>>>>>
>>>>>>>> ##########
>>>>>>>>
>>>>>>>>
>>>>>>>> sessionInfo()
>>>>>>>> R version 4.3.1 (2023-06-16)
>>>>>>>> Platform: x86_64-apple-darwin20 (64-bit)
>>>>>>>> Running under: macOS Big Sur 11.7.8
>>>>>>>>
>>>>>>>> Matrix products: default
>>>>>>>> BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
>>>>>>>> LAPACK: /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0
>>>>>>>>
>>>>>>>> locale:
>>>>>>>> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
>>>>>>>>
>>>>>>>> time zone: America/Chicago
>>>>>>>> tzcode source: internal
>>>>>>>>
>>>>>>>> attached base packages:
>>>>>>>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>>>>>>>
>>>>>>>> loaded via a namespace (and not attached):
>>>>>>>> [1] compiler_4.3.1  R6_2.5.1        magrittr_2.0.3  cli_3.6.1
>>>>>>>> [5] tools_4.3.1     glue_1.6.2      rstudioapi_0.14 roxygen2_7.2.3
>>>>>>>> [9] xml2_1.3.4      vctrs_0.6.2     stringi_1.7.12  knitr_1.42
>>>>>>>> [13] xfun_0.39       stringr_1.5.0   lifecycle_1.0.3 rlang_1.1.1
>>>>>>>> [17] purrr_1.0.1
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> R-SIG-Mac mailing list
>>>>>>>> R-SIG-Mac using r-project.org <mailto:R-SIG-Mac using r-project.org>
>>>>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> [[alternative HTML version deleted]]
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> R-SIG-Mac mailing list
>>>>>>> R-SIG-Mac using r-project.org <mailto:R-SIG-Mac using r-project.org>
>>>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>>>
>>>>>> -- 
>>>>>> Peter Dalgaard, Professor,
>>>>>> Center for Statistics, Copenhagen Business School
>>>>>> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>>>>>> Phone: (+45)38153501
>>>>>> Office: A 4.23
>>>>>> Email: pd.mes using cbs.dk <mailto:pd.mes using cbs.dk>  Priv: PDalgd using gmail.com <mailto:PDalgd using gmail.com>
>>>>>>
>>>>
>>
> 
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac

-- 
Brian D. Ripley,                  ripley using stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford



More information about the R-SIG-Mac mailing list