rocker-org / rocker-versioned

Run current & prior versions of R using docker
https://hub.docker.com/r/rocker/r-ver
GNU General Public License v2.0
297 stars 169 forks source link

File "multirow.sty" not found and cannot be installed with package manager #73

Closed mcenno closed 6 years ago

mcenno commented 6 years ago

Hello,

I hope this is the correct place to address this issue.

I'd like to generate a Rmarkdown document with bookdown and kable tables. HTML output works fine, but PDF output does not:

This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode ! LaTeX Error: File 'multirow.sty' not found.

This file is part of the package texlive-latex-extra, but installation of this package (and its dependencies) fails with some obscure errors, which appear as yet to be unresolved:

E: Sub-process /usr/bin/dpkg returned an error code (1) Setting up texlive-base (2016.20170123-5) ... Can't use string ("2") as an ARRAY ref while "strict refs" in use at /usr/bin/tl-paper line 112.

See https://www.tug.org/pipermail/tex-live/2015-December/037551.html for details on this error.

My understanding is that you're not using the Debian TeX packages but others. Would it be possible to install this file into the container so kable can produce PDF output?

Cheers,

Enno

eddelbuettel commented 6 years ago

Which container were you using? '2016.20170123' hints at something older.

mcenno commented 6 years ago

I can't really answer - here is my Dockerfile:

FROM rocker/verse RUN apt-get update && apt-get install -y aptitude RUN aptitude -f install RUN aptitude install -y texlive

I included aptitude here because it is known (to my understanding) that it is a bit better at resolving conflicts and dependencies. It didn't help, though.

So I think I'm using a current image.

Enno

eddelbuettel commented 6 years ago

a) aptitude being better is hearsay from a decade+ ago; these days all apt programs use the same backend AFAIK b) I never had anything missing from texlive, or installation issues, so beats me. c) Didn't Carl switch verse from texlive to tinytex (for better or worse) so dropping texlive on top may have issues. d) In any event, would this not appear to be an error in your container rather than ours?

mcenno commented 6 years ago

a) Maybe that's true, but my personal, very subjective, experience is that I've resolved more conflict situations with aptitude than with apt-get, but that's unimportant here. I just wanted to explain the rationale behind the Dockerfile.

b) Too bad

c) Who is Carl? I've seen somewhere that indeed texlive in rocker/verse is not using official Debian repositories, so I'm inclined to agree

d) This I don't understand - with my Dockerfile above am I not using your container as a starting point?

Apologies for my ignorance but I have started with Docker not too long ago.

Enno

eddelbuettel commented 6 years ago

am I not using your container as a starting point?

Yet the bug seems to be caused by your transformations thereafter.

Carl is the good Prof Boettiger and the other half of this project which happens to look after *verse.

eddelbuettel commented 6 years ago

Also:

edd@rob:~$ dpkg -S /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty
texlive-latex-extra: /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty
edd@rob:~$ 
cboettig commented 6 years ago
tlmgr update --self
tlmgr install multirow

see https://yihui.name/tinytex/

IntiQuan commented 5 years ago

Same issue ... despite closed subject. Not very helpful

eddelbuettel commented 5 years ago

What part of @cboettig's answer from Feb 26 is unclear? It shows how to add the missing LaTeX component to your system.