harrelfe / Hmisc

Harrell Miscellaneous
Other
205 stars 81 forks source link

Hmisc wont install on Fedora 28 (libgfortran issue) #92

Closed kallen83 closed 6 years ago

kallen83 commented 6 years ago

After upgrading to fedora 28 Hmisc failed to load with the following error:

Error: package or namespace load failed for ‘Hmisc’: .onLoad failed in loadNamespace() for 'acepack', details: call: dyn.load(file, DLLpath = DLLpath, ...) error: unable to load shared object '/home/keithallen/R/x86_64-redhat-linux-gnu-library/3.4/acepack/libs/acepack.so': libgfortran.so.4: cannot open shared object file: No such file or directory

It looks like what's going on is libgfortran.so.4 has been replaced with libgfortran.so.5:

dnf provides libgfortran.so.5 Last metadata expiration check: 9:45:24 ago on Mon 07 May 2018 08:22:48 PM PDT. libgfortran-8.0.1-0.20.fc28.i686 : Fortran runtime Repo : fedora Matched from: Provide : libgfortran.so.5

dnf provides libgfortran.so.4 Last metadata expiration check: 9:37:13 ago on Mon 07 May 2018 08:22:48 PM PDT. Error: No Matches found

I suppose I could try a simlink, but I'm guessing this needs to be addressed in the package itself.

couthcommander commented 6 years ago

Looks like this is a problem with the package acepack (on which Hmisc depends)

kallen83 commented 6 years ago

ooh, good call

kallen83 commented 6 years ago

ah, that seems to have been the problem. The solution was to remove the old acepack, reinstall a fresh acepack, restart R to get past the corrupt acepack.rdb, then install libicui18n.so.57 (there's a compat file available), and now Hmisc builds fine.

spgarbet commented 6 years ago

I maintain acepack, I'm glad you got it to work. I don't know of any changes I can make to the package that would overcome this issue. This seems to be downstream and related to changes going on with how packages are being built for Windows in general for R. I'm glad you got it to work. However, I'm open to suggestions.

kallen83 commented 6 years ago

Hey, thanks for the ping. I'll admit I was tearing my hair out last night, but I was misreading the original error message and assuming it was an Hmisc issue rather than an acepack issue. I'm not sure what you would change in the actual acepack package to get around this, but as more people upgrade to fedora 28 (assuming I'm not the last person still using fedora...) I suspect this problem will come up quite a bit.

-Keith

On Tue, May 8, 2018 at 9:26 AM, Shawn Garbett notifications@github.com wrote:

I maintain acepack, I'm glad you got it to work. I don't know of any changes I can make to the package that would overcome this issue. This seems to be downstream and related to changes going on with how packages are being built for Windows in general for R. I'm glad you got it to work. However, I'm open to suggestions.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/harrelfe/Hmisc/issues/92#issuecomment-387461126, or mute the thread https://github.com/notifications/unsubscribe-auth/AF6T7hpNgi06qtTQuRf5U7yg9gpt-OZMks5twccbgaJpZM4T2qFm .

spgarbet commented 6 years ago

The only two changes in acepack recently were forced by packing requirements from CRAN. The first was in October of 2016 which did change the fortran library it linked to. The second was a couple weeks ago and it was an explicit dll loading table for routines. The error you have is related to the fortran library it's linked with and 2016 was quite some time ago. What I suspect is Fedora (or core R on Fedora) updated which library it was using, and basically all that was required was a recompile of acepack.

kallen83 commented 6 years ago

Yeah, that sounds right, and it would have been the acepack recompile that solved the problem. Probably the way my debugging process should work if I run into a problem like this after an upgrade is to start by just rebuilding the package making the complaint.

Thanks for your time on this,

-Keith

On Tue, May 8, 2018 at 11:27 AM, Shawn Garbett notifications@github.com wrote:

The only two changes in acepack recently were forced by packing requirements from CRAN. The first was in October of 2016 which did change the fortran library it linked to. The second was a couple weeks ago and it was an explicit dll loading table for routines. The error you have is related to the fortran library it's linked with and 2016 was quite some time ago. What I suspect is Fedora (or core R on Fedora) updated which library it was using, and basically all that was required was a recompile of acepack.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/harrelfe/Hmisc/issues/92#issuecomment-387497598, or mute the thread https://github.com/notifications/unsubscribe-auth/AF6T7vusfqm3MyuZVNhf26_DoOS9hsZGks5tweOQgaJpZM4T2qFm .